Хороший стиль кодинга (программирования) на php. Часть 3Политика обработки неудачного исполнения
Политика использования {}скобокИз трех основных методов, применяемых в программировании только 2 из них вполне приемлемы. Размещение под ключевым словом и на одном уровне с ним: if ($condition) while ($condition)
{ {
... ... } } Традиционная для UNIX практика размещения открывающей скобки на той же самой строке, где и ключевое слово и использование закрывающей скобки с тем же отступом, что и ключевое слово
if ($condition) { while ($condition) {
... ... } } Мотивация
if ($very_long_condition && $second_very_long_condition)
{
... } else if (...)
{
... } Чтобы передвинуться от блока к блоку Вам просто нужно просто передвинуть курсор вниз. Нет необходимости передвигаться в конец линии, чтобы проверить где начинается скобка и потом переходить опять в начало. Отступы, проблемы и табуляция
Мотивация
Примерfunction func()
{
if (something bad)
{
if (another thing bad)
{
while (more input)
{
} } } } Круглые скобки ()сключевыми словами и названиями функций
Мотивация
Примерif (condition)
{
} while (condition)
{
} strcmp($s, $s1); return 1;
Не производите реальной работы в конструкторе объектов.Не производите реальных действий в конструкторе объектов. Внутри конструктора только инициализируются переменные и выполняются действия, которые не могут привести к ошибке. Создайте Open() метод для объекта будет завершать конструктор.Open() должен вызываться после того как объект будет инициализирован.. Мотивация
Примерclass Device
{
function Device() { /* инициализация и другие функции */ }
function Open() { return FAIL; }
}; $dev = new Device; if (FAIL == $dev->Open()) exit(1); Позвольте функция запускаться повторноФункции не должны содержать в себе статических переменных, которые будут запрещать функции повторный запуск. ФорматированиеIf иElseРасположениеРазличные стили использования скобок выглядят немного по разному. Общий вид примерно такой:: if (условие) // Комментарий
{
} else if (условие) // Комментарий
{
} else // Комментарий
{
} Если Вы используете else if оператор, то часто хорошой идеей является всегда использовать выделение кавычками блока. Комментарии обязательно Вам пригодятся. Формат условийВсегда размещайте константу слева от знака равенства/неравенства. Например: if ( 6 == $errorNum ) ... Одной из причин является то, что если Вы оставите только один знак = (а это очень распространенная ошибка), парсер остановится с сообщением об ошибке. Второй причиной является то, что значение находится в левой части и его найти будет там проще, чем в конце длинного выражения. Требуется совсем немного времени для того, чтобы привыкнуть писать именно так, но в будущем Вы неоднократно убедитесь, как это экономит время. Использование switch
Примерswitch (...)
{
case 1: ... // пропускаем case 2:
{
$v = get_week_number(); ... } break; default: } Использование continue,break и ?:Continue и BreakContinue и break подобны замаскированному оператору goto, от которого все по чуть-чуть отказались. Continue и break подобны goto и должны использоваться минимально, так как могут привести к неожиданным последствиям. 2 основные проблемы с continue:
Рассмотрим следующий пример, где рассматриваются обе проблемы : while (TRUE)
{
... // A lot of code ...
if (/* условие */) {
continue; } ... // A lot of code ... if ( $i++ > STOP_VALUE) break; } Из примера выше само по себе появляется правило: смешивая continue и break в одном цикле практически гарантировано приводит к путанице ?:Основная проблема заключается в том, что люди обычно стараются разместить между ? и :слишком много кода. Вот несколько простых правил, которых следует придерживаться:
Пример(условие) ? funct1() : func2(); или (условие) ? длинный оператор : другой длинный оператор; |