並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 4290件

新着順 人気順

golangの検索結果281 - 320 件 / 4290件

  • Effective Error Handling in Golang

    Introducing Earthly Cloud. Consistent, repeatable builds. Advanced caching for speed. Works with any CI. Get 6,000 build min/mth free! Learn more. Introducing Earthly Cloud. Consistent, Fast Builds, Any CI. Get 6,000 build min/mth free! Learn more.

      Effective Error Handling in Golang
    • GoとRust - 並行処理編

      GoとRustの変更処理を比較することで両者を深く理解する試みです。 詳しい内容やスライドでは省いたところをブログに書きました https://zenn.dev/nasa/articles/compare_rust_go_concurrency

        GoとRust - 並行処理編
      • GoのスライスとRustのスライス | Wantedly Engineer Blog

        こんにちは、Wantedly のDX Squadでエンジニアをしている原です。 (DXはDeveloper Experienceの略で、開発者が心地よくプロダクトを作れる環境を作ることを目標に頑張る部門です) 本稿は、WANTEDLY TECH BOOK 9 から「GoのスライスとRustのスライス」という章を抜粋し加筆修正を加えたものです。ウォンテッドリーでは WANTEDLY TECH BOOK のうち最新版を除いた電子版を無料で配布しています。ぜひ読んでみてください。 過去の WANTEDLY TECH BOOK を入手する 以下、本文です。 GoのスライスとRustのスライスは大枠では似ていますが、スライスの共有に関する振舞いが微妙に異なり、GoとRustの設計の違いが垣間見られます。本記事ではこの違いを説明します。 配列型とスライス型Go/Rustにおいて「配列」は固定長でスタッ

          GoのスライスとRustのスライス | Wantedly Engineer Blog
        • Goとエラーハンドリング慣習について

          エラー返値が無用な条件 関数ないしメソッドの実装がオンメモリ操作のみで完結 将来も(メモリ以外の)I/O操作は追加されることがない 逆にいうと上記の条件のいずれかが達成できない可能性がある関数やメソッドはエラー返値を付与すべき。 返値エラー型はerrorで統一する 返すエラーがerrorインターフェース型でなければそのエラーは正常にハンドリングできません。またerrorインターフェースを満たす別の返値型で返してerrorインターフェース型で受け取るのも後述のトラブルの元です。 Goの実装方針に「インターフェースで利用するものもコンストラクター相当では構造体ポインタで返す」というものがありますがコンストラクタを呼ぶ側は元型にアクセスすることが多いのでこういう方針になっています。が、エラー値に関しては元型を意識せずに利用可能にするという役割があって、この実装方針は当てはまりません。 エラーチェ

            Goとエラーハンドリング慣習について
          • はてなサマーインターン2020の講義動画と課題を公開しました - Hatena Developer Blog

            こんにちは、CTO の id:motemen です。 この夏に開催したインターンの講義動画および課題を公開しましたので、お知らせいたします。以下の特設ページをご覧ください。 講義動画と課題 - はてなリモートインターンシップ2020 - 株式会社はてな - 株式会社はてな 今年のインターンは全日リモート開催とすることを早い段階で決定し、これまでの来社前提のインターンの経験に頼らず、オンラインであることを活かしたカリキュラムとして設計しなおすことにしました。 その一環として、今回のインターンに直接参加できなかった方にも実施したインターンの内容や雰囲気に触れていただけるよう、講義動画および課題を公開いたします。学生の方もそうでない方も、ぜひご覧になっていただければと思います! 講義について 今回のインターンでは、マイクロサービスをテーマに、講義の一日と、課題に取り組む三日間、それから総まとめの

              はてなサマーインターン2020の講義動画と課題を公開しました - Hatena Developer Blog
            • 静的サイトジェネレータ「Hugo」と技術文書公開向けテーマ「Docsy」でOSSサイトを作る | さくらのナレッジ

              最近ではWebサイトを構築する際にWordPressなどのCMS(コンテンツ管理システム)を利用することが多いが、今日でも静的なHTMLファイルを使ったサイト構築には多くのメリットがある。今回は、こうしたHTMLファイルベースのサイト構築を支援するHTMLファイル生成ツール「Hugo」を紹介する。 静的ファイルでサイトを作るための支援ツール「Hugo」 コンテンツの作成や編集の容易さから、昨今ではWebサイトを構築する際にCMSを利用する例が多い。ただ、CMSを使用するにはCMS自体のインストールや設定、データベースの準備などが必要であるため、更新頻度の低いサイトやページ数の少ないサイトでは静的なHTMLファイルを使って構築したほうがコストが低くなる場合がある。 とはいえ、HTMLファイルをいちいち手動で作成するのは楽ではない。そのため、HTMLファイルを半自動生成するようなツールが数多く

                静的サイトジェネレータ「Hugo」と技術文書公開向けテーマ「Docsy」でOSSサイトを作る | さくらのナレッジ
              • Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較 - Qiita

                Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較KotlinRustベンチマークJuliaDijkstra これは何 最短経路探索のアルゴリズムを使っていくつかの言語の性能がどれくらい違うかを調べてみました。 Python は手軽に実装できるけど遅い、Go は 早いけど C++ よりは遅い? 本当? のような疑問を一定解消したかったというのが動機です。 前提条件など 対象とする言語 本命 Go, Rust, C++ 興味本位 Julia Python より段違いに早ければもう少し掘ってみたい 興味本位 Kotlin 意外とトップ集団に肉薄するのではないか 参考 Python JavaScript 性能差のイメージとしては Rust == C++ > Go >> Kotlin >>> JavaScript > Python == J

                  Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較 - Qiita
                • GitHub - Shyp/generate-tls-cert: Generating self signed certificates

                  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 - Shyp/generate-tls-cert: Generating self signed certificates
                  • Connect: A better gRPC

                    Today we're releasing Connect, a slim framework for building browser and gRPC-compatible HTTP APIs. Connect is production-ready — focused, simple, and debuggable — and it's fully compatible with gRPC clients and servers. If you're frustrated by the complexity and instability of today's gRPC libraries, we think you'll find Connect a breath of fresh air. connect-go is available now under an Apache 2

                      Connect: A better gRPC
                    • ISUCON9の予選を突破し、失格になったのちに通過しました - akenshoの日記

                      参考:チームメイトの記録です 本番前に行ったこと 競技環境の把握 重要文献を読んでおく 盆栽(本番で使用する ansible role)に手を入れる チーム練習をする 本番で行ったこと 初期状態の把握 初回のベンチマーク実行 初期セットアップ 各種マニュアルを読む モニタリングツールを実行しながらのベンチマーク実行 pprof 導入後のベンチにおいて 完走しないベンチマーク 収集する 順位表を確認する ボトルネックの再調査とそれを潰す作業 複数台構成を考え始める 平文保存はダメです Index 関連の作業が終わり、二度目の質問 getSimpleUserByID のデバッグをする 例のアレ 再収集 再起動試験 ログを全部切る 最終ベンチを実行する 以上が純粋な競技記録です ここから先は競技終了後の話です 失格の根拠について 失格取り消しの根拠について 運営チームの取れる・果たせる責任につい

                        ISUCON9の予選を突破し、失格になったのちに通過しました - akenshoの日記
                      • dockertest のススメ

                        概要 dockertest は go でテストを書く際に docker 経由で指定したコンテナを起動してくれてテストが終わったらコンテナを削除してくれる便利ライブラリです。 モチベーション 時雨堂では TimescaleDB という PostgreSQL に TSDB 拡張を追加した少し変わった RDBMS を利用しています。 TimescaleDB 専用の関数があったりするため、モックなどを使わずにテストを書くのが現実的です。 dockertest ory/dockertest: Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work. 基本的には dockertest の README に書いてある内容を

                          dockertest のススメ
                        • 言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)

                          Twitterで "green thread" という単語をたまたま見かけたので、知っていることをつぶやいたよ。 Green thread 言語のスレッドとOSのスレッドの関係 N:1 mapping 言語のスレッドの全てがひとつのOSのスレッドの上で実行されるもの。その代表が上記のJavaのgreen thread。 OSのシステムコールを呼ぶときには必ずnonblockingモードを使い、EAGAIN または EWOULDBLOCKが返ってきたときには他のスレッドの実行権に譲るようにする必要がある。うっかりシステムコールでブロックされてしまうと、全部のスレッドが巻き添えになって動けなくなる。 スレッドの生成やコンテキストの切り替えは軽い。しかし、マルチコアを生かすことができないため、シングルコアの環境でのみ使用される。 1:1 mapping OSのスレッドと言語のスレッドが1対1対応

                            言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)
                          • Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう

                            .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                              Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
                            • Go Style

                              Documents The Style Guide outlines the foundation of Go style at Google. This document is definitive and is used as the basis for the recommendations in Style Decisions and Best Practices. Style Decisions is a more verbose document that summarizes decisions on specific style points and discusses the reasoning behind the decisions where appropriate. These decisions may occasionally change based on

                              • Go 製 UI ツールキット Fyne で始めるクロスプラットフォーム GUI アプリケーション開発 · Yutaka 🍊 Kato

                                こうやって分類すると、fyne というのはいったい何者なのだと思いませんか? そう思ったわたしは実際に試用してみて気に入り、社内で使う簡単な GUI アプリの開発に採用、ほんの一瞬で目的通りのアプリを実際に作れてしまいました。 作ったアプリはのちほど紹介しますが、まずは基本的な使い方と多くの人が遭遇するであろうハマりポイントをいくつか紹介したいと思います。 ただし、現状 Go の GUI 領域はまだまだ発展途上です。Fyne においてもデータバインディングやアニメーション機能が未提供だったりと GUI ツールキットとしては大穴があいているのも事実。限界を承知の上で、過度に期待せずに読んでいただけたらと思います。 はじめかた 既に Go 言語の開発環境は整っている前提で始めたいと思います。整っていない方は Getting Started してください。 では早速コードから。”Hello, w

                                  Go 製 UI ツールキット Fyne で始めるクロスプラットフォーム GUI アプリケーション開発 · Yutaka 🍊 Kato
                                • 注目のユニコーン企業が使っているプログラミング言語、フレームワーク、データベース(BUSINESS INSIDER JAPAN) - Yahoo!ニュース

                                  Coding Dojoはアメリカのユニコーン企業が使用しているプログラミング言語、フレームワーク、データベースのデータを求人情報から収集した。 【全画像をみる】注目のユニコーン企業が使っているプログラミング言語、フレームワーク、データベース 対象となったユニコーンは、WeWork、Stripe、Airbnb、SpaceXなど。 人気の言語はJavaScript、Java、そしてPython。KotlinやGoといった新しい言語も人気になりつつある。 ウィーワーク(WeWork)、ストライプ(Stripe)、エアビーアンドビー(Airbnb)、スペースX(SpaceX)のような数十億ドル規模のスタートアップがどのような開発言語を使っているのかと疑問に思ったとしても、もう調べる必要はない。 開発者をトレーニングし、就職をサポートする「Coding Dojo」は、求人サイト「Indeed」と開発

                                    注目のユニコーン企業が使っているプログラミング言語、フレームワーク、データベース(BUSINESS INSIDER JAPAN) - Yahoo!ニュース
                                  • Kubernetesソースコードリーディング入門

                                    Kubernetes Novice Tokyo #27 で発表した資料です。 https://k8s-novice-jp.connpass.com/event/293144/ 発表のライブ配信はこちら。 TODO スライドで紹介した参考リンク集: https://bells17.medium.com/things-you-should-know-about-reading-kubernetes-codes-933b0ee6181d https://www.amazon.co.jp/dp/4297104385/ https://www.amazon.co.jp/dp/4297118378/ https://go.dev/tour/welcome/1 https://gopherdojo.org/studyroom/ https://www.amazon.co.jp/dp/4621300253

                                      Kubernetesソースコードリーディング入門
                                    • Kubernetesのコードリーディングをする上で知っておくと良さそうなこと

                                      Kubernetesとその関連コードのコードリーディングをする上で知っておくと良さそうなことについて知ってる範囲で雑にまとめてみました 前提知識前提として最低限Kubernetesをある程度触っていて KubernetesはPodとかのリソースと呼ばれるものでコンテナだったりロードバランサーとかを管理するようになっていて実際にDeploymentでコンテナを立ててService/Ingressでコンテナで立てたアプリケーションを外部公開できてコンテナはPodという単位でコンテナをグループ化して同一Nodeで実行されるということを知っているくらいがわかっていればまぁ十分なんじゃないかとは思います あとはKubernetesはGoで書かれているので Goの基礎知識とVSCodeやGolandなどGoのコードを読む際に宣言にジャンプできるようなエディタくらいがあると良いと思います Kuberne

                                        Kubernetesのコードリーディングをする上で知っておくと良さそうなこと
                                      • インフラもバックエンドもフロントエンドも Go で書いてみた

                                        先日 CDK for Terraform が GA になりました。 CDK for Terraform を使うことにより、 TypeScript や Go などといったプログラミング言語を使って Terraform エコシステムを利用したインフラの定義やプロビジョニングを行うことができます。 「Go でインフラが書ける」と聞き、ふと思ったことがこちらです。 というわけで書きました。 (2022/10/27 追記) CI/CD も Go で書いた記事を公開しました。 作ったもの GoGoGo 猫の画像をランダムで表示するサンプルアプリです。 主な利用技術について簡単に紹介します。 利用技術 Go 説明不要ですね。 Google 様が作ったプログラミング言語です。 Gin Go の軽量な Web フレームワークです。 公式の紹介に「パフォーマンスは Martini の最大 40 倍です」と書か

                                          インフラもバックエンドもフロントエンドも Go で書いてみた
                                        • 「詳解Go言語Webアプリケーション開発」という本を発売しました - My External Storage

                                          「詳解Go言語Webアプリケーション開発」という書籍を執筆し、2022/07/22にC&R研究所様より発売しました。 全国書店やAmazonで購入できます。本記事では本の内容の紹介や執筆経緯、執筆してみての感想など書きます。 https://www.c-r.com/book/detail/1462 本の内容について 本著は大きく分けて二部構成になっています。 第一部は次のようなテーマにまつわるトピックを中心にまとめました。 他の言語を経験していると不思議になるGoの言語仕様 最近Goを始めた方は知らない過去の経緯や歴史的背景 第二部ではGoを用いたWebアプリケーションのコードをハンズオン形式で解説しました。 テストコードを書き段階的な変更を繰り返しながらAPIサーバの実装を試みています。 Docker Composeを使ったローカル開発環境の構築 github.com/cosmtrek/

                                            「詳解Go言語Webアプリケーション開発」という本を発売しました - My External Storage
                                          • Goでつまづいたところを仕様を見ながら理解してみる - ravineport blog

                                            Go言語デビューしました!🎉 シンプルなのもあってすぐに馴染むことができています。Goよいですね! さてさて今回はGoを書いていて「これできるんだ」「これはコンパイルエラーなんだ」となったところをGoの仕様などを見ながら(できればそのwhyまで)理解したいと思います。 Go 1.18時点での記事です。 つまづき1:constをポインタとして扱えない 例えばこんなのがあったとして const Ten = 10 type User struct { age *int } 以下のコンパイルが通りません。 func main() { user := User{ &Ten, // コンパイル通らない🤔 } fmt.Println(user) } エラーメッセージを見てみると invalid operation: cannot take address of Ten (constant 10 of

                                              Goでつまづいたところを仕様を見ながら理解してみる - ravineport blog
                                            • 各社のエンジニア研修で探る、新人エンジニアに必要な技術と駆け出しエンジニアの成長論 - このすみノート

                                              新人研修の内容を検討しているのですが、それにあたり各社の新人研修を調査しました。 なお本記事は、@gcchaan氏のGitHub Gistにある「研修資料まとめ」を参考に作成しております。 @gcchaan氏の「研修資料まとめ」はとても素晴らしいまとめで、これを見ると各社がどのように新人エンジニアを育成しているのか見てとれたり、新人エンジニアがどのような研修を経て成長していくのか垣間見えます。 DMM.com(2019) DMM.comの研修で紹介されている技術書 GMOペパボ(2019) LINE(2018) Spee(2016) Wantedly(2019) ウエディングパーク(2019) エムスリー(2018) 研修概要 KAYAC(2017) クックパッド(2016) GREE(2014) ぐるなび(2017) LEMPについて サイバーエージェント(2019) エンジニア研修がど

                                                各社のエンジニア研修で探る、新人エンジニアに必要な技術と駆け出しエンジニアの成長論 - このすみノート
                                              • Goらしさとは何なのか考える - My External Storage

                                                「Goらしさ」や「Goに入ってはGoに従え」というけれど、「Goらしい」って一体なんだろう?と考えてみる。 TL;DR 後半は完全に私見の域を出ない&&身も蓋もない結論なので、最初に参考情報だけまとめておく。 「Goらしさ」が何を目指しているのか、何を目指す考えが「Goらしさ」なのか知りたいならば、まず言語思想・設計思想を知るべきだろう。 言語思想についてまとめられている文書は次の情報だ。 Go’s New Brand | The Go Blog Go at Google: 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
                                                • 天下一HTTPRouter武闘会.pdf

                                                  From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE

                                                    天下一HTTPRouter武闘会.pdf
                                                  • 他言語プログラマが最低限、気にすべきGoのネーミングルール

                                                    概要 タイトルの通り、他言語から入門した人が最低限気にするべき、ネーミングルールをまとめました。 対象読者 Goの基本構文を理解している人を対象読者としています。 この記事で説明すること、説明しないこと 説明すること Goのファイル名、変数名などの名前付けに関するルールや慣例などを説明します。 説明しないこと 名前付け以外で気をつけるべきGoの書き方[1] がいくつかあります。 しかし、それらに関してはこの記事では説明しません。 筆者のバックグラウンド プログラマ歴はもうすぐ8年程で、Goの他には以下のような言語の経験があります。 JavaScript TypeScript PHP Ruby Java Scala Goは少し前に書いて、一時期書かない時期が続いていましたが、最近また書いています。 トータルするとGoの経験は1年半程度です。 意識すべき名前付けルール package名 利用し

                                                      他言語プログラマが最低限、気にすべきGoのネーミングルール
                                                    • 個人的 M1 mac 開発環境状況 2021/12/02 更新

                                                      昨日 M1 mac が届いたので早速仕事に使える状況までセットアップしました。 できるだけ Intel アーキテクチャで動くものは入れたくない 開発系 開発環境とかエディタとか Visual Studio Code Electron が一応対応したっぽいので VScode insider のダウンロードページに Experimental 版としてdarwin arm native で動くバージョンが配布されています。 https://code.visualstudio.com/insiders/ しかし設定の同期で拡張機能を入れたらクラッシュ、必要最低限にしてもちょいちょいクラッシュするので stable の VScode を Rosetta 2 を通して使っています。 さすがに起動時の遅さが気になるのでやっぱ Experimental 版をメインに使ってます。クラッシュ頻度がなぜか減った

                                                        個人的 M1 mac 開発環境状況 2021/12/02 更新
                                                      • ネットスーパーアプリ GraphQL から REST へ移行始めました - every Tech Blog

                                                        はじめに こんにちは、retail HUBで Software Engineer をしているほんだです。 今回は私が現在着手している事業譲渡されたアプリを社内で持続的なプロダクト開発を行える状態にするリプレイスプロジェクトをどのように行っているか紹介しようと思います。 この記事ではリプレイスを行うにあたってどのようなことを課題に感じてその課題に対してどのような解決策をとったか主にサーバーの実装について説明しています。 ネットスーパーアプリとは 現在弊社ではネットスーパーアプリとして Web アプリとスマホアプリの二つのシステムを提供しています。 Web アプリは販促コンテンツの設定や売り上げの管理・集計を行うことが可能な管理システムと受け取り方法に応じた価格変更や送料変更にも対応し、消費者の柔軟な買い物を実現するお客様向けアプリを 17 の小売り様に、スマホアプリでは Web アプリのお客

                                                          ネットスーパーアプリ GraphQL から REST へ移行始めました - every Tech Blog
                                                        • 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
                                                          • マイクロサービスのQA・セキュリティ自動化テスト社内ツール「Testdeck」をOSS化しました! | メルカリエンジニアリング

                                                            こんにちは。Product Securityチームの@gloriaです。前回、自動化テストエンジニアからセキュリティエンジニアへのキャリアチェンジについて記事を書きました。 今日は、最近OSSとして公開した社内ツールのプロジェクトについてお話をしたいと思います! 「Testdeck」とは? TestdeckはGolangで書いたgRPCマイクロサービスのインテグレーションテスト、エンドツーエンドテスト(E2E)とセキュリティテストの自動化ツールです。以下の機能を提供しています: gRPCとHTTPエンドポイントのインテグレーションテスト・E2Eテスト ファズテスト 悪意のあるペイロードの注入(Burp SuiteのIntruderという機能のように) gRPCとHTTPリクエストのユーティリティメソッド CharlesやBurp Suiteなどのデバッギングプロクシーに接続し、リクエストの

                                                              マイクロサービスのQA・セキュリティ自動化テスト社内ツール「Testdeck」をOSS化しました! | メルカリエンジニアリング
                                                            • Goプロジェクトのはじめかたとおすすめライブラリ8.5選。ひな形にも使えるサンプルもあるよ。 - Qiita

                                                              はじめに 最近イケイケなGo! でもベターなGoプロジェクトのはじめかたっていまいち調べてもわからないですよね。 自分は最初色々迷いました。。 まずパッケージ管理ツール。 godepだったりGo Modulesだったり、少し情報がとっちらかっている印象です。 後はどのディレクトリにプロジェクトを配置した方がいいのかもわかりづらい。 importの仕方も相対と絶対のどちらがいいのか迷う。 というわけで以下の4点に絞って解説していきたいと思います! パッケージ管理ツール プロジェクトの配置場所 自作パッケージのimportの仕方 おすすめライブラリ この記事を読めば正しくGoプロジェクトが作成できます!(たぶん) 【追記】 インストール方法とVSCodeの設定に関しても簡潔にまとめたので、良かったら参考にしてください。 【超簡単】GoのインストールとVSCode設定方法 いきなりまとめ プロジ

                                                                Goプロジェクトのはじめかたとおすすめライブラリ8.5選。ひな形にも使えるサンプルもあるよ。 - Qiita
                                                              • あえてGo言語でClean Architectureを学ぶ

                                                                はじめに 最近巷で話題のGoらしさって話があると思いますが、 ここはあえてGoらしからぬClean ArchitectureをGoで学んでいこうという記事です。 対象 Go言語をある程度読めて、Clean Architectureに興味がある方 注意 ここでいうClean Architectureとは、依存性のルールに従った円を指しています。 Clean Architectureを採用しましょうって話ではありません。 各言語には思想があるので、その言語らしい書き方に沿うべきだと思っています。 ざっくりとしたアーキテクチャの目的 システムの関心の分離を行い、選択肢を残す(決定を遅らせる)ことが目的です。 またユースケースを中心として開発するため、フレームワークやツールに依存しません。 Clean Architectureとは Robert Martin がブログで提唱したアーキテクチャの解説

                                                                  あえてGo言語でClean Architectureを学ぶ
                                                                • 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のブログ
                                                                  • Big Sky :: Go に Fuzz testing が入った。

                                                                    みなさん Fuzz testing ってご存じでしょうか。 人間が作る物は必ずといっていいほどバグが存在します。そしてそのコードをテストする人間も必ずバグを見逃します。 想定していなかった境界値テスト等、人間には先入観という物があり、それが邪魔をして簡単にバグを見逃します。昨今、この様な誰も気付かなかったバグの隙間を突く様な脆弱性が沢山見つかっています。 物によっては重大インシデントに発展する物まであります。 こういった人間では想定できない様なバグを見付けてくれるのが Fuzz testing です。Fuzz testing を実施する事で、ソフトウェアは頑丈になり安全にもなりえます。 本日、Go の master ブランチに Fuzz testing の機能が入りました。 [dev.fuzz] Merge remote-tracking branch 'origin/dev.fuzz'

                                                                      Big Sky :: Go に Fuzz testing が入った。
                                                                    • Vagrantが開発言語をRubyからGo言語へ切り替え、次のメジャーバージョンアップ「Vagrant 3.0」で。現バージョンとの互換性は維持

                                                                      Vagrantが開発言語をRubyからGo言語へ切り替え、次のメジャーバージョンアップ「Vagrant 3.0」で。現バージョンとの互換性は維持 HashiCorpは、仮想環境をプログラミングできるツール「Vagrant」の開発言語を、これまでのRubyからGo言語切り替えることを明らかにしました。 Learn more about the new features, capabilities, and improvements we’re making on our journey toward Vagrant 3.0. https://t.co/49scP0FdqW — HashiCorp (@HashiCorp) June 11, 2021 時期未定ながら、今後約1年のあいだに登場するVagrant 2.3、Vagrant 2.4を経て、Vagrant 3.0でGo言語への移行が完了

                                                                        Vagrantが開発言語をRubyからGo言語へ切り替え、次のメジャーバージョンアップ「Vagrant 3.0」で。現バージョンとの互換性は維持
                                                                      • Goバイナリの脆弱性検知 - knqyf263's blog

                                                                        Trivyのv0.17.0をリリースしました。 github.com 長い道のりでしたが、ようやくこれでGoバイナリの脆弱性検知に対応できました。夜中0時ぐらいからリリース作業を初めて気付いたら朝5時でした。 概要 Go言語で書かれたプログラムをビルドすると依存しているモジュールがバイナリに含まれます。現代のソフトウェア開発において利用しているOSSのライブラリが0ということはまれなので、何かしらのOSSライブラリが作成されたバイナリに同梱されます。これらのOSSの古いバージョンには既知の脆弱性が含まれる可能性があります。これを手動で調べて追うのは手間なので最近では脆弱性スキャナを用いて検知するのが普通です。自分が開発したTrivyというOSSの脆弱性スキャナではコンテナイメージやファイルシステム上のGoバイナリに含まれるモジュールを特定し脆弱性を検知します。 Goのバイナリからどうやって

                                                                          Goバイナリの脆弱性検知 - knqyf263's blog
                                                                        • もっと log/slog を使おう

                                                                          はじめに この記事は Go アドベントカレンダー 2023 の最終日 25 日目の記事です。 皆さん log/slog 使ってますか。便利なのでぜひ使ってください。 slog は構造化ログを出力する為のパッケージで Go 1.21 で導入されました。これまでも zap や zerolog といったサードパーティ製のロガーを使う事で構造化ログを出力する事ができましたが、構造化ログを出力する機能が Go の標準ライブラリになりました。 slog とは 通常の log パッケージは、時刻とメッセージの単純な出力になります。

                                                                            もっと log/slog を使おう
                                                                          • Go 1.13 に向けて知っておきたい Go Modules とそれを取り巻くエコシステム - blog.syfm

                                                                            はじめに 今年の 8 月にリリースが予定されている Go 1.13 では、Go 1.11 で導入された Go modules に加え、Go module proxy といった新しいエコシステムが登場します。 そこで、そもそも Go modules は何を行っているのかや、何ができるのか、どういった要素で構成されているのかを紹介します。 また、古い Go バージョンから Go 1.13 へアップデートする場合や、 dep や Glide といったベンダリングツールから Go modules へ移行する際の懸念点も併せて紹介します。 先日発表した "Go Modules and Proxy Walkthrough" はこのポストがベースになっています。 TL;DR な人はスライドを見るのがおすすめです。 speakerdeck.com Go Modules Go modules という仕組みは

                                                                              Go 1.13 に向けて知っておきたい Go Modules とそれを取り巻くエコシステム - blog.syfm
                                                                            • golangではスタックとヒープを気にする必要が無い

                                                                              調べようと思ったきっかけは、golang では以下のように ローカル変数のアドレスを戻り値としても問題ないということ。 package main import ( "fmt" ) type Animal struct { Name string Age int } func main() { animal := allocAnimal() fmt.Printf("allocate animal structure %p", animal) } func allocAnimal() *Animal { return &Animal{} } C/C++ ではローカル変数のポインタを戻り値とした場合、 スタック領域のポインタを関数外に渡してしまうため、コンパイル時点で警告が表示されます (なぜエラーにしない) 実行時には最悪、セグメンテーションフォールトで落ちます そのため、malloc や n

                                                                                golangではスタックとヒープを気にする必要が無い
                                                                              • Goならわかるシステムプログラミング第2版が出たので書評しますね - moriyoshiの日記

                                                                                少し前になりますが、3月23日に、渋川よしきさんの著された「Goならわかるシステムプログラミング 第2版 」が発売されました。初版と比べてかなり加筆されておりパワーアップしているので、初版をすでにお持ちの方でもさらに興味深く読むことのできる内容に仕上がっている、というのが第一印象です。 残念ながら初版発売時に記事にする機会がなかったのですが、あらためて今回書評したいなと思いましたので、徒然書いていきたいと思います。 この本は実はシステムプログラミングの本ではないかもしれない 「システムプログラミング」とは何でしょう。正直私にもわかりません。その語をはじめに思い浮かべた人は、プログラミングという概念のその中にあえて「システムプログラミング」という分類を作ろうと思い至ったということですから、きっと「非システムプログラミング」というものもあるということでしょう。知らんけど。しかし、これは本書の位

                                                                                  Goならわかるシステムプログラミング第2版が出たので書評しますね - moriyoshiの日記
                                                                                • 今日から分散トレーシングに対応しないといけなくなった人のための opentelemetry-go 入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                                                  こんにちは。SRE/データストアチーム の飯塚です。 私たちのチームではデータベースを代理で操作したり情報を取得したりするサービスをいくつか作り、それをプロダクトチームが利用できるように gRPC 経由で提供しています。ところで、ある日突然「分散トレーシングを活用していくことになったので、あなたのチームのサービスも対応させてください」とお願いされたらどうすればよいでしょうか?私はこれまでにいろいろなカンファレンスで分散トレーシングや OpenTelemetry についての講演を聞いていたので、理念は理解した、便利そうだ、導入してみたい、と思ったことは何度かありました。しかし実際に導入しようとして SDK のドキュメントを開いてみると、理解しなければいけない(ように見える)概念や、使い方をマスターしないといけない(ように見える)API の数に圧倒されてしまい、後回しにしてしまっていました。

                                                                                    今日から分散トレーシングに対応しないといけなくなった人のための opentelemetry-go 入門 - Cybozu Inside Out | サイボウズエンジニアのブログ