Адский код

Adelf

Administrator
Команда форума
Тема об адовых запросах напомнила мне о давнем желании опубликовать данное чудо природы. Три года прошло с тех пор, как я оттуда убежал(2 месяца проработал), и кажется именно такой срок был в договоре об экономической тайне или чего там.
После рефакторинга более-менее слабо-написанного портальчика попросили меня взглянуть на этот код. И если портал писался молодняком, который старался придерживаться новых веяний и отрефакторился до годного MVC без проблем, то это писалось опытным программистом лет 50. Это как какой-нибудь беломорканал после легкой сигаретки(не курю, но пришло на ум). Сохранил лишь небольшой скриншотик на память об этом монстре. Причем специально не выбирал. Просто открыл первое попавшееся. Скрин.
Около двух сотен таких файлов(обратите внимание на список слева и названия файлов). Размеры некоторых достигали 5к строк. И все. ВСЕ такие!
Только на данном отрезке кода в 40 строк мы можем наблюдать практически все возможные участки кода от доставания данных до генерации яваскрипта. Да, HTML тут не видно, но до него совсем недалеко.
Писал он все это в фаре, поэтому я, наверно, до сих пор ненавижу всех людей ,пишущих код во всяких ви, фарах и других непригодных для нормального кодирования вещей. В фаре я могу тестовый скриптик сваять. Крупный проект только в IDE.
Ну, в общем, от рефакторинга я вежливо отказался и примерно тогда же написал заявление.

Мне вот интересно - а хуже бывает? Если да - хотелось бы взглянуть.
 

Духовность™

Продвинутый новичок
У твоего кода отвратительное оформление, но написан он более-менее грамотно. isset есть, переменные из суперглобалов берутся.
Я сейчас работаю к команде из 10 человек - один из ведущих инет-магазинов. Никто из команды не знает, как работает проект. Он писался лет 10, разными людьми и проблемы точно такие же - нет комментариев, низкий уровень кода, остуствие банальных проверок на isset/empty, куча файлов и т.д. Задачи, которые на хорошем коде могли бы решаться быстро, у нас занимают огромное количество времени.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Духовность™
Команда из 10 человек не в состоянии за приемлемое время реализовать заного хотя бы базовый функционал (на новом движке и с приемлемым уровнем кода)?

Adelf
У нас один парень, недавно уволившийся, писал код в vi. Я уже за..... править за ним куски, где есть использование непроинициализированных переменных и прочее. Один только query builder, который он написал уже вгоняет меня в тоску, потому как править запросы в нем - та еще задача.
 

akd

dive now, work later
Команда форума
где вы берете руководителей команд, которые не следят за правилами кодирования?
первый док, который я написал на текущей работе назывался CompanyName.coding.standards.doc
занимал две страницы. написание заняло 1 час. каждый, кого брали на работу, вместе с компом получал этот док. проблем нет. независимо от редактора и языка.
 

Вурдалак

Продвинутый новичок
c0dex, если вы не следите за коммитами новичков (да и не только), то чья это вина?
 

Духовность™

Продвинутый новичок
Духовность™
Команда из 10 человек не в состоянии за приемлемое время реализовать заного хотя бы базовый функционал (на новом движке и с приемлемым уровнем кода)?
10 веберов
>200 IT-шников
2000 чел в офисе
сайт = огромная система, ежедневно приносящая большую прибыль
кто тебе даст время и кто возьмется за исполнение задачи, которая требует кучи согласований?
 

fixmax

Новичок
где вы берете руководителей команд, которые не следят за правилами кодирования?
первый док, который я написал на текущей работе назывался CompanyName.coding.standards.doc
занимал две страницы. написание заняло 1 час. каждый, кого брали на работу, вместе с компом получал этот док. проблем нет. независимо от редактора и языка.
А можно посмотреть на этот документ. Там описана стилистика (отступы, комментарии, скобки и прочее) или скорее "уроки" программирования?!
 

akd

dive now, work later
Команда форума
только стилистика. могу скинуть куда-то в почту, если надо.
 

Absinthe

жожо
Я уже за..... править за ним куски, где есть использование непроинициализированных переменных и прочее.
Виноваты все, кто вместе с ним работал, т.к. не настучали лиду на него.

fixmax https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
Я оформляю немного иначе, K&R стилем.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Хорошая дока, кстати. Мне нравится. Жаль что у нас щас стандарт другой.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Вышеописанное я написал не для того, чтобы вы показали какие вы крутые и как следите за коммитами новичков. А к тому, что писать серьезный проект в vi нельзя. Ясно? Или разжевать дважды?

Я не могу физически проверять все коммиты всех, ибо самому надо успевать писать свою часть проекта.

Человек придерживался нашего стандарта кодирования, но писал неаккуратно.
 

Absinthe

жожо
А к тому, что писать серьезный проект в vi нельзя. Ясно? Или разжевать дважды?
На самом деле беда не столько в виме, сколько в разработке при error_reporting(0). Иначе бы проблема сразу обнаружилась. vim всего лишь предпосылка проблемы.

Судя по error_reporting(0) он бы и в IDE покрытие кода отключил.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
На самом деле беда не столько в виме, сколько в разработке при error_reporting(0).
Ну за это у нас бьют линейкой по рукам.

Только тут не в этом дело, а в том, что у него по ходу было display_errors(0).

флоппик
Ни черта не бред. Когда у тебя метод на 300 строк, то вполне себе можно пропустить не инициализированную переменную, а тот же phpstorm тебе ее высветит как казино в лас-вегасе. vi же - нет.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Ни черта не бред. Когда у тебя метод на 300 строк...
...то у тебя проблемы с архитектурой, а не с неинициализированными переменными.

Ну вон мне в native-шаблоне пхпСторм подсвечивает все переменные неинициализированными. И что? Ему все равно неоткуда эту информацию взять.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Absinthe, флоппик
Методы модели вполне себе могут быть такими длинными. Увы.

Речь то не про шаблоны. А ро код контроллера и модели.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Кхм, да, про 300 строк я загнул, они конечно поменьше втрое..., но суть все равно я описал.
 
Сверху