Статьи

60 000 строк Javascript

Koranteng Ofosu-Amaah делает несколько увлекательных и проницательных замечаний в отношении Applications против W3C DOM (это относится к июлю 2003 года — кстати, пропустите рекламу). Выйдя из обсуждения богатых веб-приложений, на мгновение поразил пункт 8. «Javascript слишком гибок»;

В 60 000 строк Javascript, с которыми я имел дело, я иногда находил до 7 способов решить ту же проблему в коде; некоторые подходы являются невероятно мощными, «умными» и своеобразными, но когда дело доходит до этого, непостижимо в долгосрочной перспективе.

Часть этой проблемы специфична для Javascript — попробуйте поискать в Google Javascript и наследование и сравнить полученные советы — но подумайте, что здесь есть общая проблема, которая относится ко всем динамическим языкам . Корантенг призывает разработчиков приложить усилия для кодификации лучших практик.

В течение последнего года все больше и больше людей говорили о передовых практиках в PHP, что является очень хорошей вещью, но в то же время, все еще видя, как новые разработчики делают «ошибки», PHP позволяет им делать. На другом конце шкалы находятся разработчики, которые хорошо знают язык и не могут удержаться от добавления «умных» функций. Это должно быть золотым правилом того, чего не следует делать с динамическими языками — не расширять язык (по крайней мере, не используя сам язык).

В PHP это, вероятно, означает такие вещи, как «не определять класс String». Возможно, в Javscript добавлено свойство «суперкласс», чтобы сделать возможным наследование. Тем временем Python, который по умолчанию имеет отличный дизайн, рисует такие вещи.

Попытка понять намерения дизайнеров должна стать первым шагом к «серьезности» динамического языка. В отсутствие четкого заявления о намерениях (а PHP имеет много серых областей), пришло время начать дискуссию с другими разработчиками.

Следующим в списке лучших практик должно быть «вы должны написать модульные тесты». В Perl, PHP, Python и Javascript (которые я использовал) есть отличные платформы для модульных тестов.

Что еще?

Платформа Разделить

Вернуться к Корантенг;

Не входить в языковые войны, но я предложу вознаграждение для тех, кто решает эту проблему. Я хочу быть испорченным настолько, насколько испорчен программист J2EE или .Net.

Есть проблема;) К сожалению, крупные производители программного обеспечения до сих пор скучают по этой лодке. Обобщение изложено в книге «Тонкий к моему огорчению» (ноябрь 2003)

Но лучший совет, который я могу вам дать, — это просто использовать правильный инструмент для правильной работы. Языки сценариев являются великолепными инструментами по назначению. Как и C # и C ++. Но они действительно ужасны в выполнении работы друг друга!

Лично думаю, что это самоисполняющееся пророчество. Это связано с тем, что крупные поставщики придерживаются такого мнения, что состояние динамических языков улучшается только постепенно, через открытый исходный код (что может быть хорошо). Microsoft, похоже, хеджирует свои ставки, с помощью странного умного найма

Счетчик в пользу динамических языков начинается со строгой типизации против строгого тестирования и заканчивается такими результатами, как wxPython , Gmail и A9.

В отличие от « Тонкого к моему огорчению» , Корантенг делает еще один превосходный комментарий в « Об богатых веб-приложениях», AlphaBlox и Oddpost (с последующим отслеживанием — время работы меняется).