Edited at

品質の高いコードを素早く書くために、いつも意識している手順をまとめてみた

More than 1 year has passed since last update.

コードを書いている間は何も考えないですむようにするというのが基本スタンス。

参考URL:

プログラミングのスピードを上げる方法 - 旧・teruyastarはかく語りき http://d.hatena.ne.jp/teruyastar/20080308/1204977907


要件定義


  • 何のために実装を行うのかを事前に明確にすることで、プログラミング中は何も考えずにすむ

  • ここが凄い大事。やることとやらないことを明確にしておくことで余分なコードを書かないですむ

  • この段階で成果物のイメージを明確にしておく

  • 要件に詳しい人に聞けばいいけど、一緒に考えるスタンスをとるように習慣づけておくと出来るエンジニアに成長しやすい

  • ここで大事なのは「実装の大変さは一旦置いといてあるべき姿で考える」こと

  • 本当はここまでやるのがあるべき姿だけど、スケジュールがギリギリだから、この代替案でどうでしょう?と提案できるようになるとベスト

  • 「よくこれをやればいいですか?」と細かく確認するエンジニアがいるけど、開発初期は誰も正解を知らないことが多いので上記のように提案ができるエンジニアを目指したい


全体設計


  • 全体の大まかな設計を考える

  • このフェーズでは少し時間をとって似たようなサービスやツールのコードを読んだり設計をググるといい

  • 頑張って自分で考えるより、世界中の優秀なエンジニアのリソースを漁った方が早いし、プラクティスが学べて学びになる

  • 自分はなぜその設計にしたのか後で終えるようにesaとかに書いておくようにしている

  • この段階では実装の細かいTipsまでは入らなくてOK


技術調査


  • 実装のイメージが考えても湧かないようなものは先にライブラリなどを調査しておくといい

  • 経験豊富なエンジニアがそばにいる場合は聞いてしまった方が早いかも


実装1


  • 細かい所はこだわらずに全体の流れを通せるように実装する

  • 難易度の高い実装から先に手をつける

実装中の作業BGMは245Cloudがおすすめ

http://245cloud.com/


テストを書く


  • テストドリブンだと時間かかりすぎるので、自分はこのタイミングでテスト書くことが多い


実装2


  • 細かい箇所の実装を行う

  • テストが落ちたら直す


リファクタリング


  • コメントをつけたり気になる箇所をリファクタリングする

  • テストが落ちたら直す


その他


  • メリハリをつけるの大事。5分オーバーとかでも積もると最初やりたかったタスクができなくなったりする

自分はこうしてます!とかフィードバックあったらぜひください!自分もこれが正解だとは思ってないので改善したいです^^