タグ

ブックマーク / songmu.jp (5)

  • Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々

    Gitのワークフロー、好みが分かれる分野で自転車置き場の議論にもなりがちだと感じている。基的にはプロジェクトの流儀に素直に従い、余計なストレスを抱えないのが良いと考えている。例えば、私はマージコミットを作るのが好みだが、OSS活動等では「squash & mergeして」って言われることもあり、そういうときは当然素直に従うようにしている。 ということで、私のGitのワークフローについてのスタンスについて書いておこうと思う。私と一緒に働く人や、働くことを検討している人の参考になればと思います。もちろん、この辺りは、良い方向に変化もさせていきたい。例えばエントリー内でも触れていますが、私は昔はforce pushを禁止したいくらいでしたが、今は使っても良い、と思うようになりました。 Natureの特にGoでのバックエンド開発はこれに近い感じだとイメージしてもらえればと思います。ただ、できてな

    Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々
    vndn
    vndn 2021/05/19
  • GoのテストをCIで簡単に並列実行する | おそらくはそれさえも平凡な日々

    https://github.com/Songmu/gotesplit gotesplitというかなり便利なツールを書いた。Goのテストをいい感じのサブセットに分割して、それを実行するものです。このアプローチで、社内のテストを15分から3分くらいまでに短縮しました。 これを使えばCI環境での高速なテストの並列実行を簡単に実現できます。 実例 CircleCIGitHub Actions上で簡単に導入できます。 CircleCIの場合 parallelism: 5 docker: - image: golang:1.15.3 steps: - checkout - run: command: | curl -sfL raw.githubusercontent.com/Songmu/gotesplit/main/install.sh | sh -s bin/gotesplit ./... -

    GoのテストをCIで簡単に並列実行する | おそらくはそれさえも平凡な日々
    vndn
    vndn 2020/10/24
  • Goでテスト中に現在時刻を差し替えたりするflextimeというのを作った | おそらくはそれさえも平凡な日々

    https://github.com/Songmu/flextime flextimeはテストコードの中で現在時刻を切り替えるためのライブラリです。Sleep時に実際に時間を止めずに時間が経過したように見せかける機能もあります。 つまり、PerlのTest::MockTimeやRubyのtimecop的なことをしたいわけですが、Goだとグローバルに関数の挙動を切り替えるといったことはできないため、利用にあたってはtimeパッケージで使っている関数を、flextimeパッケージに切り替える必要があります。 具体的には、flextimeはtimeパッケージと同様のインターフェースを備える以下の9つの関数を提供しています。 now := flextime.Now() flextime.Sleep() d := flextime.Until(date) d := flextime.Since(da

    Goでテスト中に現在時刻を差し替えたりするflextimeというのを作った | おそらくはそれさえも平凡な日々
    vndn
    vndn 2020/01/19
  • Nature Remo作ってる会社のCTOになったのでみんな買ってくれよな! | おそらくはそれさえも平凡な日々

    6月1日付けでNature Japan株式会社の取締役CTOに就任しました。最初の営業日の6/3(月)からいきなり台湾出張に行ってきました。良いスタートアップ感。ついでに日6月5日に39歳になりました。新たなチャレンジにワクワクしています。 大塚(@maaash)さん、村瀬(@typester)さんに続く3代目のCTOとなります。2人はカヤック時代の同僚でもありますが、カヤックのラボチームのダブルエースだった彼らの後任としてCTOをやるのは恐れ多いのですが、僕は組織づくりなど含めて僕なりに組織に貢献していきます。 当社はおかげさまでスマートリモコンのNature Remoが好調で、現在はNature Remo Eというスマートエネルギーハブの開発を進めているところです。今後は電力なども見据えて事業を展開していく計画で面白いフェーズにあります。 まだ、社員全員でも10人に満たない小さな会社

    Nature Remo作ってる会社のCTOになったのでみんな買ってくれよな! | おそらくはそれさえも平凡な日々
    vndn
    vndn 2019/06/05
    個人開発じゃなかったのか
  • Goのバイナリへのファイル同梱はstatikで決まり | おそらくはそれさえも平凡な日々

    https://github.com/rakyll/statik Goのバイナリにファイルを同梱するという誰もが欲しいはずのものがなかなか決定版がなく、go-bindataがメンテを終了し、go-assetsもいまいちメンテが滞っているので、statikを使うことにしました。作者のrakyllさんも実績のある方なので大丈夫でしょう。 statikも少しpull requestの取り込みが滞っていたのですが、試しにpull requestを送ってみたらちゃんと取り込まれたので大丈夫そう。 https://github.com/rakyll/statik/pull/61 元々、ファイル単体を取得する分には問題なかったのですが、ファイルシステムとして走査しようとするとうまく辿れない問題があり、このpull requestで修正しました。ですのでより安心して使えるでしょう。 http.FileSy

    Goのバイナリへのファイル同梱はstatikで決まり | おそらくはそれさえも平凡な日々
    vndn
    vndn 2019/03/25
  • 1