重要なお知らせ
少なくとも1週間は、スタイルのあらゆる側面の変更に慣れるのに適しています。 変化が小さい場合、脳が再訓練しやすくなり、古いコードとの類推が簡単に見つかります。 そして、すべての変更を一度に適用すると、コードが非常に異常になり、脳が過負荷になり、急激な変更を嫌うようになります。
正当化
「より美しいもの」ではありません。 脳は、以下で説明するスタイルにも等しく慣れますが、コードが短い場合、1つの画面に収まるサイズが多くなります。 コードをスクロールする必要が少なくなります。つまり、キーボードからマウスに手を移動したり、カーソルで前後に移動したりする頻度が少なくなります。 アクティビティをスクロールサブルーチンに切り替える必要はありません(スクロールの量は十分ですか、それとも必要ですか?)。 (プログラマーはぞっとする必要があります-すべてのチャレンジに1秒かかります!ロボットとどのように競争しますか?)。 タイピングが少ない。 短いプログラムはより高速にコンパイルされ(特に、1つのディスククラスターの占有が少ない場合)、バージョン管理システムなどで見やすくなります。
縦寸法
新機能とパディング
異なる関数の間には通常、空の文字列を入れます。 しかし、脳にとっては、これは潜在的に冗長な情報です。新しい関数の前に閉じ山かっこで囲まれた行が存在する前に、それは空と見なすことができます。 そして、この閉じ括弧には余分なパディングはありません。 新しいブロック(関数)も追加のインデントなしで提供されます。 合計すると、これは脳が再訓練後、余分な空白行なしで完全にナビゲートするのに十分です。
|
|
|
|
— , . , - — , } ( — ). . , !
: \}\n\n -> \}\n.
. , . , — !
/*
*/
/*
*/
, . ( */) , . , , , */ . , , . , . //.
, .
Include guard
++ pragma once, include guard ifndef/define/endif . , 2-4 ( ), ( guard). , pragma once, , . , ( ) pragma once, . , // # pragma once.
, . :
\#pragma once\n\n -> \#pragma once\n
\n\n\#pragma once -> \n\#pragma once
— . . ( ) .
|
|
|
, : ? ? if ? - ? ? ?
: {\n\n -> {\n
, .
#include
#include ( ) , ( pragma once). include forward declarations, — , ( java-, include forward declarations). Forward declarations #include #. include/forward declarations — forward declarations, , , .
, . , , .
//file.cpp by AuthorName
//This file is licensed under GPL, www.gnu.org/copyleft/gpl.html
.
, public/private , — .
|
|
|
? — , (« ?») — «public:» , (« ? ...»). ? , goto: «public:» goto, , . , , . - ( ). , 320*240, , goto.
: , ? , . . .
. , — « - ? ».
:
VeryLongClassName* veryLongClassName = new VeryLongClassName(params);
:
auto veryLongClassName = new VeryLongClassName(params);
:
New<VeryLongClassName> shortName(params);
, New ( ).
New.h
template<class Class>
class New {
private:
Class*d;
public:
New() {
d = new Class();
}
template<typename T0>
New(T0 t0) {
d = new Class(t0);
}
template<typename T0, typename T1>
New(T0 t0, T1 t1) {
d = new Class(t0, t1);
}
template<typename T0, typename T1, typename T2>
New(T0 t0, T1 t1, T2 t2) {
d = new Class(t0, t1, t2);
}
template<typename T0, typename T1, typename T2, typename T3>
New(T0 t0, T1 t1, T2 t2, T3 t3) {
d = new Class(t0, t1, t2, t3);
}
virtual ~New() {}
Class* operator->() { return d; }
const Class* operator->()const { return d; }
operator Class* () { return d; }
operator const Class* ()const { return d; }
};
, , , . — ++11 VS2012.
Java/Qt: ClassName, functionName. : function_name — , , , ( ), . « » ( ) , ( ).
Tabs
, ! habrahabr.ru/post/118208
, :
|
|
, . ? , 1) — , , , , 2) , . 1 — , , — . : , , , , . , , — . : « , ! , ! ! , — , ? — ! , — ? , — ! , , ? , ! , !». , .
- , ( ). ++ — , ( linq C#). , !