タグ

ブックマーク / blog.sushi.money (7)

  • テスト、正常系から書くか異常系から書くか - hitode909の日記

    今週は同僚と毎日長時間ペアプロしていた。 おもしろかったのが、同僚のテストの書き進め方で、一番複雑な正常系のテストをちゃんと書いてから、その複雑なテストをもとに、いろんな条件を削っていって異常系のテストを作っていく、というところ。 僕は逆で、入力が空なら何も起きない、とか、一番簡単な異常系のテストを書いて、そこだけ通るのを確認して、よしよし、と進めていって、メソッド来の動きは最後に確認して終わる。 変な進め方だな〜(主観)と思って眺めていたけど、たしかに正常系のテストが通っていれば、あとはバリデーションまわりのチェックとか、例外となる場合のチェックをすれば終わりで、異常系のテストがすごい速さで書かれていておもしろかった。 …という話をしたら、チームメンバーたちは正常系のテストから書きはじめるという人が多くて、正しくことを確認してから、1個ずつ前提となる条件を外してみて試す、と聞いて、同値

    テスト、正常系から書くか異常系から書くか - hitode909の日記
    northlight
    northlight 2020/10/23
    まずプログラムとして正常に動くのがわからないと気持ち悪い
  • いけてない設計に出会ったときに考えること - hitode909の日記

    どこがいけてないのか? クラス名とか、機能名とか、概念とか、名前があると考えやすくなる まだ名前なかったら新たな抽象が見つかるかもしれない どんな経緯でそうなっているのか 最初は抽象を捕らえられていたのが拡張を繰り返すうちに失われたのか、書かれた当初は単純な仕様だったのが膨れ上がったのか、動けば良いという感じで書かれたのか 今の設計のいいところは? 何か意図や事情があってそうなってるのか、動いてるだけなのか 詳しい人や書いた人に気に入ってるところを聞いても良い みんなどう思ってる? みんなおかしいと思ってるけど手が出せないのか、これでいいと思ってるのか、など雑談して聞いて回る 最高の状態ならどうなってるべき? 正しいモデリングや、すごい技術があったら、どうなるか 鋭い分析によって豊かなドメインを得られたり、リコメンドシステムなら脳波を読み取って直接推薦してくれたり、変なドアで世界中好きな場

    いけてない設計に出会ったときに考えること - hitode909の日記
  • ソフトウェア作るのはしんどいけど異常におもしろい - hitode909の日記

    忙しくて精神安定剤としての寿司をべる時間もないとか心配されていた. ひとでさんを例に出すと,数週間前か大好きな寿司を毎日のようにべてはブログを更新していて,楽しそうだなと思っていたんだけれど,少したってからとても仕事がきついと書いていて,寿司は精神安定剤としてべていたのかということに気づいた.そして,最近は寿司すらべに行くこともなく,なんかずっとしんどいと書いている. はてなに足りないのは人員ではないかという話 - ミグストラノート 大好きな寿司をべることもないみたいなストーリーはおもしろいけど事実と異なっていて,寿司は頻繁にべていて,昨日もさっと定時で仕事終えて寿司べに行った. 最近の寿司 寿司の写真見せないと心配されるようだったので最近の寿司を紹介します. これは昨日行ったすしてつっていう三条の寿司屋で,1貫100円くらいで,機械じゃなくて職人が握ってくれるので良い.アボ

    ソフトウェア作るのはしんどいけど異常におもしろい - hitode909の日記
  • 一つしかない想定で作ってあとから複数出現してめちゃくちゃになる - hitode909の日記

    ソフトウェア作ってて,最初は一つしかない想定で作るけど,あとから複数出現することになって改修するのが大変,ということがある. 最悪サーバーサイド もう終了したサービスであったのが,ユーザーは自分のアイテムを飾れる部屋を1つ持てるという仕様だったのが,複数の部屋を切り替えられるようにして,部屋ごとに置けるアイテムのシリーズが変わって,シリーズごとにグリッドの細かさも変わるとか.とにかく大変で,全部のテーブルにあとからシリーズidを持たせたり,クラスメソッドで済んでたのをシリーズidを持つオブジェクトのメソッドにしたり,ORMItemをRoomに渡すのをやめて,その層とは別に独立した画像合成用のItemとRoomを作ってやり取りするとか,最初からそうなってるときより大変なことになる. 最悪クライアントサイド クライアントサイドでも同じようなことはあって,HTML内に一つしか出現しない前提で作

    一つしかない想定で作ってあとから複数出現してめちゃくちゃになる - hitode909の日記
  • テスト書きすぎ問題 - hitode909の日記

    テスト書きすぎるとよくないって言ってる人がいた.DHHっていう人.作業時間の1/3以上テストしてたらおかしいとか,ActiveRecordのバリデーションなど,Railsの機能はテストしない,とか. Signals vs. Noiseの去年のエントリに、テストをどれくらい書くべきかということについてDHHが指針を示していたものがあったので... - Sooey 偉い人が言ってるからという理由で,テスト手抜き派の人に良い材料を与えてしまった.僕は意見ちがって,作業時間半分以上はテスト書いたりしてる. テストたくさん書くと,最初に書くときのコストは増える.けど,あとから読む時や,変更したい時には,読むだけだし,書くのも差分だけで良い.コード体を理解できれば,要らないテスト捨てるのは,落ちたのを消すだけだから簡単.あとで見て,テスト足りないと分かったときに,明文化されてない仕様からテストを補う

    テスト書きすぎ問題 - hitode909の日記
  • 統計的にインデントするやつ - hitode909の日記

    古来より,ソースコードのインデントは人力で行われていた.エディタごとかつプログラム言語ごとにがんばってインデントのプログラムが書かれている.EmacsにRuby用のインデントのプログラムとかPerl用のインデントのプログラムがあって,Vimにも似たようなのがRuby用とかPerl用とかちまちま用意されてる.Emacsのruby-mode.elだと,カーソルがかっこの中にいたらこれをするとかで,職人っぽい. 人間がこういうのを書かなくても,周りのソースコードを解析したら,普通はこういう場面ではインデントする,というのを機械的にできるだろうと思った. 以下のPerlのコードはべつにインデントしたくないと思う. print 1; print 2; 以下のPerlのコード見たら,2行目でインデントして,3行目で戻したくなると思う. if ($i % 15 == 0) { print "FizzBu

    統計的にインデントするやつ - hitode909の日記
  • 上に行くcd作った - hitode909の日記

    シェルで,上のディレクトリに行くのがめんどくさくて,cd ../../../../とかしないといけなくて,指を痛める. 上に行くためのupっていうコマンドを作ることにした. その1 up 3ってやると,3つ上に行くのを作った. function up() { i=0 while [ $i -lt $1 ] do cd ../ i=`expr $i + 1` done } 使い方 % pwd /Users/fkd/co/dev/dotfiles % up 3 % pwd /Users/fkd %これは使いにくくて,cd ../../って打つときは,いくつ上に行くか考えながら,../って打ってる.これだと,先に数えておかないといけなくて,難しかった. その2 考えながら入力できるようにしてみた.引数の数だけ見る. function up() { i=0 while [ $i -lt $# ]

  • 1