タグ

ブックマーク / tomykaira.hatenablog.com (10)

  • レビューフレンドリーな開発のしかた - tomykaira makes love with codes

    2013-09-02 レビューフレンドリーな開発のしかた git dev 最近は多くのチームでレビューの習慣が定着してきました。おもにレビュアーとしての仕事を依頼されることもあります。 コミット・ブランチの作りかた一つでこのレビューのしやすさが格段に違ってきます。 自分が普段の開発でこころがけていることをまとめてみます。 前提 レビュイーとレビュアーの間に上下関係があるわけではないですが、レビュイーは多少手数が増えても、レビュアーのことを最大限配慮すべきです。 なぜなら、レビュイーはその機能の開発に集中して取り組んでいますが、レビュアーはすこし見るだけです。 なにかするとしたら、レビュイーがやったほうが時間も手間も少なくなります。 レビュアーはレビュイーよりも、変更について詳しくありません。 レビュイーは開発にいろんな部分を見てまわり、他のモジュールとの関連性や実装のこまかな意図を把握して

    ryshinoz
    ryshinoz 2013/12/16
  • continuous commit のお供、git rebase を決定的に刷新する最強ツール Uchronie をリリースしました - tomykaira makes love with codes

    2013-07-13 continuous commit のお供、git rebase を決定的に刷新する最強ツール Uchronie をリリースしました Scala Git いままで git rebase -i に何度泣かされたことでしょう。 git は最高のツールですが(他の SCM に勝るという意味ではありません)、あれは非常に出来がわるい。 テストを回すたびに自動コミットする continuous commit のプラクティスを採用している私達にとって、 interactive rebase は頭痛の種でした。 (continuous commit については Continuous Commit (kyon_mm さんの発表資料)、最近の git の使い方について - tomykaira makes love with codes など)。 git-rebase--interact

    ryshinoz
    ryshinoz 2013/07/14
  • Rails のモデルはどうあるべきか - tomykaira makes love with codes

    2013-07-05 Rails のモデルはどうあるべきか rails TL;DR: Rails の model が太りやすいのは、生まれつき責務過剰だから。開発者が設計段階で責務を絞り、べる量を減らしてあげよう。 Rails の model というのは、概念も実装も、とても奇妙な使われ方をしている。 いささか不気味だし、実害もある。 fat model はずっと Rails 界で話題になりつづけている。 すでに Rails のプロフェッショナルは抜け出せているのかもしれないが、まだ議論の余地のある話題ではあるようだ。 なぜ model が太るかというと、なんでもかんでも model にべさせるからである。 一日中べてれば元々どんなにスレンダーでも太るに決まってる。 コードのダイエットべる量を減らすか、外に出すしかない。 太ってから外に出すのがリファクタリングである。 後知恵的に

    ryshinoz
    ryshinoz 2013/07/06
  • Rails、あんたなんか嫌いよ - Rails での OO 設計について - tomykaira makes love with codes

    2013-06-25 Rails、あんたなんか嫌いよ - Rails での OO 設計について ruby rails 最近はずっと Rails 書いてるんですが、書けば書くほど嫌いになってくるんです。 倦怠期的なやつなんですが、 Rails さんの悪いところばっかり見えてきて、もう一緒にいたくないんです。 でも別れるほどじゃないし… という愚痴にみせかけた Rails での設計についての議論です。 長いけどコードは一切出てこないので通勤中にでもよんでください。 注意 一部にはげしい言葉遣いがでてくるので、読んで不快になるかもしれません。 不快になったとしても責任は負いかねます。 次のような方の期待に沿う結論はでません。残念でした。 Sinatra, Padrino の人 関数型の人 静的型付けの人 C の人 TL;DR Rails にだまされない。 自分の道を見定める。 欺瞞にみちた Ra

    ryshinoz
    ryshinoz 2013/06/25
  • RSpec を効率的に記述するために yasnippet 紹介 - tomykaira makes love with codes

    2013-06-18 RSpec を効率的に記述するために yasnippet 紹介 ruby rspec rspec は testing framework のなかでは簡潔な記述ですが、それでもテストを書いていると繰り返しが多くなる。 とくに its の連続などはなかなか手でやっていると大変。 私は基的に emacs で補完をつかって書いている。 hippie-expand と yasnippet を併用しているが、 yasnippet のスニペットは rspec 環境で悩んでいる人に役立ちそうなので公開する。 https://github.com/tomykaira/rspec_yasnippets タイトルが key で展開先が code block という形でいくつか紹介してみる。 一行展開系 it や describe before などの非常に頻繁に使うメソッドを展開する。

    ryshinoz
    ryshinoz 2013/06/19
  • Response to "7 Patterns to Refactor Fat ActiveRecord Models" - tomykaira makes love with codes

    2013-06-02 Response to "7 Patterns to Refactor Fat ActiveRecord Models" rails This is the English version. The Japanese version with the same content is at the bottom of this article. Original article: 7 Patterns to Refactor Fat ActiveRecord Models - Code Climate Blog The video of presentation recorded in RubyKaigi 2013, 2nd day The problem -- Where they should be? "7 Patterns to Refactor Fat Acti

  • 複数の例外を別の例外にして送出し直す速度比較 - tomykaira makes love with codes

    2013-06-05 複数の例外を別の例外にして送出し直す速度比較 ruby あるメソッドが複数種類のエラーを上げてくるので、それをまとめて別の種類のエラーに読みなおすという場面がある。 たとえば Rails で ActiveRecord が上げてきたエラーをコントローラで扱いレスポンスを操作するためのエラーに読み替えるとか、 通信ライブラリのエラーをアプリケーション内の対応するエラーに読み替えるとか。 この書き方がふたつあって、どちらが速いか。 私は rescue 文の連続より case のほうがコストが低いので、 B のほうが速いと予想した。事実そのとおりだった。 (この例ではまとめて捉えてしまって StandardError(ex.message) ひとつで済むわけだが、当然、中身の処理がちがう場合を想定している)。 A begin err = [AError, BError, CE

    ryshinoz
    ryshinoz 2013/06/06
  • 「TDDを明確に定義する」に対する返答 - tomykaira makes love with codes

    このエントリは id:kyon_mm さんの TDDを明確に定義する - うさぎ組 にたいするリプライです。拾ってもらえないと悲しい。 TL;DR 私にとって TDD はテストファーストを含む。理由は TDD という語があたえる語感である きょんさんが RED -> GREEN -> REFACTOR と言いながらテストファーストを含まないというのは矛盾を感じる この問題を解決するため、定義を一部具体化したい 編 一読して、うーん?という部分があったのですが、「テスト」という言葉についてなどの考えを共有したのでほとんど違和感はなくなっていました。上の記事の議論の中核には私はほとんど同意します。私はきょんさんの TDD という言葉の使い方にすこし違和感を感じています。揚げ足取り的になってしまう恐れがありますが、あえてこまかいところを指摘します。TDD = Test Driven Devel

    ryshinoz
    ryshinoz 2013/04/10
  • 最近の git の使い方について - tomykaira makes love with codes

    先日の #shibuyarb の懇親会ですこし話したら、わりとい付いてもらえたので、 knowledge worth spreading だと感じた。git の設定を中心に共有する。 ワークフロー @kyon_mm さんの Continuous Commit の熱心な信奉者である。 Continuous commit とは continuous integration, continuous delivery とおなじように、開発中のコミットを自動化する試みである。 continuous commit という言葉はなくても、おなじようなことを自分でやっているひとは多そうだ。 continuous commit は大量のコミットログを残すので、これを整理する作業はけっこう負荷が大きくなる。 最近はこのあたりを改善している。似たようなワークフローを採っている人には役にたつと思う。 コミットを

    ryshinoz
    ryshinoz 2012/10/21
  • JSX を二日間ぐらい使ってみて、あんまりよくないことがわかった - tomykaira makes love with codes

    恒例の言語 dis 記事。無知をさらけだしているのでぜひともつっこみをください。 2日間ぐらい JSX でちょっとしたプログラム(真理値表をいじったり、QM法をおこなったりするもの)を書いてみて、JSX が残念なことがよくわかったのでまとめた。今回やったのはわりとロジックっぽい部分で、表示したりライブラリつかったり外部と連携したりといったことはなかった。 JavaScript / JSX の用途としてはかなり特異なものだとおもうので、そういうのに適当じゃなかった、というのはあるかもしれない。 しかし JSX の場合はべつにウェブ系に強い印象もないので(ライブラリとか)、今回指摘する問題点の一部は、やはり看過できないと思っている。 環境編 エラーが出たときに、どこで出ているのかわかりにくい 変換したスクリプトを node.js で実行しているため、通常の実行時エラーは変換後の js フ

  • 1