タグ

GoとAPIに関するMukeのブックマーク (13)

  • 100万回のWebSocket接続とGo | POSTD

    こんにちは。私はSergey Kamardin(セルゲイ・カマルディン)です。Mail.Ru(ロシアの電子メールサービス会社)で開発者をしています。 この記事では、どのように私がGoを使って高負荷対応のWebSocketサーバを開発したかについて説明したいと思っています。 パフォーマンス最適化のアイデアやテクニックを通じて、WebSocketの知識はあるもののGoについてはほとんど知らないという方のお役に立てれば幸いです。 1. はじめに まずは開発に至った経緯について、どうして私たちがこのサーバを必要としたのかを説明しておきましょう。 Mail.Ruには多くのステートフルなシステムがあります。ユーザのeメール保存もその1つです。システム内、およびシステムイベントの状態変更を追跡する方法にはいくつかの種類がありますが、それらは主に状態変更に関するシステム通知、または周期的なシステムのポーリ

    100万回のWebSocket接続とGo | POSTD
  • Golang + echoなREST APIサーバで、テスト実行時に自動でAPIドキュメントを生成できるようにする - 一から勉強させてください

    最近、Golang (+echo) で REST API サーバを開発する機会があったのですが、テストを書いたら API ドキュメントを自動生成するような仕組みを作るために試行錯誤したのでメモです。 方針 API ドキュメントの生成にはtest2docを利用 テストを実行すると API Blueprint 形式でファイルを自動生成してくれそう 該当するメソッドの上にコメントを書くことで最低限の説明は記述できそう README には gorilla/muxと julienschmidt/httprouterのサンプルしか載っておらず echoでうまく動くかは試してみるしかなさそう テストから生成された .apibファイルをaglioみたいなツールにかませば HTML ファイルとして API ドキュメントができそう プロジェクト構成 github.com/danimal141/rest-api

    Golang + echoなREST APIサーバで、テスト実行時に自動でAPIドキュメントを生成できるようにする - 一から勉強させてください
  • Gunosy広告配信を支えるGo ~キャッシュ編~ - Gunosy Tech Blog

    広告技術部の今川です。 わたしは主にGoを使って広告配信APIの改修を担当しています。 今回はAPIの高速化のためにキャッシュを使った話をご紹介します。 データベースへのアクセス頻度を減らすための努力 広告技術部では、広告配信APIのCTRの予測で利用する特徴ベクトルをAmazon Auroraに保存しています。 しかし、単純にデータ取得時に毎回Auroraに問い合わせていては処理速度が遅くなってしまうので、以下の二種類の方法で高速化を図っています。 1. キャッシュする 予測ロジックで利用するデータの中でも、ユーザーに関するベクトルはユーザーIDをキーにユーザー数だけのデータが存在する反面、すべてのユーザーが同じ時間帯にアクセスするとは限らず、一度訪問したユーザーが続けて何回もアクセスする場合が多いという特徴があります。 このため、利用したいデータがキャッシュに無ければAuroraに問い

  • 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
  • Go で API サーバーを開発してきて1年が過ぎました | カメリオ開発者ブログ

    白ヤギの開発者の森です。 白ヤギでは Go 言語でニュース記事のキュレーションをする カメリオ API というサービスを開発しています。約1年2ヶ月前、Go を使って開発し始めたときに当時調べた内容を整理して以下の記事を書きました。 Go言語で API サーバーを開発する 1年以上に渡り開発を継続してきて変わったこと、変わってないことなどをざっくばらんにまとめてみます。たまたま過去の記事のはてブコメントを見返していて 以下のコメント を見つけました。 最近 golang 導入事例増えて来たけど、導入後一年くらいのメンテナンスフェーズな事例について聞いてみたい。継続的デリバリーみたいなの。まだ早いのかな? まだまだメンテナンスフェーズにはなっていなくて現在も活発に開発中ですが、継続的デリバリーについて白ヤギでは特別なことをしてなく、ansible を使ってデプロイしているのみです。Go 1

    Go で API サーバーを開発してきて1年が過ぎました | カメリオ開発者ブログ
  • 社内勉強会「エキスパートGo」を開きました #golang | メルカリエンジニアリング

    こんにちは。 ソウゾウのエキスパートチーム所属の@tenntennです。 7月9日に3時間半かけてみっちりと「エキスパートGo」という社内勉強会を開催しましたので、今回はそのレポートを書きます。 また良い機会ですので、私が所属するエキスパートチームについても少し触れようと思います。 なお、当日の発表資料はSlide Shareに公開しておりますので、ぜひご覧下さい。 www.slideshare.net エキスパートチームについて ソウゾウでは「技術アウトプットするところに技術は集まる」という思いから、稼働の50%以上を技術コミュニティへの貢献や担当する技術の普及に取り組むエキスパートチームが存在します。 メンバーはGo Conferenceやgolang.tokyoなどを運営している私@tenntenn(Go/GCP担当)とDroidKaigiや技術書典などを運営する@mhidaka(

    社内勉強会「エキスパートGo」を開きました #golang | メルカリエンジニアリング
  • golang: goa勉強会を開催しました - 押してダメならふて寝しろ

    connpass.com goa って何? goa ってのは golangAPIデザインを書くと,そこから API サーバのモックとかクライアントとかドキュメントとか一通り生成してくれるマイクロサービス用のフレームワークのことです. goa は golang のソースとして DSL が書けて,そいつを goa にかけてやることでコードを生成します.ぱっと聞いた感じ,最初に抱く印象は「キモい」だと思うんですが,json や yaml を書いてコードを生成するよりかなり見通しよくAPIがデザインできると思いますし,なにより,goa の生成するコードがすごく読みやすいコードで,使ってるウチにだんだん「goa (キモ)かわいいな」と思うようになってきました.goa 自体のコードも変態的(コード生成プログラムなのでしょうがない)でありながら読みやすいコードで書かれているのも好印象です. Web

    golang: goa勉強会を開催しました - 押してダメならふて寝しろ
  • goa勉強会 in 六本木一丁目でLTしてきましたので内容の補足など - きょこみのーと

    istyle.connpass.com LTしてきました。色々学びあって楽しかったです。 会場提供のistyleさんありがとうございました。 少しだけ補足説明とexampleコードを書いたので紹介しようと思います。 LTした資料 speakerdeck.com 注意点 gogoaについてすでにある程度理解がある人向けです goaのversionは、v1.2.0の前提で話しています go generate使ってコード生成して開発する流れについて –forceをつけることで毎回mainのgenerateは作り直してます。 //go:generate goagen -o gen main --force -d github.com/kyokomi/example_goa_api/_design //go:generate goagen -o gen app -d github.com/kyok

    goa勉強会 in 六本木一丁目でLTしてきましたので内容の補足など - きょこみのーと
  • Hello Worldの後に何を作るか - razokulover publog

    新しい技術を学びはじめるとHello Worldのその先で何を作るか詰まってしまうことがよくある。 最初から作りたいものがある人はそれ作ったほうがいいし、実務で導入できたりするなら一番手軽で学びが多いのだが中々そうもいかないのが人生というもの。 そういう人にとってはHello Worldからある程度使えるもしくは番投入時に選択肢にできるレベルになるための道筋があると便利だなーと思う。 自分はWeb系の人間なのでフロントエンド/サーバーサイド/モバイルアプリという感じでまとめてるが、インフラ屋やハード他デザイン系の技術はまた違うと思われるのでこれはあくまでも自分の場合はということで。 共通 言語機能を一通り試す(A Tour of Goみたいな感じで) 基的な型/制御構造/IO周り/クラス/文字列操作/正規表現/よく使いそうな標準ライブラリ その言語固有の機能は重点的に(goだったらgo

    Hello Worldの後に何を作るか - razokulover publog
  • go-swaggerを使う — そこはかとなく書くよん。 ドキュメント

    go-swaggerを使う¶ この記事は Go (その2) Advent Calendar 2016 の7日目の記事です。 APIからのコード自動生成ツールとして、swaggerが最近流行ってます(異論は認めます)。 この分野では、 goa が有名ですが、goaはあくまでGoのDSLから生成するという方式です。 swagger定義がすでにある場合には使えません。 swagger定義ありきの場合、今回説明する go-swagger を使うと便利です。 なお、この内容は https://github.com/shirou/swagger_sample にて公開しています。 go-swaggerとは¶ go-swaggerは、swagger定義からgoのサーバーおよびクライアントを生成してくれるツールです。 インストールはgo getでインストールしてもよいのですが、goの環境がない場合は do

  • Go Con 2017スライドまとめと感想 - ぺい

    GoCon2017参加してきました。 Go Conference 2017 Spring - connpass Twitter上で、全国のgopherがやたらと合コンと言って、#goconをつけて呟いていたイベントです。 合コン?#gocon pic.twitter.com/qXbxth1TII— つぶやき実験室 (@totoro5000) 2017年3月25日 いつも後で見返そうと思って、放置してURLわからなくなるので、今回はまとめることにしました。リンクが抜けているスライドは発見が出来なかったものです。 もし、あれば教えていただきたいです。 発表枠 Coding in the context era@lestrrat [Goで書くエディタの壁を超える開発支援ツール@zchee] Go でつくる汎用言語処理系 実装戦略@Linda_pp Goでヤフーの分散オブジェクトストレージを作った

    Go Con 2017スライドまとめと感想 - ぺい
  • Go 言語における並行処理の構築部材 - 詩と創作・思索のひろば

    5年前に買った『Java並行処理プログラミング ―その「基盤」と「最新API」を究める―』をようやく読んだ。買った頃には Perl やシンプルな JavaScript ばかり書いていたので並行プログラミングなんてほとんど気にすることがなく、実感がなくて読むのも途中で止まってしまっていたで、家を掃除しているときに見つけたもの。その後も趣味Android アプリを書くなど Java に触れる機会はあったけれど、せいぜいが AsyncTask を使うくらいで、マルチスレッドを強く意識してコードを書くこともなかった。 Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行購入: 30人 クリック: 442回

    Go 言語における並行処理の構築部材 - 詩と創作・思索のひろば
  • Go言語で API サーバーを開発する | カメリオ開発者ブログ

    こんにちは!白ヤギの開発者、森です。 白ヤギではいま API サーバーを Go 言語で開発しています。 皆さんも Go の話題をよく見聞きするようになっていると思います。今回は白ヤギの業務でどんな風に Go を使って開発しているかの一端を紹介します。 余談ですが、先日、大学の先生とお話ししたときにこんな話を伺いました。その先生は学生にプログラミングを教えているそうですが、何割かの学生は及第点に届かないそうです。しかし、そういった学生がプログラミングの素養がないかというとそういう訳ではなく、プログラミングを学ぶ上でその学生にとって何が理解を促すのかが違うだけなのだと仰っていました。教える側として全ての学生が習得できるプログラミング教育というのを見つけられていないのが悔しいといった話をされていました。 何かを学ぶというのを一般論では語るのは難しいということかもしれません。そのため、私はこうい

    Go言語で API サーバーを開発する | カメリオ開発者ブログ
  • 1