知っておくべきプログラミングの 10 のヒント
要約: 良いコードを書くには?優れたコードとは、読みやすく、理解しやすく、デバッグしやすく、変更しやすく、そして最も重要なことに、欠陥が少ないものと定義できます。明らかに、適切なコードを入力するには多くの時間がかかりますが、コードの保守と再利用に費やす時間とエネルギーが削減されるため、長期的にはこれは理にかなっています。これは、30 年のソフトウェア経験を持つ経験豊富なプログラマーによる要約です。一 なぜ良いコードをノックアウトするのでしょうか?
良いコードとは、読みやすく、理解しやすく、デバッグしやすく、変更しやすく、そして最も重要なことに欠陥が少ないものと定義できます。明らかに、適切なコードを入力するには多くの時間がかかりますが、コードの保守と再利用に費やす時間とエネルギーが削減されるため、長期的にはこれは理にかなっています。 実際、良いコードは再利用可能なコードであると考えることができます。これは、以下で説明する重要な原則の 1 つでもあります。コードは、プログラミング作業の短期的な目標に対して特定の機能を果たすだけかもしれませんが、コードを再利用しようとする人 (自分自身を含む) がいない場合、そのコードは何らかの点で不十分で欠陥があると言えます。複雑すぎるか、具体的すぎるか、別の状況下で壊れる可能性が非常に高いか、他のプログラマがあなたのコードを信頼しない可能性があります。 経験レベルに関係なく、次のヒントをコード (実験やプロトタイプを含む) に一貫して適用すれば、すぐに優れたコードを作成できるでしょう。 1. 単一責任の原則に従います 関数は、プログラマのライブラリの中で唯一最も重要な抽象形式です。再利用の機会が増えるほど、記述する必要のあるコードが減り、コードの信頼性が高まります。単一責任の原則に従う小さな関数は、再利用される可能性が高くなります。 2. 共有状態を最小限に抑える ファイル スコープ変数であっても、オブジェクトのメンバー フィールドであっても、関数間の暗黙的な共有状態は最小限に抑える必要があります。これにより、必要な値をパラメーターとして明示的に渡すことが容易になります。関数が望ましい結果を達成することが明らかであれば、コードは理解しやすく、再利用しやすくなります。 ここから 1 つの結論が導き出されます。オブジェクトのメンバー変数よりも静的なステートレス変数を優先する必要があります。 3. ローカライズされた副作用 理想的な副作用 (コンソールへの出力、ログ記録、グローバル状態の変更、ファイル システム操作など) は、コード全体に分散するのではなく、別個のモジュールに配置する必要があります。機能的な副作用は、多くの場合、単一責任の原則に違反します。 4. 不変オブジェクトを好む オブジェクトの状態がコンストラクターで一度設定され、再度変更されない場合は、正しく構築されると有効なままになるため、デバッグが非常に簡単になります。これは、ソフトウェア プロジェクトの複雑さを軽減する最も簡単な方法の 1 つです。 5. インターフェイスを多く使用し、クラスを使用しない インターフェイス (または C++ のテンプレート パラメーターや概念) を受け入れる関数は、クラスで動作する関数よりも再利用可能です。 6. モジュールに適切な原則を適用する ソフトウェア プロジェクトをより小さなモジュール (ライブラリやアプリケーションなど) に分割して、モジュールの再利用を実現します。モジュールの重要な原則は次のとおりです: 依存関係を最小限に抑える- すべてのプロジェクトには単一の明確な関数が必要です
- 繰り返しはしないでください
- プロジェクトを小さく明確に保つように努める必要があります。
最良のコードは、書かれていないコードである
」 (最良のコードとは、書かれる必要のないコードである)コピーされました)。コードが増えれば増えるほど、欠陥も多くなり、バグを見つけて修正するのが難しくなります。コード行を記述する前に、必要なことをすでに実行しているツール、関数、またはライブラリがあるかどうかを自問してください。別の既存の関数を呼び出すのではなく、この関数を自分で実装する必要があるでしょうか?
まとめ
プログラミングは芸術形式やスポーツのようなものであり、継続的な練習と他の人からの継続的な学習を通じてのみ、コードの品質を継続的に向上させることができ、より効率的なプログラマーになることができます。
以上が知っておくべきプログラミングの 10 のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









正規表現を使用して PHP 配列から重複値を削除する方法: 正規表現 /(.*)(.+)/i を使用して、重複値を照合して置換します。配列要素を反復処理し、preg_match を使用して一致をチェックします。一致する場合は値をスキップし、一致しない場合は重複値のない新しい配列に追加します。

1. プログラミングは、Web サイト、モバイル アプリケーション、ゲーム、データ分析ツールなど、さまざまなソフトウェアやアプリケーションの開発に使用できます。その応用分野は非常に幅広く、科学研究、医療、金融、教育、エンターテイメントなど、ほぼすべての業界をカバーしています。 2. プログラミングを学ぶことは、問題解決スキルと論理的思考スキルを向上させるのに役立ちます。プログラミング中、問題を分析して理解し、解決策を見つけてコードに変換する必要があります。この考え方は、分析能力と抽象能力を養い、実際的な問題を解決する能力を向上させることができます。

Python は、問題解決の初心者に力を与えます。ユーザーフレンドリーな構文、広範なライブラリ、変数、条件文、ループによる効率的なコード開発などの機能を備えています。データの管理からプログラム フローの制御、反復的なタスクの実行まで、Python が提供します

Python は、学習の容易さと強力な機能により、初心者にとって理想的なプログラミング入門言語です。その基本は次のとおりです。 変数: データ (数値、文字列、リストなど) を保存するために使用されます。データ型: 変数内のデータの型 (整数、浮動小数点など) を定義します。演算子: 数学的な演算と比較に使用されます。制御フロー: コード実行のフロー (条件文、ループ) を制御します。

C++ プログラミング パズルは、フィボナッチ数列、階乗、ハミング距離、配列の最大値と最小値などのアルゴリズムとデータ構造の概念をカバーします。これらのパズルを解くことで、C++ の知識を強化し、アルゴリズムの理解とプログラミング スキルを向上させることができます。

ランク付けプレイに飽きていませんか?それならボール遊びに来てね!暗黙のうちに協力するチームメイトは、対戦相手に驚きの味を与えることができます。刻々と変化する戦場で、スキルを駆使して一手で状況を打開できるか試してみよう! 「エターナル トリビュレーション」では、4月11日のアップデートで新たなチーム対決モードが登場しました。熱血格闘ボールアクティビティ「エターナル トリビュレーション」の紹介です。永遠の熱血闘球の遊び方概要: 様々な手段を使って闘球を跳ね返し、敵を倒します。人数: 1列9人、3列6人 遊び方: ラウンド: 1. ゲームは複数のラウンドに分かれており、各ラウンドの開始時にフィールドの中央にDouqiuが誕生し、追いかけるプレイヤーをランダムに選択し、プレイヤーは様々な手段を使って攻撃しますボールを当てると格闘ボールがスピードアップし、格闘ボールが当たるとスタミナが減ります。 2. 1 列の各人はラウンドごとに体力 1 ポイントを持ち、3 列の各人はラウンドごとに体力 1 ポイントを持ちます。

C は、初心者がシステム プログラミングを学習するのに最適な選択肢です。ヘッダー ファイル、関数、メイン関数のコンポーネントが含まれています。 「HelloWorld」を印刷できる単純な C プログラムには、標準入出力関数宣言を含むヘッダー ファイルが必要で、main 関数で printf 関数を使用して印刷します。 C プログラムは、GCC コンパイラーを使用してコンパイルして実行できます。基本をマスターしたら、データ型、関数、配列、ファイル処理などのトピックに進み、熟練した C プログラマーになることができます。

Go のエラー処理には、ラップ エラーとアンラップ エラーが含まれます。エラーをラップすると、あるエラー タイプを別のエラー タイプでラップできるようになり、エラーのより豊富なコンテキストが提供されます。エラーを展開し、ネストされたエラー チェーンをたどって、デバッグを容易にするために最下位レベルのエラーを見つけます。これら 2 つのテクノロジを組み合わせることで、エラー状態を効果的に処理でき、より豊富なエラー コンテキストと優れたデバッグ機能が提供されます。
