タグ

Go言語に関するkazuph1986のブックマーク (27)

  • Primusを公開しました - Masteries

    この記事は, 「Gaiax Advent Calendar 2016」の24日目の記事です. ...24日だぞ☆ 当は, 先日ちょうど退職エントリを書いたことですし, 「Gaiaxで学んだこと」みたいな感動超大作でも綴ろうかと思ったんですが, 終わりが見えない感じになっていたので, とりあえずPrimusを公開した件について書こうと思います. github.com なおPrimusについては, 先日開催された「エンジニア交流会〜マル秘?!こだわりの社内ツール大公開!~」でも紹介させて頂きました. Primusについて Primusが生まれた経緯などについては, 以前Fukuoka.pmでお話した「僕たちはどうしてもLINEのBotをローカルで開発したかったんだ」のスライドをご覧頂くと良いと思います: 要するに, LINE Messaging APIを利用したWebサービス開発をしている際

    Primusを公開しました - Masteries
    kazuph1986
    kazuph1986 2017/01/05
    仕組みとして面白い。
  • Golang で心を無にしてコードを書く // Speaker Deck

    LINE Developer Meetup #11 での LT スライド。Golang の語り尽くされたであろう、単純さについて入門的にふれる話。 6/22 19:00 宮崎開催! LINE Developer Meetup #11 - connpass http://connpass.com/e…

    Golang で心を無にしてコードを書く // Speaker Deck
    kazuph1986
    kazuph1986 2015/06/24
    無にできるというか「綺麗なままでいられる」の方が個人的には近い。
  • Go言語でSQLのトレースをする

    ぴっぴ先輩が「Go言語で発行したクエリを確認したい」って言ってて、 「MySQL使っているならGeneral Logを吐けばよいのでは?」と返したんだけども、 もっと汎用的な方法はないものかと考えてみました。 Golangdatabase/sql はどんなDBでも対応できるよう、ドライバを自由に入れ替えることができます。 ドライバは単にdatabase/sql/driverにあるインターフェースを満たしている何かなので、 ユーザが自由に作ることができるし、interfaceを経由して直接呼び出すことも可能です。 この仕組を使って、別のドライバにそのまま渡すプロキシを作れば、ログを吐けるのでは?ということでやってみました。 go-sql-proxy 使い方 まず最初にgo-sql-proxyをドライバとして登録します。 hooks := &proxy.Hooks{ // Hook fun

    kazuph1986
    kazuph1986 2015/05/13
    Golangガンガンやってるー
  • NDS#36 Go言語入門

    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

    NDS#36 Go言語入門
    kazuph1986
    kazuph1986 2014/11/02
    とりまこれをやろう。
  • Go Conference 2014 spring で発表してきた

    5月31日にGoConference 2014 springというイベントで pt & Goroutine というタイトルの発表をさせてもらいました。 今年に入ってから Go言語をさわるようになって、pt(The Platinum Seacher)というGoでつくったagライクな高速検索ツールを公開しており、そこからのつながりで今回の発表となりました。 内容的には、以下のスライドのとおり、同ツールの高速化の経緯をたどりながらGo言語の並行処理を実現する機構であるGoroutineの使い方を知ってもらうという構成でした。 TLの反応などを見ると、需要はあり一定の満足はもらえたんじゃないかなとほっとしています。 200名ぐらいの参加者がいて、海外からのスピーカー来ているという今回のカンファレンスは、福岡から参加した自分にとってはなかなか格的なもので、たくさん刺激を受けたし、こういうところで話

    Go Conference 2014 spring で発表してきた
    kazuph1986
    kazuph1986 2014/06/09
    発表すごいわかりやすかったです!
  • Go言語での構造体実装パターン

    Go言語での構造体実装は、埋込や独自コンセプトのインターフェースといったGo言語独自の機能を理解して行う必要があります。 今年からGo言語を始めましたが理解が曖昧なままだと実装に迷うことが何度かありました。今回よい機会なので、Go言語での構造体実装パターンとしてまとめてみることにしました。 構造体実装パターン 実装パターンの洗い出しとして、GoFデザインパターンをGo言語で実装する手法をとりました。 その中で繰り返し現れる実装をGo言語での構造体実装パターンとしてまとめてみました。 コンストラクタ関数 エクスポートによるアクセス許可 インターフェースによるポリモフィズム 構造体によるポリモフィズム 構造体によるサブクラス・レスポンシビリティ 構造体による移譲 関数による移譲 以下、それぞれのパターンを解説していきます。 コンストラクタ関数 Go言語には構造体のコンストラクタがないため、構造

    Go言語での構造体実装パターン
  • go言語のコンストラクタでinterfaceを返す | さにあらず

    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 と非公開の struc

    go言語のコンストラクタでinterfaceを返す | さにあらず
    kazuph1986
    kazuph1986 2014/05/14
    この記事読んでやってみた。
  • Go言語のテスト用ライブラリとGospel - ✘╹◡╹✘

    先週初めてGo言語を触る機会があったので、テストの書き方を調べた。 要約すると、標準ライブラリのtestingが好きになれず他に調べても気に入ったものが見付からなかったので自分でつくった。 testing Go言語にはtestingという標準ライブラリが用意されていて、 「go test」コマンドを実行すると「*_test.go」という名前のテスト用ファイルがそれぞれ実行される。 具体的には、そのファイル内で定義されたTest*という名前のテスト用関数がそれぞれ実行されるようになっている。 公式サイトの例ではこういうコードが紹介されていた。 type doubleTest struct { in, out int } var doubleTests = []doubleTest{ doubleTest{1, 2}, doubleTest{2, 4}, doubleTest{-5, -10}

  • 文字列操作の比較表: RubyとGo言語

    ふとtwitterをみていたら @ymotongpoo pythonjapan.comとかいうサイトがすごく下品なことをしてる。 「文字列操作の比較表」 http://bit.ly/ggAJ0k これは高林さんの記事の丸コピペな上に引用元書いてない。恥を知れ。 http://bit.ly/g9U5M http://twitter.com/ymotongpoo/status/40615506608128000 というのが目にはいった時に社内buzzに流したらpythonjapanうんぬんよりも言語比較の話がまた再燃。s.to_fはperlでは0+$sだとか、s.to_sは”$s"とか。 そういえばGo言語も比較したらどうなるかせっかくなのでまとめてみた。 問題のpythonjapanはあっという間に消えたようですね。 謎のpythonjapan

  • Codelab: Webアプリケーションを書いてみよう - golang.jp

    Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 始めに このcodelabで説明する範囲: ロードおよびセーブメソッドを持つデータ構造の作成 httpパッケージを使用してWEBアプリケーションを構築 templateパッケージを使用してHTMLテンプレートを処理 regexpパッケージを使用してユーザ入力をチェック クロージャの使用 必要な知識: プログラミング経験 基的なWEBテクノロジー(HTTP、HTML)への理解 UNIXコマンドの知識 開始準備 現時点でGoを実行させるためには、Linux、OS X、FreeBSDのいずれかのマシンが必要です。これらの何れも利用できなければ、Linux仮想マシン(VirtualBoxまたは

  • Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。

    いまや高速パターン検索といえばag(The Silver Searcher)ですが、検索対象がUTF-8のテキストを前提としているため、EUC-JPやShift-JISといったファイルを検索するのに課題があります。 これまで、それらの日語文字セットを検索できるようにするため、色々とagの改造、公開を行っていました。 ag(The Silver Searcher)でEUC-JP/Shift-JISのファイルも検索できるようにしてみた 日語圏特化型ag -白金- の配備が完了しました しかし、特定の国の文字コードだけに特化した修正というのをmasterに取り込んでもらうわけにもいかず、派生ブランチとして追随するのも、やはり面倒… そこで年始にGo言語を触ったのをきっかけに、Go言語でパターン検索ツールをつくってみました。 せっかくなのでポストagを目指して、プラチナサーチャー(The Pl

    Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。
  • 動的言語だけやってた僕が、38日間Go言語を書いて学んだこと - Qiita

    Go言語を始めて38日たったので、これからGo言語を始めるプログラマにちょっとでもヒントになるように、どのようにGo言語を始めて、どのような手順で学んできたかまとめておきます。 筆者のバックグランド PHP歴、JavaScript歴10年~ Python 3ヶ月くらい Ruby 1日 静的言語経験ほぼ皆無(Java 3日くらい、Scala 3日くらい、Objective-C 1週間くらい、Cそもそも挫折、C# 1日) 静的言語というと、「コンパイルの一手間が面倒」だとか「環境を作るのが面倒」だとか先入観があり、ほぼわず嫌い状態でした。 Go言語とは? Go言語は2009年にGoogleによって作られたオープンソースの静的言語で、LinuxMacWindowsAndroidで動作します。最近ではGoogle App Engineで使うこともできます。 golang.jpの解説によると

    動的言語だけやってた僕が、38日間Go言語を書いて学んだこと - Qiita
    kazuph1986
    kazuph1986 2014/01/13
    ありがたい!
  • Go言語の気に入ったところ/気に入らなかったところ - はこべにっき ♨

    二日間ほど集中してgo言語でコード書いたので、その間に感じたことをまとめてみます。普段はだいたいPerlJavaScriptでWebアプリケーションを書いています。 まとめの要約 go言語良い Webアプリケーション書くならPerlとかRubyが良い PerlとかRuby書ける人がミドルウェア書くならgo言語良い 気に入ったところ コンパイルエラーが親切 たとえば気楽な気持ちで以下のようなコードを書くと package main import ("fmt"; "net/http"; "log") func main() { resp := http.Get("http://hatenablog.com/") fmt.Println(math.Pi) } 以下のように丁寧に問題箇所を教えてくれます。 ./hoge.go:6: imported and not used: "log" ./h

    Go言語の気に入ったところ/気に入らなかったところ - はこべにっき ♨
  • GoConvey - Go testing in the browser

    Write behavioral tests in your editor. Get live results in your browser. Uses go test GoConvey supports Go's native testing package. Neither the web UI nor the DSL are required; you can use either one independently. Terminal or browser Since GoConvey integrates with go test, you can keep running tests in the terminal or use the auto-updating web UI for test results. Tell your program's story Thoug

  • Goの初心者が見ると幸せになれる場所 #golang - Qiita

    公式サイト A Tour of Go Web上で実行しながら学ぶことができる公式のチュートリアルです。 チュートリアル 公式のチュートリアルです。初学者向けからジェネリクスのチュートリアルなども用意されています。 A Tour of Goが終わった後に取り組むと良いでしょう。 Go Wiki Go Code Review Commentsなどが掲載されているGitHub上のWikiです。 パッケージドキュメント 標準パッケージやサードパーティ製のパッケージのドキュメントが見れるサイトです。検索もできます。 入門 プログラミング言語Go完全入門 筆者が作っている巨大なGoの入門資料です。なぜGoが作られたのか、から最新のジェネリクスの情報、静的解析まで扱っています。 Gopher道場 Goを体系的に学べる場です。10時間くらいある動画教材(自習室から入手可)もあります。 Go の最初の手順

    Goの初心者が見ると幸せになれる場所 #golang - Qiita
  • 萌えキャラとは何だったのか - isucon3のリファレンス実装をGoに移植した話

    isucon3スタッフとして選運営のお手伝いをしてきましたが、参加者ではないのでisuconについて特に書くことが見つからないmix3です。一つ言えるのはみんな凄すぎでそれに比べて自分は当になにも出来ない無能なんだなぁと再認識させられました。死にたい。 移植を引き受けた話 isuconでは最初に動く状態のアプリが用意されるのですが、そのアプリは問題が確定した後にまずリファレンス実装(今回はPerl)がされ、その後予選を抜けた人たちが使用していた言語(Perl含むRuby,Python,PHP,NodeJS,Go)に移植する、という流れで作られました。自分はその中でGo言語移植を担当しました。 ちなみにPerl以外の移植言語の中ではPHPぐらいしか触ったことがなく、PHPもかれこれ2,3年は触っておらずすっかり忘れてしまってるので、何の言語を担当しようと何も分からない状態から始まるという

    kazuph1986
    kazuph1986 2013/11/13
    ISUCON起因でGoの情報が確実に増えてると思った。
  • 規模の大きい本番システムをGo言語で書き直した感想 - ワザノバ | wazanova.jp

    http://matt-welsh.blogspot.com.au/2013/08/rewriting-large-production-system-in-go.html Go言語の4周年をテーマにしたgolang.orgのブログで紹介されていた、GoogleのMobile Web Performanceチームに所属するMatt Welshのブログです。大規模な番システムの作り直しにGo言語を採用した経験を語っています。 1) 背景 C++のオリジナルのコードベースは問題なく作動していたが、何年も複数の目的の違うプロジェクトで共有されていたため、スピーディーに改修するのが難しくなっていた。(何のシステムなのか具体的に書いてないのは残念。。) イメージフォーマットをトランスコードするライブラリはC++で完璧に動作していたので、そのまま残し、それ以外を全てGo言語で書き直した。 元のコード

  • Go言語で苦労したポイントの事例 - ワザノバ | wazanova.jp

    http://da-data.blogspot.jp/2013/10/experience-with-epaxos-systems-research.html Go言語についての記事をまとめていて困るのが、特にHacker Newsでは熱狂的な賛成派と執拗な反対派が感情的に戦っていて、Go言語の何がいいのかはわかるが、まだ改善すべき余地のあることが実際どれほどの支障になるのかについては、議論からは判別しづらいことです。 カーネギーメロン大のDavid Andersonが、分散アルゴリズムEPaxosをGo言語でインプリしたときの経験について”Huge Positive” “It proved a huge win” としていながら、苦労したポイントを挙げています。このような具体的な事例がもった蓄積していくと参考になるのではないかと思います。 Go言語による開発で苦労したのは、Zookeep

  • KLab若手エンジニアの これなぁに? : 第三回 豪快にGO会

    カテゴリ 第三回 豪快にGO会 こんにちは。ehama-kです。 8/1(木)に開催された3回目のGo言語の勉強会のレポートをお送りします。 「電車でGo!」 今回は同じ新卒の岡くんが、社外イベントの「電車でGo!」に参加した際のレポートと、Google App EngineとGo言語に関する話をしてくれました。 電車でGo 都電荒川線を貸切って、三ノ輪駅~早稲田を移動している間車内でGo言語の勉強 実際は、最初の30分くらい参加者みんなテンション上がって、コードは手付かず・・・・(^^;) Google App Engine と Go言語 Googleアカウント認証 Go言語で掲示板Go言語で掲示板 App Engine をimport import ( "appengine" "appengine/user" ) これでGoogle App Engine の機能を使うことができま

  • Big Sky :: Go言語でWebAppの運用に必要なN個のこと

    « Software Design 2013年10月号「生産性を向上させるVimのTips」を書かせて頂きました。 | Main | Go言語でインタフェースの変更がそれ程問題にならない理由 » golang - Go言語でWebAppの開発に必要なN個のこと - Qiita [キータ] http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies アプリケーションサーバ 標準パッケージの ne... http://qiita.com/tenntenn/items/b8b27e32c28f7569f41a tenntenn さんに開発版を書いて貰ったので運用編を書こうかと思った。 なお、以下のプロダクトは全て golang で書かれているが、rubyperl のアプリケーションを運用する際にも

    Big Sky :: Go言語でWebAppの運用に必要なN個のこと
    kazuph1986
    kazuph1986 2013/09/18
    今回は運用編みたい。