並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 14 件 / 14件

新着順 人気順

fmtの検索結果1 - 14 件 / 14件

  • Go の ORM はどのようにして AUTO INCREMENT で採番された値を取得しているのか? - MySQL 編 - カミナシ エンジニアブログ

    こんにちは。カミナシで「カミナシレポート」の開発を担当しているソフトウェアエンジニアの佐藤です。 カミナシレポートのバックエンドは Go で開発しており、データベースには Amazon Aurora MySQL を使用しています。また、データベースアクセスには ORM ライブラリの GORM を採用しています。 ほとんどのテーブルでは、プライマリキー(ID列)に AUTO INCREMENT を利用しています。これらのテーブルに GORM の Create メソッドなどを使って新しいレコードを挿入すると、AUTO INCREMENT で採番された値が自動的に対応する Struct のフィールドに反映されます。 AUTO INCREMENT による値の採番は MySQL 側で実行されているため、Go 側の Struct のフィールドに反映させるためには、Go アプリケーション側が何らかの方法

      Go の ORM はどのようにして AUTO INCREMENT で採番された値を取得しているのか? - MySQL 編 - カミナシ エンジニアブログ
    • Goのプラクティスまとめ: error handling

      Goのプラクティスまとめ: error handling 筆者がGoを使い始めた時に分からなくて困ったこととか最初から知りたかったようなことを色々まとめる一連の記事です。 以前書いた記事のrevisited版です。話の粒度を細かくしてあとから記事を差し込みやすくします。 他の記事へのリンク集 (まだ)今はこうやる集 (まだ)プロジェクトを始める (まだ)dockerによるビルド error handling: ここ (まだ)fileとio (まだ)jsonやxmlを読み書きする (まだ)cli (まだ)environment variable (まだ)concurrent Go (まだ)context.Context: long running taskとcancellation (まだ)http client / server (まだ)structured logging (まだ)tes

        Goのプラクティスまとめ: error handling
      • Stop saying Rust is Complicated

        Stop Saying Rust Is Complicated Rust often gets labeled as “too hard” or “too complicated” because it forces you to think carefully about memory, concurrency, and error handling. But here’s the catch: those aren’t just “Rust problems.” They’re software engineering problems that show up in any sufficiently complex system. Rust’s approach may feel strict, but it’s essentially teaching you fundamenta

        • Neva | dataflow programming language

          import { fmt } def Main(start any) (stop any) { println fmt.Println<string> --- :start -> 'Hello, World!' -> println -> :stop }

          • Testcontainersを使ったGo Testの並列化 - enechain Tech Blog

            はじめに こんにちは、enechainのApplication Platform Deskでエンジニアをしているmaverickです。 我々のチームでは、バックエンドアプリケーションをGoで構築しています。 データベースアクセスが発生するテストはgo-sqlmockを使っていましたが、テスト用のDBを使って、実際のアプリケーションの動作環境に近いテスト環境へ切り替えました。 今回は、その際に行ったTestcontainersの導入とテストの並列実行へのアプローチについてご紹介します。 はじめに sqlmockの課題 Testcontainersの導入 導入手順 Testcontainersの起動 コンテナ起動のコスト テストデータのコンフリクト 並列化へのアプローチ 残課題 最後に sqlmockの課題 弊チームでは、可能な限りJOINは行わずにシンプルなクエリでデータベース処理を行うこと

              Testcontainersを使ったGo Testの並列化 - enechain Tech Blog
            • GoのHTTPサーバー:Gin、Echo、muxの比較と選び方

              Go言語でWebアプリケーションを開発する際、HTTPサーバーを構築するためのフレームワーク選びは、プロジェクトの成功を左右する重要な要素です。しかし、「どのフレームワークを選べば良いか分からない」「似たようなフレームワークが多くて比較が難しい」と感じる方も多いのではないでしょうか? そこで本記事では、Go言語の主要なHTTPフレームワークであるGin、Echo、muxを取り上げ、それぞれの特徴や使い方を解説します。また、特に人気の高いGinとEchoについては、具体的な比較を行い、選択の指針となるポイントを示します。 この記事を書くにあたっての背景として、筆者自身がプロジェクトの要件に合ったフレームワークを選ぶ際に苦労した経験があります。同じような悩みを持つ方々の助けとなるよう、具体例を交えながら分かりやすく解説していきます。 主要なGoのHTTPフレームワーク 1. mux Goの標準

                GoのHTTPサーバー:Gin、Echo、muxの比較と選び方
              • Go 1.24連載始まります&os.Root、WASMの最新のまとめ | フューチャー技術ブログ

                恒例のGo新リリース記念連載が始まります。今回の1.24連載では次のような記事を予定しています。今回もたくさんメンバーが手を上げてくれたのと、土日は記事は出さないので、もしかしたら途中で1.24が先にリリースされちゃうかもしれません。 DateTitleAuthor1/27インデックス+os.Root+WASM渋川1/28testing.Context真野さん1/29encoding/jsonのomitzero島ノ江さん1/30templateの新文法(イテレータ)大江さん1/31testing/synctest + 生成AI棚井さん2/3strings関数 + encoding.TextAppender市川燿さん2/4ツール管理回りの進化辻さんこの記事では概要とos.Root、GoのWASM出力の現在地について紹介します。 Go 1.24更新のオーバービューRC2の段階のリリースノートを

                  Go 1.24連載始まります&os.Root、WASMの最新のまとめ | フューチャー技術ブログ
                • 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で書くか
                  • Go1.24 リリース連載 encoding/json | フューチャー技術ブログ

                    はじめにこんにちは。ペンギンになりたいエンジニアの島ノ江です。普段は CSIG で「FutureVuls」という脆弱性管理サービスの開発・営業を担当しています。 Go1.24リリース連載の3日目。Go 1.24 で encoding/json に追加される omitzero を扱います(リリースノート) omitzero とはomitzero は、Go の構造体を JSON に変換する際、フィールドの値がゼロ値である場合にそのフィールドを省略してくれるタグオプションです。json 変換の歯がゆい部分を修正してくれるアップデートです。 これまで Go にはフィールドが空の値のときに json 出力から省略する omitempty というタグがありました。omitempty では、数値型の 0、文字列型の ""(空文字列)、ポインタ・スライス・マップのnil が json フィールドに含まれる

                      Go1.24 リリース連載 encoding/json | フューチャー技術ブログ
                    • Go 1.24 interactive tour

                      Go 1.24 is scheduled for release in February, so it's a good time to explore what's new. The official release notes are pretty dry, so I prepared an interactive version with lots of examples showing what has changed and what the new behavior is. Read on and see! Generic aliases • Weak pointers • Improved finalizers • Swiss tables • Concurrent map • Directory scope • Benchmark loop • Synthetic time

                        Go 1.24 interactive tour
                      • 監査ログの出力スキーマをProtocol Buffersで定義する - ベースマキナ エンジニアブログ

                        こんにちは、yebis0942です。今回はベースマキナの監査ログ機能の実装改善の取り組みをご紹介します。 簡単にまとめると、プロダクトの機能が充実するにつれて監査ログの仕様管理が複雑化し、メンテナンスコストが増加するという課題がありました。その解決策として、Protocol Buffersを採用し、スキーマベースで出力内容を定義しました。結果として、開発効率とメンテナンス性が向上しました。 以下で詳細についてご説明します。なお、本ブログ内で紹介するコード例は説明のため一部簡略化しています。 ベースマキナの監査ログ ベースマキナは「安全なオペレーションに必要な管理画面を数分で」を掲げるローコードSaaSです。 私たちは管理画面に必要とされる機能をまとめて提供しており、その一つに「監査ログ機能」があります。管理画面で何らかの操作が行なわれたり、管理画面自体の設定が変更された際に、「いつ」「誰が

                          監査ログの出力スキーマをProtocol Buffersで定義する - ベースマキナ エンジニアブログ
                        • GoアプリのCI/CDを4倍高速化した汎用的手法まとめ【txdb】

                          はじめに こんにちは!J-CAT 株式会社でエンジニアをしている田中です。 弊社では、魅力あふれる日本の姿をここでしかできない感動体験として届ける予約サイト「Otonami」というサービスを運営しており、このサービスのバックエンドとして、Go言語を採用しております。 これまで課題として認識していながらも、中々着手できずにいたバックエンドのCI/CD改善に本格的に取り組み、その処理速度を劇的に向上させることができました。 この記事では、そのために実施したアプローチを汎用的に活用できる手法として整理し、紹介していきます。 結論として、ざっくり以下の対応を行いました。 ビルドタグを利用したジョブの並列化 デプロイ先の変更(不本意) txdbを利用したトランザクション → ロールバックのテスト t.Parallelを用いたテストの並列化 テストをdockerコンテナ実行 → プリセットアクション実

                            GoアプリのCI/CDを4倍高速化した汎用的手法まとめ【txdb】
                          • ISUCON14感想戦で864,990点取る方法(参考値)

                            はじめに 「ちゃん」というチームでISUCON14に出場していました 本番では昼頃に一桁位に位置付けるなど好調でしたが、結果envcheckによる失格になっていました... pproteinというツールを入れたサーバをISUCONサーバと同じVPCに立てっぱなしだったことが原因と思われます このような悔しい結果だったこともあり、用意していただいた感想戦をコツコツ頑張ってみましたので、その進め方を紹介させていただきます 感想戦 今回のISUCON14は感想戦と呼ばれるポータルやベンチマークが本番以降も使える機会が与えられました その期間なんと一ヶ月以上!また、今回の問題はいつにも増して遊び尽くせる問題になっている気配がしたのでやり込んでみました 感想戦での改善 感想戦ではざっくり三つの大きな改善を入れスコアを伸ばすことができました 大きな改善1 | 公式解説の改善 以下のISUCON14公式

                              ISUCON14感想戦で864,990点取る方法(参考値)
                            • Go 1.24リリース連載 Go Modulesにおけるツール管理の進化 | フューチャー技術ブログ

                              はじめにGo1.24 リリース連携の7本目です。 Go Modules におけるツール管理の進化について取り上げます。 アップデートサマリGo Modules で go.mod に tool ディレクティブが追加になったgo get -tool で tool ディレクティブに指定されたパッケージを追加できるgo get tool でツールのアップデートや、go install tool でツールのインストール、go tool hoge でツールの実行ができる、などインストールした実行ファイルは、Goのビルドキャッシュにキャッシュされるアップデートのモチベーションなど(#48429)歴史的経緯Goでアプリケーションを実装するときに、Goのツールを使って開発することはよくあります。Goのツールの例として、たとえばや fmt.Stringer インターフェースを満たすコードを生成する Strin

                                Go 1.24リリース連載 Go Modulesにおけるツール管理の進化 | フューチャー技術ブログ
                              1