並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 815件

新着順 人気順

goの検索結果1 - 40 件 / 815件

  • サブスクがいつの間にか増えていたので、断捨離のための整理をかねて... Go..

    サブスクがいつの間にか増えていたので、断捨離のための整理をかねて... Google Drive 月額250円 (年額3,000円)100GBで月額250円。 Google Photo で半分ほどの容量を占めているが残りは、GmailとDriveが10GBずつ程度。 iCloud 月額130円 (年額1,560円)50GBで月額130円。 iPhoneのバックアップが主な理由。写真のシンクはしていない。 Google Cloud 従量制 月額170円くらい (年額2,000円くらい)無償分がはみ出るリソースで、円安前は110円で済んでいたんだけどな。 AWS 従量制 月額290円くらい (年額3,500円くらい)ほぼ Route 53 のゾーン利用料。 ChatGPT Plus 月額20ドル (年額240ドル)20ドルかぁー、20ドルなぁーって思いながら使っている。Notionはちょっとダ

      サブスクがいつの間にか増えていたので、断捨離のための整理をかねて... Go..
    • 最速で成果を出す方法|Go Kiritani / kubell 執行役員

      これは何か最速で成果を出す為にはどうすれば良いか?という質問をよくもらうのでその回答をするものです。良い感じのものが見当たらなかったので過去に自分が教えてもらった事をまとめました。せっかくまとめたので公開します。 4つのタイプの人がいるそれっぽい図1①思考先行型 思考力は高いけど,行動力が低い人。 考えてばかりで,なかなか行動に動けず成果が出ない。頭が良い人ほどこのタイプになってしまうので気をつけないといけない。 ②思考/行動 併用型 思考力も行動力も高い人。 思考と行動のバランスが良く,行動した結果を思考する事で正しい行動に繋がるサイクルが回っている。この人が1番早く成果が出る。 ③指示待ち型 思考力も行動力も低い人。 何をすれば良いか分からない状態で,動くこともできない。新しい環境に行くと,意外とこの状態の人も多いのでは。 ④行動先行型 思考力は低いけど,行動力が高い人。 何が正しいか

        最速で成果を出す方法|Go Kiritani / kubell 執行役員
      • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

        情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

          Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
        • 囲碁というゲームがこの先も活き残るには|Go-Up

          ■TL;DR囲碁と 囲碁界、 そして、 囲碁のルールを持つゲーム。 この先も活き残るには、 この3つを分けて考えるべき。 ■はじめに「囲碁」。 残念ながら日本でのプレイヤー数が大きく減少し、世間で話題になることが少なくなり、「衰退の一途を辿っている」状況となっている。 私は20年ほど前に囲碁に興味を持ち、普及の一助として「初心者向け囲碁対局サイト Go-Up!」や、それ以前もいくつか活動をしていました。 初心者向け囲碁対局サイト Go-Up! https://go-up-online.com/ Go-Up!の閉鎖をもって、私の囲碁との関係は終了します。 長きに渡る活動の中で、囲碁に纏わるいろんな事を端から追ってきました。 せっかくなので、囲碁を巡る現況について、見えていることや考えを書き残して去りたいと思います。 囲碁界に知人もおらず、直接の繋がりや恩義もない、しがらみの無い部外者にしか言

            囲碁というゲームがこの先も活き残るには|Go-Up
          • 開発用適当ツールはGoで作るのがオススメ - Qiita

            開発用適当ツールとは? 開発していると、たまに何かしらプロジェクト内で開発者用や運用者用にテストデータを作成したり、DBやAPIに繋いでCSVやExcelを出したりする名もなきツールが大量に必要になってきますよね? 配布して他の人にも使ってもらったりしたくなりますよね? これが開発用適当ツール1です。 そういった開発用適当ツールをGoで作ってみたら案外体験が悪くなかったのでシェアしたいと思います。 どうやって開発用適当ツールを作るか? 既存プロジェクトにそのままGoのプロジェクトレイアウトを重ねていきます。 具体的には以下のような感じです。

              開発用適当ツールはGoで作るのがオススメ - Qiita
            • 「強盗だ!」は「Go to a door!」? 前代未聞、豪州男「空耳」裁判の行方 法廷から

              「強盗だ!」ではなく、「Go to a door(ドアに向かえ)!」だったのか-。金品を奪おうと民家に忍び込み、住人にけがをさせたとして、住居侵入や強盗致傷罪に問われたオーストラリア国籍の男の公判が、東京地裁で開かれている。被害者に発したとされる「脅し文句」について、被告側は「英語を聞き間違えたものだ」として無罪を主張。〝空耳〟が争点となるのは極めて異例で、裁判員の判断が注目される。 あの名物コーナー「『空耳』をテーマにした番組を、知っている方もいらっしゃるのではないでしょうか」 今月2日、弁護人が冒頭陳述でこう述べると、裁判員や裁判官の顔に、小さく笑みが浮かんだように見えた。 番組とは、テレビ朝日系列でかつて放送されていた深夜番組「タモリ倶楽部」の名物コーナー「空耳アワー」。洋楽の歌詞が、なぜかまったく別の意味の日本語に聞こえる-。そんなテーマで視聴者が投稿した曲を聴き、その妙を楽しむ趣

                「強盗だ!」は「Go to a door!」? 前代未聞、豪州男「空耳」裁判の行方 法廷から
              • 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理

                切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React

                  自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理
                • Japanese Version - 100 Go Mistakes and How to Avoid Them

                  Go Mistakes Book Details Go言語でありがちな間違い このページは『100 Go Mistakes』の内容をまとめたものです。一方で、コミュニティに開かれたページでもあります。「ありがちな間違い」が新たに追加されるべきだとお考えでしたら community mistake issue を作成してください。 Jobs Is your company hiring? Sponsor the Japanese version of this repository and let a significant audience of Go developers (~1k unique visitors per week) know about your opportunities in this section. 注意 現在、大幅に多くのコンテンツを追加して強化している新しい

                    Japanese Version - 100 Go Mistakes and How to Avoid Them
                  • 「GOする」と、もれなく手数料!? タクシー不足の原因にも…現場から不満噴出「配車アプリ」の裏側 | FRIDAYデジタル

                    いつの間にか、いろいろな「手数料」が… 登場したばかりの頃は便利なシステムに思えたが、いつの間にかいろいろ“手数料”をとられるようになっているタクシー配車アプリ「GO」。 調べてみると、昨年11月14日の一般乗用旅客自動車運送事業の運賃改定に伴い、「迎車料金」がタクシー事業者ごとに変更されることになり、同時期に「アプリ手配料」なる手数料がプラスされたため、あまり話題にならなかった経緯がある。 もともと「運賃+迎車料金420円」のところ、変更後に「運賃+迎車料金300円〈※〉+アプリ手配料100円〈※〉(※タクシー会社・エリアによって異なる)」になったと説明されると、利用者側にはお得になった印象すらあったかもしれない。 しかし、混雑時間帯などによって、周辺のタクシー車両に空車がない場合に優先的に手配される「優先パス手配料」(300~980円。一定ではない)や、乗務員や車種指定、空気清浄機搭載

                      「GOする」と、もれなく手数料!? タクシー不足の原因にも…現場から不満噴出「配車アプリ」の裏側 | FRIDAYデジタル
                    • Go でマルチスレッドプログラミングする際に最低限知っておくべきこと - Cybozu Inside Out | サイボウズエンジニアのブログ

                      この記事は、CYBOZU SUMMER BLOG FES '24 (クラウド基盤 Stage) DAY 10 の記事です。 こんにちは。クラウド基盤本部の野島です。Go は goroutine やチャネルなどの仕組みが備わっており、簡単にマルチスレッドなプログラムを書くことができる言語だと言われています。しかし、マルチスレッドプログラミングには独特の罠があり、何も知らない人が雰囲気でコードを書くとわかりにくいバグを仕込んでしまうリスクが非常に高いです。 この記事では、マルチスレッドプログラミングに詳しくない人に向けて、そのような罠を避けるための方法を紹介します。この記事は Go の基本的な使い方を知っていることを前提としています。 這い寄るデータ競合の恐怖 まずは以下のようなプログラムを考えてみましょう。これは複雑な計算を行って結果を返すような HTTP サーバーのコードです。 // 複雑

                        Go でマルチスレッドプログラミングする際に最低限知っておくべきこと - Cybozu Inside Out | サイボウズエンジニアのブログ
                      • 「パパ活」情報 「Go Toイート」URLで表示 ドメイン流用の実態 | NHK

                        コロナ禍で行われた「Go Toイート」事業では、農林水産省から委託を受けた民間の会社や商工会議所などが「ドメイン」と呼ばれるインターネット上の住所を新たに取得するなどして、都道府県ごとにウェブサイトが設けられました。 ところが、「Go Toイート」の終了に伴ってウェブサイトが閉鎖されたことから、ドメインが手放されるようになっていて、ドメインの登録サービス会社のオークションを通じて落札されるなどして、同じURLで別のサイトが表示されるケースがあることがわかりました。 NHKが調べたところ、少なくとも15のドメインにこれまでと異なるサイトが開設されていて、中には、オンラインカジノの情報サイトや「パパ活」に関するサイトなどが開設されているケースもありました。 こうしたドメインの扱いについて、政府のガイドラインでは「正規のウェブサイトになりすました不正なウェブサイトに誘導されないよう、対策を講じた

                          「パパ活」情報 「Go Toイート」URLで表示 ドメイン流用の実態 | NHK
                        • ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ

                          AI・機械学習チームのブログリレーも9日目になりました。同チームの横本@yokomotodです。 本日はJavaとGoを題材に並行プログラミングまわりの自由研究をしたお話をしてみたいと思います。 3部構成で、パート1では発端となった「排他制御」について、パート2では「メモリの可視化」について、それぞれJavaとGoを比べてみました。 最後にパート3では、それらの動作を規定する「メモリモデル」について、わかりやすく解説されているリソースを紹介します。 長過ぎる! 3行で!! パート1: synchronized = 「排他制御」? Java synchronized vs Go sync.Mutex Goで再入可能なロック? 仮にGoで再入可能なロックを実装するなら? Javaが再入可能を選択した理由 パート2. sycnhronized = 「排他制御」+「メモリ可視性の保証」 Javaの

                            ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ
                          • ポケモンGO7ヶ月

                            ポケモンが嫌いな子供はいない ウチにはテレビが無いのにいつ頃からか息子がピカチューと言い出した どこで覚えてくるのだ 幼稚園だろうか?好きなだけ触らせているタブレットか?知らんが、 ともかくある時期からポケモンポケモンと言い出した ネトフリだかアマプラだかでポケモンを観せてやった ドハマる 3年続いていた鉄道ブームがあっさり終焉しポケモンに鞍替え (本人曰くは鉄道趣味も並行してしるらしい、夢は大宮の鉄道博物館にEF55を見に行くこと) 数週間はTVアニメで満足していたが俺のスマホをチラ見したときポケモンGOの広告が見えた 「それゲームでしょ?ポケモンGOでしょ?」 だーかーらー、そういう知識はどこで仕入れてくるのだ、すげぇな最近の5歳 やらせろと煩い、面倒は嫌いなのでインストールして触らせる 秒速ドハマる スマホを返してくれない ポケモンを捕まえるために散歩に行こうと言い出す、公園に行く

                              ポケモンGO7ヶ月
                            • Go界隈で巻き起こった go:linkname 騒動について - ANDPAD Tech Blog

                              お久しぶりです、ANDPADボードの tomtwinkle です。 この記事はGoの go:linkname 騒動は 6/18に行われた Go Bash で話した内容を要約したものです。 そもそも go:linkname とは何かといえば internal packageやprivate var/funcなど普通はアクセスできないオブジェクトシンボルをエイリアス出来るようCompilerに指示して、アクセス可能にするcompiler directiveです。 go:linkname はprivateな変数へアクセス可能な便利なものでしたが unsafe packageのimportを必須とする通り、せっかく互換性や安全を考慮して作られているGoプログラムを簡単に破壊できる諸刃の剣でした。 詳細は発表スライドを見てください。 go:linkname 禁止騒動 Go 1.23 のリリースまで2

                                Go界隈で巻き起こった go:linkname 騒動について - ANDPAD Tech Blog
                              • ポケモンGOをやめたらすごいすっきりした

                                ポケモンGOを始めたのはサービス開始して1年も経っていない時だったと思う。 サービス開始当初からすごい熱狂ぶりだったと記憶している。多分に漏れず自分もはじめてみて、見事にハマった。ポケストップ回すためだけに外に出歩いたし、自転車通勤時でもポケモンを捕まえられるようにスマホホルダーも買ったし(結局使わなかったけど)、電車通勤になってからもスマホを肌身離さずもってポケストップを回していた。何かのイベントで特定のポケモンが大量発生するときも、そのためだけに自転車を走らせてゲットしまくった(確かそのときはチルタリスだったっけ)。 あるとき息子が生まれた。ある日妻と息子と3人でお出かけをした。まだ1歳にも満たずもちろん一緒にポケモンGOなんてできない。その日がちょうどイベントの日で、ミニリュウが大量発生する日だった。強力なカイリューを育てるべく、出先で妻と息子そっちのけでミニリュウを捕まえまくった。

                                  ポケモンGOをやめたらすごいすっきりした
                                • Goで自作RDBMS - abekoh's tech note

                                  はじめに Goで自作RDBMSに挑戦してみたログです。自作、といっても大部分は参考にした書籍の移植です。 ここ1年くらいRDBに向き合う機会が多く、その内部実装を手を動かしながら身を持って理解してみたいというモチベーションから始めてみました。ちょうど会社の『内部構造から学ぶPostgreSQL』読書会に参加したこともモチベーション上げるきっかけとなりました。 (他の方の記事ですが、読書会の記録はこちら↓) 『内部構造から学ぶPostgreSQL』読書会を完走した感想 [改訂3版]内部構造から学ぶPostgreSQLの社内読書会振り返り データベースをデータの箱としか思っていなかった私の『内部構造から学ぶPostgreSQL』を読んだ感想 普段何気なく使ってるRDBMSですが、ACID特性を守るため・大量の読み書きを捌くため、非常に緻密に設計されております。 これを完全再現といかなくとも自分

                                    Goで自作RDBMS - abekoh's tech note
                                  • awslim - Goで実装された高速なAWS CLIの代替品を作った - 酒日記 はてな支店

                                    最初に3行でまとめ AWS CLIは便利です。しかし起動が遅いので、Goで実装された高速な(ただし機能は少ない)代替品を作りました。awslim といいます リリースバイナリは無駄に大きいので、必要な機能だけを組み込んだビルドを簡単にできるようにしてあります。ビルドして使うのがお勧めです どうぞご利用下さい github.com 以下はこれに至るまでの経緯とか、実装や使い方の話とかです。長いです。 作成の経緯 AWSの各種サービスにアクセスするための AWS CLI は、スクリプトやコマンドラインから処理を自動化するために大変便利なツールです。AWSでサーバーサイドの開発、運用している人であれば、ほぼ全員がお世話になっているんじゃないかと思います。 しかし、AWS CLI (コマンド名aws) には「起動が重い」という問題があるなとずっと思っていました。具体的には、aws --versio

                                      awslim - Goで実装された高速なAWS CLIの代替品を作った - 酒日記 はてな支店
                                    • 【Go】HTTPサーバーは安全に終了させましょう

                                      はじめに こんにちは。都内でソフトウェアエンジニアをしているtomoriです。 突然ですが、Go言語でHTTPサーバーを実装する際、サーバーの終了処理を適切に実装できている自信はありますか? 自分が開発に携わっているプロダクトでは、ほんの最近まで下記のような不適切な終了処理を行なっていました(話を簡単にするためにここでは panic を使っています)。 err := http.ListenAndServe(":8080", handler) if err != nil { panic(err) } HTTPサーバー実装のサンプルとかでよく見るやつですね。 これだとアプリケーション側で、いわゆる Graceful Shutdown ができておらず、実行環境にて不具合を引き起こす恐れがあります。 というわけで、最近それを修正したのでアウトプットとして記事にします。 Go言語でHTTPサーバーを

                                        【Go】HTTPサーバーは安全に終了させましょう
                                      • Goのerrorがスタックトレースを含まない理由 - methaneのブログ

                                        Twitterでこんな記事を見かけたので。 zenn.dev ジェネリクスの件もそうですが、Goの言語設計は現実主義なのになにか特別なポリシーによるものだと宗教化されてしまって、ファンには勝手に崇拝されてアンチにはディスられがちだなーと感じます。 Goのエラー処理を改善する実験プロジェクトxerrorsがGo本体のerrorsにマージされた時、 errors.New() はスタックトレースを取得していました。しかしGo 1.13がリリースされる前に削除されました。 削除された理由の1つは、今までの errors.New() のパフォーマンスに依存していたコードの速度が低下しアロケーションが増えることです。 github.com しかし、これが理由だと今まで思ってたのですが、実際にはもう1つより重要な理由がありました。エラーのフォーマットです。エラーに複数のフォーマットを持たせようという提案

                                          Goのerrorがスタックトレースを含まない理由 - methaneのブログ
                                        • PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog

                                          こんにちは ハタ です。 Mirrativ では 2020年頃から サーバサイドの技術をPerlからGoへのシステム移行 を行っており、2024年現在でもサグラダファミリアのように移行作業は継続しています PerlとGoという2つの環境を同時に運用していますが、 基本的には 新機能は Go で実装 し、 Perlでは積極的に新規実装を行わない というスタイルで進めていました しかし、既存の機能の一部に手を加えたいとなった場合、まだまだ Perl の実装に手を加えることが一定あり、Perl から Go の機能を呼び出したいというニーズが出てきました (配信やギフトといったビジネスの根幹を支えるレガシーな実装においては顕著) そこで PerlXS を利用することで Perl から Go を直接呼び出せるようにできないかと考え検証を進めることにしました Goの -buildmode=c-shar

                                            PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog
                                          • MarkdownベースのGo製タスクランナー「xc」のススメ

                                            Goにおけるタスクランナーの歴史 npmならnpm run、denoならdeno taskなど言語ツールにタスクランナー機能が付属していることがありますが、Goではそのような機能は提供されていません。 そこでGoのプロジェクトではMakefileがタスクランナーとして用いられることがしばしばありますが、独自の文法、.PHONYを大量に書く必要がある、Makefile警察が飛んでくる、などの問題があります。 Makefile警察「ぐぬぬぬ…」 #taskfile - Qiita タスクランナーとしてMakefileを使うことから脱却すべく、巷ではYAMLベースの「Task」やGoベースの「Mage」が用いられている印象です。 どちらも多少試したことはありますが、主に以下の点が気になりました。 Taskfile.ymlやmagefile.goといったツール独自のファイルを置く必要がある これは

                                              MarkdownベースのGo製タスクランナー「xc」のススメ
                                            • 小さな不満点も解消 文庫本サイズのタブレット「BOOX Go6」を買ってみた【いつモノコト】

                                                小さな不満点も解消 文庫本サイズのタブレット「BOOX Go6」を買ってみた【いつモノコト】
                                              • Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita

                                                はじめに みなさん様々な言語でAPIサーバーを立てて負荷試験を実施したことはありますか。 私自身、業務でPythonのアプリケーションに対して負荷試験を実施した経験があります。 その際にPythonの速度観点の不安定さを目の当たりにしたと同時に、別の言語ではどのような違いが生まれるのだろうか、という疑問を持ちました。 そこで今回は、簡単ではありますがGoとRustとPythonでそれぞれAPIサーバーを立てて負荷試験をしてみます。 負荷試験対象のAPIサーバー 今回は(1) Hello, World!を返すAPI(2)ファイル読み込みAPI(3)1秒待ってから応答するAPIの3つを実装します。 (1)はAPIサーバー自体の応答速度の計測、(2)はメモリを消費する処理が生じた場合のAPIの応答速度の計測、(3)は待ち時間発生している時のAPIの応答速度の計測することが目的です。 (2)につい

                                                  Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita
                                                • ぼくのかんがえたさいきょうのGo HTTPサーバー起動方法

                                                  これまで何度か HTTP Server の Graceful Shutdown について記事を書きました。 Go 言語で Graceful Restart をする Go 言語で Graceful Restart をするときに取りこぼしを少なくする Go1.8 の Graceful Shutdown と go-gracedown の対応 最終的に Go 1.8 で Server.Shutdown が導入され、この件は解決を見ました。 しかし、最近「あれ?本当に正しく Server.Shutdown 使えている?」と疑問に思い、少し考えてみました。 というか ↑ の記事もまだ考慮が足りない気がする。 ぼくのかんがえたさいきょうの Go HTTP サーバー起動方法 とりあえず完成形のコード。 package main import ( "context" "log" "net/http" "os

                                                  • Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ

                                                    Goで単体テストを実装する場合、動的な言語のように「テスト実行中に外部への依存を置き換える」といったことはできません。代わりに、 外部への依存を引数で渡す 外部への依存をインターフェイスで渡す のように、テスト対象をテスト可能な実装に変更しておき、テストの時は外部への依存をモック等に置き換えて実行する場合が多いのではないかと思います。 個人的な体験でいえば、テスト可能な実装に置き換えていく過程で設計が洗練されていく*1ことは度々あるので、面倒を強制されているというよりは設計を整理するための道具といった捉え方をしているのですが、そうは言っても動的な言語に比べると面倒だなと感じるときは少なからずあります。既存の実装がテスト可能になっておらず、変更するコストが高い場合は特にそうですね。 そんなとき、気軽にモンキーパッチできると嬉しいんじゃないかと思って、テストの時だけ関数を置き換えられるようなラ

                                                      Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ
                                                    • Go1.21から導入された Go Toolchainの仕組みをまるっと解説

                                                      2023/8/9にリリースされたGo1.21 新たに導入されたツールチェーン(Go Toolchains) 次の内容を知ってもらい、Toolchainを使いこなせるようになること ・導入が必要となった背景 ・導入で期待されること ・具体的にはどう使うのか ・どんな挙動なのか

                                                        Go1.21から導入された Go Toolchainの仕組みをまるっと解説
                                                      • 効率的なGo

                                                        本書は、Goアプリケーションの効率やスケーリングに関する疑問に対して、実用的な答えを与えてくれる書籍です。 レイテンシー、CPU、メモリ資源についての知識、またOSやGoがそれらを抽象化している方法について、またソフトウェアの効率に関わるデータ駆動な意思決定を行う事の意味や、計算量解析の手法、最適化状況の例など、実用的なソフトウェアを開発する中での「効率」に関する知識を紹介します。 Goやその他のモダンな言語で書かれたプログラムを設計、作成、変更するソフトウェア開発者、また誰かが書いたソフトウェアを主に運用するDevOpsエンジニア、SRE、シスアド、プラットフォームチームなどの読者が、いつ、どのように効率最適化を適用するかという問いに答えるための知識を身に付けることができるでしょう。 関連ファイル 原著者による本書のサンプルリポジトリ 正誤表 ここで紹介する正誤表には、書籍発行後に気づい

                                                          効率的なGo
                                                        • Go製アプリケーション/ライブラリにおけるメンテナンス性を重視したGoのバージョン管理戦略 - Diary of a Perpetual Student

                                                          2024-08-28 GOTOOLCHAIN=auto時にはtoolchainディレクティブに指定したものより新しいGoがインストールされていても戻るわけではないという話を追記しました。 Go言語では半年に1回メジャーリリース(マイナーバージョンの更新)がやってきます。ちょうどこの8月にGo 1.23がリリースされたばかりです。Go言語のメジャーリリースは最新2つ分までサポートされるポリシーであることがhttps://go.dev/doc/devel/releaseに書かれています。現在であればGo 1.23やGo 1.22はサポートされており、Go 1.21はサポートが切れているということです。 また、サポートされているバージョンでは、不定期でマイナーリリース(パッチバージョンの更新)がやってきます。バグ修正や脆弱性対応がメインですね。 Goがリリースされると、Goでアプリケーションを作

                                                            Go製アプリケーション/ライブラリにおけるメンテナンス性を重視したGoのバージョン管理戦略 - Diary of a Perpetual Student
                                                          • DDDを実践するためのリポジトリ層の設計(Go言語による例)

                                                            The Go gopher was designed by Renée French. Illustrations by tottie. はじめに この記事は、ドメイン駆動設計(DDD)の中核概念である「リポジトリ」についての理解を深めることを目的としています。リポジトリの基本的な役割と重要性を確認し、Go言語での実装の例を紹介します。 前提 リレーショナルデータベースからデータを取得(更新)するアプリケーションを想定しています サンプルコードは Go 言語で書かれています リポジトリとは まずは、リポジトリの定義を確認してみましょう。 リポジトリパターンとは: リポジトリは、データベースから取得したデータを構造体にマッピングし、ドメインオブジェクトにアクセスするためのインターフェースを提供します。 これは、一般的なリポジトリの理解と相違ないですね。次に DDDの文脈で、より詳しい定義をみ

                                                              DDDを実践するためのリポジトリ層の設計(Go言語による例)
                                                            • 飲酒夜歩きゲーム『Bottled Beer Go Around』配信開始。陰鬱で孤独な若者となり、瓶ビール片手に自宅と酒屋を往復する日々を送る - AUTOMATON

                                                              HIHAHEHO Studioは5月15日、飲酒夜歩きアドベンチャーゲーム『Bottled Beer Go Around』をPC(itch.io)向けに公開・配信開始した。任意の金額を支払ってダウンロード可能なName your own price方式のリリースとなっている。 『Bottled Beer Go Around』は、“doomer”と呼ばれる海外発のネットミームを題材とした2Dアドベンチャーゲームだ。doomerとは未来や世界への希望を失い憂鬱さを抱えた、深夜の散歩や退廃的な音楽などを好む20代の若者男性を指し、現代社会の諸問題を象徴する孤独を擬人化した存在として海外のフォーラムサイトを中心に広く知られている。そうした背景をサイドビューの横スクロールゲームに落とし込んだ本作では、どこにも行き場のないdoomerの閉塞感を体験できる。 ゲームプレイとしては自宅から酒屋までの夜散歩

                                                                飲酒夜歩きゲーム『Bottled Beer Go Around』配信開始。陰鬱で孤独な若者となり、瓶ビール片手に自宅と酒屋を往復する日々を送る - AUTOMATON
                                                              • Goのsql.DBは、いつプールに戻しているのか

                                                                はじめに 鍵を閉め忘れたような気がして心配になるように、リソースを後始末していたか心配になることはありませんか。 「習慣的にdeferでCloseしてるからリークしないはずたけど。あれ?トランザクションはしてなかったかも。ん?Closeないの!?」 Goの標準ライブラリの database/sql で中心となる sql.DB ではデフォルトでコネクションプールが使われるようになっていて明示的な操作は不要です。 ではいったい、どのタイミングでプールに返却されているのか、パターンを整理してみました。 準備 挙動の確認でINSERTやSELECTを実行するため、PostgreSQLに簡易なテーブルを作成しました。 CREATE TABLE shop ( id serial PRIMARY KEY, name text NOT NULL, created_at timestamp with tim

                                                                  Goのsql.DBは、いつプールに戻しているのか
                                                                • goのエラーをスタックトレースも含めて構造化ログで残したい - エムスリーテックブログ

                                                                  こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 golangでずっと課題に思っていたエラーの処理について試行錯誤してみました。 イオンモール センソックシティは、カンボジアにある商業施設。本文には関係ありません。 エラー処理のベストプラクティスは? ぼくがかんがえるエラー処理の要件 検討したパッケージ 構造化ログ パッケージの検討 pkg/errors cockroachdb/errors goark/errs go-errors/errors go-errors/errors がよさそう? pkg/errors や cockroachdb/errors は使えないのか ラップして使う errors.WithStack(err) と呼びたい slogで使う errors.Join() に対応したい まとめ We are hiring! エラー処理のベス

                                                                    goのエラーをスタックトレースも含めて構造化ログで残したい - エムスリーテックブログ
                                                                  • タクシーアプリ『GO』におけるプラットフォームエンジニアリングの実践

                                                                    開発生産性Conference 2024で発表した資料です。 https://dev-productivity-con.findy-code.io/2024?m=2024/m/XmiKkhYo

                                                                      タクシーアプリ『GO』におけるプラットフォームエンジニアリングの実践
                                                                    • AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6

                                                                      kamakura.go #6 でのLT資料です https://kamakurago.connpass.com/event/316438/ https://github.com/fujiwara/aws-sdk-client-go

                                                                        AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6
                                                                      • 現場で役立つGo言語のTipsをただまとめてみた

                                                                        はじめに こんにちは、23卒でバックエンドエンジニアをしているたかしゅんです。 私の所属しているプロダクトではサーバーサイドの開発言語としてGoを採用しております。 チームでGoの勉強会をした際にあまりにもGoの流儀や綺麗な書き方を理解していなかったので、以下の書籍を読みました。 [Go言語 100Tips ありがちなミスを把握し、実装を最適化する] この書籍から得た知見、プルリクエストのレビューで受けたアドバイス、そしてコードレビュー時に意識すべき点などを基に、知識を整理し共有したいと思います。 基礎文法は理解しているけど、実際のプロダクトで何を意識して書けば良いのかわからない方に、少しでも参考になれば幸いです。 1. コード 1.1 不用意にネストしない 可読性の悪いコードには命名、一貫性、書式など様々な原因がありますが、その中の重要な原因の一つとしてネストが関係します。 よくある例と

                                                                          現場で役立つGo言語のTipsをただまとめてみた
                                                                        • 無料で楽しむ Go サーバー開発のススメ

                                                                          AWS Summit Japan 2024, AWS Game Day 振り返り - NIFTY Tech Talk #20

                                                                            無料で楽しむ Go サーバー開発のススメ
                                                                          • 『ポケモンGO』ウミディグダ欲しさに“偽ビーチ”が作り出される。ゴルフ場や駐車場などが勝手に砂浜になるマップデータ荒らし発生 - AUTOMATON

                                                                            Nianticは4月22日、『ポケモンGO』に向けて“「今いる場所」を再発見”と“カントー地方ふたたび”と称したアップデートを実施。同アップデートでは、バイオームが実装され、ビジュアルだけでなく、実際の環境に応じたポケモンが登場するようになった。加えて新ポケモンとして「ウミディグダ」「ウミトリオ」が初登場した。ウミディグダ実装に伴い、同ポケモンを捕獲しようとする一部ユーザーによってさまざまな場所が勝手に“ビーチ化”してしまっているようだ。kotakuなどが報じている。 『ポケモンGO』は、任天堂とNianticが手がける位置情報ゲームだ。本作では現実世界とリンクしたフィールドを実際に歩いて探索し、出現するポケモンたちを捕まえることを目指していく。ほかにもポケモンを育成してトレーナー同士でバトルしたり、ポケモンの交換をしたりなどさまざまな楽しみ方ができる作品だ。 Nianticは4月16日、

                                                                              『ポケモンGO』ウミディグダ欲しさに“偽ビーチ”が作り出される。ゴルフ場や駐車場などが勝手に砂浜になるマップデータ荒らし発生 - AUTOMATON
                                                                            • Goで作ったシステムをRubyでリプレイスすることを検討してみた

                                                                              はじめに 弊社にはGoで作ったシステムが存在しますが、作られてから数年が経過して、メンテナンスも十分にできていない状況でした。 そこで、このシステムをリファクタリングして生産性を上げようという結論になりました。 リファクタリングにあたり、Goのままで行くのか、弊社でよく使われているRubyで行くのかを検討してみましたので、その過程を紹介したいと思います。 Rubyでリプレイスしようと思った理由 Goで動いてて言語やライブラリのバージョンアップなどメンテナンスがされてない部分はありますが、 そこを解消すればGoのままで行った方が良いのでは?と思うかもしれません。 しかし、あえてRubyでリプレイスしようと思うに至ったのは以下の点があります。 Rubyの方が開発速度があがりそう Goのリファクタリングをするのに時間がかかりそう Goのリファクタリングと機能追加でコード修正箇所が被るとスケジュー

                                                                                Goで作ったシステムをRubyでリプレイスすることを検討してみた
                                                                              • Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50

                                                                                Kyoto.go #50 LT https://kyotogo.connpass.com/event/313309/

                                                                                  Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
                                                                                • Go言語で書かれたPHPアプリケーションサーバ「FrankenPHP 1.0」がリリース

                                                                                  FrankenPHP 1.0には、Symphony、Laravel、WordPressなどのネイティブサポートが含まれるほか、Caddyを搭載したプロダクショングレードのPHPサーバであり、PHPアプリのスタンドアロンで実行可能なバイナリとしてのパッケージ化が可能となっている。 さらに、PHP-FPMとNgnixを個別に実行する必要がなく、1つのサービスのみでPHPサーバを提供できるようになるとともに、PHP 8.2以降のほとんどのPHP機能拡張、およびすべてのCaddyモジュールと互換性がある。 ほかにも、アプリケーション起動してメモリに保持するワーカーモード、JavaScriptイベントとしてWebブラウザへ送信されるリアルタイムイベント、ZstandardおよびGzip圧縮、構造化されたログ、Prometheusメトリクスを使用したCaddyの監視、HTTPS・HTTP/2・HTTP

                                                                                    Go言語で書かれたPHPアプリケーションサーバ「FrankenPHP 1.0」がリリース