コーディング達成シリーズ-理解しやすいコードを書くための必読の記事


好きなプログラマーニック

1.gotoステートメントを使用しないでください

  • プログラミング分野の前任者たちは、「gotoを使用しないでください」と話していました。
  • コーディングの観点からは、gotoステートメントの方が使いやすいです。
  • ただし、プログラムの理解と保守が容易であるという観点からは、ロジック、つまりメイン関数といくつかのサブ関数を密接にリンクできる構造化プログラミングアプローチを使用する方が適切です。
  • gotoの使用例を見てみましょう。プログラムを読むと、200行が読み取られます。gotoステートメントの後、17行目に戻り、別のgotoが表示されます。987行に移動してから200行に戻ります。これは大丈夫ですか、これは良くありません!
  • 事実は、gotoステートメントを完全に放棄してもプログラミング作業に影響を与えないことを証明しています。

2.c言語の要素を置き換えないでください

  • ここにいくつかの例があります、誰もが理解するでしょう
#define BEGIN {	//忘了PASCAL吧
#define END }	//别那么保守,这样不好

#define @ {		//太激进,太个性,这样也不好
#define $ }

#define 自动_变量 auto //大家都明白这是啥意思,就别改了
#define 整数型_变量 int

3.長すぎるデータ型の名前を短くします

  • たとえば、typedefコマンドを使用して、データ型名を再定義します。
typedef unsigned long int ULI;
typedef unsigned short int USI;
ULI myLong;//用新的数据类型别名声明变量
USI myShort;
  • 特別な意味を持ついくつかの変数を宣言できる場合があります。たとえば、unsigned long intを使用して速度を表し、longintを使用して瞬間速度を表します。
  • これにより、プログラムが理解しやすくなります
typedef unsigned long int SPEED;//速度
typedef long int ACCEL;//瞬间加速度
SPEED carSpeed[10];
ACCEL carAccel[10];
  • 利点:
  1. 元の長いデータ型名を短縮できます
  2. 変数は、変数の特性と互換性のあるデータ型で宣言できます
  3. プログラムはより読みやすく、理解しやすい

4.三項演算子の代わりにifステートメントを使用します

  • C言語は単純な式の置換ifステートメントをサポートします
if (num1 = num2)
	temp = num3 + f(num1);
else
	temp = f(num1) - num3;
temp = (num1 == num2) ? d + f(num1) : f(num1) - d 
  • 上記の2つのうちどちらが理解しやすいですか?
  • 紛れもなく、三項演算子の方が読みやすい場合があります。もちろん、ifステートメントを使用することをお勧めします

5.配列名は3次元に制限する必要があります

  • 作業の過程で、2次元配列は需要を満たします

6.ドライバー機能の主な機能の役割を検討する

6.1機能

  • 主な機能は駆動機能であり、主な機能によって呼び出される機能は受動的な機能と呼ばれます
  • 主な機能は、プログラム名、著作権表示を記録し、コメントの形式でプログラムターゲット情報を含める必要があります。
  • また、main関数の主要部分は、ヒープパッシブ関数のcallステートメントである必要があります。

6.2例

  • プログラムのモジュール化
/*驱动函数*/
int main()
{
    
    
	minInfantry = 8;
	minArtillery = 8;
	/*函数调用语句的作用与目录类似*/
	statInfantry = InfantryRoutines(x);
	statArtillery = ArtilleryRoutines(y);
}
/*被动函数*/
InfantryRoutines(int x) {
    
    
	...
	return result;
}
ArtilleryRoutines(int y) {
    
    
...
return result;
}

7.定数をシンボリック定数またはconst形態定数に置き換えます

7.1定数定数

次のコードの定数18と0.5は何を表していますか?
一目見ただけで、プーケットはすごい

int sleepTime = 18 + 0.5;
  • const定数を定義し、意味のある定数名を割り当てることができます。これにより、次のようにプログラムの可読性が大幅に向上します。
const int const_initialAirconDegree = 18;//常见写法1
const int AIRCONDEGREESTEP = 0.5;//常见写法2
....
sleepTime = const_initialAirconDegree + AIRCONDEGREESTEP;

7.2#define前処理はシンボリック定数を定義します

  • 記号定数の規則はすべての文字を大文字にすることですが、constにはこの規則がありません
#define INITIALAIRCONDEGREE  18;/
#define AIRCONDEGREESTEP  0.5;
....
sleepTime = INITIALAIRCONDEGREE + AIRCONDEGREESTEP;

8.変数宣言部分の順序を検討します

8.1シーケンス

  • 変数宣言ステートメントの部分では、特定の基準に従って配置するのが最善です。
  • ユーザー定義のデータ型(構造、共用体、列挙など)->外部変数->静的変数->グローバル変数->ローカル変数
  • または、使用順序に応じて、ワイドからナロー、変数名はロングからショートになります。

8.2なぜですか?

  • 最適な順序は重要ではありません。最も重要なことは、最初に標準を策定してから、それらを厳密に遵守することです。
  • この方法でのみ、開発者が後でプログラムまたは受け入れコードについて話し合うときに、特定の変数をすぐに見つけることができます。
  • 実際の作業では、プログラマーはユーザー定義のデータ型(構造、共用体、列挙など)、外部変数、静的変数、グローバル変数、ローカル変数などを個別にヘッダーファイルに格納し、他のデータ型を次のように挿入します。必要です。

9.グローバル変数をできるだけ使用しないでください

  • プログラムロジックを混乱させ、理解の難しさを増す
  • 良いコーディング習慣はグローバル変数の使用を避けるべきです

10.KISSの原則に従う

10.1どのような原則?

  • KISSの原則は シンプルで短くするの略語
  • 文が簡潔であればあるほど、メッセージは良くなります

10.2メリット

  • コードが簡潔であるほど、コードを引き継ぐ人、つまりコードを更新する(コードをリファクタリングする)サードパーティがコードを理解しやすくなります。コードを理解しやすくすることの利点:
  1. コードの脆弱性を簡単に修正(デバッグ)
    2。コードをリファクタリングしやすい(リファクタリング)
  2. コードのメンテナンスが簡単(メンテナンス)
  3. コードの修復が簡単(再構築)
  4. コードの再利用が簡単(再利用)
  • 簡潔なコードを書くためのKISSの原則に従うことは、将来のすべての作業に関連していることがわかります。

11.まとめ

この記事を読んだ後、私はコードの「単純さ」について本当に新しい理解をしました。プログラムのモジュール化を促進します。すべてのジュニアプログラマーがこれを実行できることを願っています。良い習慣を身に付け、ゆっくりと成長してください。

おすすめ

転載: blog.csdn.net/weixin_43722052/article/details/110948423
おすすめ