参考文献
https://www.oreilly.co.jp/books/9784873115658/
オライリー公式ストア、電子版 PDF 2112 円
P.29 ~ 第三章 誤解されない名前。
https://dart.dev/guides/language/effective-dart/design
こちらの Dart のガイドラインも参考になる
何をしているのか
上記の本を読んだ上で、理解できたところを自分の言葉でまとめています
3.1
result = objects.filter( year < 2022 )
2022年未満のデータをフィルターするコードがある
これは結果として
2022未満のデータが選択されて
2022未満のデータが返ってくるのか
2022未満のデータが除外されて
2022以降のデータが返ってくるのか
これがわかりにくいらしい。私は選択一択だと思ったが...
なので select か exclude をつかうべきらしい。
3.2
clip("hoge12345", 5) は
"hoge" の結果が返ってくる
後ろから 5 文字削る remove と
"hoge1" の結果が返ってくる
5 文字になるまで削る truncate
これらが 2 つ考えられる。
なので
3.3
cart_too_big_limit = 10
これは 10 が入るのか入らないのかわからない
なので
max_items_in_cart = 10
10 まで入ると明確な max を使うべき
3.5
printEventInRange(begin, end) => {}
という期間内のイベントを表示する関数のスタート日時、エンド日時では
end に "Oct 17 12:00am" を持ってくると
10/17 00:00 が入るのか入らないのかわかりづらい問題がある
慣例的にこの場合に end の時刻は exclude されるが
open/close や start/expire もあるらしい。(リプライで教えてもらった)
3.6
read_password = true
コレだと
パスワードを読み取るかどうか、必要とするかどうか(リード)
パスワードを既に読んだかどうか(レッド)
かどちらかわからない
なので
読み取る必要があることを表すときは need_password
既に読み取った、認証済みを表す時は user_is_authenticated
を使うべき。
また、否定系で変数を作るのは避けるべき。
3.7
get 系の関数名は中の値を返すだけで計算量が少ないことを表すべき
なので、計算が入るときは compute をつけるべき
3.8
実験の id 100 の変数を再利用して 101, 102, 実験を行うときの命名。
template: 100 だと id 100 の実験が本当の実験ではないと思われる。
reuse: 100 だと 100 回再利用できると思われる
reuse_id : 100 だと id 100 を使えば 101 の実験の再利用ができると思われる
copy: 100 だと この実験を 100 回コピーしてると思われる
copy_experiment: 100 だと実験 id 100 をコピーしてるとちゃんと理解されるらしい。
inherit_from_experiment_id: 100 も明確でわかり易い。
3.9
filter, length, limit, コレらは曖昧だから使わないほうがいい
select, chars, max, に変えるべき
誤解されない名前かよく考えて命名するべき。
get や size は大きな計算を想定されていないので、大きな計算では使わないようにする。
Top comments (0)