並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 100 件 / 100件

新着順 人気順

golangの検索結果81 - 100 件 / 100件

  • sqlcとdockertestでデータベースを使ったテストを書こう | gihyo.jp

    Goにおけるデータベース操作とテスト Goでデータベースを操作する際には、標準パッケージであるdatabase/sql、GORM、entなどの様々な選択肢が存在します。多くのライブラリではGoのコードを定義してSQLを生成しますが、sqlcはSQLをコンパイルしてGoのコードを生成するのが特徴のライブラリです。 このアプローチには、最終的に実行されるSQLが明らかであることやデータベースとやりとりするためのデータ構造を自分で定義する必要がないことといったメリットがあります。また、コンパイル時にSQLを解析し型や引数名の間違いを検出できます。そしてなにより、非常にシンプルです。 本記事では、sqlcの一歩進んだ使い方としてdockertestと組み合わせたテストの書き方について紹介します。dockertestとは、Dockerコンテナを立ち上げてテストを実行するための使いやすいコマンドを提供

      sqlcとdockertestでデータベースを使ったテストを書こう | gihyo.jp
    • Go 1.23のイテレータについて知っておくべきこと

      はじめに 2024年8月13日、Go 1.23がリリースされ、ついにイテレータが利用可能となりました。 この記事では、Goのイテレータについて、 どうやって使うのか どこまで知っておく必要があるのか を理解することをゴールとします。 基本的な知識 基本的な知識としては、以下の内容を知っていれば問題ないです。 for文のrangeループの仕様が変わった 関数を対象にrangeループを回せるようになる rangeループの対象にできる種類の関数をイテレータと呼ぶ イテレータには3種類ある for文のrangeループの仕様が変わった Go 1.22までは、for文によるrangeループの対象にできたのは、配列, slice, 文字列, map, channel, 整数だけでした。 Go 1.23で、ここに関数(ただし、特定の形式に限る)が加わりました。 ここで、rangeループの対象にできる形式の

        Go 1.23のイテレータについて知っておくべきこと
      • レオのリファラル入社エピソード ~シニアエンジニアの転職の進め方 | ANDPAD_Engineers

        Ruby コミュニティから「レオ (Leo)」の愛称で親しまれる Leonard Chin が 2023 年 10 月にアンドパッドに hsbt のリファラルで入社しました。今回はそのリファラルの模様と、レオのようなシニアエンジニアがどのように企業研究を行い、転職先企業を決定したのか、 10 数年来の友人である hsbt がその過程をインタビューしました! Leonard Chin @lchin オーストラリア出身、日本在住歴 20 年の Rubyist。旧時代の RubyKaigi でテキストでの擬似同時通訳を担当。 Asakusa.rb 休眠会員。クックパッド株式会社に 10 年在籍し、 2023 年にアンドパッドに転職ならぬ “転パッド” を決める。hsbt 柴田 博志 hsbt フルタイム Ruby コミッタとしてアンドパッドに入社。 Ruby, RubyGems, Bundler

          レオのリファラル入社エピソード ~シニアエンジニアの転職の進め方 | ANDPAD_Engineers
        • 2023年版!エンジニア必見のチートシート集 - Qiita

          2. 機械学習・AIチートシート まずは機械学習やAI開発に関わるチートシートからです! Machine Learning Cheat Sheet | DataCamp 主要な機械学習アルゴリズム、その利点と欠点、および使用ケースをガイドするものです。初心者からエキスパートまで、誰でも役立つリソースです。 機械学習アルゴリズム チートシート MicrosoftのAzureが提供している機械学習アルゴリズムに関するチートシートです。 TensorFlow Cheat Sheet https://zerotomastery.io/cheatsheets/tensorflow-cheat-sheet/ 機械学習と人工知能のためのオープンソースライブラリ、TensorFlowのチートシートです。基本的な概念やベストプラクティスがまとめられています。 (メールアドレスでサブスクライブするとPDFがダ

            2023年版!エンジニア必見のチートシート集 - Qiita
          • Webシステムにおける HTTPサーバ機能をどう用意するか?という問題に対して先人達の葛藤の歴史 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]

            こんにちは羽山です。 現代の Webシステム界隈は昔よりもはるかに洗練され、初心者からでも簡単に開発方法を学び作れる時代になっています。その反面で例えば Python なら WSGI や gunicorn、Waitress、uWSGI などが何のために存在しているのかが分かりにくいと思ったことはありませんか?Ruby の Rack、unicorn、puma だったり FastCGI など、いずれも Webシステムの構成要素として重要な一方で役割を理解しにくいのは事実です。 そこで今回は Webシステムが現代の形にたどり着くまでの先人達の葛藤の歴史を解説します。歴史を知ればこれらの仕様やプロダクトが何の役になっているかが分かるはずです。 前提 動的な Webサイト(=Webシステム)を作りたいニーズはインターネット黎明期からありますが、ブラウザからのアクセスを適切に処理するには HTTPサー

              Webシステムにおける HTTPサーバ機能をどう用意するか?という問題に対して先人達の葛藤の歴史 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
            • GoConference2024の資料が集まるスレ #gocon

              これはサマリ(ここを更新していきます)情報提供(コメント)歓迎!! イテレータによってGoはどう変わるのか Dive into gomock Data Race Detection In Go From Beginners Eye Go1.21から導入されたGo Toolchainの仕組みをまるっと解説 Cleanup handling in Go Custom logging with slog: Making Logging Fun Again! Goにconst型修飾を期待しなくてよい理由 GoのLanguage Server Protocol実装、「gopls」の自動補完の仕組みを学ぶ バイナリを眺めてわかる gob encoding の仕様と性質、適切な使い方 Unified Diff 形式の差分から Go AST を構築して feature flag を自動計装する Mapのパ

                GoConference2024の資料が集まるスレ #gocon
              • 感動した Go のテクいコード - ドキドキするとき無敵でしょ

                この前上司の PR を読んでいたら「理解できるけどどうすればこんなこと思いつくんだ」と思ったコードがあり、聞いたら出典を教えてくれたので紹介する。 というわけでこちら。 strechr/testify のコードにそれはある。 github.com 私が感動したコードはこの getLen() 関数。 // getLen tries to get the length of an object. // It returns (0, false) if impossible. func getLen(x interface{}) (length int, ok bool) { v := reflect.ValueOf(x) defer func() { ok = recover() == nil }() return v.Len(), true } Named return values まずこ

                  感動した Go のテクいコード - ドキドキするとき無敵でしょ
                • ebpf-goによるLinuxカーネルトレース入門

                  ebpf-goによるLinuxカーネルトレース入門 ebpf-goを使用したLinuxカーネルトレース(fentry)について紹介します。 ebpf-goは、eBPFのGo向けライブラリです。このライブラリは、libbpfに依存せず(cgoを使用せず)にeBPFプログラムとデータのやり取りが可能であるため、ポータビリティが高くGo言語に適したeBPFライブラリとなります。 fentryは、カーネル関数のエントリポイントにプログラムをアタッチするためのBPFプログラムタイプです。簡潔に言うと、カーネル関数にフック処理を行うことができます。 GitHub: ebpf-go(cilium/ebpf) 公式ドキュメント: The eBPF Library for Go 本記事ではebpf-goのexamples内のtcprttを基に、ebpf-goの開発方法についても説明します。 前提条件として、

                    ebpf-goによるLinuxカーネルトレース入門
                  • 脱データ不整合!? Workflow Engine「Temporal」の魅力

                    はじめに 分散システムを扱う際、エラーやクラッシュによる処理の中断はよくあるものかと思います。特に、EC サイトの支払い処理など、複数のステップを経て完了する重要なプロセスでは、障害が発生した場合にその進行状態を適切に管理しないと、取引の二重処理やデータの不整合といった問題が発生する危険性があります。復旧作業に骨を折った方も多いのではないでしょうか。 Temporal は、こういった課題を解決するために、処理の進行状況を自動的に追跡し、障害が発生してもその地点から再開できる仕組みを提供しています。複雑な復旧コードの実装や、手作業による復旧作業がなくなるのであれば、これは非常に魅力的ですね。 ここでは、Temporal が一体どういうものかについて解説していきたいと思います。 Temporal とは Temporal は、分散システムでのワークフローを管理するためのオープンソースのワークフロ

                      脱データ不整合!? Workflow Engine「Temporal」の魅力
                    • WasmGCについて予習する

                      この記事はWebAssembly Advent Calendar 2023 2日目の記事です. ガベージコレクタ(WasmGC)[1]が10月頃にChromeとFirefoxでデフォルトで有効になり,標準化目前ということで大いに盛り上がったのは記憶に新しいかと思います. これはChromeが対応したというよりはChromeが採用しているJavaScriptのランタイムであるV8がデフォルトでWasmGCが有効になったというのが正確な表現で,DenoでもDartからビルドしたWasmを実行する際にGCを有効にするフラグを立てる必要がなくなり,実行しやすくなったなぁと皆さんも感じているかと思います. -$ deno run --allow-read --v8-flags=--experimental-wasm-gc run.js +$ deno run --allow-read run.js

                        WasmGCについて予習する
                      • GitHub - 1buran/rHttp: REPL for HTTP

                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                          GitHub - 1buran/rHttp: REPL for HTTP
                        • ARMアーキテクチャとlibvipsへの変更で画像変換のコストが40%ダウン - Pepabo Tech Portal

                          こんにちは、最近は旅行しているか、コードを書いているかの2極化が進みつつあります、P山です。直近の業務において、私が支援している国内最大級のハンドメイドマーケットサービス minne において画像変換サーバの実装を変更し、大幅にコストダウンできたので、その事例を紹介します。 minneについて minneはハンドメイド作家が創作したハンドメイド作品を販売することができるハンドメイド作家支援サービスです。技術スタックとしてはRuby on Railsを軸に、実行環境はOpenStackとAWSを用いたデュアルスタックのKubernetesを利用しており、スマートフォンアプリもiOS、Androidともに提供しています。 幅広い技術を、モダンな構成で扱うことができるので、もし採用にご興味があれば採用ページ をご確認ください。ペパボ社内を見渡しても若いメンバーが比較的多く、日々活気のある開発がさ

                            ARMアーキテクチャとlibvipsへの変更で画像変換のコストが40%ダウン - Pepabo Tech Portal
                          • PHPエンジニア視点で見るGolangの魅力とPHPとの違い

                            昨年の9月、私はPHPエンジニアからGolangエンジニアへと転向しました。 それから1年が経ち、技術的な視点はもちろんのこと、開発プロセスへのアプローチにも変化が生まれました。 この記事では、Golangに触れ、得た経験や気づきを振り返ります。 PHPエンジニアの皆さんが、これからGolangを学びたいと思った際の参考になれば幸いです。 循環インポート PHPでは、循環依存に対する強制的な制約がないため、柔軟にクラスやファイル間で参照し合うことができます。 ただし、この柔軟さは設計が複雑になった場合に依存関係がスパゲッティ状になるリスクもはらんでいます。 そのため、PHPでも設計の段階で依存関係に気を配ることが求められます。 また、状況によってはPHPでも循環参照に起因するエラーが発生する場合があります。 一方、Golangでは循環インポートが明確に禁止されており、具体的には以下のような

                              PHPエンジニア視点で見るGolangの魅力とPHPとの違い
                            • GoとGCSで100GBの巨大zipファイルを展開する | Re:Earth Engineering

                              はじめに ファイルをアップロードすることができる機能を持ったWebアプリケーションやクラウドサービスは世の中に多数あります。しかし、アップロードしたzipファイルを自動で展開(解凍)してくれて、中身のファイルが閲覧できる機能を持ったサービスは、あまり多くはないかもしれません。 もし、Google Cloud上で、zipファイルをアップロードし自動的に展開してGCSに配置するシステムを作るとしたら、どうやって実現すればよいでしょうか。たとえ100GBのzipファイルでも問題なく展開できるようにするには? そんな難題に挑み、GCSにアップロードされた100GB級のzip/7zファイルを自動的に展開することができるシステムをGoで実装し、プロダクションレベルで実現しました。その技術について解説します。 背景 PLATEAU VIEWの画面 Eukaryaでは、国土交通省が主導しているProjec

                                GoとGCSで100GBの巨大zipファイルを展開する | Re:Earth Engineering
                              • DMMのGo言語5daysインターンが最高すぎた! - Qiita

                                初めて企業のインターンに参加しました。DMMさんのGo言語5daysのインターンです。今回はこのインターンの内容、またGo言語でのAPI開発で学んだTipsを中心に記事を書きます。 温かい目で見てくださると嬉しいです。記事の内容に誤りがあった場合は、いつでもご指摘ください 🙇‍♂️ インターン概要 今回のインターンは8月5日から8月9日の5日間にわたって行われました。最終日はオフィス開催で、4日間はオンラインでの開催でした。 初日と2日目は主にライブラリの使い方を学び、残りの3日間はハンズオン でAPIのエンドポイントを実装しました。このインターンの教材はDMMさんの新卒バックエンド研修の課題として使用されているため、難易度はとても高かったです。 私はGo言語を使用した経験がありますが、本で独学という勉強の仕方だったので、少し古い情報で学んでいたこともあり、 今回最近のバージョンに追加さ

                                  DMMのGo言語5daysインターンが最高すぎた! - Qiita
                                • Go言語での実践を通じてクリーンアーキテクチャの理念と実装を学べる解説書が発売/『Go言語で構築するクリーンアーキテクチャ設計』【Book Watch/ニュース】

                                    Go言語での実践を通じてクリーンアーキテクチャの理念と実装を学べる解説書が発売/『Go言語で構築するクリーンアーキテクチャ設計』【Book Watch/ニュース】
                                  • Go言語のAPIサーバーの冗長なエラーログを40%削減した話 #LayerXテックアドカレ - LayerX エンジニアブログ

                                    こんにちは。バクラク申請・経費精算エンジニアの@upamuneです。先週末は30kmのトレイルレースがありましたが、今週末はフルマラソンがあるので満身創痍です。 この記事はLayerXテックアドカレ2023の22日目の記事です。 私はなぜか3日分もテックアドカレに入れてしまったのですが、2回目の今回はAPIサーバーのエラーログを40%削減した話をします。 昨日は@tataneによるバクラクの Vue3 移行戦略と詰まったポイント #LayerXテックアドカレ - LayerX エンジニアブログでした。明日は@trsによる入社エントリーです!楽しみですね。 はじめに 弊社では基本的にGo言語を利用してAPIサーバーを実装しています。エラーが発生したら、調査しやすいようにエラーログを出力して調査しやすくしていますが、1つのエラーに対して複数回の冗長なエラーログが出力されるという問題がありました

                                      Go言語のAPIサーバーの冗長なエラーログを40%削減した話 #LayerXテックアドカレ - LayerX エンジニアブログ
                                    • 自動化するならちゃんとエラーを出せ。想定しろ。不安になれ。 - じゃあ、おうちで学べる

                                      はじめに 自動化やツール開発において、通常時に上手くいくのは当たり前です。大切なのは失敗を想定することです。自動化したツールがエラーも出さずに実行結果的にも成功してるので動いていると思っていたら、実は問題が発生していて泣いた経験は、多くの人にあるのではないでしょうか。エラーを出力し、適切に失敗させて、ログに記録することで、問題の早期発見と迅速な対応が可能になります。また、エラーが発生する可能性のある箇所を事前に想定し、適切に処理することで、ツールの信頼性と安定性が向上します。 しかし、エラーハンドリングができていても、それだけでは不十分です。優れた自動化ツールは、環境の変化に柔軟に対応できるようにコードが設計されているべきです。 また、自動化ツールの完成度を高めるには、エラーハンドリングだけでなく、保守性、拡張性、ユーザビリティなども考慮する必要があります。 自動化ツールを開発する際は、常

                                        自動化するならちゃんとエラーを出せ。想定しろ。不安になれ。 - じゃあ、おうちで学べる
                                      • UbieにおけるGo言語のエラーハンドリング

                                        背景 Ubieでは以下の記事にあるように、一昨年から新しく始めるプロジェクトにはGoとTypeScriptを積極的に採用しています。私は本来プロダクトセキュリティが主な専門領域なのですが、公私ともに普段からGoでツールやサービスの開発をしているため、社内のGo言語の普及をサポートしたりプロダクト開発に参加したりしています。 Go言語で開発したことがある方はご存知かと思いますが、Goは標準パッケージで提供されているエラーハンドリングは最低限の機能しか提供されていません。これは、CLIツールなどではエラーの内容が簡潔に表せてよいのですが、サーバサイドアプリケーションのようにエラーにまつわる情報を詳細に残してあとから調査に利用する、という場面では不向きです。特に本番環境でしか再現しないようなエラーの場合は、いかに関連情報を残せているかが、問題の解決に大きく影響します。 先日も話題になっていました

                                          UbieにおけるGo言語のエラーハンドリング
                                        • bpftraceによるGoアプリケーションのトレース|hayajo

                                          はじめにシステムの状態を的確に捉え、運用に必要なインサイトを継続的に得るための特性は「オブザーバビリティ」と呼ばれます。オブザーバビリティを実現することで、パフォーマンスのモニタリングやトラブルシューティングを効果的に行い、システムの信頼性を高めることができます。 この重要な特性を実現する上で、eBPFやbpftraceは強力なツールとなります。 本記事では、Goアプリケーションにおけるオブザーバビリティを実現するための一つの方法として、bpftraceを用いたトレースの手法を紹介します。 内容が多いため、目次を活用して段階的に読み進めることをお勧めします。 eBPFとbpftraceはじめに、eBPFとbpftraceについて簡単に説明します。 eBPFとはeBPF(Extended Berkeley Packet Filter)はLinuxカーネル内で動作する柔軟なプログラミングフレー

                                            bpftraceによるGoアプリケーションのトレース|hayajo