Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (19)

タグの絞り込みを解除

golangに関するrgfxのブックマーク (28)

  • Goの野暮ったさとどう付き合うか | ドクセル

    Fellow at Henry, Inc.Tech SaaSのPdM、スタートアップ取締役CTOや外資スタートアップのIC等を経て現任。好きな言語はGoPerl中国語で雑なOSSを200以上量産している。3 times ISUCON winner. 著書「みんなのGo言語」共著他。Podcast: https://oss4.fun/

    Goの野暮ったさとどう付き合うか | ドクセル
    rgfx
    rgfx2025/08/25非公開
    「(perl時分における)easyでマジカルなコードを書くことへの反省」あー。
    • Go言語でモジュラーモノリスのアプリ開発をする際のノウハウを公開 - RAKUS Developers Blog | ラクス エンジニアブログ

      はじめに こんにちは、imamoto です。 今年もプロ野球が開幕し、すっかり春だなぁと感じる今日この頃です。 さて今回は、Go言語でのWebアプリ開発をした際のチーム内のノウハウを、GitHub上で公開してみた話を書いていきたいと思います。 目次 はじめに 目次 公開したGitHubリポジトリの紹介 資料の構成について モジュラーモノリスで実装した背景 ノウハウ公開に至った経緯 おわりに 公開したGitHubリポジトリの紹介 私はSRE課に所属しているのですが、SRE課ではGo言語でWebアプリを開発することが多いです。 独立した機能を持った複数のGo Moduleを、1つのモノリスなアプリケーションとしてデプロイする、 いわゆる モジュラーモノリス という設計でのアプリ開発にもチャレンジしているのですが、 その開発中にチームとして蓄積した実装ルールやノウハウのうち、汎用化できそうな部分

      Go言語でモジュラーモノリスのアプリ開発をする際のノウハウを公開 - RAKUS Developers Blog | ラクス エンジニアブログ
      • 強い思想: Go を Web 開発に採用する上で

        フラットパッケージは正義か? 私がSNS で何度か言及した以下の記事がある。 フラットパッケージ戦略は,確かにGo文化圏においては一定の支持を集めている。Go の公式リポジトリや有名ライブラリなんかも,Java などの言語に比べたらずっとパッケージ階層が浅く,ネストしていないものが多いと思う。 しかし,それも 「コードベースを小さく保つ」 を大前提としていることを忘れてはならない。 DDD やクリーンアーキテクチャといった言葉が飛び交うぐらいの規模であれば,パッケージを切ることに関して後ろめたさを感じる必要はない。 むしろ,大きなコードベースが誕生することが開発初期から簡単に予見できるような状況で, YAGNI という言葉に甘んじて設計を放棄するのは極めて悪手であると私は断言する。身を以て失敗を経験した私の口から伝えたい。

        強い思想: Go を Web 開発に採用する上で
        rgfx
        rgfx2023/09/09非公開
        「意図的に機能を削りまくってシンプルを追求した言語,中規模以上のモノリスを作るには言語標準機能だけでは力不足になる」/Goでマイクロサービスやってる大企業に入りたい人向け、だろうなあ。
        • なぜ Go ではロガーをコンストラクタ DI してはならないのか

          問題のある実装パターン 共通実装 以下のような applog パッケージ上のロガー実装を考えましょう。ここではGo 標準のlog.Logger をラップしていますが,様々な実装に拡張できることを想定しています。 package applog import ( "fmt" "log" "os" ) typeLogger interface { Info(message string)Error(message string) } func NewLogger()Logger { return &logger{ inner:log.New(os.Stdout, "",log.LstdFlags), } } var _Logger = (*logger)(nil) typelogger struct { inner *log.Logger } func (l *logger)

          なぜ Go ではロガーをコンストラクタ DI してはならないのか
          rgfx
          rgfx2023/09/06非公開
          「(golangの)多くの関数は慣習として 「第1引数にコンテキストを受け取る」 という体裁に従います」
          • Bun: The SQL-first Golang ORM that doesn't get in your way

            🎯SQL-first PhilosophyWrite theSQL you know and love.Bun translates your intent into clean, optimized queries without hiding theSQL behind abstractions. ⚡ Zero-overhead PerformanceBuilt ondatabase/sql with minimal overhead. GetrawSQL performance with the convenience of anORM.

            • Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog

              インフラ・ストリーミングチームの id:udzura (@udzura)です。今回は、Goミドルウェアのメモリリークを見つけて解決する際に、どのようなプロセスを踏んでいったかを解説します。Go製のミドルウェアの概要 ミラティブでは、Webアプリケーションのみならず、ミドルウェアに相当する部分についても必要なものは内製しています。その中の一つに、社内で「Radisha」と呼んでいる各種集計とキャッシュなどを行うためのミドルウェアがあります。Radishaは以下のような特徴を備えています。 GET、SET、SETEXなど基的なRedis互換のコマンドを実装している。そのため、既存のRedisクライアントライブラリから操作が可能である。ランキング集計、一定時間内のアクセス集計などが行えるよう、Redis にない独自のコマンドを実装している。 高い可用性を志向しており、オンメモリのデータは

              Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog
              • Golang GenericsでREST APIを作る - Nature Engineering Blog

                Go 1.18が出てしばらく経ちました。みなさんGenerics使っていますか? @maaashです。 これは Nature EngineeringBlog祭 の2日目の記事です。 祭り 最初は歓喜し、mapやfilter的なfor文を少しずつgithub.com/samber/loに切り替えたり、 internalなsliceパッケージを作ってみたり。 ですが心のどこかで欲求不満が蓄積されていくのを感じていました。 使い尽くしていないのでその真価が理解できていなくて物足りないような、 こんなに面白いおもちゃが与えられたのに遊び尽くしていないような感覚です。 Genericsを使ったコードを書きたい!と思いながら日々の業務でRESTAPIを書いていると、、 あれ、これはかの When To Use Genericsの結論にある: If you find yourself writing

                Golang GenericsでREST APIを作る - Nature Engineering Blog
                • k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ

                  注意 とっても雑な検証なので参考などにはしないでください。ちょっとした興味で自分用に調べてるだけです。 結論 Echo を利用した秒 1 万リクエストを超えないウェブサービスで、かつSQLite の機能で要件がみたせるのであれば、SQLite + Litestream 十分と判断出来る結果だった。 利用技術 Load testing for engineering teams | Grafana k6 Grafana に買収されたGo で書かれた負荷試験ツール JS でシナリオが書ける Litestream - StreamingSQLite ReplicationSQLite リアルタイムバックアップツールmattn/go-sqlite3:sqlite3 driver forgo usingdatabase/sql Litestream も使ってる 安心と信頼の matt

                  k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ
                  • Goのおすすめのフレームワークはnet/http | フューチャー技術ブログ

                    僕としてはGoのおすすめのフレームワークを聞かれたら、標準ライブラリのnet/httpと答えるようにしています。というよりも、Goの他のフレームワークと呼ばれているものは、このnet/httpのラッパーでしかないからです。Goでアプリケーションを作成する場合のイメージは次の通り。battery includedなアプローチは他の言語でもたまにありますが、ついてくる機能が今時のものが多くて、標準ライブラリで済むことが多いです。ウェブ開発についてもそんな感じです。PythonとかRubyとかもそうですが、言語組み込みのウェブサーバー機能はテスト用で番運用には機能が足りない、性能が足りない、ということから「プロダクションに耐えうるフレームワークを別に入れないと」と思う人も多いんじゃないかな、と思いますが、Goの場合は組み込みのサーバーで問題なかったりします。Node.jsに近いかも? 世間

                    Goのおすすめのフレームワークはnet/http | フューチャー技術ブログ
                    • Goのプロジェクト構成の基本

                      Goプロジェクトをどの様なファイル構成で配置すれば良いか読み物が少ないという指摘を見たのでまとめてみようと思う。GOPATHについてGo1.16がリリースされたことでGo-Moduleによるプロジェクト構成が標準で推奨されることになりました。(Go1.11までさかのぼってGo-Moduleは使える様になってます)Go-Moduleモードでは「GOPATH配下にプロジェクトを置かなければならない」という制約からは解放されています。なので、実質GOPATHはどこを指していても構わないし設定されていなくても「ユーザーホーム/go」というデフォルトの場所が決まっているので開発できます。 おすすめの環境変数設定は以下の2つだけ。 「GOPATH=~/.go」(WindowsGOPATH=%USERPROFILE%\.go) 「PATH=$GOPATH/bin:$PATH」(Windows

                      Goのプロジェクト構成の基本
                      • 結局、Go言語をやめる理由はなかった件 - Qiita

                        この記事はGo 2 Advent Calendar 14日目の穴埋め記事です。 はじめに @okdyy75 さんによるGo 5 Advent Calendar 14日目の の記事「だから僕はGo言語を辞めた」 が「ベンチマークっていうのはこうやるんだよ」というのを説明するために反面教師的な意味で良い教材だと思ったので、反証記事を書きたいと思います。 ベンチマークを取りながらコードを改善して、最終的にGoは遅くないからやめる必要はないということ、そして、なぜ遅いという結論になってしまったのかを掘り下げていきたいと思います。 下準備 幸いなことに、ベンチマークのソースコードがGitHubにある ので、こちらを実行しながら問題点を改善していきましょう。 ちゃんとコードが上がっているのは素晴らしいですね! 一方で、元記事には測定環境が明記されていませんでしたので、同じ環境で測定することはできま

                        結局、Go言語をやめる理由はなかった件 - Qiita
                        • 今どきの Go の書き方まとめ (2020 年末版) - エムスリーテックブログ

                          こんにちは、m3エンジニアリンググループ CTO 矢崎(id:Saiya)です。 過去にGo 言語の仕様を一通り見た経験があったのですが、久しぶりにGo のコードを最近読み書きした際に、ここ数年のGo 言語やエコシステムの進化による変化もあり、発見やハマりが多々ありました。Go 言語公式のロゴもスピード感ありますね。 同じような迷い・回り道をしてしまう方ももしかしたらおられるのではないかと思いますゆえ、 エムスリー Advent Calendar 2020 6 日目の記事として、筆者が実際に「最初から知っていれば時間を無駄にしなかったのに...!」と感じた知見をざっくばらんにシェアいたします。記事がどなたかの一助になりますと幸いです。 なお記事の内容は筆者個人の理解・自身で直接読み書きしたユースケースの範囲での知見であり、全てのGo 利用事例に当てはまらない点も含みうりま

                          今どきの Go の書き方まとめ (2020 年末版) - エムスリーテックブログ
                          • ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog

                            こんにちは、テックリードの夏です。 今年4月にCTOからテックリードに肩書が変わり、ガリガリコードを書くようになりました。 背景については、こちらをご覧ください。 www.wantedly.com 普段はプロダクト側の機能開発と、サーバ側の基盤開発を半々ぐらいの割合で仕事しています。 一口にサーバ側の基盤開発といっても定義が曖昧なのですが、基的にはこんな感じのタスクをやっています。 インフラコストの最適化 不正なアクセスからの防御 障害の再発防止 新技術の導入やアーキテクチャの整備 今回はこのうち「新技術の導入やアーキテクチャの整備」の中で、サーバサイドをGo + Clean Architectureで再設計したことについてお話したいと思います。 背景 ミラティブは2015年春頃に開発が始まり、同年8月にサービスがリリースされ、2020年8月で5周年を迎えました。 その過程で組織やプロダ

                            ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog
                            • Goらしさとは何なのか考える - My External Storage

                              Goらしさ」や「Goに入ってはGoに従え」というけれど、「Goらしい」って一体なんだろう?と考えてみる。 TL;DR 後半は完全に私見の域を出ない&&身も蓋もない結論なので、最初に参考情報だけまとめておく。 「Goらしさ」が何を目指しているのか、何を目指す考えが「Goらしさ」なのか知りたいならば、まず言語思想・設計思想を知るべきだろう。 言語思想についてまとめられている文書は次の情報だ。Go’s New Brand | TheGoBlogGo atGoogle: Language Design in the Service of Software Engineering https://talks.golang.org/2012/splash.slide#1 https://talks.golang.org/2012/splash.article 一言でいうと「Goらしさ」とは

                              Goらしさとは何なのか考える - My External Storage
                              rgfx
                              rgfx2020/10/24非公開
                              (SimpleとEasyは違う、の話を思い出しながら読んだ。Simpleのままだとhardなんだけど、そこをどういなすか。
                              • GCP連載#3 Goでサーバーレスな管理画面アプリを作る | フューチャー技術ブログ

                                このうち、Cloud Funcionsと、AWSLambdaはライバルのように言われます。実際機能的には似通っています。LambdaはHTTPのサーバーとして公開しようとすると、APIGatewayが必要なぐらいですね。 Cloud RunとFargateもライバルのように言われますが、Fargateは複数のコンテナを組み合わせたタスク単位で実行しますが、Cloud Runは単体のコンテナの実行になり、そこは少し差があります。 今回は、Go +Vue + Cloud Runでかんたんな管理画面を作ろうと思います。ストレージ側にもサーバーレスがあります。MySQLやPostgreSQLのクラウドサービス(CloudSQLとかRDS)は、サーバーマシンを可動させて、その上にDBMSが稼働しますので、起動している時間だけお金がかかってしまします。一方、FirestoreやDynamoDB

                                GCP連載#3 Goでサーバーレスな管理画面アプリを作る | フューチャー技術ブログ
                                • プログラミング言語Go完全入門

                                  このブラウザ バージョンのサポートは終了しました。サポートされているブラウザにアップグレードしてください。

                                  プログラミング言語Go完全入門
                                  • Gormが本番テーブルの数億件のデータを消そうとした話 - keroxpのScrapbox

                                    MySQLの場合、--safe-updatesオプションを利用することでこういった不慮のUPDATE/DELETEを防げるようです

                                    Gormが本番テーブルの数億件のデータを消そうとした話 - keroxpのScrapbox
                                    • Serverless連載3: Goでサーバーレス用の検索エンジンwatertowerを作ってみました | フューチャー技術ブログ

                                      サーバーレス連載の3回目は検索エンジンを作ってみたお話です。 クラウドサービスが充実してくるにつれて、サーバーレスではいろいろなことができるようになっています。HTTPサーバーは動きますし、RDBやNoSQLなストレージも使えますし、PubSubみたいなサービスも利用できます。これらを駆使するとそこそこ複雑な処理も記述できます。 一方で、上から下までサーバーレスにしようとするとできないものもいくつかあります。例えば、RDBも使えるといっても制約があり、LambdaやCloud FunctionsからRDSやCloudSQLを雑に使うとコネクションを張りすぎる問題があります。LambdaにはRDS Proxyが出始めています。あと、RDBそのものは基的に常駐型なのでサーバーレスではないです。一応サーバーレスなのもありますが、起動時間が結構かかるらしい(自分ではまだ試してないです)。それ以外

                                      Serverless連載3: Goでサーバーレス用の検索エンジンwatertowerを作ってみました | フューチャー技術ブログ
                                      • Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記

                                        0. 短いまとめ 300万以上の証明書の失効を迫られたLet's Encryptのインシデントは「Golangでよくある間違い」と書かれているようなバグが原因でした。 1. はじめに、 Let's Encryptは、無料でサーバ証明書を自動化して発行するサービスを行う非営利団体として2014年に設立されました。 2015年にサービス開始されると証明書の発行数はぐんぐん伸び、先月末のプレスリリースでは累計10億枚のサーバ証明書を発行したことがアナウンスされました「Let's Encrypt Has Issued a BillionCertificates」。CTLogの調査から、2020年2月末の時点では有効な全証明書の38.4%がLet's Encryptの証明書であるとみられています「Certificate Validity Dates」。 無料の証明書を提供してもらえるのは非常に嬉し

                                        Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
                                        • AWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話 - KAYAC Engineers' Blog

                                          SREチームの藤原です。Tech Kayac Advent Calendar Migration Track 19日目の記事です。いよいよ年も押し詰まってきましたね…!AWSLambda、使ってますか?最近はサーバーレスという文脈で取り上げられることも多いLambda ですが、カヤックではそこまでサーバーレスにこだわることはせず、主にイベントドリブンな処理に適切なユースケースに使用しています。Lambda のリリース当初に用意されていたランタイムは Node.js のみでした。カヤックで最近使うことが多い言語であるGo,Ruby のランタイムがサポートされたのが比較的最近だったということもあり、Node.js のLambda function が比較的多く存在している状況でした。 Node.js EoL (End of Life) ところで、技術基盤チームのリポジトリで「La

                                          AWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話 - KAYAC Engineers' Blog

                                          お知らせ

                                          公式Twitter

                                          • @HatenaBookmark

                                            リリース、障害情報などのサービスのお知らせ

                                          • @hatebu

                                            最新の人気エントリーの配信

                                          処理を実行中です

                                          キーボードショートカット一覧

                                          j次のブックマーク

                                          k前のブックマーク

                                          lあとで読む

                                          eコメント一覧を開く

                                          oページを開く

                                          はてなブックマーク

                                          公式Twitter

                                          はてなのサービス

                                          • App Storeからダウンロード
                                          • Google Playで手に入れよう
                                          Copyright © 2005-2025Hatena. All Rights Reserved.
                                          設定を変更しましたx

                                          [8]ページ先頭

                                          ©2009-2025 Movatter.jp