新しいコードを書くときにやってること
更新日: 2022/03/10
昨日筋トレ中に、当日作業したことを思い出して振り返っていたら差分があるなと思いついたことをまとめます。
新しいコードを書くときに調べて作る工程があると思います。
その時のエンジニアなりたての頃と今との違いについてです。
※ 前提として、納期に追われていなく十分に時間があるとします。
今までのやり方
とりあえず作りたいことを検索して(例えば Django form エラーの出し方
)ヒットした記事に書いてあるコードをとりあえず貼り付けて動かなかった箇所を修正して、「できた!」
とやっていまいした。
反省点
これだと動くものは作れるのですが。。。
コピペ元の作者がとても精通している方であればそこまで問題はないと思います。そうではない場合も多いので、処理速度に問題があったり、ひどいときは自身の調べたかったものとは実は異なっていた、そのまま使っては想定漏れが発生等起きる可能性も多いので、鵜呑みはやめたほうがよかったです。
ただ、勉強にはなるのでコピペしてきて自分で改造して、新しい関数などを覚えるのはとても大事だと思います。
今のやり方
今は大体以下のような流れでやっていました。
- 検索(いままでより件数は多め)
- 調べたらどれが自分の希望を叶えそうな
関数
または機能
なのかをリストアップ - 2.でリストアップしたものを FW だったりのドキュメントを確認
- 実際にどんな関数なのかを手動で動かしてより良いものを選定
これをすることで「やりたかったこと」は当然見つかりますが、想定していた斜め上のやり方が見つかり、根本的に改善できたり、処理にかかる負担を減らせたり(例えば for で回さなくて済んだ)する時もあります。
なので時間が許す範囲で調べることは大事だと思います。
また、日本語ドキュメントだと若干ニュアンスが違うような感じがする時もあるので、念のため英語(本家)のドキュメントも必ず確認しています。
要約
- 検索して得るのは
関数
または機能
- 検索結果をドキュメントで裏どりを行う
- 比較検討することでよりよい結果を得られる
- 英語も臆さない
共通していること
唯一同じことをしているとすればコードの試し打ちをすること。
コードに埋め込んでしまってからあれやこれや考えても時間の無駄なことが多いです。実は他の関数や機能が影響でエラーが出ていたなんてことも。
あらかじめ自分でその関数を抜き出して確認することはいつでもやっています。(皆さんもやっていると思いますが)
これは単体テストの単位を決める感覚を鍛えることにも役立ってます。自分である程度テスト(シェルとかで)をしてからコード内に埋め込む 擬似テスト駆動
(勝手に命名)をすることで機能作成後にテストを書く時にも頭の中に場合分けができているのでテストケース作成にも役立ちます。
まとめ
あたらしいコードを書くときは
- 調べるときは複数調べる
- ちゃんとドキュメント読んで自分の力に
(忘れない工夫があるとなおよい。どっかに書き出すとか。) - 読むだけではなく、手を動かして実践的に理解する