クリーンアップコードコア(クリーンコード1個、意味のある名前2個)


1.不良コード😒


何が悪いコードですか?


パフォーマンスの悪いコード


不要な演算を伴うコードは、改善の余地があります.

ファジイコード


理解しにくいコード、ネーミング、コンテンツの異なるコード

繰り返しコード


似たような共通コードですが、コードを繰り返すとエラーが発生します.

どうしてコードが悪いの?


ガラス窓の法則


壊れたコードは割れたガラス窓のように、壊れたコードが絶えず発生します.

生産性が低い


悪いコードは、チームの生産性を低下させます.技術負債を製造し、修正をさらに困難にする.

新しいシステムを構築します。


既存のシステムの維持と代替のために新しいシステムを開発することは現実的に非常に困難である.

スケジュールが迫っているからです。


必ず一定の時間内に新しい機能を完成させなければならない.(ただし...悪いコードは生産性を低下させるため、かえって時間の手配ができません.)

影響範囲が広い。


思ったより影響範囲が広いので、別の部分に触れるのが怖いのですが...技術扇子はダーツのように私たちの元に戻ります.

2.クリーニングコード😊


クリーンコードとは?


1.性能の良いコード


2.意味が明確なコード=可読性の良いコード


3.重複コードの消去


専門家別のクリーンコードとは?


ビアネストロ(C++創業者)


私は優雅で効率的なコードが好きです.
論理が簡単で、バグが隠せない.
依存性を最小限に抑えてこそ、メンテナンスが容易になります.
誤りは明確な策略に基づいて徹底的に処理しなければならない.
最適なパフォーマンスを維持してこそ、原則のない最適化が可能になります.
コードを破壊する誘惑に陥ることはありません.
きれいなコードは一つのことをします.

Gradi Booch(オブジェクト向けの対価)


きれいなコードは簡単で直接的です.
きれいなコードはよく書かれた文章のように読めます.
きれいなコードは設計者の意図を隠さない.
逆に明快な抽象と単純な制御文に満ちている.

3.意味のある名前をつける


意味のはっきりした名前をつける


悪い状況.👎

int a;
String b;

System.out.printf("User Requested %s. count = %d", b, a);

よいケース👍

class SalesItem {
	ItemCode code;
    String name;
    int count;
}

// ..

SalesItem selectedItem = salesItemRepository.getItemByCode(purchaseRequest.getItemCode());

System.out.printf("User Requested %s. count = %d", selectedItem.getName(), selectedItem.getCount());

無効リングのi,j,k


forEach文の使用

for (String message : messages) {
	// ..       
}

ランダを使う

messages.stream().forEach(
	message -> // ..
)

i,j,kではなく脈絡に合致する名前がある。


i, j -> row, col/width, height
i, j, k -> row, col, depth

統一された単語を使う

Member / Customer / User
Service / Manager
Repository / Dao

説明:

  • は、ユーザーのメンバー、顧客、およびユーザーが1つの名前
  • を統一的に使用することを示す.
  • 管理の場合、そのうちの1つのサービスのみが使用され、
  • リポジトリの場合は、そのうちの1つのみが使用されます:
  • 変数名にタイプを入れない



    データ構造


    リスト、Mapの資料構造であれば、表現できる名前がないので明示しても大丈夫です.

    interface


    インタフェースであれば,以前は名前の前にIでインタフェースを表していたが,明示しないほうがよい.

    インプリメンテーションボディ


    実装インタフェースの具体的なクラスはxxxxImplと命名することが望ましい.

    4. Google Java Naming Guide


    Package Naming Guide


    すべての人は小文字で、標準点を下回ることを禁止します!

    Class Naming Guide


    キャラメルボックスとして作成

    Method Naming Guide


    方法は動詞、動詞フレーズ

    リファレンス


    これらの情報はゼロベースラインクリーニングコード毎月1冊を聞いた後に整理された.