Стига с тази пропаганда!

От известно време наблюдавам тази тенденция в интернет – по форуми, блогове и статии, да се проповядват (и то доста религиозно) нови технологии, използващи езика JavaScript, като в частност имам предвид node.js или дори целия MEAN. Всъщност нямам нищо против тези технологии, но са някои от техните евангелисти, които ме дразнят.

Защо?

Хубаво е да има нови технологии, но толкова често забелязвам тази пропаганда, че тези JavaScript технологии (отново MEAN) решават всички програмистки проблеми. А колко от вас всъщност осъзнават, че проблемите в развитието на един проект/продукт са директно свързани с предмониторни проблеми? Доста смели изявления чух в последно време, и особено когато се стигне до сравнение на node.js vs php (а по-нахалните дори намесват java).

Искам да кажа, че технологията не е отговорна

Когато нямаш понятие (за желание да не говорим) от дизайн патърни, рефакторинг и тестване как по-точно ще ти помогне лъскавият node.js(и в този момент се разхвърлят хиляди статистики за това колко е бърз node.js с hello world)?

Спомням си когато за пръв път чух термина NoSQL, беше в едно изречение със „заместител на релационните бази данни“. Примитивите не осъзнават, че релационните бази данни се разработват от 20-30 години и са се доказали на академично ниво. Много харесвам документ-ориентираните бази данни като MongoDB, но също така е важно да се отбележи, че подобни DB-та имат много тесен терен за изява, когато става въпрос за сериозен софтуерен продукт. Направих това отклонение, защото MongoDB е част от компилацията MEAN.

Нека мине време, пък ще видим

Познавам доста node.js маниаци, но не познавам нито един, който може да се похвали, че работи върху node.js проект, който е на повече от 2 години. Когато работиш върху проект с по-дълъг жизнен цикъл (две години всъщност не е особено дълго време за един софтуерен продукт) забелязваш в отражението на разработката истинските проблемни области. И в колкото проекта съм участвал, технологията (езикът) никога не е бил главният виновник. Винаги изпъкват липсата на познания по качествен код, design patterns и прочие.

Давайте, преминете на чисто нова технология, обучете екипите си и се наслаждавайте на приятната бъркотия, в която ще се озовете.

Било хубаво клиента, сървъра и базата данни да използват един език

(Майко, майко…)

Това го чух на една лекция за MEAN:

  • MongoDB работи с колекции под формата на JSON
  • node.js е сървър-сайд JavaScript
  • В клиента (браузъра) пък винаги имаме JavaScript

иии… аз ли нещо изпускам романтиката? Интересна изглежда тази вълшебна моногамия, но… за колко неща по-точно ще използваш MongoDB ефективно. Човек дори не може да направи добре функциониращо (и бързо) странициране с MongoDB (ако на някой му е интересно за какво точно говоря, може да прочете тук).

И доста класически design pattern-и не могат да се имплементират коректно в JavaScript поради липсата на някои неща, като например интерфейси… Ама и аз какъв съм старомоден! Че за какво са ни интерфейси?! Бухай здраво в прототипа, другия след теб – да му мисли!

Малка доза консерватизъм

Като цяло не искам да звуча като някаква интернет леля-фашист, която анатемосва копнежа на младите да експериментират с нови технологии. Харесвам новите технологии и насърчавам всеки, който не е пробвал node.js или angular.js – да го направи! Но не се заблуждавайте, че се това е средство, които ще ви оттърве от code smells.

За да избягате от ада на вмирисания код трябва да анализирате собствените си лоши навици. Прочетете книги на Чичо Боб, Martin Fowler, Kent Beck и др.

Бъдете критични към собствения си стил непрекъснато!

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


*