Конструирование кода: Думай верно! (или 5 Правильных Убеждений) Токарев Олег, Hosting Concepts B.V.
Jan 27, 2015
Конструирование кода:Думай верно!
(или 5 Правильных Убеждений)
Токарев Олег,
Hosting Concepts B.V.
Когда актуально?
>1мес. >1 coder
>1 проекттребуется поддержка
Характерные сложности
Задолбал своим перфекционизмом!
О, Боже!
Только не мой мозг!
Кто виноват?
Чьи «костыли»?!! Поубивал бы!!
Что делать?
Бить по голове чайником?
Стоять у каждого над душой?
Всегда ли есть ресурсы для этого?
Новый путь!
Пять волшебных убеждений!
* убеждения
Какие Цели?Какие средства Хорошие?Почему эти средства Хорошие?
* убеждения
Почему хорошо?Меньше кода → проще менять → гибкость
Почему хорошо?Меньше кода → проще менять → гибкость
Цели Архитектуры:стабильность, гибкость
Цели Архитектуры:стабильность, гибкость
Что хорошо?Меньше кода — хорошо!Проще читать — супер!
Что хорошо?Меньше кода — хорошо!Проще читать — супер!
* убеждения
Запоминающаяся формулировка.Почему Хорошо — очевидно всем.Повторение — мать учения.
Итак
Правило прикрытой жопы!
Безобразно, но единообразно!
Разделяй и властвуй!
Правило Бестселлера!
Скаут — друг природы!
Правило прикрытой жопы
<?php if (check_something()) { echo "Everything is alright!"; } else { echo "Something goes wrong";; }
?>
Жопа надёжно прикрыта.Разработчик спокоен и расслаблен.
<?php $ret = 0; $exception = false;try { $result = check_something(); } catch (Exception $e) { $ret = 0; $exception = true; report_error("check_something threw exception"); } if (!$exception) { if ($result === 1) { $ret = 1; } elseif ($result === 0) { $ret = 0; } elseif { report_error("check_something returned invalid values"); $ret = 0; } } if ($ret) { echo "Everything is alright!"; } else { echo "Something goes wrong";}?>
Попа прекрыта НЕ надёжно.Программиста мучает мания
преследования и ночные кашмары
Безобразно, но единообразно
Одинаковые сарафаны Одинаковые автоматы Одинаковые команды
Разделяй и властвуй
ПсевдоязыкиИнтерфейсы
Физическое разнесениеРазделение команды
Следствие 1:Гавнокод в стойло!
Преимущества гавнокода:
•Скорость
•Гибкость
•Не жалко
Правило Бестселлера
Правило Бестселлера
Скаут — друг природы!
Ещё раз
Как узнать, что это работает?