タグ

golangに関するyukiyan_wのブックマーク (11)

  • Go で使う Makefile の育て方

    Go を使ってプロダクトを作る時、Makefile を使ってビルドを指定することが多いです。 理由としては、 バージョン情報などを埋め込むのに都合がいい 複数のバイナリを吐き出す時に都合がいい Go のビルドオプションを指定するのにいろいろあって整理しておきたい 事前にコードジェネレータで書き出す部分があり、それを考えると Makefile などで整理したい などなどです。なので今回はプロジェクトが大きくなっていく中でどういう Makefile の書き方をしているか、というのをご紹介しようと思います。 サンプルとして、今回のプロジェクトでは gRPC を使ったチャットサービスのサーバーとクライアントを作ることにします。リポジトリは https://github.com/rosylilly/gochat に置いておきました。 Step 1. バージョン情報を埋める 今回はサーバーとクライアン

    Go で使う Makefile の育て方
  • Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ

    この記事はJX通信社 Advent Calendar 2019 2日目の記事です。 昨日は、たっちさんの「Kubernetes Admission Webhookでリソース作成を自在にコントロールする」でした。 こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回は長年動かしてた Scala のマイクロサービスのリビルドを行った話をしようと思います。 TL;DR 新しい言語を投入するのにマイクロサービスは便利 Scala で感じていた問題点を解消しつつ Go へ移行できた 消費メモリが大きく減って安定稼働できるようになった 予防線を貼っておきますと、Scala より Go のほうがいいよね、といった旨ではありません。 Scala で書いたマイクロサービス 弊社のマイクロサービスの一つにカテゴリ分類専用のサービスが存在します。 カテゴリやキーワードを登録しておくとル

    Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ
  • What you can do with Go

    TSKaigi 2024 - 新サービス Progate Path の演習で TypeScript を採用して見えた教材観点からの利点と課題

    What you can do with Go
  • Go言語のio.Pipeでファイルを効率よくアップロードする方法

    パイプ(土管)をGo言語でも楽しめるはじめに前回はGo言語のmime/multipartパッケージによるファイルのアップロードを見ましたが、パフォーマンスの特徴にはあまり触れませんでした。 大規模なETLジョブや、制限の厳しいサーバーレスの環境などでは、ファイルを扱うプログラムのリソースを慎重に考える必要があります。記事ではメモリ使用量を大幅に減らすio.Pipeの使い方を見ていきます。 全てのコードはサンプルレポジトリにあります。 同期処理にある問題前回のコードをもう一度見てパフォーマンスを考えてみましょう。 // ファイルを開く file, _ := os.Open(filename) // リクエストボディのデータを受け取るio.Writerを生成する。 body := &bytes.Buffer{} // データのmultipartエンコーディングを管理するmultipart.W

    Go言語のio.Pipeでファイルを効率よくアップロードする方法
  • grpcを用いたgreetingサーバ/クライアント をGo言語で作成する

    gRPCとは gRPCの公式サイトの文章を参照すると以下のような説明があります。 gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to

    grpcを用いたgreetingサーバ/クライアント をGo言語で作成する
  • Go 言語で API サーバーの開発をはじめるためのライブラリ選定|maco

    こんにちは、まちいろの工藤です。 まちいろでは開発フレームワークに Rails を採用していますが、最近の新規案件では Go 言語を採用してみています。この記事では、Go で開発を始めるにあたって行ったライブラリ選定の中身を紹介したいと思います。 選定にあたっては、awesome-go や Qiita などの記事を参考にしました。 ModulesGo 1.11 から Go modules が導入されたとのことで、素直に Go modules を利用することにしました。特にハマることもなく利用ができています。 Web Application FrameworkgRPC + grpc-gateway or grpc-web ・https://github.com/grpc/grpc-go ・🙆proto でスキーマ駆動開発が可能 ・🙅‍♂️REST API を提供する場合は grpc-ga

    Go 言語で API サーバーの開発をはじめるためのライブラリ選定|maco
  • golangの開発環境を整える - そんな今日この頃の技術ネタ

    Go言語は年に何回か必要に迫られてちょっとだけ触る程度の使用頻度だったりするのだが、若い言語ということもあってツールやら環境まわりは調べる度に状況が変わっててちょっと戸惑ったりする。 いつの間にやら$GOPATHを明示的に指定しなくても良くなったり、ソースの配置が$GOPATH/src配下じゃなくても良くなったり・・・ 最近も仕事で使う機会ができたので今一度知識をアップデートしておこうということでMacでの今どきっぽい開発環境構築を調べてみた備忘録。 goenvの導入 他の言語同様にランタイムのバージョンは切り替えできるようにしておいた方が良いだろうということで、以前にpyenvの回でも使ったanyenv越しにgoenvを導入。 blue1st-tech.hateblo.jp # ひとまずアップデート $ anyenv update # goenvをインストール $ anyenv inst

    golangの開発環境を整える - そんな今日この頃の技術ネタ
  • 最近の私的 Golang 開発環境 - Qiita

    あらかじめ予防線を張っておくと Go 言語の開発環境で「これ!」という正解はない。特にチームで開発している場合は,チームの流儀に従うのが最善だと思っている。なので,この記事は「こういうやり方もあるよ」という参考程度に見ていただけるとありがたい。 GOPATH の構造 皆さん御存知の通り,環境変数 GOPATH は Go 言語パッケージや開発環境を指定するものだが,実は複数のパスを指定できる。Windows 環境ならこんな感じにセミコロン(;)で区切って指定する。

    最近の私的 Golang 開発環境 - Qiita
  • Goについて思うこと 2016

    あんまりこういう内容のポエム的なものは広まってほしくないなあ・・と思うのでこっちにひっそり書くことにする。 今年は僕にとってはGoの存在がとても大きい年だった。 5年前、僕が書くのはWebアプリケーションが中心で、PHPをメインで触っていた。それが気がつけばエンジニアリングのレイヤが広がったなあという所感があって、ここ最近Goがそれを加速してくれた。第二の言語としてのGoはとても良くできていて、小回りが聴くし、ミドルウェアをちょろっと書くにも心地よい。やっぱり最近の言語ならではの良さがある。たとえば、 * テストが標準ライブラリに組み込まれている * net/httpがとても良くできている。フレームワークを必要としない場面も多い。 * concurrencyを堅牢に扱える(うまい言葉が見当たらない) * そしてそれなりに速い というのがあげられる。特にgo toolの充実はすごい。Race

  • 良かったGolangの記事/発表(2016年) - Qiita

    (元々Gistにメモ的に書いていたが後から追跡しにくいので転載した) golangweekly.com が http://golangweekly.com/issues/140 にてBest 2016をまとめていた.便乗して自分なりに今年良かったものをまとめてみる.https://blog.golang.org/ は除外している.あくまで「自分が良かった」ものである. まずgo-kitのPeter BourgonのGo best practices, six years inとBoltDBのBen Johnsonが標準パッケージを詳細に語るGo Walkthroughシリーズ https://medium.com/go-walkthrough はMUSTである.これらの知見を知ってるだけでだいぶ良いコードが書けるのではないか. 今年はGo1.6とGo1.7がリリースされたがruntimeの

    良かったGolangの記事/発表(2016年) - Qiita
  • Go入門

    Takuya UedaSouzoh, Inc. (affiliated by Mercari, Inc.) - Go Engineer

    Go入門
  • 1