タグ

関連タグで絞り込む (193)

タグの絞り込みを解除

Goに関するluccafortのブックマーク (58)

  • 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
    実装が冗長だなあとは思うけど確かにパッケージは使う側を想定して作るべきという主張もわかるしこういう実装方法がベターなのかなあ。(´ε`;)ウーン…
  • golang.tokyo#4でGo開発環境Goglandのライブデモを見てきた | メルカリエンジニアリング

    こんにちは、メルカリアッテのAPIチームでGoエンジニアをしている@sonatardです。 この記事は弊社ソウゾウの社員である@tenntennが運営しているgolang.tokyo #4のブログ枠として書いています。 golang.tokyo #4では、ゲストスピーカーとしてJetBrains社のSergey Ignatov氏にご登壇いただきGoglandをライブデモ形式で紹介して頂きました。 メルカリアッテではGoogle App Engine for Go (GAE/Go) を全面的に採用しており、サーバサイドエンジニアの中でもGoglandの利用者が増えています。そこでSergey Ignatov氏に紹介して頂いた機能とソウゾウ エンジニアたちが利用しているお気に入りの機能をまとめてご紹介したいと思います。 ソウゾウがGAE/Goを採用した経緯は@ttsuruokaのatte 開発

    golang.tokyo#4でGo開発環境Goglandのライブデモを見てきた | メルカリエンジニアリング
    luccafort
    luccafort 2017/03/23
    Goglandさっそく入れてみた。RubyMineとかPhpStormとかGoglandとかJetBrain製のツールに囲い込まれてる感があるな。
  • [翻訳] Why Go? - Qiita

    (この記事は Dave Cheney さんの Why Go? の翻訳です。) 数週間前、友人に「Goに注目に値するのはなんで?」と聞かれました。 彼は私がGoに情熱を注いでいることを知っていましたが、なぜ私が他の人もGoを気にするべきだと思っているのかを知りたいようでした。 この記事は、私がGoを重要なプログラミング言語だと考える、3つの大きな理由を紹介します。 メモリ安全 個人としては、私もあなたもC言語でメモリリークも危険なメモリの再利用もしないプログラムを書く事ができるでしょう。しかし、40年以上の経験から、集団としてのプログラマーはC言語で信頼できるプログラムを書けない事がはっきりしています。 コードの静的解析、 valgrind, tsan (訳注: たぶん ThreadSanitizer), -Werror といったツールは10年以上前から使えますが、それらのツールが広く認知さ

    [翻訳] Why Go? - Qiita
    luccafort
    luccafort 2017/03/21
    開発者の生産性以外はあまりピンと来ないのはぼくがもう長らくC言語に触れていないからなのかな。個人的にはメモリ安全よりもポータビリティー性のほうが…。
  • Travis CIでdepを使う - くりにっき

    zatsu_monitor でdep対応をしたのでその時のメモ depについて .travis.yml depをいれたメリット depについて depについては下記を参照 mattn.kaoriya.net .travis.yml 必要最低限だとこんな感じ language: go go: - 1.7 - tip before_install: - go get github.com/golang/dep/... install: - $GOPATH/bin/dep ensure script: - go test depのREADMEに書いてるのを.travis.ymlに書いただけです。 .travis.ymlの完全版はこちら https://github.com/sue445/zatsu_monitor/blob/c265f1b9301c056cbac5006952270812c915

    Travis CIでdepを使う - くりにっき
    luccafort
    luccafort 2017/01/31
    "依存するライブラリのバージョンを上げた時にそれがgitの履歴として残るのはいいですね。"なんでこのバージョンのライブラリをあげる必要があったのかが明示化されるのはいい。しかしgo getしても$PATH通らないのか…。
  • 物理サーバを選定する際のポイント – Eureka Engineering – Medium

    エンジニアとしてのものづくりの楽しみ方とモバイルエンジニアとしての開発の面白さ」を論じる。スキル向上に悩めるモバイルエンジニアへの参考として価値を期待し、モバイルアプリ開発の奥深さに考えを巡らせることで強い動機を持ち、次の挑戦が見えてくる。

    物理サーバを選定する際のポイント – Eureka Engineering – Medium
    luccafort
    luccafort 2017/01/28
    わかってればこんな初歩的な内容でハマらんだろ!とか思ったがそうかos.getenv("GOPATH") を 使ってるサードパーティー製ライブラリが引っかかる罠があるか。
  • GoのためのGo

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

    luccafort
    luccafort 2017/01/28
    これは一読以上の価値があるやつだ!
  • Go Binary Hacks - go buildせずにビルドする #golang - Qiita

    はじめに Goではルールに従いソースコードを配置してgo buildを実行するだけで実行バイナリを作ることができます。 とても便利なのですが、一体裏で何が行われているのでしょうか? この記事ではgo buildの仕組み、簡単なシンボルテーブルの説明、Goに用意されているバイナリ操作コマンドを学ぶことができます。 実行バイナリの作成 実はGoでもC言語と同様に以下のフローで実行バイナリを生成しています。 1. ソースコードをコンパイルをしてオブジェクトファイルを作成 2. オブジェクトファイルをまとめてライブラリを作成 3. オブジェクトやライブラリをリンクして実行バイナリを作成 go buildではこれらの処理を複数コマンドにより実現しています。 コマンドの詳細はgo buildの-xオプションで確認することができます。 同一パッケージに1つのファイルしかない場合

    Go Binary Hacks - go buildせずにビルドする #golang - Qiita
    luccafort
    luccafort 2017/01/24
    go buildが普段なにを行っているのかの参考になる非常によい記事なのだけどもどういうモチベーションが生まれればこれを調べよう!という気になったのかが少しだけ気になる。なんかきっかけあったのかな。
  • Arukasを使って無料でGo製のslackbotを運用する - きょこみのーと

    はじめに SlackbotをHerokuで一日中動かすと課金が発生するので色々ハックが必要となったりするので、なんとかしたくArukasに出会いました。 今回は、自分が作ったgo製のslackbotを元につくったbotをgithubにpushしてWercker経由でdockerImageを作ってArukasへのDeployを行う方法を紹介します。 github.com 今回のコードとか設定をexampleとして公開してますので、よろしければ参考にしていただければと。 Arukasとは? いまのところ無料でDockerをホスティングできるサービスです。 arukas.io 一応CLIツールも公開されていて、結構便利です。 github.com ※注意点としては、CMDで起動したプロセス監視とかは無いので自分でとかgo-server-starterとかを入れてプロセス死んだときに再起動する仕組

    Arukasを使って無料でGo製のslackbotを運用する - きょこみのーと
    luccafort
    luccafort 2017/01/04
    お役立ちっぽい情報だこれ。ちょっと知識量が足らなくてわからんところあるのでexampleみながら勉強させてもらおう。
  • Goについて思うこと 2016

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

    luccafort
    luccafort 2016/12/27
    “まず「これを実現したいんだ」が一番最初にあって”わかる。無駄なところの議論が起きにくい言語なんだなって強く感じるところがGoの魅力の1つですよね。PHPに対する感覚もぼくにはわかりやすかった。
  • 〜Go初学者に贈る〜僕がお世話になった活躍しているGoエンジニアまとめ - Qiita

    はじめに お気づきの方も多いかと思いますが、記事はiOS新人プログラマーさんに贈るiOSで活躍しているエンジニア を参考に書かれました。 今回は、Goを始めた方がよりよい情報を得ることができるよう、GithubでのOSS活動やQiita、Blog の記事、Twitter、登壇、執筆などアウトプットされている方を中心にGopherを集めてみました。 僕自身、いろんな方のブログやスライド、OSSのコードを見て勉強してきて非常にお世話になりました。この場を借りてお礼申し上げます。 自分の知っている範囲での紹介となってしまうため、活躍されているエンジニアさんをすべて網羅しきれないですがすみません。。 今後もどんどん追記していく予定です! おすすめの方がいらっしゃいましたら、コメントや編集リクエストで教えていただけると嬉しいです。 この記事がGo初学者の助けとなれば幸いです。 紹介順はアルファベッ

    〜Go初学者に贈る〜僕がお世話になった活躍しているGoエンジニアまとめ - Qiita
    luccafort
    luccafort 2016/12/25
    GoConで見知った顔やソレ以前から知っている方々ばかりだったので当然Twitterとかもフォローしてるよなーと思ったら一人目からフォローしてないことが発覚してしまいアレ。思い込みダメ絶対。
  • Goで読んだ本-とある同僚からの相談 - (ヽ´ω`) 

    この記事は Go (その2) Advent Calendar 2016 - Qiita の 18 日目の記事です。 Goを始めるにあたり、皆様はどうしているでしょうか? A Tour of Go Packages - The Go Programming Language Command Documentation - The Go Programming Language The Go Programming Language Specification - The Go Programming Language The Go Memory Model - The Go Programming Language などを見て始める方がいらっしゃる一方、 を手にとって始めて見る方も一定数いらっしゃるかと思います。やはり日語で書かれていること、を書かれた方の知見などが得られるのは大きいの

    Goで読んだ本-とある同僚からの相談 - (ヽ´ω`) 
    luccafort
    luccafort 2016/12/18
    プログラミング言語Goは教科書といった手堅い印象で過不足なく学べるけど最初に手を出すには手ごろさはない感じ。 みんなのGoは読めてないけどこの文章からだと初中級向けという印象、WEB+DBは会社で買ってもらうのが吉
  • Webラジオのm3u8をdownloadしてffmpegでmp3に変換するツールをGoで書いた - きょこみのーと

    2016/12/15 23:06 追記: ちなみにffmpegでm3u8 -> mp3変換はできますが、実行時間が20分以上かかって待ってられなかったのでBulkDownloadが含まれてます。 あとm3u8のURLが推測難しく、いちいちブラウザ開いてplaylistをダウンロードして中身のmedia playlistのm3u8のURLを確認して〜がだるかったのでScrapingしてます。 Webラジオのm3u8をScrapingしてtsファイルをBulkDownloadしてffmpegmp3に変換するツールをGoで書いた が正確なタイトルですかね。 今期は、ガーリッシュナンバーが結構お気に入りです。 www.tbs.co.jp (ちーさまのダメ可愛さがなかなか癖になります) (そして目玉焼きの服というセンス...圧倒的か...) なんでこんな話から始まったかと言うと、面白いなーと思った

    Webラジオのm3u8をdownloadしてffmpegでmp3に変換するツールをGoで書いた - きょこみのーと
    luccafort
    luccafort 2016/12/16
    "面白いなーと思った作品のアニメのWebラジオとか結構聴くんですが、なんか専用のアプリがあって使いにくかったり、Webブラウザでしか再生できなかったりと中々不便"わかる。
  • Gogland – JetBrains発の新しいGo IDEのお知らせ | Post Blog

    3年前、JetBrainsgo-lang-idea-pluginに貢献するという戦略的な決断をいたしました。これはIntelliJプラットフォーム向けのオープンソースのGo言語用プラグインを開発するプロジェクトです。3年に渡る弊社の合計3千を超えるコミットによりプラグイン品質は底上げされ、より安定し拡張性の高く、機能豊富なものへと磨き上げていくことができたと確信しています。 ここ一年間、プラグインのユニークユーザー数を追跡してきましたが、月間アクティブユーザーは倍増して3万人となりました。この事実と、多くのユーザーによるIntelliJライクなGoコーディング体験は提供されないのかというリクエストを踏まえ、半年前に弊社はgo-lang-idea-pluginをフォークし、弊社独自のGo IDEをリリースするという決断に至りました。今ではGoツールサポートと開発体験全般の改善専門のチームを

    Gogland – JetBrains発の新しいGo IDEのお知らせ | Post Blog
    luccafort
    luccafort 2016/12/16
    さすがゴッグだなんともないぜ!!!…っていいたくなるプロジェクト名だよね。それはそれとしてぼくはAtomでGo書いてるんだけどそれ以上の魅力があるのか?という点が気になるなぁ。
  • テストしやすいGoコードのデザイン

    テストしやすいGoコードのデザイン golang.tokyo #2 12 December 2016 Taichi Nakashima 言いたいこと 明示的であれ! 2 whoami @deeeet / @tcnksm (GitHub) http://deeeet.com A PaaS Dev&Ops (Using go for CLI tool, API, Batch jobs) 3 OSS Tools gcli - The easy way to build Golang command-line application ghr - Create Github Release and upload artifacts in parallel Packages go-httpstat - Go package for tracing golang HTTP request latency

    luccafort
    luccafort 2016/12/15
    めっちゃいい資料だった。以前このウンコードなんとかしたいなーと思っていたときにこれを読みたかった…。
  • “オカルトウォーター”不発に落胆の上坂すみれ、霧吹き片手に水素水を食らわせる

    この日のイベントではそのタイトルにちなんで、掛け声と共にステージ上方のスプリンクラーからミストが噴射される演出が用意されていた。口々に「かわいいよ」と繰り返す同志に「うるせえっ!」「つまみ出すぞっ!」と照れ笑いで返した上坂は、さっそく右手を大きく前に突き出しながら「浴びろ!!オカルトウォーター!」「ぷしゅー!」と勢いよくコールする。 しかしステージ上では何も起こらない。同志の「もう1回」の声に、改めてトライするも、やはり変化はなし。これに慌てた上坂が「あのー、ミストが……」とバックステージをのぞき込んだところ、キューズモールスタッフからは「故障です」との返答が。「結局オカルトウォーターとはなんだったのか?」と首をひねらざるを得ず、また涼をとれない結果に終わると、彼女は「みんな毛染めというおしゃれを忘れたような黒髪だし、太陽の光を集めそうだけど大丈夫?」と炎天下の同志を気遣ってみせる。さらに

    “オカルトウォーター”不発に落胆の上坂すみれ、霧吹き片手に水素水を食らわせる
    luccafort
    luccafort 2016/08/14
    参加したらすげー楽しいんだけど周りからは完全にわけわからんやつだ!
  • Goのアンチパターン

    Go書いててなんとなく見えてきた Goでやっちゃいけないパターン WAF導入してらくらくWebアプリ WAF自体が現在群雄割拠状態。 WAF毎にハンドラインターフェースが違うので既存コードつなぐにはラッパーが必要。 どのWAFもLL言語に比べるとまだまだフィーチャーの網羅範囲が狭い。 なのでもちろんLL言語ほど楽には書けないことが多い。 リフレクション使いまくりでトータル性能はLL言語並みに遅いのもある。 Go1.7のcontextパッケージの導入で標準のHTTPハンドラが復権する可能性があり更に荒れる予想。 追記: 楽できるのを期待してWAFを導入するの「やっちゃいけない」とまでは言い過ぎだったかもしれないけれど例のsqlでPrepareを正しく使えていないで性能出なかった件とか、当面WAFを使うなら自分で概ね中身を理解して使う覚悟が必要。 構造体メソッドにロジックを詰め込む Goの思想

    luccafort
    luccafort 2016/08/02
    読んだ、基本的にはGoの思想を順守せよということなんだな。問題はGoの思想を知らずにコードを書いてしまったケースだな、ぼくのことだが。
  • Gaurun Powered by HTTP/2 | メルカリエンジニアリング

    SREチームの@cubicdaiyaです。つい先日メルカリでOSSとして開発・公開しているスマホアプリ向けのプッシュ通知用ゲートウェイサーバであるGaurunがGCM、APNsともにHTTP/2を利用したプッシュ通知に対応したので紹介します。 github.com ちなみにロゴも出来ました。 Gaurun〜A general push notification server in Go〜 繰り返しになりますが、GaurunはメルカリでOSSとして開発・公開しているスマホアプリ向けのプッシュ通知用ゲートウェイサーバです。GCMやAPNsへのプッシュ通知処理をHTTP + JSONベースの非同期処理APIでラップして大量のプッシュ通知を素早く送信することができるのが特徴です。 github.com メルカリのプッシュ通知のシステムもこのGaurunにより構築されています。クライアントとの通信に

    Gaurun Powered by HTTP/2 | メルカリエンジニアリング
    luccafort
    luccafort 2016/05/12
    Gaurunは悪くないけどタイミングが悪くて採用するのはもうちょいあとになりそうだ。個人的には試したい感ある。
  • 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いんだけどこういうの嫌いじゃない。
  • アメッシュをターミナルに表示して、ついでに雨降ってたらSlackでおしえてくれるところまで、Goでやったことのまとめ - DRYな備忘録

    このエントリはGo その2 Advent Calendar 2015 - Qiitaの8日目です。 7日目のS_Shiomtoriさんの記事もコマンドラインツールの話でした。 % go get github.com/otiai10/amesh/amesh % amesh -g 思ったことや詰まったこと書きます Goでコマンドラインツールをつくりはじめるとき なんでわざわざGoでコマンドラインツールつくるか コンパイルが非常に早いので、ほぼスクリプト言語のようにソースファイルをWrite&Runして開発することができるから クロスコンパイルが容易なので、Goのコンパイル環境を要求せず、実行可能ファイルを納品できるから 並行処理を書きやすく、わりとデカめのことをさくっとやってのけたりするから Goでコマンドラインツールつくるときいつもハマること flagパッケージわりと使いにくい flag.A

    アメッシュをターミナルに表示して、ついでに雨降ってたらSlackでおしえてくれるところまで、Goでやったことのまとめ - DRYな備忘録
    luccafort
    luccafort 2015/12/08
    結論のアメッシュ見に行ったほうが早いには反論したいね!だって見に行くのめんどくさいじゃん!だったらSlackに通知のほうが超楽じゃん!!!ということですごくいいと思いましたまる