【初心者向け】スパゲッティコードから脱出する方法3選+α

Java
  • 頑張ってるんだけどスパゲッティコードを量産している人
  • 復習がてら基本を振り返りたい人

基本的な文法を理解してある程度プログラムを書けるようになってくると、本人しか理解できないようなコード(※以降、スパゲッティコード)を量産する危険性が増してきます。

スパゲッティコードは自分だけでなく、他のメンバーを困らせる原因にもなるので、早い段階でスパゲッティコードから脱出する必要があります。

本記事では、スパゲッティコードを脱出し、華麗なコード(※以降、カレーコード)を書くための「知識・技・考え方」について解説していきます。

スパゲティコードから脱出するには必ず知っておくべきこと

軽視されがち!?命名規則や視覚情報にこだわることの重要性

深く考えず名前を付ける方が本当に多いです。命名規則(クラス、メソッド、変数)は最重要項目と言っても過言ではないでしょう。

例えば、説明変数ってご存じでしょうか?説明変数を使うことで驚くほど可読性を向上させることが可能です。

それから、インデントが崩れていると可読性が悪くなります。必ずインデントをつける癖をつけてください。

詳しい内容は下記記事を参照してください。

【初心者向け】適切なインデントこそ可読性向上への近道
結論、必ず適切なインデントを付けるよう心掛けましょう!これが初心者の方でも今すぐできることですし、コードを書く上で最も重要なことの内の一つです。実際にインデントが間違っていることでバグを埋め込んでしまったなんてことも、現場では起きています。

意味のないコメントはお断り|コメントだってこだわる

JavaDocやコメントにもこだわりたいものです。特にコメントについては意味のないコメントが溢れかえってますね。

例えば、「int i = 1;」というコードに対して「// int iに1を格納する」のようなコメントが付与されていることがあります。こんなん、どう考えたって無駄です。というより、コードの可読性を低下させる原因にすらなり得ます。

詳しい内容は下記記事を参照してください。

【プログラミング入門】コメントに書く内容|意識することはたった1つ!
コメントは様々なシチュエーションで利用されますが、基本的にソースコード中に書くコメントで意識して欲しいのが「意味のあるコメントを書く」です。また、意味のないコメントは一部例外を除いて書くべきではありません。それは、意味のないコメントが溢れかえると、コードが読みにくくなるからです。最悪の場合、それが原因でバグを埋め込むことに繋がるので気を付けましょう。
【ナレッジ】Javadoc作成のススメ!ドキュメントHTMLを作成する
Javadocを記載しておくとプログラムを読まなくても何をやっているのか把握することができます。また、JavadocからドキュメントHTMLを作成することが出来るので詳細設計書代わりにもなる優れものです。放っておくのはモッタイナイですよ!

クソ真面目にIF文を書いている場合ではありません

IF文を直ぐネストする癖を直しましょう。チョットしたことで解決します。また、ガード節やアーリーリターンといった小技を駆使することで、コードが激変することを体感できるでしょう。

詳しい内容は下記記事を参照してください。

【Java入門】ガード節とアーリーリターンでネストを浅くする
すでに返却値が確定しているのであれば、即座に結果をリターンして処理を終了させましょう。この「即座に結果をリターンして処理を終了させる」ことをアーリーリターンと呼んでいます。アーリーリターンを利用することで無駄な処理をする必要がなくなります。無駄な処理をする必要がなくなるので性能面の向上、可読性の向上が期待できます。
404 NOT FOUND | WA-PAPA-ETO NO BLOG
Provided by freelance engineers

理解しておいた方が良い設計の原理原則を知る

自分だけで考えるには限界がある

とても有名な原理原則を下記の通りまとめておきます。

これら原理原則を念頭に置いて設計することで、自分の頭だけで考えて設計していた頃と比べて格段に美しいコードを書けるようになるでしょう。

#名称説明リンク
1SOLIDの原則(単一責任の原則)クラスやメソッドなどを改修する理由はたった1つになるようにするということ。https://wa-papaeto.com/single-responsibility-principle/
2SOLIDの原則(オープンクローズドの原則)拡張に対してオープン、修正に対してクローズにするということ。Coming Soon
3SOLIDの原則(リスコフ置換の原則)継承の親子関係がある場合、子は親の代わりができるということ。Coming Soon
4SOLIDの原則(インタフェース分離の原則)クライアントは使わないインタフェースの実装を強制されるべきではないということ。つまり、インタフェースを最小のグループ単位に分離しましょうということ。Coming Soon
5SOLIDの原則(依存関係逆転の原則)上位モジュールは下位モジュールに依存してはならない。抽象に依存すべきであるということ。Coming Soon
6DRYの原則すべての知識はシステム内において、単一、かつ明確な、そして信頼できる表現になっていなければならないということComing Soon
7KISSの原則コードはシンプルにしておけということComing Soon
8YAGNIの原則機能は実際に必要になってから付けろということComing Soon

様々なパターンをインプットする重要性

アウトプットすることが大切だと言うけれど・・・

プログラミングの勉強に関して言えば、アウトプットが大切です。そのアウトプットをするために当然インプットが必要になってきます。

そして、そのインプットは良質であればあるほど良いのです。

プログラミングに慣れていない駆け出しの内は、優秀なエンジニアが書いた美しいコードとそのパターンをインプットすることが大切になってきます。

もし近場に優秀なエンジニアがいないという方でも大丈夫!

世の中には実に多くの良質なコードがあふれかえっています。

あとがき

スパゲッティコードを脱出し、カレーコードを書くための「知識・技・考え方」について解説してきました。また、詳細な記事を書いておりますので、そちらもあわせて読んでいただけると理解が進むかと思います。

スパゲティコードから脱出できる人が増えることを願いつつ、今回はこの辺で終わりにしたいと思います。

最後まで読んでいただきありがとうございました。

もっと詳しく学びたいという方には下記の二冊をオススメしておきます。
どちらについてもキレイで読みやすいコードをどうしたら書けるようになるのか、テクニックや考え方を紹介した永久保存版の本です。

コメント

タイトルとURLをコピーしました