Summer Internship 2018 - The principle of the eureka summer internship 2018
![クロスコンパイルについて (GeekSalon#7)](https://cdn-ak-scissors.b.st-hatena.com/image/square/55329e6bd3dd9795667f2578e35dceda35b7f2d2/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F80f06726427b4b098859a50c923f0754%2Fslide_0.jpg%3F4942391)
こんにちは!白ヤギの開発者、森本です。 白ヤギではいま API サーバーを Go 言語で開発しています。 皆さんも Go の話題をよく見聞きするようになっていると思います。今回は白ヤギの業務でどんな風に Go を使って開発しているかの一端を紹介します。 余談ですが、先日、大学の先生とお話ししたときにこんな話を伺いました。その先生は学生にプログラミングを教えているそうですが、何割かの学生は及第点に届かないそうです。しかし、そういった学生がプログラミングの素養がないかというとそういう訳ではなく、プログラミングを学ぶ上でその学生にとって何が理解を促すのかが違うだけなのだと仰っていました。教える側として全ての学生が習得できるプログラミング教育というのを見つけられていないのが悔しいといった話をされていました。 何かを学ぶというのを一般論では語るのは難しいということかもしれません。そのため、私はこうい
はじめに こんにちは、タゾチャイティーラテです。最近急に蒸し暑くなったり、寒かったり中途半端な天気が多いですね。逆引きGolang というサイトが公開されてて面白いなあと思って見てたんですが、僕だったらこう書くなというものがいくつかあったので覚書きです。 文字列 部分文字列を置き換える 元のコード これは無理に strings 使わないほうが楽なんじゃないかと思いますがどうでしょう。自分で関数定義するのは面倒かもしれませんが。 http://play.golang.org/p/5x6UXdMYeO package main import "fmt" func main() { s := "Apple Banana Orange" r1 := replace(0, 5, []rune(s), []rune("Vine")) fmt.Println(string(r1)) r2 := repl
NOTE: この記事は Inspecting Errors を翻訳したものです。 原文に従い、 Creative Commons ライセンスで公開します。 error インターフェイス型の値を返す関数の一般的な契約は、呼び出し側はその error をチェックする前にそれ以外のいかなる戻り値も利用してはいけないというものです。 多くのケースにおいて、関数が返した error 値は呼び出し元にとって不透明であるべきです。 error が nil かどうかチェックすることで呼び出しが成功したかどうかを知ることができ、そしてそれ以上のことはしません。 少ないケースにおいて、主にネットワークなどプロセス外の世界とやりとりする場合に、呼び出し側がエラーの種別を調べて、操作をリトライするべきかどうかを決める必要があります。 パッケージ作者に対して、呼び出し側がエラーの型を判別して利用できるように返すエラ
Awesome Go Books Awesome Go Books Starter Books 2018 - Learning Go Free 2018 - Get Programming with Go 2019 - API Foundations in Go 2019 - Go for Javascript Developers Free 2019 - The Go Workshop 2019 - Head First Go 2020 - How to Code in Go 2021 - Learning Go: An Idiomatic Approach to Real-World Go Programming 2022 - Go, from the beginning Free 2022 - Practical Go Lessons Free 2022 - Pro Go 2022
github.com 概要 TechStack。テックのニュースを一望できるCLIツール。 ニュースというかプログラミング関係用のスマートニュースみたいな感じ ts hatenaって打つと、はてなも見れるよ。 なぜ作った Goの勉強。 あとRSSで毎日2000記事とか上がってくるのいい加減だるいので、主要サイトの主要記事だけterminalから見たら効率がいいと思った。 Goいい Nodeのコールバック地獄にはまりかけた後に、goroutineとchannelを使うと至福だった。 @tenntennさんの記事が恐ろしく参考になった。 Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2 from Takuya Ueda www.slideshare.net パッケージ公開 homebrewでインストールできるよ。 brew tapした後に入れてね。 これにつ
とあるHTTPサーバをGolangで立てようって話になったんだけど、 止まると困るので無停止でサーバ再起動をしたい。 PerlにはServer::Starterという有名モジュールがあるんだけど、 Golangはどうなってるの?ってことで調べてみました。 2017-01-22追記: Go1.8以降でGraceful Shutdownがbuild-inになるので、この記事で紹介したライブラリは不要となりました。 詳しくはGo1.8のGraceful Shutdownとgo-gracedownの対応を参照。 gracefulじゃないバージョン Golangの標準ライブラリを使ってHTTPサーバを立ててみる例。 レスポンスが一瞬で終わってしまうとよくわからないので、sleepするhandlerを追加しておきます。 package main import ( "fmt" "log" "net/ht
dullgiulio/pingo Go言語でのプラグイン機構の提供方法は実装者の好みによると思う(cf. fluentd の go 実装におけるプラグイン構想).Go言語はクロスコンパイルも含めビルドは楽なのでプラグインを含めて再ビルドでも良いと思う.が,使う人がみなGo言語の環境を準備しているとも限らないし,使い始めてもらう障壁はなるべく下げたい.プラグインのバイナリだけを持ってこればすぐに使えるという機構は魅力的だと思う. Go言語によるプラグイン機構はHashicorpの一連のプロダクトやCloudFoundryのCLIなどが既に提供していてかっこいい.net/rpcを使っているのは見ていてこれを自分で1から実装するのは面倒だなと思っていた. dullgiulio/pingoを使うと実装の面倒な部分を受け持ってくれて気軽にプラグイン機構を作れる. 使い方 サンプルに従ってプラグインを
mitchellh/panicwrap Go言語でpanicが発生したらどうしようもない.普通はちゃんとテストをしてそもそもpanicが発生しないようにする(もしくはトップレベルでrecoverする).しかし,クロスコンパイルして様々な環境に配布することを,もしくはユーザが作者が思ってもいない使いかたをすることを考慮すると,すべてを作者の想像力の範疇のテストでカバーし,panicをゼロにできるとは限らない. panicが発生した場合,ユーザからすると何が起こったか分からない(Go言語を使ったことがあるユーザなら「あの表示」を見て,panicが起こったことがわかるかもしれない).適切なエラーメッセージを表示できると良い.開発者からすると,そのpanicの詳しい発生状況を基に修正を行い,新たなテストケースを追加して二度とそのバグが発生しないようにしておきたい. mitchellh/panicw
お知らせ 【メンテナンスのお知らせ】7月18日(木)14:00から1時間30分ほど、メンテナンス作業を予定しております。作業の間はconnpassのご利用が出来ません。ご迷惑をおかけしますが何卒ご了承ください。 注意 現在X(旧Twitter)でのソーシャルログインができない事象を確認しています。事前にX(旧Twitter)側で再ログインした上でconnpassのソーシャルログインを行うか、 「ユーザー名(またはメールアドレス)」と「パスワード」の組み合わせでのログインをお試しください。合わせてFAQもご確認ください。 お知らせ 2024年9月1日よりconnpassサービスサイトへのスクレイピングを禁止とし、利用規約に禁止事項として明記します。 9月1日以降のconnpassの情報取得につきましては イベントサーチAPI の利用をご検討ください。 お知らせ connpassではさらなる価
過去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ベースのアプリケーシ
GOPATH 問題 Gophers! 周知のようにgoはGOPATHで依存パッケージをどこにインストールするか決められます。 入門記事などでは、~/.bashrcや~/.zshrcの中で export GOPATH=$HOME/gocode または export GOPATH=$HOME とすることが多いようです。 しかし、GOPATHを各プロジェクトのパッケージが混ざるので、 同じパッケージの異なるバージョンを同時にインストールできない 変なことをすると、全プロジェクトが巻き添えになる どれが不要なパッケージか分からなくなる という欠点があります。 そこでdirenv direnvを使うと、プロジェクトごと(ディレクトリごと)にGOPATHを分ける事ができます。 direnvのインスト―ルと基本的な設定 # HOMEにインストール $ git clone http://github.co
自分用メモ。 ここら辺を参考にした。 Golang でのウェブ開発を考えてみる - Qiita cli GitHub - urfave/cli: A simple, fast, and fun package for building command line apps in Go ここら辺が鉄板。 ちょっとアレと思ったのが、グローバルオプションの位置がサブコマンドの前に書かないといけない。 $ ./app runserver --config=./setting.hcl とかやる場合は、runserver のオプションにしないと行けない。 あと、グローバルオプションが goji の goji.Serve() と被って困った。 試してないけど良さそうと思ったけど、どうなんだろう。 GitHub - mitchellh/cli: A Go library for implementing c
« golang のパッケージが Google Code に依存しているか調べるコマンド作った。 | Main | C++ 向けの扱いやすい json ライブラリ μjson » Goでchannelがcloseしてるかどうか知りたい というアンチパターン - beatsync.net そもそもGoのchannelがcloseしてるかどうかを知りたいっていう理由は、だいたい「Goのchannelはナイーブだから」というところに起因するのはないかと思います。 https://beatsync.net/main/log20150325.html golang には元々 closed() という、channel が閉じられているかどうかを返す組み込み関数がありました。しかし廃止されました。 closed は API としては目的を達成出来ているのですが、builtin が1つ増える、channe
http://www.youtube.com/watch?v=qATTTSg6zXk 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約3時間前 YouTubeのシステムアーキテクトであるSugu SououmaraneのFOSDEM 2014での講演です。スライドはこちらからダウンロードできます。 1) Vitessとは Vitessは大規模な本番環境でMySQL DBを効率的に利用するためのオープンソースプロジェクトです。概要はプロジェクトゴールのページ にまとまってます。 MySQLは機能が豊富だがスケールさせるときは苦労する。一方、NoSQLはスケーラビリティには問題がないが、アプリケーションが複雑になるとできることに限界があるのがネックになる。セカンダリインデックス、joinsなどがサポートされていない。
go run や go test でコードを試しながら書きながら……というフェーズでは、以下のような状況によく遭遇することと思います: デバッグプリント用のコードを削除したら、"log" や "fmt" パッケージが不要になって imported and not used: "log" と言われた。まだ使うかもしれないのでいちいち消したくない。 同様に、コードを整理したところ使っていない変数がでてきて i declared and not used と言われた。まだ使うかも(ry 出来上がりのコードの品質を高く保つには便利な機能ですが、試行錯誤をしている段階ではけっこうな障害になります。そこで goquickfix。 go build が通らないコードに goquickfix をかければ、コードを書き換えて go build 可能にしてくれます: goquickfix -w hoge.go
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く