rugabarbo писал(а): ↑2017.12.23, 18:12
Кто такой нормальный программист? Что есть норма?
Под словом нормальный имеется в виду профессионал, то есть человек с опытом, мозгами и разумным подходом к делу. На эту тему можно долго говорить. Но я просто приведу пример неразумного подхода.
Рассмотрим как организован код одного из здесь выступавших.
Он ненавидит виджеты, поэтому просто использует ассеты для каждой страницы.
На вопрос почему именно такая структура папок, и почему файлы, относящиеся к бэкенду, лежат в таком странном месте я так и не получил ответа. Ну, гению виднее. Похоже, тут какая-то своя особенная логика.
<код порезан модератором>
Можно было просто заключить все, что относится к отдельному конкретному элементу интерфейса, в один виджет и просто вызывать его в разных местах одной строкой. Но наш гений - любитель мазохизма и не сторонник простых решений!
Особое удовольствие наверное доставляет удалять элементы интерфейса из кода отображения. Ведь при таком подходе нужно лезть в класс ассета, находить подключаемые им файлы js и css, затем в этих файлах находить код, соответствующий именно этому элементу.
Тогда как можно было бы просто убрать строку с вызовом виджета, но это слишком просто.
1. var csrfToken = $('meta[name="csrf-token"]').attr("content");
Про yii.getCsrfToken() не слышали, фреймворк не знаем.
2. Хардкодит адреса страниц (/restaurant/add-region.html). То есть элементарно человек не может понять, что если мы решим поменять адрес страницы или уберем суффикс, то скрипты перестанут работать. И надо будет искать и исправлять все скрипты, где такой адрес есть. Что может быть непросто, потому что в некоторых местах js эти адреса генерируются динамически, как мы здесь видим. Наверное ему так по-приколу, я не знаю.
3. Хардкодит надписи в js ("Регион добавлен!").
4. Генерит разметку из js. Тут добавляется элемент в список. То есть, если мне надо поменять разметку элемента списка, то мне надо изменить код в файле отображения, где этот список выводится с помощью php, потом найти тот файлик js, где элемент списка динамически добавляется и в нем так же найти код генерации элемента и поменять его соответственно. НО! Мне так же надо найти классы ассетов, которые этот js подключают. Не факт, что его подключает только один класс ассета на одной странице. Потом найти все файлы отображения, где этот js присутствует и проверить, ни сломалось ли что-нибудь от моих правок.
Такая вот куча говна в одном маленьком кусочке кода. PHP показывать не буду, но там количество маразма на строку не меньше.
Вообще весь проект на govnokod.ru можно выкладывать.
И при этом человек еще с умным видом учит других как программировать.