タグ

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

  • 関連タグはありません

タグの絞り込みを解除

GolangとGoLangとgoLangに関するclavierのブックマーク (1,633)

  • 基本構文に関する問題 - Gopher道場で学ぼう

    はじめに Gophers Japanでは、Gopher道場というGoを体系的に学ぶ場を提供しています。2025年は4月より数年ぶりにオンラインにて開催しています。 2週間に1回のペースで開催しています。次回は2025年5月7日(水)に開催予定ですので、ぜひご参加ください。 稿では、2025年4月23日(水)に開催した基構文の範囲から問題を作ったため、そちらの紹介をします。 問題 ここで紹介する問題は、Gopher道場の講義動画(の音声)や講義資料を元に作成したGPTsに作問してもらったものです。講義で扱った内容を復習でき、単純には解けない問題にしてもらいました。 問題1 以下のプログラムはエラーになります。なぜエラーになるのかを考え、修正してください。

    基本構文に関する問題 - Gopher道場で学ぼう
  • Gin徹底解説:Golangで最も注目されるフレームワーク

    GinはGoGolang)で書かれたHTTPウェブフレームワークです。Martiniに似たAPIを備えており、しかしMartiniよりも最大40倍速いパフォーマンスを持っています。素晴らしいパフォーマンスが必要なら、Ginを使ってみてください。 Ginの公式ウェブサイトでは、自身を「高性能」と「高い生産性」を持つウェブフレームワークと紹介しています。また、他の2つのライブラリにも言及しています。1つ目はMartiniで、これもウェブフレームワークで、お酒の名前を持っています。GinはそのAPIを利用しているが、40倍速いと述べています。httprouterを使用することが、Martiniより40倍速くなる重要な理由の1つです。 公式ウェブサイトの「特徴」の中で、8つの主要な特徴が挙げられており、後でこれらの特徴の実装を段階的に見ていきます。 Fast Middleware support

    Gin徹底解説:Golangで最も注目されるフレームワーク
  • Golang: sync.MapのLoadOrStore()やLoadAndDelete()はなぜ必要か

    あまり並行処理は書いたことが無かったんですが、最近は書く機会が増えてきました。 そんな中で並行処理について調べる事も多く、先日sync.MapのLoadOrStore()やLoadAndDelete()が必要な理由が解説されてるdev.toの記事を読んだのですが、また分からなくなった時に英語の記事を読み直すのもしんどいので、将来の自分のためにまとめる事にしました。 Go: sync.Map's LoadAndDelete and LoadOrStore. Why are they needed? - DEV Community https://dev.to/sreramk/go-loadanddelete-and-loadorstore-in-sync-map-why-are-they-needed-30f7 読んだ記事はこちらです。 なお、こうして調べたことはMisskey.ioに長文ノ

    Golang: sync.MapのLoadOrStore()やLoadAndDelete()はなぜ必要か
  • 【Poteto】自作Webフレームワークにホットリロードを実装した話

    お正月はどうお過ごしでしたでしょうか?私は自作Webフレームワークの開発をしながらGo正月を過ごしました。 これまでの開発の記録として、前回の記事を貼っておきます。ぜひ興味があればご覧ください。 ホットリロード ホットリロードとは ホットリロードは、ファイルシステムに変更があると、アプリケーションサーバーのプロセスをkillしてもう一度立ち上げなおす仕組みです。開発中に、「ファイル変更→プロセスkill→立ち上げ」のステップを踏むことなく、スムーズに開発できる点が魅力です。 なぜホットリロード 単純に仕組みに興味があった 参考にしているgolangのフレームワークであるEchoには実装されていない(はず?)で差別化できると思った ホットリロードの仕組み 開発のプロセスとしてはまず仕組みを調べることから始めました。こちらの記事を参考にしました。 以下は、私がつたない絵で図に表したものです。

    【Poteto】自作Webフレームワークにホットリロードを実装した話
  • interface、structで書くか、functionで書くか

    始めに この正月に、関数型ドメインモデリングというを読みました。良書でした。 そこで、今までオブジェクトで書いていたコードを関数としてかけないか?という思いつきでこの記事を書いた結果、なんだか関数型とは関係ない感じの記事になってしまいました。ご容赦ください。 ベースとなるサンプルコード まずはオブジェクト指向でよく使う形のサンプルを用意しました。タスク管理のモデルです。簡単のため、エラーなどはあまり返さないようにしています。 package domain import "fmt" type status string const ( StatusPending status = "pending" StatusDoing status = "doing" StatusDone status = "done" ) func NewStatus(s string) (status, erro

    interface、structで書くか、functionで書くか
  • Goのジェネリクス徹底理解

    1. ジェネリクスなしでの開発 ジェネリクスが導入される前に、異なるデータ型をサポートするジェネリック関数を実装するためにいくつかのアプローチがありました。 アプローチ1: 各データ型に対して関数を実装する このアプローチは、極めて冗長なコードと高い保守コストをもたらします。いかなる変更も、すべての関数に対して同じ操作を行う必要があります。さらに、Go言語は同じ名前の関数のオーバーロードをサポートしていないため、外部モジュールからの呼び出しにこれらの関数を公開するのも不便です。 アプローチ2: 最も広い範囲のデータ型を使用する コードの冗長性を避けるために、別の方法は最も広い範囲のデータ型を使用することで、つまりアプローチ2です。典型的な例はmath.Maxで、これは2つの数のうち大きい方を返します。様々なデータ型のデータを比較できるように、math.MaxはGoの数値型の中で最も広い範囲

    Goのジェネリクス徹底理解
  • データサイエンティストがGoを使った開発を経験することで学んだ、Python開発の改善点 | Wantedly Engineer Blog

    こんにちは、ウォンテッドリーでデータサイエンティストをしている林(@python_walker)です。この記事はWantedly Advent Calendar 2024の4日目の記事です。私は普段は推薦システムのモデルの改善に携わっていることが多く、そのため業務ではPythonを触っていることが多いのですが、最近推薦基盤を触る機会ができ、不慣れながらGoの開発を行っていた時期がありました。 自分が慣れていない言語で開発を進めるのはなかなか大変でしたが、データサイエンティストが開発したモデルがどのような基盤を通してユーザーに提供されているのか解像度を上げることができたので有意義だったと思っています。さて、GoPythonは言語的にも大きく異なるものではあるのはそうですが、今回は扱っている領域も異なっていたので、Go製の推薦基盤システムをいじる中でPythonでの開発時に参考になりそうだと

    データサイエンティストがGoを使った開発を経験することで学んだ、Python開発の改善点 | Wantedly Engineer Blog
  • つらくないRepositoryパターンを求めて

    この記事は SMat Advent Calendar 2024 の12月11日分の記事です。 こんにちは。エスマットエンジニアの金尾です。 皆さんはリポジトリパターンでつらい思いをしたことはありますか? 僕はあります。 記事はそもそもリポジトリパターンとはどういう実装パターンなのかについて検討した内容をまとめたものです。なお文中に出てくるコードはGo言語を前提としています。 リポジトリパターンとは リポジトリパターンとは、ドメインモデルのデータ処理をアプリケーションの他の部分から分離する実装パターンです。 対応するドメインモデルのCRUDや集計のメソッドを提供し、データストレージに関する処理をカプセル化します。 各クライアントは、データストレージのマッピング処理を考えずにUserモデルを利用できる なぜリポジトリパターンを使うのか リポジトリパターンを使うことによって以下のメリットが期待

    つらくないRepositoryパターンを求めて
  • Goによるrsc.io/scriptパッケージを用いた独自スクリプトでテストケースを記述するテスト手法紹介 - Flavor Wheel Engineering

    記事は、はてなエンジニア - Qiita Advent Calendar 2024 - Qiitaの11日目の記事です。昨日は、 id:Windymelt さんの esbuildScala.jsをビルドして呼べるようにするプラグインを作った話 - Lambdaカクテル でした。 Goでユニットテストを書くときは、Table Driven Tests が頻繁に使われています。Table Driven Test によって一定程度読みやすいテストコードを書くことができますが、入力の数が多かったり比較項目が複雑になるとアサーション部分で条件分岐が起きてしまい書きにくくなることがあります。 そこで柔軟にテストケースを記述できる script-based test cases を導入したテスト手法を紹介したいです。 script-based test cases とは、 research!rsc:

    Goによるrsc.io/scriptパッケージを用いた独自スクリプトでテストケースを記述するテスト手法紹介 - Flavor Wheel Engineering
  • 爆伸び中のGoライブラリhuma

    はじめに 2024年に入り、Go言語の世界で急速に注目を集めているWebフレームワーク「huma」をご存知でしょうか?humaはGoでのAPI開発を革新する新しいライブラリで、そのスター数は驚異的なスピードで増加しています。記事では、humaの魅力とその使い方、そしてサンプルコードを通じてその実力を探っていきます。 huma公式リポジトリ 公式ドキュメント humaの良さ GoからOpenAPI 3.1を生成可能 humaはPythonFastAPIに強く影響を受けて開発されたライブラリです。FastAPI同様、YAMLファイルを書くことなく、Goのコードから直接OpenAPIYAMLを生成できます。これにより、APIの設計と実装がシームレスに統合され、開発効率が大幅に向上します。(スキーマファストかコードファストかの議論は別問題) GoでコードからOpenAPIを生成するライブラリ

    爆伸び中のGoライブラリhuma
  • Goのプロジェクト構成について

    Go のコミュニティーで昔から話題になっているテーマだと思いますので、自分なりの考えを共有したいと思います。プロジェクトの内容によって構成などはかなり違ってくると思いますが、ここでは DDD を使ったWebサーバーについて紹介します。よくあるユースケースではないかと思います。 フィードバックやコメントなど大歓迎です!意見交換もしていきたいです! ファイルとネームスペース Go ではプロジェクト構成がそのままネームスペースになります。不便だと思う方もいるかも知れませんが、僕は非常に使いやすいと思っています。他の言語ではしばしば、プロジェクトの構成をすでに大まかに決めているか、もしくはコードを書く前に決めるようにすることが基だったりします。しかし、Go ではコードを書きながらプロジェクトの構成、パッケージの追加・削除を行うことが一般的です。 よくインターネットで Go の初心者が、「プロジェ

    Goのプロジェクト構成について
  • Go初学者へのコードレビューでよくあったコメント20選

    はじめに こんにちは、ソーシャルベッティング事業海外ベッティング事業部の山崎です。 記事では、Effective GoGoogle のスタイルガイド、Code Review Commentsといった公式資料、Future Architectの記事などを参考に、Go を初めて触る開発者を対象にした汎用的なレビューコメントの 20 選を紹介します。 大きく以下の4つのセクションに分けました 言語仕様に関わる内容 標準パッケージの使い方 エラーの扱い方 単体テスト Linter の活用について 可能な限り lint で自動化して人の手が加わる前に静的解析でできればベターです。 特にこの記事で紹介するような汎用的なコメントについてはいくつか反映できる lint もあると認知しております。 そのような設定の lint config サンプルをまとめようとも思いましたが、実際に運用まで至って

    Go初学者へのコードレビューでよくあったコメント20選
  • 開発用適当ツールはGoで作るのがオススメ - Qiita

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

    開発用適当ツールはGoで作るのがオススメ - Qiita
  • 資料公開:「Golangを使ったバックエンドの実装入門」で DevelopersIO 2024に登壇しました #devio2024 | DevelopersIO

    ども、もこ(札幌オフィス)です。 日開催のClassmethod Odyssey (DevelopersIO 2024) で登壇いたしましたので、資料とソースコードを公開します。 資料 ソースコード DEMOでお見せしたコードは下記にて公開しております。 https://github.com/mokocm/go-task-backend 所感 gRPC、なんとなく難易度が高そうなイメージがありますが、Protocol Bufferとの親和性も高く、非常に洗礼されたエコシステムとなっているため、是非これきっかけで興味を持っていただけると幸いです!

    資料公開:「Golangを使ったバックエンドの実装入門」で DevelopersIO 2024に登壇しました #devio2024 | DevelopersIO
  • Go言語での実践を通じてクリーンアーキテクチャの理念と実装を学べる解説書が発売/『Go言語で構築するクリーンアーキテクチャ設計』【Book Watch/ニュース】

    Go言語での実践を通じてクリーンアーキテクチャの理念と実装を学べる解説書が発売/『Go言語で構築するクリーンアーキテクチャ設計』【Book Watch/ニュース】
  • 【Go】公式ツール "eg" を使って効率的にGoのコードをリファクタリングする - Qiita

    はじめに こんにちは、ken です。お仕事では Go をよく書きます。 最近、Go の公式パッケージであるgolang.org/x/toolsを眺めていたら、なにやら有用そうなパッケージを見つけたので今回はそれについて書こうと思います。 それはegというリファクタリングツールです。 eg とは eg は、例ベースで Go コードをリファクタリングするためのツールです。このツールを使用することで、特定のコードパターンを別のコードに置き換えることができ、効率的にリファクタリングが行えます。 先ほど貼った公式ドキュメントに詳しい説明があるかと思いきや The eg command performs example-based refactoring. For documentation, run the command, or see Help in golang.org/x/tools/ref

    【Go】公式ツール "eg" を使って効率的にGoのコードをリファクタリングする - Qiita
  • Go言語でつくるREST API開発 2024年版

    記事では、GoMySQL を用いた REST API 開発を行なっていきます。ここ最近、アーキテクチャや設計、テスト、API、ログ管理、CI/CD を勉強してきて個人的に納得できる構成が構築できるようになったため、としてアウトプットしたいと思いました。これから、API を作成しようと考えている方の参考になれば幸いです。

    Go言語でつくるREST API開発 2024年版
  • SQLBoilerのちょっとしたTips集

    はじめに SQLBoilerは、スキーマに合わせたORMを生成するツールです。 READMEにも書かれていますが、意外と気づきづらい部分があったりするので、使い方から、ちょっとしたTips、ハマりポイントをまとめます。 少しでも参考になれば幸いです。 前提 MySQL SQLBoiler v4.16.1 生成したコードはmodelパッケージに配置されているとします テーブルは以下を想定 CREATE TABLE `teams` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_

    SQLBoilerのちょっとしたTips集
  • モノタロウがGoとprotobufで進める爆速マイクロサービス開発とそれを支えるプロセス - MonotaRO Tech Blog

    こんにちは。モノタロウのTechBlog編集チームです。 モノタロウではECサイトでのお客様体験の向上を目指して、日々改善に取り組んでいます。 商品の出荷目安などの出荷関連情報は重要な要素の1つになります。 今回は、出荷関連情報の正確性を改善するとともにシステムの変更容易性を向上させるためにマイクロサービス化に取り組んだ活動をインタビューしました。 自己紹介 納期表示を高度化する サプライヤ在庫連携機能開発のつらみ AVLのマイクロサービス開発のすすめ方 リリース・監視・その後の展開 おわりに 今回インタビューしたみなさん 自己紹介 山崎 章裕 ECシステムエンジニアリング部門 開発生産性グループ、プラットフォームエンジニアリング部門 CTO-Officeグループ AVLチーム兼務 2019年8月に入社し、主にECサイトの注文・配送周りのプロジェクトにテックリードとして関わる。またECサイ

    モノタロウがGoとprotobufで進める爆速マイクロサービス開発とそれを支えるプロセス - MonotaRO Tech Blog
  • Goで実践 アクターモデル vol.1 Hello Actor - ytake blog

    Hello Actor 細かい機能の解説はあとの回として、 まずはアクターシステムを使ったプログラミングを体験してみましょう。 Goではアクターシステムが商用でも十分利用できるものは、 下記のProto Actorとergoがあります。 github.com github.com Proto.Actorは、Akka.NET のオリジナル作成者 Roger Johansson によって開発されているもので、 Akka/Pekko と基の部分がある程度似た形になっています。 あくまで似ている程度で、現在のAkka/Pekkoほど強力なツールが揃っているわけではありませんが、 Proto Actorで概念や作り方を覚えると、少ない労力でAkk/Pekkoにも移行などもができるようになります。 細部は異なりますが、概念などはかなり似ていますのですんなり理解できるはずです。 ergoは Erlan

    Goで実践 アクターモデル vol.1 Hello Actor - ytake blog