タグ

Go言語とGoに関するluccafortのブックマーク (9)

  • Go言語のFunctional Option Pattern - Qiita

    オプション パッケージを作る際、柔軟性を持たせるためにオプションを持たせたい時がしばしばあります。 しかしオプションは知っての通り設定しないことが少なくありません。 単にコンストラクタに並べるようでは無用な複雑さをはらむことになります。 JavaなどではOptional Parameterなどのように、デフォルト値が指定できる機能があります。 機能の厳選されたgo言語ではそのような機能はありませんが、 "Self Referential Functions Design"というテクニックがあり、 それについての記事がRob Pike氏の記事を筆頭にいくつか説明されています。 オプションと相性が非常に良いため、合わせて"Functional Option Pattern"とも呼ばれています。 Dave Cheney氏の記事を参考におおまかに説明したいと思います。 様々な解決策 あるServe

    Go言語のFunctional Option Pattern - Qiita
    luccafort
    luccafort 2017/04/02
    実装が冗長だなあとは思うけど確かにパッケージは使う側を想定して作るべきという主張もわかるしこういう実装方法がベターなのかなあ。(´ε`;)ウーン…
  • GoのためのGo

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

    luccafort
    luccafort 2017/01/28
    これは一読以上の価値があるやつだ!
  • Goについて思うこと 2016

    あんまりこういう内容のポエム的なものは広まってほしくないなあ・・と思うのでこっちにひっそり書くことにする。 今年は僕にとってはGoの存在がとても大きい年だった。 5年前、僕が書くのはWebアプリケーションが中心で、PHPをメインで触っていた。それが気がつけばエンジニアリングのレイヤが広がったなあという所感があって、ここ最近Goがそれを加速してくれた。第二の言語としてのGoはとても良くできていて、小回りが聴くし、ミドルウェアをちょろっと書くにも心地よい。やっぱり最近の言語ならではの良さがある。たとえば、 * テストが標準ライブラリに組み込まれている * net/httpがとても良くできている。フレームワークを必要としない場面も多い。 * concurrencyを堅牢に扱える(うまい言葉が見当たらない) * そしてそれなりに速い というのがあげられる。特にgo toolの充実はすごい。Race

    luccafort
    luccafort 2016/12/27
    “まず「これを実現したいんだ」が一番最初にあって”わかる。無駄なところの議論が起きにくい言語なんだなって強く感じるところがGoの魅力の1つですよね。PHPに対する感覚もぼくにはわかりやすかった。
  • Golangのエラー処理とpkg/errors

    GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん

    luccafort
    luccafort 2016/04/25
    途中まで「うんうんわかるわかる」と読んでいたのにerr.(temporary)という呼び出し方法を見て「えっなにこれこれで呼び出せんの???」と混乱のるつぼに突入してしまった。errorsも知見だけどこっちのほうが気になる。
  • 本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita

    事の始まり それはD言語くんへの嫉妬から始まった。 D言語くんの繁殖についての仮説 lsを間違えてdlと入力してしまったときに、D言語くんが通り過ぎるコマンド くっ悔しい... そしてショボいAAで2番煎じ。 lsを間違えてgolと入力してしまったときに、Gopherが通り過ぎるコマンド書いた。 こんなはずじゃない! 僕らの Gopher 君はこんなチープじゃない! 明日来てください。物の Gopher をお見せしますよ。 — mattn (@mattn_jp) December 15, 2015 (当はもうちょっと前から作ってましたが) 物のGopher君とは そして今回、これを公開するに至った。 まずはこれをご覧頂きたい。 !!!!!!!!!!!!1 こいつ・・・ 動くぞ・・・ golang で書いたデスクトップマスコットです。起動すると画面のタスクバーの上をウロウロします。たま

    本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita
    luccafort
    luccafort 2015/12/17
    goいんだけどこういうの嫌いじゃない。
  • 【flagg】そんなもんは作らんでよかったのである【Go言語】 - DRYな備忘録

    前略 昨日これを書きました 【つくった】Go言語のflagパッケージでコマンドラインオプションが取得できない気がしたので - DRYな備忘録 これに対して、id:hayajo_prpr 氏から以下のようなご指摘を頂きました。 flagパッケージを使う場合はこんな感じでいかがでしょうか? https://gist.github.com/hayajo/5d5a3cfce2407964e0e9 otiai10/flagg よりも直感的ではありませんが… で、書いて動かしてみたらまさに僕が欲しかった結果が得られまして、ああやっぱり僕ぁ糞だなと思いつつ、とっても勉強になりました! 雑感 いろいろ突っ込んでくれる人がいるというのは有意義だなーと思うので、今後ともひきつづきDIYしては突っ込まれ、勉強していきたいと思います。草々

    luccafort
    luccafort 2014/06/04
    Go言語楽しそう…
  • Go言語のコードレビュー

    SoundCloudが2年半ほどGo言語を利用したプロダクトを番で運用した知見をGopherConで発表していた(“Go: Best Practices for Production Environments”).その中で“CodeReviewCommentsというGoogleでのGo言語のコードレビューにおいてよくあるコメントをまとめたサイトが紹介されていた. 最近Go言語を書くようになり,使えそうなのでざっと抄訳してみた.“リーダブルコード”的な視点も含まれており,Go以外の言語でも使えそう. gofmtでコードの整形をすること コメントは文章で書くこと.godocがいい感じに抜き出してくれる.対象となる関数(変数)名で初めて,ピリオドで終わること // A Request represents a request to run a command. type Request str

  • Go言語に少し触れてみた - LotosLabo

    はじめに Go言語とは、Googleによって発表されたオープンソースのプログラミング言語のことです。 - シンプルな言語 - コンパイル・実行速度が早い - 安全性が高い - 親切である という特徴があります。 (公式から抜粋してきた内容と、使ってみた感想をまとめてみました) 使い方 Go言語インストール先はこちら go1.2.windows-amd64.msiというのがあるのでそちらを選択します。 64bitの方はこちらを選んでください。 IDEにはインストールファイルに入っている LiteIDEというツールを使っていきます。 インストールが完了しましたら、環境変数を設定します。 ①PATH→ C:\Go\bin; ②GOROOT → C:\Go それぞれダウンロードした場所を指定します。 次に、下の画像の黒いボタンをクリックして、上のGOROOTとPATHのように入力します。 最後にV

    luccafort
    luccafort 2014/01/27
    ディレクトリ作成の項目のソースコードのコメントアウトがファイルになってるけどディレクトリの間違い?個人的にはimportを()でまとめれるのがスマートな気がした。
  • Go言語のサンプルがつまった『Go By Example』 | 100SHIKI

    マニアックではあるが、最近興味があることなのでご紹介。 Go By Exampleでは、ちかごろ話題の「Go言語」のサンプルがたくさん紹介されている。 お約束の「Hello World」から、Go言語特有の並列処理まで網羅されているので勉強になる。 ちなみにソースコードの右上にあるアイコンをクリックすればその場で実行結果を確認できるようだ。 そろそろGo言語を勉強しなくちゃな、という方はいかがだろうか。

    Go言語のサンプルがつまった『Go By Example』 | 100SHIKI
  • 1