ラザニアコードとは?「どこよりもわかりやすく、初心者でもわかりやすい」7秒で理解できる!

IT用語を分かりやすく噛み砕いて、初心者でもスムーズに仕事の会話に参加できるように解説します。このIT用語辞典の目的は「会話についていく」であり、情報レベルは基礎中の基礎の会話についていけるレベルです。これさえ見れば仕事の会話は怖くない! IT用語辞典
ラザニアコードをざっくりと
  • わかりずらいソースコードのこと
  • そのファイルの役割に関係ないコードがある状態
  • 1つのファイルにいろんな種類の機能が入って重なってるのがラザニアっぽい

ここまでで7秒!もっとくわしく知りたい人は続きをどうぞ!

ラザニアコードをわかりやすく

ラザニアコードをわかりやすく説明すると

設計で決まってるファイルの役割を無視して、そのファイルの役割以外のソースコードが入ってる、ラザニアのように、1つの層にいろんな具がゴチャ混ぜに入ってる状態のソースコードのこと

ラザニアコードと正常なコードの違い

下記のソースコードは、2つの数値の大小とプラスマイナスを判別して出力するのが目的でそれを処理する用のファイル。それなのに、ラザニアコードには、正常なコードにはない不要なコードが入っている。ラザニアコードは、このファイルでは必要のないコードがあり、「なんでこのファイルで処理してるの?」ってなる。

同じ処理をしているラザニアコードと正常なコード比較

同じ処理をしているラザニアコードと正常なコード比較

ラザニアコードとは わかりやすい例

落とし込んだ例を交えて、わかりやすく解説すると

コードを書く前に設計書があって、その設計書には、「このファイルはデータベース接続用ね」、「このファイルはユーザーが見る部分ね」とそれぞれのファイルに役割があったんだけど、その設計書を無視して、「データベース接続用のファイルだけど、ユーザーが見る部分の機能のコードを書いちゃおう」とすると、そのファイルに不要なソースコードが残ってしまう。ちゃんと設計されてない状態でコードを書き始めてもラザニアコードになってしまいやすい。

ラザニアコードコードの手順

下記の手順でコードを書けば立派なラザニアコードになる。ラザニアコードを意識的に作るひとはいないはずなので、無意識にやってしまっている場合が多い。ラザニアコードにならないように意識が必要。

ラザニアコードの手順例
  • ステップ1
    モジュール分割を無視する

    適切にモジュール分割せずに、全ての機能を1つのファイル(モジュール)にゴチャ混ぜに入れる。※プログラムを機能単位で分割し、各機能をモジュール(ファイル)単位で切り分けること。

  • ステップ2
    機能を分類しない

    モジュール分割後に、それぞれのコードを分けずにゴチャ混ぜに入れる。

  • ステップ3
    役割を無視する

    ファイルが持つべき役割を無視して、別の役割のコードも関係なく書き込んでいく。

  • ステップ4
    層や階層を無視する

    各層や階層構造を完全に無視して、あらゆる種類のコードを1つの層(ファイル)に詰め込む。

ラザニアコードの類似語

名称 説明
ラザニアコード 複数のレイヤーが密接に絡み合い、階層構造が複雑なコード。
ラザニアの層のように見えることから名付けられた。
ゴミコード 無駄なコードや、本来必要のないコードが混在しているコード。
まるでゴミ箱のように汚いことから名付けられた。
クリスマスツリーコード インデントが過剰に使用され、コード全体がクリスマスツリーのように見えるコード。
見づらく、理解が困難であることから名付けられた。
スパゲッティコード 複雑で絡み合った構造で、理解や保守が困難なコード。
まるでぐちゃぐちゃに絡まったスパゲッティのようであることから名付けられた。
呪いのコード バグや問題が多く、修正を試みるとさらに悪化するようなコード。
まるで呪われているように扱いにくいことから名付けられた。
妖怪コード 理解不能なほど複雑で、まるで妖怪のように扱いにくいコード。
泥沼コード 複雑で冗長なコードで、修正や変更が困難な状態。
まるで泥沼に足を取られたように抜け出せないことから名付けられた。
迷路コード 複雑な分岐やループが絡み合い、まるで迷路のように抜け出せないコード。
カラスの巣コード 無駄なコードやコメントが散乱し、カラスの巣のように汚いコード。
ラザニアコードと類似表現一覧
上記以外にも、いろんな類似表現が存在する。

ラザニアコードまとめ

  • 1つのファイルにいろんな種類の機能が入って重なってるのがラザニアっぽい、わかりにくいそのファイルの役割に関係ないコード
  • モジュール分割を無視し、機能を分類せず、ファイルの役割と層や階層の構造を無視すれば、ラザニアコードができあがる
  • ラザニアコードの類似語として、ゴミコード、クリスマスツリーコード、スパゲティコード、呪いのコード、妖怪コード、泥沼コード、迷路コード、カラスの巣コードなどがある

ラザニアコードについて理解は深まりましたか?
まだわからない点や疑問点があれば、ぜひコメント欄で質問してください。生の声を聞かせていただければ、より良い内容を提供できるはずです。

以上、ラザニアコードについてでした。コメント欄での活発な意見交換を心よりお待ちしています!

当IT用語辞典の目的は「会話についていく」であり、情報レベルは基礎中の基礎で、どこよりもわかりやすくなるように、例えを入れたりしてますが、逆にわかりにくかったらごめんなさい。さらに正確性、具体性、最新性を求めてる方は、もっとググってください。
YouTubeのチャンネル登録はこちら!!
ポチッと応援よろしくね!!
開発・運営ランキング にほんブログ村 IT技術ブログ IT技術情報へ
記事を書いてる人
デプロイ太郎

IT業界の下層に長くいすぎたのかも知れないおじさんです。プロフィールまで見てくれてるのなら、ブログのブックマークとYouTubeのチャンネル登録とX(旧Twitter)のフォローお願いします。

ネットの裏側を見せるYouTube運営中!!

デプロイ太郎のSNSを見てみる!!
IT用語辞典
デプロイ太郎のSNSを見てみる!!

コメント

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