タグ

golangに関するKGAのブックマーク (30)

  • Go言語勉強会「そうだ Go、京都。」を4月29日(土)に京都で開催します! #golang - Hatena Developer Blog

    こんにちは。ウェブアプリケーションエンジニアの id:t_kyt です。 初夏と言えば京都、京都と言えばGoということで、4月29日(土)に「そうだ Go、京都。」と題しましてGo言語の勉強会を開催することになりました! 初回ということもあり特にテーマは絞っていませんのでGo言語に興味ある方は皆さんお越しください!発表会後には交流会も開催予定です。 また、LT枠も募集しているのでちょっと発表したいという方のご参加もお待ちしております。 京都 ✕ Go言語で最高のゴールデンウィーク初日を過ごしませんか? イベント日程と会場 イベント名: 「そうだ Go、京都。」 日時: 4月29日(土) 15:00〜 参加費: 無料 定員 参加枠: 30 LT枠: 4 会場: 株式会社はてな 京都オフィス 8F 所在地: 京都府京都市中京区高宮町御池ビル8F 注意: 当日は正面玄関が閉まっているので裏口へお

    Go言語勉強会「そうだ Go、京都。」を4月29日(土)に京都で開催します! #golang - Hatena Developer Blog
    KGA
    KGA 2017/04/20
  • GoのためのGo

    Go言語はシンプルさを念頭にデザインされた言語です。仕様は単純明瞭さのために小さく収められていますが、そのため表現力に欠けているとか、コードが冗長になるという印象を持つ人も多いでしょう。有名なところでは、ジェネリクスや例外といった機能が(今のところ)存在しないことが問題にされることが多いようです。 一般に、ソフトウェアエンジニアリングというものは書かれる言語だけに依るものではありません。視点を拡げてGoを取りまくツール群を含めて見てみると、go fmt や goimports といったツールが広く使われていること、また go generate コマンドの存在などを見ても、Goという言語には、人間のプログラミングを機械によってさまざまな面から補助しようという態度があります。

    KGA
    KGA 2017/01/28
  • Big Sky :: golang オフィシャル謹製のパッケージ依存解決ツール「dep」

    « Re: Go でシングルバイナリな Web アプリを開発しているときに webpack --watch をうまいところやる | Main | Ruby の a = a + 1 はなぜ undefined method '+' for nil:NilClass なのか » golang にはパッケージマネージャが無数にあります。 PackageManagementTools · golang/go Wiki · GitHub Home Articles Blogs Books BoundingResourceUse cgo ChromeOS CodeReview CodeReviewComments CodeTools C... https://github.com/golang/go/wiki/PackageManagementTools 僕もその一つの gom というのを開発している

    Big Sky :: golang オフィシャル謹製のパッケージ依存解決ツール「dep」
    KGA
    KGA 2017/01/25
  • Go1.8のGraceful Shutdownとgo-gracedownの対応

    Go1.8beta1が出た時に、Go1.8で追加される予定のGraceful Shutdownについて書く! とTwitterに書き込んで早1ヶ月。 この前の金曜日にGo1.8rc2がリリースされ、正式リリースも間近になってきて、 さすがに書かねばという気持ちになって来たので、がんばって検証してみます。 公式サポートで増える予定の機能 以前Go言語でGraceful Restartをするときに取りこぼしを少なくするで 紹介したようにshogo82148/go-gracedownというものを書きました。 あれから時は経ち、ついにGo1.8からはGraceful Shudownがbuild-inの機能として提供される予定です。 公式サポートが入ることによって、以下のような機能を使えるようになります。 HTTP/2のGraceful Shutdownができる HTTP/2ではGOAWAYフレーム

    KGA
    KGA 2017/01/23
  • 型と名前によるGoのコード探索 ― gofind - 詩と創作・思索のひろば

    思いつきでツールを作ってはリスのように忘れ、再発見しては新鮮な気持ちで便利に使う日々です。 一般にプログラミングにおいては、ソースコードを読むことに意外とばかにならない時間を使うもの。特に Go ではデフォルトで標準ライブラリのソースコードが手元にあり、コードを書く際よい教科書になるので、これを読むことも多いはず。 Go は静的に型付けされる言語なのでその点コードは読みやすいけれど、データ構造が不変ではないので、ある構造体のフィールドがどこで書き換わるのかを知るには、処理を追っていくしかない。名前で grep するのもひとつの手ではあるけど、精度はあまり期待できない。 そこで gofind。簡単に言うと、型やパッケージを含めた名前でもって Go のソースコードを検索するツールです。 go get github.com/motemen/gofind/cmd/gofind 使い方は以下の通り。

    型と名前によるGoのコード探索 ― gofind - 詩と創作・思索のひろば
    KGA
    KGA 2016/10/28
  • Handwritten Parsers & Lexers in Go

    Handwritten Parsers & Lexers in Go In these days of web apps and REST APIs it seems that writing parsers is a dying art. You may think parsers are a complex undertaking only reserved for programming language designers but I’d like to dispel this idea. Over the past few years I’ve written parsers for JSON, CSS3, and database query languages and the more that I write parsers the more that I love the

    KGA
    KGA 2016/09/20
  • Go1.7のcontextパッケージ

    Go1.7ではgolang.org/x/net/contextがcontextパッケージとして標準パッケージに仲間入りする.そしていくつかの標準パッケージではcontextパッケージを使ったメソッド/関数も新たに登場する.contextパッケージは今後さらに重要な,Gopherは普通に扱うべき,パッケージになると考えられる.記事ではそもそもcontextパッケージとは何か?なぜ登場したのか?なぜ重要なのか?どのように使うべきか?についてまとめる. contextパッケージが初めて紹介されたのは2014年のThe Go Blogの記事 “Go Concurrency Patterns: Context”である.この記事ではなぜGoogleがcontextパッケージを開発したのか,どのように使うのか具体的な検索タスクを例に解説されている.まだ読んだことがない人はそちらを先に読むと良い. co

    KGA
    KGA 2016/07/24
  • Go For Perl Mongers

    Go For Perl Mongers (or, for Lightweight Language lovers) Daisuke Maki Engineer, LINE Corporation Who Is This Guy? @lestrrat LINE / Japan Perl Association / YAPC::Asia (2008~2013) STF / peco (new!) 2 俺とGo Goしてみて約1年弱 概算10~12万行くらい書いた。lived○○rBl○g の裏方にもこっそりgo入れてる 最初の4万行くらいまでに goの落とし穴にほぼ全て落ちた 自信がある 今日はその落とし穴から学んだ諸々の話 3 対象観客層 もともとPerl/Python/Ruby/PHPあたりから来た人 Goは最低限とりあえずかじった程度はやった人 かじってみたけど「Go、便利そうだけどなん

  • Go database/sql tutorial

    The idiomatic way to use a SQL, or SQL-like, database in Go is through the database/sql package. It provides a lightweight interface to a row-oriented database. This website is a reference for the most common aspects of how to use it. Why is this needed? The package’s documentation tells you what everything does, but it doesn’t tell you how to use the package. Many of us find ourselves wishing for

    KGA
    KGA 2016/06/23
  • 新卒研修でGo研修を担当しました

    @tenntennです。 今年度の新卒研修でGo研修を担当しました。 スライドで100ページを超えるボリュームの資料を14時間かけて、じっくり網羅的に講義を行いました。 内容は今まで私が外部で発表したスライドをまとめて補足を足していった形になってます。 資料はSlide Shareに公開してあるので、ぜひチェックしてみてください。 また、資料中に扱っているソースコードもGithubで公開していますので、そちらも参考にしてください。 資料 ソースコード 研修をやってみて 新卒の反応は、普段触れない言語に触れて新鮮だったという反応やゴールーチンとチャネルが難しいなどさまざまでした。 スパルタ気味で進め方が少し早かったせいか、ついていくのが大変だったみたいです。 それでも、自主的にpingコマンドを作ってくる強者もいたり、いい刺激になったんじゃないかと思います。 裏話 実は最初はGoで簡易ゲーム

    新卒研修でGo研修を担当しました
    KGA
    KGA 2016/06/23
  • Go入門

    1. Go入門 ver. 2017/04 The Go gopher was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license. 2. アジェンダ ■ 自己紹介 ■ Goの紹介 ■ Goの基 ■ 型・メソッド・インタフェース ■ ゴールーチン・チャネル ■ ネットワークプログラミング ■ go test と testingパッケージ ■ ハンズオン 2

    Go入門
    KGA
    KGA 2016/06/23
  • Go言語でGraceful Restartをするときに取りこぼしを少なくする

    少し前にStarletにGraceful Restartが時たま上手く動かない問題を修正するpullreqを投げました。 原因は割り込みハンドラ内でexitを呼んでいたからでした。 「割り込みハンドラ内ではフラグを建てるだけ」 「メインのプログラム内でそのフラグを見て分岐する」という原則があるのですが、それを守るのは難しいということですね。 (しかし新たな問題を産んでしまいrevertされてしまいましたが・・・ まあ修正後のコードも考え方は一緒です。割り込みホント難しい・・・) このpullreqを取り込んでもらうときに再現実験をやってみたのですが、 Goでもちゃんと動くのかな?と気になったので Go言語でGraceful Restartをするで紹介した プログラムに同じテストをやってみました。 2017-01-22追記: Go1.8以降でGraceful Shutdownがbuild-i

    KGA
    KGA 2016/06/17
  • golangのenconding/jsonのタグについて - Qiita

    Help us understand the problem. What is going on with this article?

    golangのenconding/jsonのタグについて - Qiita
    KGA
    KGA 2016/06/15
  • Make and Go for Fun and Profit on unwiredcouch.com

    I’ve been somewhat interested in Go for quite a while now. It’s gotten to the point where it has replaced Ruby for me in those places where I write command line utilities which are too involved for them to make sense to be a shell script. I don’t have too many opinions about the language itself, but I like the static type system and that it’s a compiled language. And to be honest, the build system

    KGA
    KGA 2016/06/13
  • Go言語でファジング

    この記事はGo Advent Calendar 2015の21日目の記事です. 今年もGoコミュニティーから多くのツールが登場した.その中でも異彩を放っていたのがGoogleのDynamic testing toolsチームの@dvyukov氏によるgo-fuzzである. go-fuzzはGo関数のファジングを行うツールである.このツールはとても強力で標準パッケージで100以上,golang.org/x/パッケージで40以上,その他を含めると300以上のバグを発見するという実績を残している(cf. Trophies). 記事ではこのgo-fuzzの紹介を行う. ファジングとは? Fuzz testing - Wikipedia, the free encyclopedia ソフトウェアの脆弱性検出におけるファジングの活用 「ファジング」とはソフトウェアのテスト手法である.テスト対象となる

    KGA
    KGA 2016/06/10
  • Go と reflect と generate - Qiita

    この記事は Go Advent Calendar 2015 5 日目の記事です。 はじめに Go にはジェネリクスがありませんが、任意の型に対して共通の処理を提供したいことがあります。 例えば ORM ライブラリで User テーブルと Blog テーブルを struct で表す場合を考えてみます。 package main var db = func() *sql.DB { db, err := sql.Open("mysql", "hoge") if err != nil { panic(err) } return db }() func (u User) FindById(id int64) (*User, error) { return &u, db.QueryRow("SELECT Id, Name, Email FROM User WHERE Id = ?", id).Scan

    Go と reflect と generate - Qiita
    KGA
    KGA 2016/06/10
  • golangでSQLを叩くライブラリまとめ[基本/クエリビルダ/ORM] - Qiita

    アプリケーションを作る上でデータベースを避けて通ることはできません。その中で最もポピュラーでパワフル(かつ普及している)のはSQLでしょう。 golangでも快適にSQLを操作したい。 このエントリでやること golangSQLを操作する方法を、「基(databse/sql)」から、SQLクエリを自動生成する「クエリジェネレータ」、最後に「ORM」という順序で解説します。 ライブラリの特徴などをいくつか抑えていくだけであって、網羅的ではない。雰囲気だけ。 操作方法 基(database/sql) 標準ライブラリだけを使って頑張る。基的にSQLを手書きして、変数とのマッピングも手で当てることになる。 sql.(*DB).Exec()を使うと、SQLクエリをそのまま叩ける。プリペアドステートメントはクエリのあとにガシガシ置いていくカンジ。 db, err := sql.Open("sq

    golangでSQLを叩くライブラリまとめ[基本/クエリビルダ/ORM] - Qiita
    KGA
    KGA 2016/06/09
  • Go言語でのORMを色々検討してみた - タオルケット体操

    フルスタックと聞いたからrevel使ってみたのにモデル層のサポートどころかORM(あるいはそれを良い感じに使うレール)もないじゃねえかみたいな感じで仕方なくちょろっと調査した、みたいな所感だけを書いた雑なエントリです。 結論 色々やろうとすると最終的には諦めてdatabase/sqlを使うのが良い。割り切りが大事。 試したライブラリ GORM https://github.com/jinzhu/gorm 多分一番リッチ。 後で書くけど、リレーションを含めたコードファーストなデータストア定義とかをしたいならこれしか選択肢なさそう。 gorp https://github.com/go-gorp/gorp 正確には"ORM-ish library for Go"だけどね genmai https://github.com/naoina/genmai "Simple, better and ea

    Go言語でのORMを色々検討してみた - タオルケット体操
    KGA
    KGA 2016/06/09
  • Profiling & Optimizing in Go - YAPC::Asia Tokyo 2015

    Brad Fitzpatrick takes a slow, buggy Go program and shows how to use Go's wonderful tooling to make it fast and correct. Learn how to debug and profile Go programs. Topics will include Go's race detector, CPU, memory, and block profiling, minimizing garbage, various compiler flags, in-memory representation of core Go data structures, etc.

  • GoでMySQLを使ったテストをする - ぱいぱいにっき

    前提 Perlというか、周りの人たちだけなのか、はたまた所属している会社の文化なのかもしれないんですけれど、MySQLを使うWebアプリケーションのテストを書くときに、それ専用のDBを立てるわけでございます。都度立てると重いし、上げたり下げたりスキーマ流しこんだりとかまあそのへんのケアが必要なんですけれど、モックとかやらなくていいし、インデックス張ってなくて重いとかもまあ検知できて便利。賛否両論はあるとは思います。 さて、その時に使うTest::mysqldというモジュールがあり非常に便利なわけですが、さてGoMySQLを使うWebアプリケーションを書く際に、似たような感じでテスト書けないかなと思っていろいろやってみた次第です。 Go触りはじめてあんまり時間立ってないのでそれ違うとかあればコメントなどで教えていただきたいと思っております。 材料 Go 1.4以降 後述するfunc Tes

    GoでMySQLを使ったテストをする - ぱいぱいにっき