Jeffrey's personal website
特集のはじめに Goは、2009年にGoogleにより発表されたオープンソースのプログラミング言語です。C言語の開発者Ken Thompson、UTF-8の開発者Rob Pike、memcachedの開発者Brad Fitzpatrickといった名だたるエンジニアによって開発されています。 Goはシンプルな言語仕様であるため学習が比較的容易で、豊富な標準パッケージが同梱されているためすばやく目的を達成できます。また、巨大なコードでも高速にコンパイルできるため大規模開発にも適しており、Windows、OS X、Linuxなどの環境に合わせた実行ファイルを生成するクロスコンパイルのしくみがあるため作成したプログラムを容易に配布できます。並行処理のサポートも充実しており、ミドルウェアの開発などにも適しているとされています。 本特集では、2014年6月にリリースされた最新バージョンであるGo 1.
過去9年わたりWebアプリケーションを開発してきたNiket氏( @nexneo )は、2013年からGoを使って作業をするようになりました。この講演では、彼がどのようにRubyのモノリシックアプリケーションを分解しつつ、Goで記述されたマイクロサービスへと至ったかについて説明しています。講演のスライドは、 speakerdeck.com/nexneo/joy-of-single-purpose-services-in-go で閲覧可能です。 Single purpose servicesというのは、単一の問題を解決するサービスのことです。 一般的に マイクロサービス としても知られています。 Niket氏は、学校側が親御さんたちと連絡したり成績表や出席を管理したりするための人気オンラインプラットフォーム、 Beehively の開発者です。BeehivelyはRubyベースのアプリケーシ
go 言語において呼び出し元に interface のみを公開することで実装の詳細を隠ぺいすると、gomock を使ったテストがやり易くなります。 ざっくり結論だけ書くとこんな感じのコーディングパターンにすると良いよって感じなので、これだけ見て、何が言いたいのかすぐに分かる人は続きを読まなくても良いと思います。 package intf type Duck interface { Quack() string } type duck struct {} func NewDuck() Duck { return &duck{} } func (d *duck) Quack() string { return "QUUAAAACCCCKK!!!" } interface と実装が分離されたアヒル 最初のポイントは、公開する interface として定義された Duck と非公開の stru
photo by ajstarks なんか最近みんな書いてる golang 。OSS へのコントリビュートチャンスも増えてきました。自分でバリバリ書くには時間も自信もない。でも、バグ修正くらいならやってみたい。それくらいの目的のために最低限必要な知識を書いてみました。 この記事では、自分ではバリバリ書けないけれど、golang の OSS プロジェクトには貢献したいという人向けに、出来るだけシュッと学べるように重要なポイントのみ絞って紹介していきます。 初心者向けの優しい解説記事という訳ではないので、自分で調べるためのキッカケとしての読み方を想定しています。また、自分自身が想定読者のため、間違ったことを書いている可能性もあります。という逃げも書いておきます。 開発環境 基本的に Mac OSX + HomeBrew + Atom を前提とします。といいつつ、golang も Atom もす
In this post I interview Russ Cox and Sameer Ajmani, who work at Google on the Go programming language. They share with me their path to working on the language, what they find unique and valuable about it, and plans for it going ahead. This continues our series on PhDs in industry working on programming languages (Avik Chaudhuri was the first). Thanks to Russ and Sameer for taking the time to sha
そういえば金沢に行って来た話の2〜4日目をかいてる途中で2ヶ月くらい経ったことに気付きましたが、まぁその話はおいておいて今日はGoの話です。 さて、このタイトルを見てGoに詳しく賢明な読者の方々は「あぁまたこの話題だよ、Goでchannelがcloseしてるかどうか知りたいようなパターンはだいたい書いてるアプリの設計とかchannelの使い方が間違ってるんだからやめとけ」と眉をひそめるかもしれません。まぁちょっとまって! オレもそうなんじゃないかなぁという気はしているし、ハマリどころがありそうということはうすうす分かってるけど一応調べて考えてみてもいいじゃないか。 結局の所調べて「こうすればいいね!」ってことは分かったんですが、それも破綻する場合があるので、アンチパターンだなぁと思いつつこの記事を書くことにしました。 まずGoのchannelのナイーブさを再確認する そもそもGoのchan
こんにちは、馬場です。 完全に出遅れていますが、個人的に触ってみたかったGo言語と戯れてみたいと思います。Go 言語といえば並行処理ですよね。せっかくですので、他の言語Java 8 / Scala 2.11 と比較しながら見ていきたいと思います。 お題:二分探索木を比較する。 並行処理のお題は、超充実しているGo 言語のチュートリアルTour of Goのエクササイズ、Equivalent Binary Tree です。 二分探索木とは、子の数が最大2である二分木で、「あるノードの左の子およびその全ての子孫ノードの持つ値はそのノードの値より小さく、右の子及びその全ての子孫ノードの持つ値はそのノードの値より大きくなるように構成した」もの(Wikipedia)です。 2つの二分木が、形はちがえど同じ値を保持している場合があります。そのために、 1. 二分探索木を生成し、 2. 2つの二分木の解
GoでplogというWebサービスを開発してリリースしてみた 26 February 2015 Hiroki Oiwa web developer at nanapi Profile エンジニア at nanapi GitHub Ruby on Rails TypeScript Go 2 Agenda なぜGoなのか つくったサービスの紹介 こんなGoパッケージを使ったよ! サーバー構成とか 所感 3 なぜGoなのか 4 なぜGoなのか 流行ってる!モテる気がする! ゆるく書けるけど堅いとこは型い Goを実践導入しているところはまだ少ないので実践導入してみたらどうなるか試したかった 5 つくったサービスの紹介 6 ゆるふわ匿名ダイアリーをつくったよ 7 plogについて 匿名ダイアリー ログイン不要 だれでも投稿できる マークダウンつかえる ゆるふわ ソーシャル疲れからの解放 8 こんなG
http://connpass.com/event/11516/ とりあえず、見つかった限りのスライドは載せました。 発表者のみなさま、会場のGREEさん、ありがとうございましたm( )m 感想・まとめ 全体的に濃い話だった go-thumber使ってみたい 基本的にみんなImageMagick大好き というか、あまり他に優秀なインターフェースがないんだな、の印象 yoyaさんは神 自力でやりました、という話が中心で、こうやって楽にやってますという話はなかった 切り出しとか考えると、ASPつらいのかもね でもCloudinaryすごいよ? ImageHayabusaへの期待感すごい サムネイルマスタとgo-thumber https://speakerdeck.com/harukasan/use-thumbnail-master-with-go-thumber はるかさんさん pixivの
GoはPythonのようなLLと比べると実行速度は速いのですが、GCは特別速いわけではないので、相対的にGCがパフォーマンスに与える影響は大きくなります。 また、Java に比べると、一時オブジェクトなどのために頻繁にヒープアロケーションを行うとGCの停止時間が長くなりがちですが、一方でヒープアロケーションを避けたプログラミングがしやすい言語でもあります。 MySQL ドライバのような低レイヤーのライブラリを作る場合、アプリケーション側の性能要件を勝手に決めることができないので、現実的な範囲でアロケーションを減らす努力をするべきです。 ということで、前回の記事 で紹介したプレースホルダ置換を実装するにあたって経験した、アロケーションに気を使ったプログラミングについて、チューニングする手順やコード上のテクニックを紹介したいと思います。 1. まずは正しく動くものを作る go-sql-driv
よく訓練されたアップル信者、都元です。最近社内のメンバーがみんなGo言語の世界で楽しそうなので、私も混ざってみることにしました。最初のセットアップや基礎文法等は、私も平行して急いで学ぶGo langシリーズで勉強中です。 コマンドラインツールが作りたい と思っています。ちょっとしたものを作るとしたらPythonなのかな、と思って友達のPythonistaにインタビューをしたところ、「ちょっとしたツール作るとかって用途の人は Golangに移行した(えっ」という衝撃的なコメントを貰い、もうこの際だからGo勉強すっかという空気になった次第。 具体的な環境構築 基本的には急いで学ぶGo langシリーズを読めばいいのですが、一点迷ったのがディレクトリ構成です。 Go言語で幸せになれる10のテクニックでは「GOPATHは一つだけ (Use a single GOPATH)」という指針が紹介されてい
背景 僕はGoを書く前はPythonを書いていました。 Pythonにはflake8という色々便利なやつがいて、自分のコードがPython界の流儀に従っているかチェックしてくれます。 Goだとgofmtとかがほぼ同等の機能を提供してくれています。 ですが、flake8にあってgofmtにないもの。それはコードの循環複雑度を指摘する機能です。 循環複雑度とは これがあるとついつい長く書いてしまった関数なんかを洗い出してリファクタするための手がかりになったりします。 これをGoで使うためにGoで書きました。 すでにあるかどうかは知りません。 使い方 リポジトリ ビルドしてパスの通った場所に配置して実行すると (go:go-cyclomatic-complexity) kenshikamata% ./gocc -path ./complexity complexity/ast.go :Line
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く