並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 2316件

新着順 人気順

GOの検索結果321 - 360 件 / 2316件

  • Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog

    ABEJA で Research Engineer をやっている中川です.普段は論文読んだり,機械学習モデルを実装したり,インフラを構築したりしています.今回のブログでは,Insight for Retail の一機能として提供しているリピータ分析に用いる特徴量DBの改善に向けた言語選定について紹介します. ※ たくさんの方々からのコメントありがとうございます.いただいた観点をベースに「2020-04-14 追記」以下に実験を追加しました. モチベーション リピート分析では,任意の特徴量をクエリに最も類似した特徴量を数100msec以内に検索する必要があり,一般的なデータベースでは実現することが難しいという課題がありました.そこで,われわれは python で独自のインメモリデータベースを実装し運用してきました.このデータベースがサービスの成長に合わせて限界を迎えつつあるので,アルゴリズム

      Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
    • GoのテストをCIで簡単に並列実行する | おそらくはそれさえも平凡な日々

      https://github.com/Songmu/gotesplit gotesplitというかなり便利なツールを書いた。Goのテストをいい感じのサブセットに分割して、それを実行するものです。このアプローチで、社内のテストを15分から3分くらいまでに短縮しました。 これを使えばCI環境での高速なテストの並列実行を簡単に実現できます。 実例 CircleCIやGitHub Actions上で簡単に導入できます。 CircleCIの場合 parallelism: 5 docker: - image: golang:1.15.3 steps: - checkout - run: command: | curl -sfL raw.githubusercontent.com/Songmu/gotesplit/main/install.sh | sh -s bin/gotesplit ./... -

        GoのテストをCIで簡単に並列実行する | おそらくはそれさえも平凡な日々
      • Go関連の比較的新しいTips - Plan 9とGo言語のブログ

        READMEにpkg.go.devのバッジを貼る godoc.orgはpkg.go.devに移行していくことが告知されているので、新しいプロジェクトではREADME.mdに貼っているバッジを移行しましょう。pkg.go.devのURLやバッジは // バッジ https://pkg.go.dev/badge/<package path> // リンク https://pkg.go.dev/<package path> の形を取ります。例えばgithub.com/lufia/backoffの場合は以下のように書きます。 # Backoff ...summary... [![GoDev][godev-image]][godev-url] ...description... [godev-image]: https://pkg.go.dev/badge/github.com/lufia/back

          Go関連の比較的新しいTips - Plan 9とGo言語のブログ
        • 今やゲームのDLソフト購入が当たり前になっていることを考えると、DL販売限定のPSP goは時代を先取りしすぎていたのか

          まかべひろし @sinpen 今やDLソフトがパッケージよりもずっと売れてることを聞く度に、あの時みんなもう少し未来を見てくれてればなあ、なんて思ってしまう。 pic.twitter.com/NhV9PRr0cJ 2023-07-05 14:27:04 まかべひろし @sinpen 今思い返してみても、当時のソフト容量に対しての回線速度やストレージサイズの比率は、今とさほど変わりはなく、変わったのは「DL版で揃えると入れ替えなくて便利」という理解が進んだ程度。 当時だってDL版主流になる可能性はあったのに、無理解って悲しい。 2023-07-05 14:34:16 Christopher Dring @Chris_Dring Lots of folks asking about digital sales this month. We'll delve into it in the mon

            今やゲームのDLソフト購入が当たり前になっていることを考えると、DL販売限定のPSP goは時代を先取りしすぎていたのか
          • Stable Diffusionによる生成AIの基本から最新テクニックまで。グラビアカメラマンが教える、生成AIグラビア実践ワークショップ(第4回)参加者募集 | テクノエッジ TechnoEdge

            テクノエッジ編集部では、生成AIグラビア実践ワークショップ第4回を開催します。講師は、人気連載「生成AIグラビアをグラビアカメラマンが作るとどうなる?」の著者である西川和久さんです。 高価なゲーミングPCがなくても自分で高速な画像生成ができるサービス「生成AI GO」を無料で使いながら、生成AIに関する知見とグラビアカメラマンとしての豊かな経験から得られた最新かつ実践的なテクニックを学べます。 なお、ワークショップ内で使用するプロンプトは、受講者向けにドキュメントとして公開し、その場でコピペするだけで画像生成を体験できる、非常に簡単な仕組み。生成した画像はその場で自分のパソコンに保存できます。 第4回は、1月23日、オンラインにて開催いたします。なお、今回お申し込みいただいた方は、第3回の動画アーカイブを視聴いただけます。 グラビアカメラマンが教える、生成AIグラビア実践ワークショップ 申

              Stable Diffusionによる生成AIの基本から最新テクニックまで。グラビアカメラマンが教える、生成AIグラビア実践ワークショップ(第4回)参加者募集 | テクノエッジ TechnoEdge
            • CPUキャッシュがGoのコードに与える影響(翻訳)|TechRacho by BPS株式会社

              繰り返しますが、正確な図はプロセッサモデルによって異なります。ここでは見積もりのため、以下の目安で考えます。メインメモリのアクセスに60ns(ナノ秒)かかり、L1キャッシュへのアクセス速度はその約50倍高速だとします。 さて、プロセッサの世界には「参照の局所性(locality of reference)」と呼ばれる重要な概念があります。プロセッサがメモリ上の特定の場所にアクセスするとき、以下のように予測を立てます。 近い将来、メモリ上の同じ場所にアクセスする可能性が非常に高い これは「時間的局所性(temporal locality)の法則」です 近い将来、メモリ上のその場所からごく近い場所にアクセスする可能性が非常に高い これは「空間的局所性(spatial locality)の法則」です CPUにキャッシュが存在する理由のひとつが、この時間的局所性です。では空間的局所性を高めるにはど

                CPUキャッシュがGoのコードに与える影響(翻訳)|TechRacho by BPS株式会社
              • Go言語を習得するために、Goちゃんねるを作った

                先週、A Tour of Go やってみた TIL というブログを書いてみた通り、Go言語を始めた。 で、ちまちま勉強をしていたのだが、つい最近たまたま ISUCON の過去問をやる機会があって Go のスコアを見たら初期値ですら、チューニング済みの他の言語のスコアを超えていて、絶対に習得するぞの気持ちにさせられた。 ちなみに私はどう言うわけかフロントエンドのソースコードをビルドしたら vite が走ってファイルハッシュが全部変わって、ベンチマークからアクセスできなくなって0点でした。対戦ありがとうございました。 なにはともあれ、本番は絶対にGoでやるぞの気持ちを新たに Go の習得に励んでいた。前のブログでは、文法が分かったから HTTPサーバー DB Connection / Migration 境界値チェックや型推論 テスト スキーマ駆動開発 コンテナデプロイ あたりをやってみたいと

                  Go言語を習得するために、Goちゃんねるを作った
                • MarkdownベースのGo製タスクランナー「xc」のススメ

                  Goにおけるタスクランナーの歴史 npmならnpm run、denoならdeno taskなど言語ツールにタスクランナー機能が付属していることがありますが、Goではそのような機能は提供されていません。 そこでGoのプロジェクトではMakefileがタスクランナーとして用いられることがしばしばありますが、独自の文法、.PHONYを大量に書く必要がある、Makefile警察が飛んでくる、などの問題があります。 Makefile警察「ぐぬぬぬ…」 #taskfile - Qiita タスクランナーとしてMakefileを使うことから脱却すべく、巷ではYAMLベースの「Task」やGoベースの「Mage」が用いられている印象です。 どちらも多少試したことはありますが、主に以下の点が気になりました。 Taskfile.ymlやmagefile.goといったツール独自のファイルを置く必要がある これは

                    MarkdownベースのGo製タスクランナー「xc」のススメ
                  • 賞金3分の1、囲碁本因坊戦なぜ大幅縮小? 「どう考えても無理が」:朝日新聞デジタル

                    ","naka5":"<!-- BFF501 PC記事下(中⑤企画)パーツ=1541 -->","naka6":"<!-- BFF486 PC記事下(中⑥デジ編)パーツ=8826 --><!-- /news/esi/ichikiji/c6/default.htm -->","naka6Sp":"<!-- BFF3053 SP記事下(中⑥デジ編)パーツ=8826 -->","adcreative72":"<!-- BFF920 広告枠)ADCREATIVE-72 こんな特集も -->\n<!-- Ad BGN -->\n<!-- dfptag PC誘導枠5行 ★ここから -->\n<div class=\"p_infeed_list_wrapper\" id=\"p_infeed_list1\">\n <div class=\"p_infeed_list\">\n <div class=\"

                      賞金3分の1、囲碁本因坊戦なぜ大幅縮小? 「どう考えても無理が」:朝日新聞デジタル
                    • Go言語低レイヤー入門 Hello world が 画面に表示されるまで (GoConforenceTokyo2021)

                      Go言語低レイヤー入門 Hello world が 画面に表示されるまで @DQNEO (ドキュネオ) Go Conference Tokyo 2021 2021-04-24

                        Go言語低レイヤー入門 Hello world が 画面に表示されるまで (GoConforenceTokyo2021)
                      • GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG

                        はじめに こんにちは。ブランドソリューション開発本部FAANSバックエンドブロックの佐野です。普段はサーバーサイドエンジニアとして、FAANSのバックエンドシステムを開発しています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗で働くショップスタッフの販売サポートツールです。例えば、コーディネート投稿機能や成果確認機能などを備えています。投稿されたコーディネートはZOZOTOWNやWEAR、Yahoo!ショッピング、ブランド様のECサイトへの連携が可能です。成果確認機能では、投稿されたコーディネート経由のEC売上やコーディネート閲覧数などの成果を可視化しています。 本記事では、成果データの集計処理におけるBigQueryのクエリ実行処理のユニットテストをGoで実装した取り組みと、その際の工夫についてご紹介します。 目次 はじめに 目次 成果データの集計処理とは 抱え

                          GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG
                        • 資料公開:「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
                          • GitHub - greymd/mamadm: ママ活の勧誘のメッセージを自動生成する

                            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 - greymd/mamadm: ママ活の勧誘のメッセージを自動生成する
                            • Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog

                              こんにちは、バックエンドエンジニアの夏(なつ)です。今回はMirrativのバックエンドで使っているライブラリをご紹介します。 これらの記事のバックエンド版になります!(2年越し) tech.mirrativ.stream tech.mirrativ.stream ライブラリ一覧 https://pkg.go.dev/ オリジナルの The Go gopher(Gopherくん) は Renée French によるデザイン cloud.google.com/go/bigquery 分析チームが生成したユーザの特徴量などがBigQuery上に存在しているため、それらをバッチ処理でMySQL上に取得する際に利用しています。 tech.mirrativ.stream cloud.google.com/go/compute/metadata 開発環境などでしか動いてほしくない処理が本番環境上で動

                                Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog
                              • 実用 Go言語

                                業務プログラミングの現場でも採用されるようになってきたGo言語。文法はシンプルで学びやすいという特徴を持っていますが、複雑な要件を実現するには、プログラミング言語が提供する構成要素(文法やライブラリ)をさまざまに組み合わせる必要があります。 本書は、そんなGoを使う上でのポイントを単なる文法詳解ではなく「よりGoらしく書くには」「実用的なアプリケーションを書くには」といった観点から紹介します。 構造体やインタフェースの使い方からJSON、CSVファイル、Excel、固定長ファイルの扱い方、またログやテスト、環境構築など現場に即した幅広いトピックについて、「Goらしいプログラムの書き方」をその背景と共に教えてくれる先輩のような書籍です。 まえがき 1章 「Goらしさ」に触れる 1.1 変数やパッケージ、メソッドなどに名前を付けるには 1.1.1 変数名 1.1.2 パッケージ名 1.1.3 

                                  実用 Go言語
                                • 少しずつ育てるGo言語のプロジェクト構成

                                  23/9/21追記:この記事を読む前に ついにGoチームから、プロジェクト構成に関するガイドが公開されました! 本記事を読んでくださることも大変嬉しいですが、ぜひこちらのガイドもご一読ください! この記事は何 Go言語を書いたことがある方も、興味はあるけど触ったことがない方もこんにちは。 Goに限った話ではないと思いますが、ガリガリコードを書いていて、あるタイミングで気になるのがプロジェクト構成(ここではディレクトリ構成の意図)ではないでしょうか? それを裏付けるかのように、Go界隈では以下のリポジトリが話題に上がることがあります。Star数すごいですね😇 リポジトリ名から公式感が漂いますが、そういう訳ではないのがミソです。 こちらのリポジトリ冒頭にも記載されていますが、次の点に留意する必要があるでしょう。 これは、Goアプリケーションプロジェクトの基本的なレイアウトです。これは、コアと

                                    少しずつ育てるGo言語のプロジェクト構成
                                  • GitHub CLI

                                    $ gh issue list gh pr status gh pr checkout gh pr create gh pr checks gh release create gh repo view gh alias set View and filter a repository’s open issues. Check on the status of your pull requests. Check out pull requests locally. Create a new pull request. View your pull requests’ checks. Create a new release. View repository READMEs. Create a shortcut for a gh command.

                                      GitHub CLI
                                    • IAM Identity Center のロールで発行される一時認証情報をaws-sso-go 経由で 1Password に入れて利用する - 継続は力なり

                                      タダです. 以前の記事で 1Passowrd Shell Plugin を使って IAM アクセスキーとシークレットアクセスキーを保存して AWS CLI を使うのをやってみました.この記事では IAM Identicy Center(旧 AWS SSO) のロールで発行される一時認証情報を 1Password に入れたり更新ができたらローカルにクレデンシャルを残さずに使えてセキュアになるため,その検証を行ったのをまとめていきます. sadayoshi-tada.hatenablog.com IAM Identity Center のロールで発行される一時認証情報を保管する 保管したクレデンシャルを使って AWS CLI を実行する まとめ IAM Identity Center のロールで発行される一時認証情報を保管する IAM Identity Center と 1Password の

                                        IAM Identity Center のロールで発行される一時認証情報をaws-sso-go 経由で 1Password に入れて利用する - 継続は力なり
                                      • Go をセキュアに書き進めるための
「ガードレール」を整備しよう / Let's Build Security Guardrails For Your Go Programs!

                                        Go Conference 2021 Spring (B7-S) で使用した資料です。 - セッションの詳細: https://gocon.jp/sessions/session-b7-s/ - 発表者: https://twitter.com/lmt_swallow - 資料に誤りがあれば是…

                                          Go をセキュアに書き進めるための
「ガードレール」を整備しよう / Let's Build Security Guardrails For Your Go Programs!
                                        • https://twitter.com/igokyoto/status/1515332502050680835

                                            https://twitter.com/igokyoto/status/1515332502050680835
                                          • テストのためだけに`interface`を書きたくないでござる — KaoriYa

                                            golangでテストのためだけにinterfaceを書くのが死ぬほど嫌だったので編み出した技を紹介します。 TL;DR テスト(=mock)のためだけにinterfaceは切りたくない 型エイリアスとビルドタグを組み合わせるとinterfaceがなくてもモックが作れる この手法に必要なモックを自動生成するプログラムを作った interfaceは本当に必要なシーンで使うべき Background 現在モックを使った単体テストは一般的です。 Javaでの例を挙げると、モックしたいコンポーネントについて予めinterfaceを定義しておき、モックではそのインターフェースを実装するのが定石です。 しかしgolangのinterfaceはJavaなどのそれとは若干性質が異なるため、テスト=モックのためだけにinterfaceを書くのはオーバーワーク気味です。 そうテストのためだけにinterface

                                            • 有効期限を過ぎても消えないインメモリキャッシュの謎 - 私が歌川です

                                              tl;dr キーワードは「monotonic clock」です。 あらすじ Goで以下のようなコードを書いていた*1*2。あるAPIを叩くクライアントで、APIコールに必要なアクセストークンを4時間キャッシュしている。c.getToken() で得られたトークンを使ってAPIコールを行えばよい。 type Client struct { mu sync.RWMutex expiresAt time.Time token string } // トークンのキャッシュがあればキャッシュから返し、なければ更新してから返す func (c *Client) getToken() string { if cachedToken, ok := c.getTokenFromCache(); ok { return cachedToken } return c.refreshToken() } // トー

                                                有効期限を過ぎても消えないインメモリキャッシュの謎 - 私が歌川です
                                              • テストケースの名前には条件と結果を含めた方が良い - 感情を込める

                                                という考えにたどり着いたので、考えのスナップショットをとっておく。 Go言語における、テスト関数名とサブテストのname引数の値を「テストケースの名前」・「テスト名」と呼ぶことにしている。 (*testing.T).Run(name string, f func(t *testing.T)) bool テスト名に近いものとして、(*testing.T).Errorや(*testing.T).Logの引数がある。これらはテスト実行時の出力に含まれるが、テストケースを分かつものではない。あくまで、特定のテストケース内の情報を増やすものだ。対するテスト名は、(通常は)テストケースを分割できる最小単位である。 テストケースがテスト名の単位で存在するということは、テスト名はそのテストケースを十分に表現できていたほうがよいということだ。さもなくば、検証・変更しようとする仕様に対応するテストケースや、実

                                                  テストケースの名前には条件と結果を含めた方が良い - 感情を込める
                                                • Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ

                                                  PerlにはRegexp::Assembleという便利なライブラリがあります。 複数の正規表現を受け取り、それらのいずれかにマッチする正規表現を構築するためのライブラリです。 my $ra = Regexp::Assemble->new; $ra->add( 'ab+c' ); $ra->add( 'ab+\\d*\\s+c' ); $ra->add( 'a\\w+\\d+' ); $ra->add( 'a\\d+' ); print $ra->re; # prints (?:a(?:b+(?:\d*\s+)?c|(?:\w+)?\d+)) このライブラリのGo実装を金曜日の夜から書き始めて、ようやく形になってきたので公開しました。 package main import ( "fmt" "log" "github.com/itchyny/rassemble-go" ) func main

                                                    Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ
                                                  • Golang開発者のためのクリーンアーキテクチャ

                                                    はじめに クリーンアーキテクチャは、ソフトウェア設計の分野で非常に重要な概念です。 しかし、その理解は容易ではなく、明確な正解が存在するわけではありません。 多くの人が異なる解釈を持ち、他の設計思想と混在していることもあります。 この記事では、自分なりの視点からクリーンアーキテクチャを解釈し、その整理した内容を共有します。 このアーキテクチャの目的は、システムの各層を独立させ、変更に強く、テストしやすい設計を実現することです。 この記事では、クリーンアーキテクチャの基本概念、Golangでの実装方法、およびディレクトリ構成について詳しく説明します。 なお、この記事では個人的な見解を述べており、必ずしも正解を書いているわけではありません。もし誤りがあれば、ぜひご指摘いただけると幸いです。 クリーンアーキテクチャの基本概念 クリーンアーキテクチャの元となったのは、ロバート・C・マーチン(通称「

                                                      Golang開発者のためのクリーンアーキテクチャ
                                                    • Compile SQL to type-safe code

                                                      You write SQL queries You run sqlc to generate code that presents type-safe interfaces to those queries You write application code calling the methods sqlc generated. Seriously, it's that easy. You don't have to write any boilerplate SQL querying code ever again. See the current list of supported programming languages and databases. Schema updates and poorly-written queries often bring down produc

                                                        Compile SQL to type-safe code
                                                      • ECSとGoで構築したシステムにDatadogを導入する | おそらくはそれさえも平凡な日々

                                                        追記: GoのアプリケーションをOpenMetricsを使ってObservableにする方法については別エントリを書きました。 → https://songmu.jp/riji/entry/2020-05-18-go-openmetrics.html ECSとGoで運用しているシステムに対するDatadogの日本語知見があまり無さそうだったので書いてみる。ちなみに以下の環境です。 ECS on EC2 (not Fargate) アプリケーションコンテナのネットワークモードはbridgeモード 動的ポートマッピングも利用 背景として3月にNature Remoのインフラアーキテクチャ改善をしていて、その前にもうちょっと監視を整えたほうが良いな、ということでDatadogを導入したのがある。テストがないとリファクタリングできないように、監視がないとアーキテクチャのアップデートもやりづらいとい

                                                          ECSとGoで構築したシステムにDatadogを導入する | おそらくはそれさえも平凡な日々
                                                        • プラットフォーム依存しない新しい「Docker Compose」 マルチコンテナをクラウドに簡単デプロイ

                                                          DockerCon 2021 にあわせて、ひさびさに開催された「Docker Meetup Tokyo」 DockerConの振り返りのほか、Docker 20.10の新機能や、大幅に新しくなったDocker Composeについてお知らせします。ゴリラ氏からは、Docker Composeの概要について発表がありました。 Docker CLIに梱包された新しいdocker compose ゴリラ氏:「新しいDocker Compose」と題して発表します。よろしくお願いします。 軽く自己紹介をします。ゴリラと申します。好きなものはGo、Vim、Dockerとかで、最近はちょっとDenoにハマっています。趣味はVimのプラグインだったり、Goを使ったCLIだったり、開発が多いです。あとは興味がある分野の勉強だったり、記事を書いたりです。最近はジムに行っていて、ムキムキな体を目指しています。

                                                            プラットフォーム依存しない新しい「Docker Compose」 マルチコンテナをクラウドに簡単デプロイ
                                                          • Go + TypeScriptによるGraphQLスキーマ駆動開発 - 一休.com Developers Blog

                                                            こんにちは。宿泊事業本部の宇都宮です。この記事では、GraphQLをベースに、GoとTypeScriptでスキーマを共有しながら開発を進める方法について紹介します。 この記事は 一休.com Advent Calendar 2019 の16日目の記事です。 GraphQLとは ライブラリの選定 コードファースト vs スキーマファースト Goによるサーバ実装 TypeScriptによるクライアント実装 おわりに 参考文献 GraphQLとは GraphQLは、Facebookによって開発された、Web APIのための クエリ言語 です。その特徴もSQLに似ていて、データの取得や更新を宣言的な記述によって行うことが出来ます。 仕様は公開されており、リファレンス実装として graphql-js がありますが、それ以外にも様々な言語でGraphQLサーバを実装できます。 GraphQLでは以下の

                                                              Go + TypeScriptによるGraphQLスキーマ駆動開発 - 一休.com Developers Blog
                                                            • Ubie創業期にKotlinを導入した私が、社の技術選定の転換について思うこと|たろう

                                                              Kotlinエバンジェリストとして、ガッカリしょんぼり…!? Ubieが、KotlinをやめてGoとNode.jsへの転換を決定したことについて、私がこれをどう受け止めたのか… こんにちは。私はたろうと言います。 Ubie株式会社 Ubie Discoveryに勤めるソフトウェアエンジニアです。 業務外では、Kotlinエバンジェリストとして講演や執筆を行なったり、技術カンファレンス「Kotlin Fest」の運営代表を務めたりしています。 先日「Ubie は Go と Node.js の会社になります」という記事が、同じくUbie Discoveryのyukuというソフトウェアエンジニアにより発信されました。 新しいアプリケーションを立ち上げる際には、その役割に応じてGoで書くかNode.jsで書くかの2択となり、今後はKotlinを使わない。記事の内容を噛み砕くと、そんな感じです。 私

                                                                Ubie創業期にKotlinを導入した私が、社の技術選定の転換について思うこと|たろう
                                                              • Go公式のlinter、Golintが非推奨になった

                                                                Goが公式で出していたGolintがdeprecated/frozenしました。 メンテがされていない 2018年から実質的な変更が加わってない Issueも放置されているものが多い golang orgに存在するlinterなのでGoが公式として推奨しているlinterに見える Go が実際には保守されていないプログラムを公式として推奨しているように見えてしまう 開発者は合理的に異なるスタイルを採用したい場合がある Golint単体で特定の警告を無視したりするなどの機能を持っていない ということからattractive nuisance(魅力的な迷惑者)になっているというProposalでした。 Issueの議論を見てもdeprecate/frozenすることに対して否定的な意見は少なく、一年ほど前にapproveされました。(なので「非推奨にしよう」なったの自体は少し前の話です) そし

                                                                  Go公式のlinter、Golintが非推奨になった
                                                                • リーダブルアーキテクチャ - usecaseにおける時間軸と抽象度の統一 - Qiita

                                                                  はじめに Clean Architectureやレイヤードアーキテクチャでは、どのようにレイヤーを定義するかついては言及されています。 そのような中usecase(レイヤードアーキテクチャではApplication層)をどのように実装するべきかについての議論は少ないです。 しかし私はリーダブルなアーキテクチャを実現するために、一番大切なことはusecaseを適切に実装することであると考えています。 そこでusecaseを実装する上で起こりがちな抽象度の問題を例に、リーダブルなアーキテクチャを考えいていきたいと思います。 サンプル 1:1のチャットアプリでUserとWorkerが存在して会話ができるアプリを例にあげます。 以下の図では青い背景はinfraの関数実行、緑色の背景はdomainの関数実行、赤い背景はusecaseの関数実行を示しています。 usecaseのCreateChat関数

                                                                    リーダブルアーキテクチャ - usecaseにおける時間軸と抽象度の統一 - Qiita
                                                                  • レコメンドへの大規模アクセスを支えるGo製サーバーの裏側

                                                                    CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again

                                                                      レコメンドへの大規模アクセスを支えるGo製サーバーの裏側
                                                                    • Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita

                                                                      はじめに みなさん様々な言語でAPIサーバーを立てて負荷試験を実施したことはありますか。 私自身、業務でPythonのアプリケーションに対して負荷試験を実施した経験があります。 その際にPythonの速度観点の不安定さを目の当たりにしたと同時に、別の言語ではどのような違いが生まれるのだろうか、という疑問を持ちました。 そこで今回は、簡単ではありますがGoとRustとPythonでそれぞれAPIサーバーを立てて負荷試験をしてみます。 負荷試験対象のAPIサーバー 今回は(1) Hello, World!を返すAPI(2)ファイル読み込みAPI(3)1秒待ってから応答するAPIの3つを実装します。 (1)はAPIサーバー自体の応答速度の計測、(2)はメモリを消費する処理が生じた場合のAPIの応答速度の計測、(3)は待ち時間発生している時のAPIの応答速度の計測することが目的です。 (2)につい

                                                                        Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita
                                                                      • vimで高速コーディングする方法 - Qiita

                                                                        こんにちわ、ゴリラです。 Vimといえば高速でコーディングできるという印象を持っている方が多いのではないでしょうか? 今日は、Postfix Code Completion という手法をつかって早くコーディングする方法紹介します。 この方法を使えば次のgifのように、さくっとJSONを返すHTTPサーバーを立てられます。 Postfix Code Completionとは 後置補完という補完手法です。 例えば、(a == b)に対してifを使いたい場合は(a == b).ifと入力して展開するとif (a == b) { }というふうに補完してくれます。 後ろのコードifが前のコード(a == b)に作用するという考え方です。 これを積極的に使用していくとより高速にコーディングできるようになります。 僕の場合は、割と後置補完だけではなくスニペットのように使っています。 VimでPostfi

                                                                          vimで高速コーディングする方法 - Qiita
                                                                        • Goのテストに入門してみよう! | フューチャー技術ブログ

                                                                          2020/08/15更新: 「テストの失敗をレポートしたい」と「サブテストの一部のみ実施したい」の章を追加 はじめにTIG の辻です。今回は春の入門祭りということで Go のテストに入門してみよう! という記事です。 書いた背景ですが Go の標準ライブラリのコードリーディング会で testing パッケージにチャレンジしてみましたが、難しすぎてわからん。そもそも Go のテストって何ができるんだっけ? という話になり、基本的な内容をなるべく具体例をまじえながらまとめました。 ざっとどんなことができるんだろう、という index になれば幸いです。 TipsGo に組み込まれているテストの仕組みの中に、ベンチマークに関するテストと Example テストというサンプルコード用のテストも含まれているのですが、この 2 つは対象外にします。基礎的と思われる内容から順に並べてみました。 はじめに

                                                                            Goのテストに入門してみよう! | フューチャー技術ブログ
                                                                          • スキーマファースト開発のためのOpenAPI(Swagger)設計規約 | フューチャー技術ブログ

                                                                            はじめまして。TIG DXユニット 1の亀井です。 はじめに みなさん、Swagger使ってますか? Swaggerや周辺ツールについては 某先輩の記事 にて丁寧に解説されていますので、 本記事では実際にSwaggerのスキーマ定義を設計していく上で取り決めた規約について書いてみたいと思います。 前提私が在籍しているプロジェクトでは、REST APIは golang でフロントエンドを Vue.js + TypeScript で構築しています。 短期間・高品質での構築を実現するためにSwaggerを設計ドキュメントとしてだけではなく、コード自動生成やモックサーバーに活用させることで徹底したスキーマファーストな開発を行ってきました。 というわけで、今回は下記のツールを利用することを前提として規約を作成しています。 go-swagger: Goアプリケーションのハンドラ、リクエスト/レスポンス

                                                                              スキーマファースト開発のためのOpenAPI(Swagger)設計規約 | フューチャー技術ブログ
                                                                            • Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース

                                                                              Googleが中心となってオープンソースで開発されているGo言語の最新版となる「Go 1.18」正式版がリリースされました。 Go go1.18 is released! Release notes: https://t.co/UFumhMjcOL Download: https://t.co/fnDCVVhJXK#golang pic.twitter.com/uWNSy5V7nv — Go (@golang) March 15, 2022 ブログ「Go 1.18 is released!」によると、Go 1.18は、「massive release that includes new features, performance improvements, and our biggest change ever to the language.」(新機能、性能改善、そして過去最大の変更の変

                                                                                Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース
                                                                              • gRPCのGo実装の新星、Connect | フューチャー技術ブログ

                                                                                サービス間通信とIDL(インタフェース記述言語)連載の2日目のエントリーです。 本当はGraphQLネイティブなデータベースの紹介をしようとしたのですが、紹介しようとしていたものがまだベータでクライアントライブラリが公開されていない(空っぽのリポジトリしかない)みたいな感じで試せなかったので、急遽2022/6/1に公開されたばかりのgRPC関連のライブラリのConnectを紹介することにしました。 Connectの開発元が公開したブログは次のサイトにあります。 Buf | Connect: A better gRPC 公式ドキュメントはこちらです。 Introduction | Connect なお、gRPCについての詳細はこのエントリーでは紹介しません。ちょうど、H.SakiさんがgRPCの詳しい紹介の記事を書いてくれているので、ぜひ、みなさんこちらを参照ください。 作ってわかる! はじ

                                                                                • Go 脱初心者への道

                                                                                  最近、 Go の学習を始めました。入門書や 公式のチュートリアル を終えてもなかなか解らないことをまとめてみました。 1. パッケージ作成・パッケージ管理 1. a. ディレクトリ構成は非公式ながら標準と目されるものがある(らしい) Standard Go Project Layout /cmd にmainのアプリケーションのソースを置きます。 /pkg にライブラリのソースを置きます。 /src にソースを置いてはいけません。 なお、このディレクトリ構成は go コマンド(go build 等)がデフォルトで認識するディレクトリ (/src , /pkg , /bin) とは全く異なるので注意が必要です。 2021-05-24 追記 このレイアウトは殆ど普及していないとのこと。また、リポジトリ名が「標準」を名乗るのは誤解を招くとのissueも挙がっています。 個人的な意見として、ライブラ

                                                                                    Go 脱初心者への道

                                                                                  新着記事