Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Не знаю как можно не следовать общему стилюОчень просто.
procedure swap(var a : integer, var b : integer);
var c : integer;
begin
c := a;
a := b;
b := c;
end;Неизменяемые параметры не должны передаваться по ссылке.
Не используйте входные параметры в качестве рабочих переменных.
Метод должен быть защищен от плохих данных, которые могут нарушить его работу.
Так же не мало важным является одинаковое оформление блоков кода, разбиение длинных условий на несколько строк и использование отступов.Приятно может быть и первый, но хорошим компромиссом для такой ситуации имхо было бы все-таки
Согласитесь, читать такой код:
Код красивыйfunction()
{
$a = 1;
$b = 2;
$c = 3;
$sql = '
SELECT
*
FROM
tbl
WHERE
a = 1';
}
Код компактныйfunction(){
$a = 1;
$b = 2; $c = 3;
$sql = 'SELECT * FROM tbl
WHERE a = 1';
}
Более приятно, чем
Метод не должен быть слишком большим (не более 100)
function(){
$a = 1;
$b = 2; $c = 3; $sql = 'SELECT * FROM tbl
WHERE a = 1'; return $this->my_sql->q($sql);
}
$sql = '
SELECT
i.e_id
, iv.iv_id AS id
, iv.value
, iv.ep_id AS element_property_id
FROM
' . $this->schema . '.item AS i
LEFT JOIN
' . $this->schema . '.item_value AS iv USING (i_id)
WHERE
i.i_id = '. $this->db->getSqlInt($item['id']) . '
';
$var
=
2
+
2
$var
=
2
+
2
SELECT *
FROM tbl
INNER JOIN tratata
ON zozo.zozo = zaza
WHERE a = 1
AND z = 1000
SELECT *
FROM tbl
INNER JOIN tratata
ON zozo.zozo = zaza
WHERE 1
AND a = 1
AND z = 1000
if(x == y)
{
something();
} if (x == y)
{
something ();
} if (x == y) {
something();
}file->checkViruses()file->isVirusFree()file->hasVirus()Имена булевых переменных должны быть в утвердительной форме и подразумевать булево значение: done, error, found, finished. Плохо: status, source.
Не используйте табуляцию для оформления кода, заменяйте её пробелами.Абсолютная ересь.
int someCounter, someOtherValue = 0;
if (someValue == 0)
WriteTrace("Before do something"); // эта строчка была добавлена позже
DoSomething(); // ошибка, этот код будет вызываться даже если someValue != 0
if (ERROR_SUCCESS != GetLastError()) // IMHO, снижает читабельность кода
int *somePointer, *anotherPointer;
int* somePointer;
int* anotherPointer;
Оформление кода