タグ

Goに関するtakaesuのブックマーク (10)

  • NetflixによるgRPCを使った実用的なAPIデザイン

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    NetflixによるgRPCを使った実用的なAPIデザイン
  • Go言語のGCについて

    そこで、なぜGo言語のGCはシンプルに見えるのにうまく機能するのか興味が湧き、調べてみました。 コンパクション GCは非移動型と移動型に分けられます。 非移動型GCは、GCによってヒープ内のオブジェクトの再配置を行いません。 たとえば、Go言語の採用しているMark & Sweep GCは非移動型です。 一般的に非移動型GCでは、メモリのアロケートと解放を繰り返すことでヒープの断片化が発生し、アロケーションのパフォーマンスが悪化することが問題と言われます。(ただし、これはメモリアロケーターの実装によります) いっぽう移動型GCでは、GCの際に生きているオブジェクトをヒープの端に寄せて再配置することで、ヒープの圧縮(コンパクション)を行います。HotSpot VMのGCなどで利用されているコピーGCは、移動型です。 コンパクションを行うことで、以下のメリットが得られます。 断片化の回避 逐次

    Go言語のGCについて
  • なぜGo言語 (golang) はよい言語なのか・Goでプログラムを書くべき理由 | yunabe.jp

    結論としてはGo言語には以下のようないくつかの長所があり、現実路線で非常にバランスがとれた言語だと思います。 これらの長所のために失われたメリットも当然いくつもありますが、一定程度以上の規模のプロジェクトで利用する言語の選択肢としては現存するプログラミング言語の中では一番か二番目によいのではないかと思います。 コンパイルが速い (vs. C++) GCとメモリ安全性 (vs. C++) 妥当で現実的なレベルの型安全性 (vs. Python/Ruby) 実行時パフォーマンスが良さ (vs. Python/Ruby) 現実問題、ある程度の規模と期間のプロジェクトになると型検証があるとリファクタリングなどがだいぶ楽になるのでありがたい。 型があるので自然と実行時パフォーマンスも良い 標準ライブラリが整備されている (vs. C++) むしろ標準ライブラリにjsonのparserすら存在しないC

  • JSONスキーマからGo言語コードを作成して利用してみる

    プログラミング (iOS, JavaScript, Jenkins, Sikuli) とMaciPhoneなどの話題が中心のブログ JSONスキーマにサーバ側APIについての記述を書けたり、ソースコードが生成できたりするので、いろいろ試してみました。 今回行ったことは次の通りです。 IIJmioクーポンスイッチAPIのドキュメントを参考に、JSONスキーマを勝手に書いた JSONスキーマ用のツールprmdでAPIドキュメントを作成したり、スキーマの検証を行った JSONスキーマ用からGo言語のクライアントコードを生成するツールschematicでコードを生成して、それを使った prmdを導入する とりあえず、JSONスキーマ用のツールprmdを導入しておきます。gemで一発です。 $ sudo gem install prmd JSONスキーマを記述する IIJmioクーポンスイッチAP

    JSONスキーマからGo言語コードを作成して利用してみる
  • Big Sky :: Vimを使ったGo言語開発手法

    先日、Go言語バージョン1.1がリリースされました。安定しているのは勿論、幾つか新機能が追加されましたが、何よりもパフォーマンスチューニングが施された一番嬉しいですね。 Go 1.1 performance improvements | Dave Cheney This is the first in a series of articles analysing the performance improvements in the Go 1.1 relea... http://dave.cheney.net/2013/05/21/go-11-performance-improvements さて今日はVimを使ってGo言語を開発する方法を紹介したいと思います。 VimGo言語を開発するには、Go言語のリポジトリに含まれる misc/vim にランタイムパスを追加します。以下を vimr

    Big Sky :: Vimを使ったGo言語開発手法
  • golangで書かれたSlack bot でエンジニアに話題提供しよう - はこべにっき ♨

    こんにちは、id:hakobe932 です。はてなエンジニアアドベントカレンダーの18日目として、はてな社内で導入をためしている話題提供Slack botの機能と実装について紹介します。昨日はid:astj による Herokuとwerckerによる継続的インテグレーション・自動デプロイでperlのwebアプリケーションを開発するでした。 #enginnerで技術交換 はてなではメインのチャットツールとしてSlackを活用しています。チームや職種などの単位のたくさんのチャンネルがあり、それぞれのチャンネルでコミュニケーションが行われているのですが、もっぱら技術的な議論を行っているのが #enginner というチャンネルです。#engineer では、チームをまたいだ技術的な相談のほか、新技術や勉強会の紹介など、技術に関わるさまざまな話題で情報交換しています。 もっと技術の話題でわいわいし

    golangで書かれたSlack bot でエンジニアに話題提供しよう - はこべにっき ♨
  • GitHub - daviddengcn/gosl: Go Script Language

    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 - daviddengcn/gosl: Go Script Language
    takaesu
    takaesu 2014/09/11
    go でスクリプトっぽく
  • Goで外部コマンドを実行して出力をリアルタイム表示するサンプル - Qiita

    はじめに 外部コマンドを実行して出力をリアルタイム表示するサンプルコマンドを作ってみました。 サンプルコマンドに-vを指定した時は冗長モードでリアルタイム表示しつつ、外部コマンド終了時に標準出力と標準エラー出力の結果を文字列で取得します。 -vを指定しない時は、外部コマンド実行中のリアルタイム表示は無しで、外部コマンド終了時に標準出力と標準エラー出力の結果を文字列で取得するほうだけを行います。 スクリーンショット 実装メモ ソース: https://github.com/hnakamur/execcommandexample コマンドを実行して出力を読み取るサンプルはexec.Cmd.StdoutPipe()のExampleにコード例があります。 標準出力と標準エラー出力を両方リアルタイムに呼び出したいので、StdoutPipe()とStderrPipe()を取得して、2つのgorouti

    Goで外部コマンドを実行して出力をリアルタイム表示するサンプル - Qiita
    takaesu
    takaesu 2014/09/11
  • goyaccで構文解析を行う - Qiita

    go toolにはyaccというものがある。 これはunixの言語処理系で広く使われるyaccというパーサジェネレータのGoバージョンである。 稿はその使い方を説明するチュートリアルである。 対象読者 goyaccを使う - Qiitaという記事があって、これはgoのyaccを使って簡単な言語の構文解析をして使い方を説明している。 しかし、yaccについての基的な説明が完全ではなく(例えば%%とか)、yaccを触ったことがない人には若干難しい。 従って、私のようなGoの文法は理解しているがyaccを使ったことがない人向けにごく簡単な使い方を説明する。 参考資料 yacc - The Go Programming Languageが公式のドキュメントっぽいが、これもyaccの文法自体は他に任せている。 RHGの速習yaccがとても参考になると思う。 稿はあくまで取っ付き易いチュートリア

    goyaccで構文解析を行う - Qiita
    takaesu
    takaesu 2014/06/23
    レキサーやパーサ
  • Go言語のコードレビュー

    SoundCloudが2年半ほどGo言語を利用したプロダクトを番で運用した知見をGopherConで発表していた(“Go: Best Practices for Production Environments”).その中で“CodeReviewCommentsというGoogleでのGo言語のコードレビューにおいてよくあるコメントをまとめたサイトが紹介されていた. 最近Go言語を書くようになり,使えそうなのでざっと抄訳してみた.“リーダブルコード”的な視点も含まれており,Go以外の言語でも使えそう. gofmtでコードの整形をすること コメントは文章で書くこと.godocがいい感じに抜き出してくれる.対象となる関数(変数)名で初めて,ピリオドで終わること // A Request represents a request to run a command. type Request str

  • 1