タグ

ブックマーク / deeeet.com (8)

  • なぜMicroservicesか?

    現職においてMonolithアーキテクチャからMicroservicesアーキテクチャへの移行とその基盤の構築に関わって2年近くが経った.未だ道半ばであるがこれまでの経験や日々のインプットをもとにいろいろ書いておこうという気持ちになった.記事ではそもそもMicroservicesアーキテクチャとは何かを整理し,なぜやるべきか?・なぜ避けるべきかを整理する. Microservices? Microservicesアーキテクチャとは「Single purpose,High cohesion,そしてLoosly Couploedなサービスを組み合わせてシステムを構築する」アーキテクチャ手法である.それぞれの原則をまとめると以下のようになる. Single purpose: 一つのことに集中しておりそれをうまくやること Loose coupling: サービスは依存するサービスについて最小限の

  • 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 実際に使ってみて/コードを読ん

  • コマンドラインツールを作るときに参考にしている資料 | SOTA

    コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた.古いが全然色あせてない. コマンドラインツールの作り方を書いたではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい

  • 高速に自作パッケージをGithubにリリースするghrというツールをつくった

    高速に自作パッケージをGithubにリリースするghrというツールをつくった tcnksm/ghr・Github ghrを使えば,1コマンドでGithubにリリースページの作成とそこへのパッケージのアップロードが可能になる.複数パッケージのアップロードは並列で実行される. デモ 以下は簡単な動作例. 上のデモでは,v0.1.0タグでリリースを作成し,pkg/dist/v0.1.0以下の6つのファイルを並列でアップロードしている(ghrをghrでリリースしている).1ファイルあたり,2.0M程度なのでまあま速いかと.アップロード結果は,ここで見られる. 背景 “Go言語のツールをクロスコンパイルしてGithubにリリースする” 上で書いたようにcurl使って頑張ってAPIを叩いていたが,やっぱシェルスクリプトは嫌だし,アップロードが遅い. Githubへのリリースを行う専用ツールでaktau

  • HerokuとGithubを使った統一的なツール配布

    HerokuGithubを使った統一的なツール配布 Go言語ではクロスコンパイルがとても簡単で,複数プラットフォーム向けのバイナリをつくってそれを配布するというのがさらっとできる. 単純にやるなら, クロスコンパイルした各バイナリをzip等に固める Github Releaseやbintray,Dorone.ioなどにホストする そして,ユーザには自分のプラットフォームに合ったものをダウンロード/展開してPATHの通ったところに置いてもらう. 開発者からすると,すごい簡単.ホストするまで完全に自動化できる.でも,ユーザからすると若干めんどくさい. もっとツールを使い初めてもらうまでの敷居を下げたい. TL;DR 全プラットフォーム共通で以下のようにツールをインストールできるようにする.若干長いが1コマンド! $ L=/usr/local/bin/ghr && curl -sL -A "`

    unarist
    unarist 2015/05/17
    ダウンロードページをUAで切り替えるってのはよくあるけど、リダイレクトすれば直接ダウンロードできると。
  • Werckerの仕組み,独自のboxとstepのつくりかた

    Werckerの仕組み,独自のboxとstepのつくりかた WerckerはTravisCIやDrone.ioのようなCI-as-a-Serviceのひとつ.GitHubへのコードのPushをフックしてアプリケーションのテスト,ビルド,デプロイを行うことができる. Werckerは,TravisCIのように,レポジトリのルートにwercker.ymlを準備し,そこに記述された実行環境と実行コマンドをもとにテスト/ビルドを走らせる. Werckerには,その実行環境をbox,実行コマンド(の集合)をstepとして自作し,あらかじめWercker Directoryに登録しておくことで,様々なテストからそれらを呼び出して使うという仕組みがある.実際,Werkcerで標準とされているboxやstepも同様の仕組みで作成されている(wercker · GitHub). 今回,WerkcerでのGo

    unarist
    unarist 2015/03/27
  • ブログにYoボタンを設置した

    ブログにYoボタンを設置した 最近はほとんどのコミュニケーションがYoで完結している.得に日はハイコンテキスト文化なので助かる.だいたい伝わってると思う.最近だとYoに人生を救われたひともいるくらいだ. さて,ブログを書いたあとにわざわざ「ブログ書いたので読んでください」などと言うのは,粋じゃない.さらっとYoするのが現代のスタイルだ. ということで,Yoボタンをブログに設置した. YoがインストールされたデバイスでこのYoボタンを押すと”SOTABLOG”というアカウントがYoのリストに登録される(PCとかだと手動で..).すると,ブログ記事が更新される度に”SOTABLOG”からYoされるようになる. 仕組み といっても自分の個人アカウントが”SOTABLOG”で一人一人に手動でYoするわけではない.Yo Developers APIを利用している.やり方は以下. http://yo

  • Dockerとは何か?どこで使うべきか?

    この記事はDockerに関する実験的な記事や,Buildpackを使ってHeroku AppをDocker Containerとして使えるようにする“building”の開発などで知られるCenturyLink Labsの “What is Docker and When To Use It”の翻訳です. Dockerとは何か?Dockerをどこで使うべきか?についてよく見かける記事とは違った視点から説明されています. 翻訳は許可をとった上で行っています. Dockerとは何でないか Dockerとは何かを説明する前に,Dockerは何でないかについて述べる.Dockerの否定形は何か?Dockerの制限は何か?Dockerが得意でないことは何か? DockerLXCのようなLinux Containerではない DockerLXCだけのラッパーではない(理論的には仮想マシンも管理でき

  • 1