Каковы реальные проблемы с встроенными сценариями?
Встроенные сценарии плохи, и их следует избегать, потому что они затрудняют чтение кода.
Код, который трудно прочитать, трудно поддерживать. Если вы не можете легко прочитать это и понять, что происходит, вы не сможете легко обнаружить ошибки. Если его сложно обслуживать, он будет тратить больше вашего времени позже, когда возникнут проблемы.
Сложность обычно исходит из вложенных кодировок. В следующей строке кода есть проблема, вы можете ее обнаружить?
<a onclick='alert("What\'s going wrong here?")'>Alert!</a>
В идеале код написан таким образом, чтобы его можно было легко обнаружить в случае ошибки. Джоэл Спольски написал отличную статью, которая подчеркивает этот момент еще в 2005 году . Примеры кода могли бы использовать некоторые существенные улучшения, поскольку они показывают, что их возраст составляет 9 лет, но основополагающая концепция все еще остается сильной: пишите код так, чтобы было легко выявлять ошибки.
Есть ли существенная проблема с производительностью, или это в основном просто вопрос хорошего стиля?
Встроенные сценарии приводят к повторению. Вместо того, чтобы изменять одну строку кода, чтобы повлиять на 100 страниц, вам, вероятно, потребуется изменить 100 страниц по отдельности. Это наряду с плохой читабельностью серьезно сказывается на производительности сопровождающего . Время программирования сопряжено с реальными затратами, которые влияют на итоги бизнеса быстрее, чем несколько миллисекунд от большинства оптимизаций кода. Конечно, оптимизация узких мест важна, но разница в производительности кода в этом случае незначительна.
Могу ли я оправдать немедленные действия в области встроенных сценариев для моих начальников, когда есть другие вещи, над которыми можно работать, которые могут оказать более очевидное влияние на сайт?
Нет. Если это глупо, и это работает, это не глупо.
Следствием программирования является следующее: если это глупый код и он работает, это не глупый код. Сосредоточьтесь на реальных проблемах, прежде чем пытаться исправить то, что не сломано. Когда встроенный код в конечном итоге нуждается в обновлении, будь то через шесть часов, шесть месяцев или шесть лет, исправьте код таким образом, чтобы упростить его дальнейшее обслуживание.
Какие факторы заставили бы вас сказать «хм, профессиональная работа здесь», и что заставило бы вас отказаться от явно любительской работы?
Я предпочитаю определять «профессионал» просто как человека, которому платят за выполнение задачи, а не предполагать, что он обладает какой-либо значительной способностью в том, что ему платят за выполнение. Многие профессионалы, безусловно, способны выполнять хорошую работу, но чаще всего я в ужасе отскакиваю от ужасной работы, которую проделали другие профессионалы, а не от того, что придумал любитель. Большая часть моей работы на сегодняшний день была связана с спасением проектов крушения поезда, которые были испорчены первыми разработчиками, поэтому ваш пробег может варьироваться.
С учетом всего сказанного, как правило, легко выбрать программирование качества предприятия