goに関するu_tisのブックマーク (9)

  • graph-gophers/dataloaderはv7でgenericsに対応している - 詩と創作・思索のひろば

    GraphQL における N+1 問題の解決の機構として Dataloder と呼ばれるものがあるが、Go でこれを行うときは gqlgen + graph-gophers/dataloader という組み合わせがよく使われるようだ。後者は gqlgen の公式ドキュメントからも参照されているので、gqlgen を使っていれば自然とそうなりそう。 このへんの話は 【GraphQL × Go】 N+1問題を解決するgqlgen + dataloaderの実装方法とCacheの実装オプション - LayerX エンジニアブログ などに詳しい。 さて、この dataloaders ってのを普通に使ってコードを書いてみるとわかるのだけど、ロードのためのキーとして string を、ロードされた結果として interface{} を返すような実装になっている。つまり実際にデータベースにアクセスするよ

    graph-gophers/dataloaderはv7でgenericsに対応している - 詩と創作・思索のひろば
    u_tis
    u_tis 2022/09/20
    そうそうそうなんですよね
  • Go言語でのテストの並列化 〜t.Parallel()メソッドを理解する〜 | メルカリエンジニアリング

    この記事は、Merpay Tech Openness Month 2020 の6日目の記事です。 メルペイでBackendエンジニアをしている柴田(@yoshiki_shibata)です。この記事では、Go言語のtestingパッケージに用意されている並列化の機能について説明します。 Go言語では、テストコードを作成するためのtestingパッケージが用意されています。一般に開発するソフトウェアの規模が大きくなるに従って、作成されるテストコードの量も多くなり、すべてのテストが終了するまでの時間も長くなっていきます。特に、データベースへアクセスするようなテストでは、データベースへの通信時間がテスト時間の多く占めますので、テストコードを逐次実行するよりは並列実行することで、テスト時間を短縮できます(厳密には用語「並行」ですが、t.Parallel()メソッドの説明なので、この記事では用語「並列

    Go言語でのテストの並列化 〜t.Parallel()メソッドを理解する〜 | メルカリエンジニアリング
    u_tis
    u_tis 2020/08/24
    分かりやすすぎて教科書かと思っちゃったね...
  • プログラミングで辛かったこと。よかったこと。|Seiji Takahashi@ベースマキナ

    この流れです。 前提基的に自分はGoのサーバーサイドが主戦場で、カンファレンスにはよく顔を出します。最近はOSSを公開すればいい感じにGithub Trendsの上の方にきて目立つような、芸人っぽいムーブができるようになりました。 ですが、直近プライベートではGo以外にTypeScript(Next.js) でGraphQLのクライアント書いたり、仕事だと前はSwiftやらC++やらPerlやら色々使っていたので、他の方と比べると広く浅い経歴です。 また、大学に入ってから学習を始めましたし、当時はドットインストールが出始めたくらいで、基的には書籍で勉強していました。大学では授業でFORTRANの授業を取りました。内容は意味わからなかったので同級生に寄生してました。 Progateとかプログラミングスクールとかには頼ってませんでした。無かったので...。なので、「幼少期からBASICを触

    プログラミングで辛かったこと。よかったこと。|Seiji Takahashi@ベースマキナ
  • Goでheadless browserを用いた動的画像生成|Seiji Takahashi@ベースマキナ

    当ポストはGo Advent Calendar 2019の5日目の記事です。基ポエムを書いていて技術記事を書く感覚が鈍っていますが頑張ります。 今回はGoでheadless browser(Chrome)を用いた、動的な画像生成を行うというテーマで書きたいと思います。 なぜ画像生成したいのか?人はなぜ画像を生成したくなるのでしょうか?僕は漫然と画像を生成するのは、時間に限りがある身としてはよくないな、と思います。ということで理由が必要なのですが、最たる例はOGP画像の生成とかじゃないでしょうか? あるいは任意のLGTM画像を生成したくて、文字を画像にかぶせたり、インスタグラムVer1.1みたいなサービスをローンチしたい時に、フィルター加工を実装したかったりするかもしれません。 Go画像生成するには?Go画像生成する方法に関してはこの1、2年でpo3rinさんや僕がしばしば登壇して解説

    Goでheadless browserを用いた動的画像生成|Seiji Takahashi@ベースマキナ
    u_tis
    u_tis 2019/12/05
    Go Advent Calendar 2019の5日目の記事書きました〜
  • GoとDependency Injectionの現在|Seiji Takahashi@ベースマキナ

    tl;dr・Goの依存性注入は普通に行われるが、DIツールはまだ観測範囲では浸透していない。 ・直近出たGoogleGo向けDIツール「Wire」はシンプルなAPIやツール作成で有用だが、依存オブジェクトの設定が複雑化すると表現性に限界がくる ・Goにおいて、DIツールはある種のフレームワークと認識して慎重に採用すべき前提:Goの依存性注入と課題Goのコードを書く際、特に一定規模を超えたAPIを書く際は、依存するオブジェクトというのが増える。DBクライアントやロガーや各種ビジネスロジックを呼び出すサービス層などがそれに該当する。 レイヤー化されたパッケージ構成の下、こうした依存オブジェクトをトップダウンに注入していくやり方は見通しがよく、テスト時にモックのAPIクライアントを差し込みやすかったりと、テスタビリティを向上させる。ざっくり依存性注入が行われるようなレイヤー化された構成で、なん

    GoとDependency Injectionの現在|Seiji Takahashi@ベースマキナ
  • マルチクラウド環境のためのGoパッケージ、Go Cloudを使ってみた - Gunosy Tech Blog

    こんにちは、メディア事業部のエンジニアの@__timakin__ です。 僕が好きなGo言語は、先日バージョン1.11のリリースパーティも開かれ、wasmサポートやModules機能など、結構目新しさのある機能が足されることになりました。 で、その最新のGo界隈の話題の機能の一つとして、「Go Cloud」というものがあります。 github.com 先日のリリースパーティでも、@ymotongpooさんによってGo Cloudが紹介されていました。 docs.google.com Public Keyさんでもちょうど日記事が公開されていました。 www.publickey1.jp Go公式のブログ告知にもあるとおり、Goのエコシステムがより良くなる過程で、多くの企業・機関で課題となった「マルチ(ハイブリッド)クラウド」へのデプロイという、ポータビリティの実現のためのAPIを提供するパ

    マルチクラウド環境のためのGoパッケージ、Go Cloudを使ってみた - Gunosy Tech Blog
    u_tis
    u_tis 2018/09/07
    まだGo Cloudを使った系の記事でてなくて、チャンスっぽかったのでやりました٩(‘ω’)و
  • Go言語チームとGoogleが「Go Cloud」プロジェクト発表。同一コードでAWSやGoogle Cloudなどに対応できるポータブルなクラウドアプリの実現へ

    Go言語チームとGoogleが「Go Cloud」プロジェクト発表。同一コードでAWSGoogle Cloudなどに対応できるポータブルなクラウドアプリの実現へ Go言語チームとGoogleは、オープンソースの新プロジェクトGo Cloud」を発表しました。 Go Cloudは、さまざまなクラウドの一般的な機能を共通のAPIで利用できるようにすることで、Go言語のソースコードを書き換えることなくポータブルなクラウドアプリケーションの実現を目指すというものです。 Go言語はGoogleが中心となってオープンソースで開発されているプログラミング言語で、シンプルにコードを記述できるため学習コストが小さく、タイプセーフかつメモリセーフにできているため安全なプログラムを記述しやすく、並列処理の記述も容易、コンパイルや実行が高速などの特長があります。 また、WindowsmacOSLinux

    Go言語チームとGoogleが「Go Cloud」プロジェクト発表。同一コードでAWSやGoogle Cloudなどに対応できるポータブルなクラウドアプリの実現へ
    u_tis
    u_tis 2018/09/05
    結構前の話だけど、なぜいまこれがニュースになってるんだろう。。
  • テストコードとスピードのトレードオフ。加えてGoのAPIのテストについて。

    「テスト 書くべき」って検索すると玉石混交な記事がわんさか出てくるのですが、そもそもなんでこういった議論は常に紛糾するのでしょうか? 僕個人としては、テストコードというものへの捉え方はその現場の思想に密に依存しており、その前提を明示しないまま議論を進めると、「スピード感」「技術者の習熟度」「自社開発か否か」などの様々な変数の違いによって意見がい違い、容易に銃弾飛び交う戦場と化す、と考えています。 そのため、この議論を始めるのは下手をするとパンドラの箱をパカっと開けて、収集つかないことになるのかなーと思っています。 僕の置かれている前提ということで、流れ弾で死にたくないのでまず僕の前提を明らかにします。 個人的な趣味趣向の話まず個人的な立場を表明しておきますが、僕は書くまでは、億劫なんだけど書き始めたら割と好きで黙々と書いていたくなるタイプです。かといって、仕様がピョンピョン変わる現場での

    テストコードとスピードのトレードオフ。加えてGoのAPIのテストについて。
  • Go APIサーバーの設計について、golang.tokyo#9で話しました。 - Gunosy Tech Blog

    どうも、Gunosyの新規事業開発室エンジニア、高橋(@__timakin__)です。 先日行われたgolang.tokyo#9にて、GoAPIサーバーの設計についてトークをする機会を頂いたので、いってきました。 スライドはこちらです。全編英語となっておりますが、ご覧頂けると幸いです。 speakerdeck.com 概要 アジェンダの前の序文にも書いてあるのですが、GoAPIが大企業で試験的に導入するというフェーズを超え、スタートアップなどでも「Goって最近トレンドだよね」という声が聞こえ、小規模のチームでも積極的に登用されるようになってきたように感じます。 あくまで個人の観測範囲での話なのでバイアスがあるとは思いますが、「試してみた」というトークが界隈でも最近少なくなったように思います。 そんな中、参考例となるGoAPIのOSSは非常に少ないため、新規に始めるハードルは、学習コス

    Go APIサーバーの設計について、golang.tokyo#9で話しました。 - Gunosy Tech Blog
    u_tis
    u_tis 2017/10/03
    ワクワクドキドキ設計の話しました。
  • 1