どうも。ひろです。
以前プログラムの設計の大切さについての記事を書きました。
読んでない方は以下の記事を読んでからこの記事を読むことをお勧めします。
今回は設計することで得られるメリットについてお話ししていきます。
基本的にはデメリットではないですが私が気にしていることを含めてお話しします。
以前の記事と被ってしまう部分もありますがご了承ください。
目次
設計することで得られるメリット
エラーや修正が少なくなる
経験が少ないエンジニアがいきなりコーディングをしようとすると、
余分なコードを記載してしまう可能性が高くなります。
その結果としてエラーが多くなってしまうので、
フローチャートやシーケンス図などを利用して動きを設計してからコーディング作業をすることで
最低限の記述が明確になり、
エラー、エラーによる修正が少なくります。
機能の漏れを防ぐことができる。
頭の中で完成形が描けていても実現するために必要な機能の抽出ができていない状態で実装すると抜けが多いシステムになってしまいます。
規模が大きくなるほどどこに修正・追加すれば良いのか区別が難しくなってきます。
設計をしておくことどんな機能が必要なのか明確にすることができます。
さらに実装中にどんな機能が必要だったか忘れてしまっても見返すことができます。
最終的に完成したシステムの動作確認を行う際も設計通りにちゃんと機能が揃っているか確認することができます。
実装の作業効率が上がる

設計をせずにコーディングをしていると行き当たりばったりでコーディングをしてしまいがちです。
私も経験しました。
設計してから実装すれば5日くらいで終わる作業を頭で整理できているから
実装やってしまえと思い、実装していた結果12日位かかってしまいました。
この時コーディングしてデバッグして動かなかったらその時考えるという作業をしてしまっていました。
設計をしておくことで事前に動きであったり処理を行うタイミングを明確できます。
その結果、設計を確認しながらコーディングを行うようにすれば無駄なコードを記載してしまう時間も減り、
実装作業は短時間で終えることができたと思います。
また複数人で開発している時なども設計があることでプログラムの理解がスムーズにできます。
設計をすることで私が気になっていること
設計をすることに工数を使わないといけません。
短期間で開発するほど設計から実装のフェーズを早く終わらせないといけません。
設計を省くことで実装に時間を割き、
エラー・バグ改修に時間をかけた方が良いと思う方もいるかもしれませんが、
設計をきちっとしておくことでエラー・バグ改修にかかる時間は削減できるかもしれません。
なので設計をしてから実装した方が効率が良いのか、
経験値があって設計を省くことができるのであれば省いた方がいいのかという線引きは難しい問題になってきます。
規模の大きいシステムであれば設計は必要ですが、
中規模の場合はどうすれば良いのかはやってみないとわからないですね。
一度プロトタイプを作っていけそうであれば設計をさっと済ませて
実装というフェーズの方が作業効率が良い気がします。
あくまで私の意見なので参考程度に捉えていただけると幸いです。
まとめ
プログラムの設計をすることで得られるメリットは
- 無駄なコードを記載しなくなるのでエラー・修正が少なくなる
- システムの機能に抜け(機能の漏れ)が少なくなる
- 事前に動きや処理を入れるタイミングを把握することで実装する際の効率が上がる
ある程度の技術力がついてきたら設計の前にプロトタイプを作って
その機能が実現できるのか確認することでもっと効率的に開発することができると思います。
ここまで読んでくださりありがとうございました。
参考にさせていただいた記事
- プログラミングの設計方法が知りたい人へ!最適なツールや参考書を紹介します!
https://style.potepan.com/articles/4769.html - オブジェクト指向のメリットとは?【プログラミング設計に役立つ】
https://developer.nature-engineer.com/entry/2018/10/12/190806