Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if(a)
{
foo();
}
if(a)
{
foo();
}
if(WM_PAINT == msg)
{
foo();
}
else if(WM_QUIT == msg)
{
bar();
}
....
else
{
default();
}
switch(msg)
{
case WM_PAINT:
foo();
break;
case WM_QUIT:
case 0:
bar();
break;
}
switch(msg)
{
case WM_PAINT:
{
foo();
break;
}
case WM_QUIT:
case 0:
{
bar();
break;
}
}
switch( msg )
{
case WM_PAINT:
pDc->Rect( 0, 0, 128, 128 );
break;
case WM_QUIT:
…
}
if (true) {
foo();
}
if (true)
{
foo();
}
sub foo($)
{
my $callback = sub {
# do something...
};
if (...) {
}
# и так далее
}
Когда лично я пишу код (или просматриваю чей-то), мне всегда приходиться искать открывающую скобку если она находиться в строке оператора, на что тратиться время. Поэтому предпочитаю не использовать «египетский» вариант.
echo "<pre>"; var_dump($varName); echo "</pre>";try {
//...
}
catch (Exception $e) echo "<pre>"; var_dump($varName); echo "</pre>";
if(cond)
DoSmth();
if(cond)
DoSmth();
else return false;
void foo()
{
bar();
}
Избегайте отсутствия отступов в парах begin-end В стиле форматирования, проиллюстрированном в листинге 31-24, пара begin-end выровнена по границе управляющей структуры, а в выражениях, охватываемых операторами begin и end, сделаны отступы относительно begin.
Листинг 31-24. Пример пары begin-end, не выделенной отступами (Java)
//Ключевое слово begin выровнено по границе for. for(int i = 0; i < MAX_LINES; i++ ) { //В выражениях сделан отступ относительно begin. Readl_ine( i ); Processl_ine( i ); //Слово end также выровнено по границе структуры for. }
Хотя такой подход выглядит хорошо, он нарушает Основную теорему форматирования, так как не показывает логическую структуру кода. При таком расположении begin и end не являются частью управляющей структуры, но в то же время, они не являются и частью блока выражений, расположенного далее.
if (true)
{
foo();
}
if (a && b && c &&
d && e && f) {
blah-blah-blah
}
bool goodWeather = noRain && noSnow && noWind;
bool goodTemperature = (15 < temperature) && (temperature < 30);
if (goodWeather && goodTemperature) {
// do smth.
}
if ( (x = assignment_expression) == value) {
// expression
}
if (condition == value) {
// expression
}
5 count == if ... else ... thenПусть пользователи будут тестировщиками <...>
Дарвиновское программирование/Экспериментальное программирование
Изменение кода(как правило, случайное) без понимания смысла изменений, пока он не заработает. Например, замена инкремента на декремент.

if (42 == value) {
// …
}
Жаргон программистов