「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > クリーンなコードを理解する: 意味のある名前 ⚡

クリーンなコードを理解する: 意味のある名前 ⚡

2024 年 9 月 30 日に公開
ブラウズ:550

Understanding Clean Code: Meaningful Names ⚡

コードを記述するとき、最も見落とされながらも重要な側面の 1 つは名前付けです。

コード内の変数、関数、クラス、その他のエンティティに選択する名前は、読みやすさ、保守性、全体的な品質に大きな影響を与える可能性があります。

『クリーン コード』の第 2 章では、意味のある名前を選択する技術と科学を詳しく掘り下げ、開発者が表現力豊かで理解しやすいコードを作成するのに役立つ一連のガイドラインを提供します。

このブログ投稿では、この章の重要なポイントを探り、各概念を JavaScript の例で説明します。


?1.意図がわかる名前を使用する

選択した名前は、変数、関数、またはクラスの背後にある意図を明確に伝える必要があります。読者は、追加のコンテキストを必要とせずに、コードが何を行うかを理解できる必要があります。

// Bad
let d; 

// Good
let daysUntilDeadline;

最初の例では、 d は曖昧であり、コンテキストを提供しません。改良版の daysUntilDeadline では、変数が何を表すかを明確に示しています。


?2.偽情報を避ける

名前は誤解を招くものであってはなりません。コードが実際に行うこととは異なる意味を暗示する可能性のある名前の使用は避けてください。

// Bad
let accountList = new Map();

// Good
let accountsMap = new Map();

ここで、accountList はリスト (順序付けされたコレクション) を示唆しているため、誤解を招く可能性がありますが、実際のデータ構造は Map です。 accountsMap を使用するとより正確です。


?3.意味のある区別をする

類似した変数、関数、またはクラスを区別する必要がある場合は、区別が明確かつ意味のある方法で区別してください。

// Bad
getUserInfo();
getUserData();

// Good
getUserProfile();
getUserSettings();

最初の例では、getUserInfo と getUserData は非常に似ており、違いが明確に伝わりません。 2 番目の例では、関数が返す内容に基づいて関数に名前を付けることで区別を明確にしています。


?4.発音可能な名前を使用する

名前は読みやすく発音しやすいものである必要があります。これにより、コードについて他の人と簡単に議論できるようになります。

// Bad
let genymdhms;

// Good
let generationTimestamp;

genymdhms は発音できない名前で、覚えたり話したりするのが困難です。ただし、generationTimestamp は明確で簡単に言うことができます。


?5.検索可能な名前を使用する

大規模なコードベースでは、検索しやすい名前を使用することが重要です。 1 文字の名前や過度に省略された名前の使用は避けてください。

// Bad
let e = document.getElementById('email');

// Good
let emailInputElement = document.getElementById('email');

e は簡単に検索できず、それが何を表しているのかも伝わりません。 emailInputElement はより説明的で、コードベース内で見つけやすくなります。


?6.エンコーディングを避ける

名前にタイプ、プレフィックス、またはその他のエンコーディングを含めないでください。名前自体が十分にわかりやすいものにします。

// Bad
let phoneString;

// Good
let phoneNumber;

この場合、phoneStringに不要な型エンコーディング(String)が含まれています。 PhoneNumber はよりシンプルかつ直接的です。


?7.クラス名は名詞、関数名は動詞にする必要があります

クラスはオブジェクトまたは概念を表すため、その名前は名詞である必要があります。一方、関数はアクションを表すため、名前は動詞にする必要があります。

// Class names (Nouns)
class UserAccount {}
class ShoppingCart {}

// Function names (Verbs)
function calculateTotal() {}
function sendEmail() {}

この区別は、コード内の各要素の役割を理解するのに役立ちます。


?8.メンタルマッピングを避ける

読者に名前をより意味のあるものに翻訳するよう強制しないでください。名前は一目瞭然です。

// Bad
let n = 5; // Number of users

// Good
let userCount = 5;

n では、読者はそれがユーザーの数を表すことを記憶または推測する必要がありますが、userCount はすぐにわかります。


結論 ⚡

意味のある名前を選択することは、単なるスタイルの問題ではなく、クリーンで保守しやすいコードを記述するための基本的な習慣です。

クリーン コードの第 2 章で概説されているガイドラインに従うことで、JavaScript コードの可読性が向上し、他の人 (および自分自身) が理解しやすく保守しやすくなります。

目標は、目的とロジックを伝えるコードを作成し、読者の認知的負荷を軽減することであることに注意してください。

次回、変数、関数、またはクラスに名前を付けるときは、意味のある名前付けの原則と、それらがよりクリーンでより効果的なコードにどのように貢献できるかを考慮してください。

ハッピーコーディング!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/alisamir/ Understanding-clean-code-meaningful-names-3d5k?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>
  • シェル スクリプトから「Bun スクリプト」への移行
    シェル スクリプトから「Bun スクリプト」への移行
    zCloud でプロセスの自動化とインフラストラクチャに焦点を当てたプロジェクトに取り組んでいるとき、検証と共通のプロセスを実行するために複数の関数を作成する必要性に頻繁に遭遇します。オペレーティング システムが 1 つだけ使用されている場合はすべて問題なく動作しますが、複数のシステムが関係する場合...
    プログラミング 2024 年 11 月 6 日に公開
  • Web プロジェクトにおける jQuery ライブラリの最適なソースはどこですか?
    Web プロジェクトにおける jQuery ライブラリの最適なソースはどこですか?
    jQuery ライブラリはどこから入手すればよいですか?プロジェクトに jQuery と jQuery UI を含める場合、使用できるオプションがいくつかあります。それぞれの方法の長所と短所を詳しく見てみましょう。Google JSAPI と CDN の比較Google JSAPI は、Google...
    プログラミング 2024 年 11 月 6 日に公開
  • PHP デザイン パターン: アダプター
    PHP デザイン パターン: アダプター
    アダプター デザイン パターンは、互換性のないインターフェイスを持つオブジェクトが連携できるようにする構造パターンです。これは 2 つのオブジェクト間の仲介者 (またはアダプター) として機能し、一方のオブジェクトのインターフェイスを、もう一方のオブジェクトが期待するインターフェイスに変換します。こ...
    プログラミング 2024 年 11 月 6 日に公開
  • PHP の WebSocket を理解する
    PHP の WebSocket を理解する
    WebSocket は、単一の TCP 接続上でリアルタイムの全二重通信チャネルを提供します。クライアントがサーバーにリクエストを送信して応答を待つ HTTP とは異なり、WebSocket を使用すると、複数のリクエストを必要とせずにクライアントとサーバー間の継続的な通信が可能になります。これは、...
    プログラミング 2024 年 11 月 6 日に公開
  • Visual Studio 2012 ではどのような C++11 機能がサポートされていますか?
    Visual Studio 2012 ではどのような C++11 機能がサポートされていますか?
    Visual Studio 2012 の C 11 機能Visual Studio 2012 のプレビュー バージョンが最近リリースされたため、多くの開発者が C 11 機能のサポートに興味を持っています。 Visual Studio 2010 ではすでに部分的な C 11 サポートが提供されていま...
    プログラミング 2024 年 11 月 6 日に公開
  • Windows の起動時に Python スクリプトを自動的に実行するにはどうすればよいですか?
    Windows の起動時に Python スクリプトを自動的に実行するにはどうすればよいですか?
    Windows 起動時に Python スクリプトを実行するWindows を起動するたびに Python スクリプトを実行することは、タスクを自動化したり、重要なプログラムを起動したりするために非常に重要です。いくつかのアプローチで、さまざまなレベルのカスタマイズとユーザー制御が提供されます。スク...
    プログラミング 2024 年 11 月 6 日に公開
  • Astral.CSS の探索: Web デザインに革命をもたらす CSS フレームワーク。
    Astral.CSS の探索: Web デザインに革命をもたらす CSS フレームワーク。
    ペースの速い Web 開発の世界では、フレームワークは、開発者が視覚的に魅力的で機能的な Web サイトを効率的に作成する上で極めて重要な役割を果たします。現在利用可能なさまざまなフレームワークの中で、Astral CSS は、そのユニークな設計哲学と使いやすさの点で際立っています。この記事では、A...
    プログラミング 2024 年 11 月 6 日に公開
  • ESnd アロー関数の包括的なガイド
    ESnd アロー関数の包括的なガイド
    ES6 の概要 ECMAScript 2015 は、ES6 (ECMAScript 6) とも呼ばれ、JavaScript の大幅なアップデートであり、コーディングをより効率的で管理しやすくする新しい構文と機能が導入されています。 JavaScript は Web 開発に使用される...
    プログラミング 2024 年 11 月 6 日に公開
  • アルゴリズムとデータ構造の解明: 効率的なプログラミングの基礎
    アルゴリズムとデータ構造の解明: 効率的なプログラミングの基礎
    この一連の投稿では、学術環境と大手テクノロジー企業の両方で広く議論されている 2 つのトピック、アルゴリズムとデータ構造についての私の学習過程を共有します。これらのトピックは一見すると難しそうに見えるかもしれませんが、特に私のような、他の職業上の課題のためにキャリアを通じてそれらを深く掘り下げる機会...
    プログラミング 2024 年 11 月 6 日に公開
  • pprof を使用して Go プログラム内のゴルーチンの数をプロファイリングするにはどうすればよいですか?
    pprof を使用して Go プログラム内のゴルーチンの数をプロファイリングするにはどうすればよいですか?
    pprof を使用したゴルーチン数のプロファイリングGo プログラム内の潜在的なゴルーチン リークを検出するには、アクティブなゴルーチンの数を長期にわたって監視する必要があります。標準の go ツール pprof コマンドはブロックに関する洞察を提供しますが、ゴルーチンの数に直接対処するものではあり...
    プログラミング 2024 年 11 月 6 日に公開
  • クラスメソッドをコールバックとして渡す方法: メカニズムとテクニックを理解する
    クラスメソッドをコールバックとして渡す方法: メカニズムとテクニックを理解する
    クラス メソッドをコールバックとして渡す方法バックグラウンドシナリオによっては、効率的にクラス メソッドを他の関数へのコールバックとして渡す必要がある場合があります。特定のタスクの実行。この記事では、これを実現するためのさまざまなメカニズムについて説明します。呼び出し可能な構文の使用関数をコールバッ...
    プログラミング 2024 年 11 月 6 日に公開
  • Webスクレイピング - 面白いですね!
    Webスクレイピング - 面白いですね!
    クールな用語: CRON = 指定された間隔でタスクを自動的にスケジュールするプログラミング技術 ウェブって何? プロジェクトなどを調査するとき、私たちは通常、日記、エクセル、ドキュメントなど、さまざまなサイトから情報を書き込みます。 私たちはウェブをスクレイピングし、手動でデータ...
    プログラミング 2024 年 11 月 6 日に公開
  • お客様の声グリッドセクション
    お客様の声グリッドセクション
    ? CSS グリッドを学習しながら、このお客様の声グリッド セクションの作成が完了しました。 ?グリッドは構造化されたレイアウトの作成に最適です。 ?ライブデモ: https://courageous-chebakia-b55f43.netlify.app/ ? GitHub: https://gi...
    プログラミング 2024 年 11 月 6 日に公開
  • REGISTER_GLOBALS が PHP の主要なセキュリティ リスクとみなされるのはなぜですか?
    REGISTER_GLOBALS が PHP の主要なセキュリティ リスクとみなされるのはなぜですか?
    REGISTER_GLOBALS の危険性REGISTER_GLOBALS は、すべての GET 変数と POST 変数を PHP スクリプト内でグローバル変数として使用できるようにする PHP 設定です。この機能は便利に見えるかもしれませんが、潜在的なセキュリティ脆弱性やコーディング方法のため、使...
    プログラミング 2024 年 11 月 6 日に公開
  • Nodemailer の概要: Node.js での簡単な電子メール送信
    Nodemailer の概要: Node.js での簡単な電子メール送信
    Nodemailer は、メールを送信するための Node.js モジュールです。簡単な概要は次のとおりです: トランスポーター: 電子メールの送信方法を定義します (Gmail、カスタム SMTP など経由)。 const transporter = nodemailer.createTra...
    プログラミング 2024 年 11 月 6 日に公開

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3