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が最近リリースされ、重要な変...

■ anyenv で erlang(elixir), go の環境を作った これまで、特にバージョンについては気にしてもいなかったので homebrew から入れていたけど、新しいバージョンのキャッチアップなどをやりたくなったので anyenv 経由の erlenv, exenv, goenv で環境を作ることにした $ anyenv install erlenv $ anyenv install exenv $ anyenv install goenv exenv と goenv は単純に install コマンドでインストール出来る。 $ exenv install 1.0.5 $ goenv install 1.4.2 後はいつも通り global, rehash などで使うバージョンを設定。erlenv はインストールパス配下の releases というフォルダにマニュアルインスト
Go言語のDependency/Vendoringは長く批判の的になってきた(cf. “0x74696d | go get considered harmful”, HN).Go1.5からは実験的にVendoringの機能が入り,サードパーティからはDave Chaney氏を中心としてgbというプロジェクベースのビルドツールが登場している.なぜこれらのリリースやツールが登場したのか?それらはどのように問題を解決しようとしているのか?をつらつらと書いてみる. Dependencyの問題 最初にGo言語におけるDependecy(依存解決)の問題についてまとめる.Go言語のDependencyで問題なのはビルドの再現性が保証できないこと.この原因はimport文にある. Go言語で外部パッケージを利用したいときはimport文を使ってソースコード内にそれを記述する.このimport文は2通りの
会社の方でRDS TestRunnerというツールをGoで実装したわけですが、今回の実装にあたってGoの色々なライブラリ/ツールを見て回った印象として、まだまだ群雄割拠状態だなーという感じでした。 これからスタンダードが決まっていくのでしょうが、今後も考えて各ライブラリ等を利用した感想を共有しておくのは有益そうなので、書き残しておくことにします。 ちなみに、今回はかなりの率でHashiCorpのmitchellhさん作のライブラリやツールを利用していますw なので、ほぼこの方の紹介になってますね。。。 コードもterraformなどの実装をかなり参考にさせていただきました。 やはりGoでのプロダクト経験が豊富な人の実装は、色々参考になりますね(^^ゞ ライブラリ HCL (HachiCorp Configuration Language) 今回のConfig書式とそのパーサライブラリには、
しばらくiOSアプリのクライアントサイドばかり開発していてサーバサイドプログラムにご無沙汰だったのだけど、 最近またGoでアプリのサーバサイドを書くようになった。 ちょうど xhyve が話題になっているのもあって、OS X の仮想環境がアツい感じだったので、 ひさしぶりに Docker で開発してみよう、と思いたち、Dockerを使ったアプリ開発をやってみている。 docker-compose を使って依存ミドルウェアも一緒に立ち上げる docker-compose [1] というのを使うと、複数のコンテナを同時に立てられ、それぞれにリンクも良い感じにやってくれる。 開発環境を作るにはもってこいのツールだ。 GoのWebアプリ サンプルとして以下のようなアプリを考える。 // main.go package main import ( "fmt" "log" "net/http" "gi
2015-06-03 Goを習得するために乗り越えるべき精神的障壁 Go 長らくScalaをプライマリ言語としてきたプログラマですが、今のプロジェクトではGoをやっています。 最近ゴリゴリと書き始めて感じてることは、Goを習得する上では技術的なことよりも精神的障壁を乗り越えることが先だということです。 そもそも目的も言語仕様も大きく違うわけで、そもそも比較すること自体がナンセンス。どちらも良い所、辛いところがあるわけで本エントリではage/sageをするつもりはまったくないことを予め表明しておきましょう。 自分が書いたコードが全てクソコードに見えてしまう件 例えば、Goではif err != nilのエラーチェックをよく書きます。Scalaに使ってからあまり書かなくなったものだし、強力な高階関数等もそう。 書いたコードが目的を果たせていても、長らく染み付いた習慣から生み出される違和感はなか
The State of Go Where we are in May 2015 27 May 2015 Andrew Gerrand The State of the State of Go I gave a similar talk at FOSDEM in February 2015. go.dev/talks/2015/state-of-go.slide This talk builds on that talk. 2 Go 1.5 3 Release schedule Go 1.5 is scheduled for release in August 2015. The major work is done. We are now in the "feature freeze" period. 4 From C to Go The gc tool chain has been c
Go in Go Gopherfest 26 May 2015 Rob Pike Google Go in Go As of the 1.5 release of Go, the entire system is now written in Go. (And a little assembler.) C is gone. Side note: gccgo is still going strong. This talk is about the original compiler, gc. 2 Why was it in C? Bootstrapping. (Also Go was not intended primarily as a compiler implementation language.) 3 Why move the compiler to Go? Not for va
« lingr で stackverflow を検索出来る bot を golang で書いた。 | Main | Vim scriptで「ソフトウェアエンジニアならば1時間以内に解けなければいけない5つの問題」を解いてみた » willnet/gimei - GitHub gimei は、日本人の名前や、日本の住所をランダムに返すライブラリです。テストの時などに使います。似たようなライブラリにfakerがあります。fakerはとても優れたライブラリで、多言語対応もしていますが、ふりがな(フリガナ)は流石に対応していません。gimei ふりがな(及びフリガナ)に対応しています。 https://github.com/willnet/gimei オリジナルは ruby gems です。 mattn/go-gimei - GitHub golang port of gimei https://
“オブジェクト指向”の意味を本当に理解するには、この概念の始まりを振り返ることが必要です。最初のオブジェクト指向言語はSimulaという言語で、1960年代に登場しました。オブジェクト、クラス、継承とサブクラス、仮想メソッド、コルーチンやその他多くの概念を導入した言語です。おそらく最も重要なのは、データとロジックが完全に独立したものであるとする、当時では全く新しい考え方をもたらしたことでしょう。 Simula自体には馴染みがない方も多いかもしれませんが、Simulaからインスピレーションを得たとされるJavaやC++、C#、Smalltalkといった言語は皆さんよくご存知でしょう。さらにそこからインスピレーションを得たものとしてObjective-CやPython、Ruby、JavaScript、Scala、PHP、Perlなど様々な言語があり、Simulaは現在使用されているポピュラーな
Golangで開発する上でライブラリの依存関係解決どうするとか、Object Relational Mapping(ORM)どうするとか、hot deployしながら開発するのどうするとかあると思うんですがその辺りを軽く書きながらAPI作っていきたいと思います。 Docker使って開発するあたりの解説は以前のブログを参照されたい。 takasing104.hateblo.jp できること Golangで依存ライブラリの管理(と現場言っていいものかは微妙) ORMを使ったDBアクセス Mac上でソースコードを変更した際、Dockerコンテナに修正が反映されてフレームワークがリロードされる Webフレームワークを利用したAPI開発 ツールと環境 Mac OSX 10.9.5 Mavericks Vagrant 1.7.2 Fresh (c4a501e4002c78dfd6bd519001a58
NOTE: この記事は Inspecting Errors を翻訳したものです。 原文に従い、 Creative Commons ライセンスで公開します。 error インターフェイス型の値を返す関数の一般的な契約は、呼び出し側はその error をチェックする前にそれ以外のいかなる戻り値も利用してはいけないというものです。 多くのケースにおいて、関数が返した error 値は呼び出し元にとって不透明であるべきです。 error が nil かどうかチェックすることで呼び出しが成功したかどうかを知ることができ、そしてそれ以上のことはしません。 少ないケースにおいて、主にネットワークなどプロセス外の世界とやりとりする場合に、呼び出し側がエラーの種別を調べて、操作をリトライするべきかどうかを決める必要があります。 パッケージ作者に対して、呼び出し側がエラーの型を判別して利用できるように返すエラ
dullgiulio/pingo Go言語でのプラグイン機構の提供方法は実装者の好みによると思う(cf. fluentd の go 実装におけるプラグイン構想).Go言語はクロスコンパイルも含めビルドは楽なのでプラグインを含めて再ビルドでも良いと思う.が,使う人がみなGo言語の環境を準備しているとも限らないし,使い始めてもらう障壁はなるべく下げたい.プラグインのバイナリだけを持ってこればすぐに使えるという機構は魅力的だと思う. Go言語によるプラグイン機構はHashicorpの一連のプロダクトやCloudFoundryのCLIなどが既に提供していてかっこいい.net/rpcを使っているのは見ていてこれを自分で1から実装するのは面倒だなと思っていた. dullgiulio/pingoを使うと実装の面倒な部分を受け持ってくれて気軽にプラグイン機構を作れる. 使い方 サンプルに従ってプラグインを
やっと季節は三寒四温の状態から抜け、もう春だと言っていい季節ですが、僕は痔に苦しんでいてやっとの思いで回復に向かっております。 春って素敵。 というわけで、業務で新しいプロジェクトがGolangで実装する方針になってしまったので、仕方なくGolangの開発環境を構築します。 Scalaどこ行った。 僕自身はレガシープロジェクトに長いこといたので今更ながらDockerへの入門レベルの情報を書き並べつつ環境構築していきます。 準備 VirtualBoxのインストール Vagrantのインストール 環境 Mac OSX 10.9.5 Mavericks Vagrant 1.7.2 目標 MacのIntelliJからGolangのソースコードを修正して、Dockerコンテナ内に反映させ、 Macのブラウザ経由でアクセスしてレスポンスを確認できる。 仮想OSを準備してMacとファイルの同期を行う。
特集のはじめに Goは、2009年にGoogleにより発表されたオープンソースのプログラミング言語です。C言語の開発者Ken Thompson、UTF-8の開発者Rob Pike、memcachedの開発者Brad Fitzpatrickといった名だたるエンジニアによって開発されています。 Goはシンプルな言語仕様であるため学習が比較的容易で、豊富な標準パッケージが同梱されているためすばやく目的を達成できます。また、巨大なコードでも高速にコンパイルできるため大規模開発にも適しており、Windows、OS X、Linuxなどの環境に合わせた実行ファイルを生成するクロスコンパイルのしくみがあるため作成したプログラムを容易に配布できます。並行処理のサポートも充実しており、ミドルウェアの開発などにも適しているとされています。 本特集では、2014年6月にリリースされた最新バージョンであるGo 1.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く