タグ

golangとあとで読むに関するma7eのブックマーク (7)

  • GOで全ウェブサイトCLI化計画【ダウンロード版】 - 北南書房 - BOOTH

    技術書典5で頒布した新刊「GOで全ウェブサイトCLI化計画」のダウンロード版です。 技術同人誌PDF) / 40ページ / ¥500 情報社会をCLIで泳げ。現代に生きる私たちは毎日、数多のウェブサイトを駆使しながら生きています。 銀行の残高確認、新幹線の予約、新刊情報のチェック、etc...。 しかし一日の2/3をターミナルの中で過ごすとされているソフトウェアエンジニア[要出典]なら、CLIでこれらの作業を行いたいものです。 一部のサイトであればAPIが公開されていますが、残念ながら全てのウェブサイトがそうではありません。 しかし、我々にはブラウザを自動操作するためのChrome DevTools Protocolがあります。 書では、第1章でgolangを用いたCLI作成の基、第2章でchromeの自動操作方法を解説したあと、第3章で技術書典ウェブサイトを題材としたCLI開発を実

    GOで全ウェブサイトCLI化計画【ダウンロード版】 - 北南書房 - BOOTH
  • ssig33.com - Docker で Go で作ったバイナリを実行するなるべく小さいコンテナを作る

    Go でアプリケーションを作ると、そのまま他になにもなくとも実行できるバイナリが出来あがります。この特性によりデプロイが大変楽です。 このような特性があるので、 Go を使う場合 Docker のようなオーケストレーションツールを使わなくても多くのサーバーにアプリをデプロイしていくことも可能かと思われますが、そこはまあ Docker という巨人に乗っておくと楽なことが多いです。具体的には swarm と docker-compose が便利なので Docker 上で実行したい。 ここで問題となってくるのが何も考えずに Docker イメージを作るとイメージサイズが膨れあがってしまってシングルバイナリによる手軽さなどが損なわれてしまうという点です。 たとえば golang:alpine のような比較的小さいイメージを使ってもファイルサイズはバイナリサイズ + 300MB ほどにもなってしまい

  • `ghg` で GitHub Releasesから適切な実行ファイルを統一的に取得する | おそらくはそれさえも平凡な日々

    https://github.com/Songmu/ghg tl;dr % ghg get motemen/ghq とかやれば、GitHub Releasesに上がった最新の実行ファイルを取得できる。 % $(ghg bin)/ghq とかで実行可能。 $(ghg bin) を $PATH に追加してもよい。 % ghg get Songmu/ghch@v0.0.1 とかでバージョン指定も可能。 Goで書いたツールを提供する場合、クロスビルドしたものを GitHub Releasesに上げるのが定番となっています。 なぜ、 go get ではないのかというと go get の場合以下のような問題があるからです。 go get するにはGoの環境が必要 安定版ではなく、開発中の最新をビルドしてしまう ビルド情報などをバイナリに埋め込めない ただし、GitHub Releasesに上げる

    `ghg` で GitHub Releasesから適切な実行ファイルを統一的に取得する | おそらくはそれさえも平凡な日々
  • Mac上にGoの開発環境を構築する〜下準備編 | おそらくはそれさえも平凡な日々

    同僚がGoを始める上で、案外まとまった資料が無さそうだったので書いてみることにしました。 Macでhomebrewが入っていることが前提です。事前に brew update をおこない formula を最新のものにしておくと躓くことが少ないでしょう。 Goのインストール % brew install go エントリ執筆時点では、1.6.2 が入ります。Goはメジャーバージョンが同じ場合は、後方互換が保たれているので、基的に新しいやつを入れて問題ありません。 環境変数の設定 $GOPATH だけを決めればOKです。$GOPATH はどこでも良いのですが、ここでは $HOME/dev を $GOPATH に設定します。また、 $GOPATH/bin に $PATH も通しておきます。 export GOPATH=$HOME/dev export PATH=$GOPATH/bin:$PATH

    Mac上にGoの開発環境を構築する〜下準備編 | おそらくはそれさえも平凡な日々
  • Go 実践4日間 | POSTD

    私の仕事の一つに、簡単なバイナリファイルフォーマットのリバースエンジニアリングがあります。”簡単な”というのは、通常は他の人たちが実際の作業全てを行うからです。私はただ、1つか2つの特別なフラグの意味を理解し、できるだけ多くの発見をして自分のブログに公開するだけです。 バイナリファイルの心臓部をのぞくときは、バイナリエディタを利用しています。ただ、 私の気に入っているSynalyze It! でさえ、使うのは手間がかかります。ファイルフォーマットを解明しようとする時、それぞれのバイトの持つ意味を私自身の仮定に基づいてマークアップしたいのですが、今のところ、そのようなことができるバイナリエディタはありません。現状では、バイナリファイルのバイナリ情報を紙に印刷して、去年のテクノロジー関連のカンファレンスでもらったボールペンでマークアップするのが私のワークフローです。 木々を守り、カンファレンス

    Go 実践4日間 | POSTD
  • 第1章 Go言語の特徴と環境構築―Googleが作った新言語 | gihyo.jp

    特集のはじめに Goは、2009年にGoogleにより発表されたオープンソースのプログラミング言語です。C言語の開発者Ken Thompson、UTF-8の開発者Rob Pike、memcachedの開発者Brad Fitzpatrickといった名だたるエンジニアによって開発されています。 Goはシンプルな言語仕様であるため学習が比較的容易で、豊富な標準パッケージが同梱されているためすばやく目的を達成できます。また、巨大なコードでも高速にコンパイルできるため大規模開発にも適しており、Windows、OS X、Linuxなどの環境に合わせた実行ファイルを生成するクロスコンパイルのしくみがあるため作成したプログラムを容易に配布できます。並行処理のサポートも充実しており、ミドルウェアの開発などにも適しているとされています。 特集では、2014年6月にリリースされた最新バージョンであるGo 1.

    第1章 Go言語の特徴と環境構築―Googleが作った新言語 | gihyo.jp
  • Go言語 + cli-init でコマンドラインツールを作る | DevelopersIO

    よく訓練されたアップル信者、都元です。最近社内のメンバーがみんなGo言語の世界で楽しそうなので、私も混ざってみることにしました。最初のセットアップや基礎文法等は、私も平行して急いで学ぶGo langシリーズで勉強中です。 コマンドラインツールが作りたい と思っています。ちょっとしたものを作るとしたらPythonなのかな、と思って友達Pythonistaにインタビューをしたところ、「ちょっとしたツール作るとかって用途の人は Golangに移行した(えっ」という衝撃的なコメントを貰い、もうこの際だからGo勉強すっかという空気になった次第。 具体的な環境構築 基的には急いで学ぶGo langシリーズを読めばいいのですが、一点迷ったのがディレクトリ構成です。 Go言語で幸せになれる10のテクニックでは「GOPATHは一つだけ (Use a single GOPATH)」という指針が紹介されてい

    Go言語 + cli-init でコマンドラインツールを作る | DevelopersIO
  • 1