пятница, 20 января 2017 г.

Первый пост, пост про боль!

Недавно я заценил angular 2 (меня заставили...). На самом деле в одном серьезном проекте решили попробовать. Ну так вот, FFffuucck! Через боль, но я разобрался и легче от этого не стало. Давайте по порядку, ну т.е. вообще про боль фронта я расскажу.

В то время, когда я только начинал верстать у нас был prototype.js, а jQuery был в стадии бета или типа того, короче сырой и тормозил. Мы вообще старались пользоваться JS-ом только в крайнем случае. Требования росли с каждым годом, хотели чтобы все работало без перезагрузок страницы, поэтому часто нужно было упаковывать все в скрытые блоки и по клику или каким-то ивентам их показывать, позже начали активно юзать ajax.

Вот с этого момента начался активный треш и угар. Аякса-хуякса стало так много, что мы стали забивать реализовывать вывод данных в шаблонах бекенда (впадлу). Поэтому мы намазывали jQuery + Ajax везде где только можно и выводили то, что получали с бека на фронте. Так чем же это кончилось? Говном!

Потому что намазывать структуру с помощью говнокодерских скриптов как раньше, теперь стало тяжело. Разработчики начали придумывать способы того, как собрать код так, чтобы его можно было легко поддерживать и расширять и блаблаблабла фронтендеры узнали о том, что такое паттерны проектирования, потом еще блаблаблабла и у нас появились фреймворки, которые Реально помогли писать код быстрее и не отвлекаться на всякую ерунду. Вот одни из этих фреймворков: backbone, потом knockout и angularjs и это было просто оху*ть как круто! Боль прошла, мы вообще больше не переживали на счет того, что нужно разобрать кучу инпутов на переменные забирать их из верстки и отправять на backend (и наоборот). А так же фреймворк диктовал нам правила игры и мы перестали спорить по поводу того, где и в каком исходнике, какой кусок кода писать.

Все четка, все крутатэ! Но (как же блять без НО) тормозит, а тормозило все потому что нельзя все обмазать фреймворком даже там, где это не нужно и жаловаться на это. Те кто очень не хотели вникать в angularjs (1 версии) просто засирали его тем, что он дико тормозит и что vanilajs лучше всех. Типа того что лопата лучше, чем трактор. Поэтому angular2 учел все пожелания хейтеров (почему блять хейторов, а не тех кто реально любил angular 1, не знаю...) и сделал так что теперь там нет тех самых удобных плюшек (которые тормозили), а сказал - вот есть отличная сторонняя либа, которая работает быстрее нашей из первой версии ангуляра. Сука, только она не удобная! Она не такая. Чтобы ее использовать нужно написать в 4 раза больше кода чем раньше. Выглядит это совсем не красиво, приходится искать свой способ реализации, чтобы было удобно и красиво (я не нашел такой способ до сих пор). Так же в angular2 используется новомодный webpack для сборки по умолчанию и TypeScript, чтобы придать важности, когда ты пишешь код для сраной кнопки, которая показывает popup. TypeScript строготипизированный он подходит для тех проектов, когда важно быть в курсе типов всех объектов и их ключей(или просто захерачить тип :any, когда нет совести), но далеко не каждый проект нуждается в строгой типизации на клиенте.

Что я думаю про angular 2 в данный момент - это мешок с болью. В этом мешке у меня есть такие боли как: typescript, webpack, rxjs.

Я хочу верить, что ошибаюсь на счет angular2 и скоро я изменю свое мнение. Почти такая же боль была и с 1 версией, только в 1 версии она прошла за 1-й месяц, а тут до сих пор боль и самая забавное, что боль не от того, что фичи не получается делать, все что нужно проекту реализуется даже оптимизируется и рефакторится. Проблема в удобстве и скорости написания кода. Всегда считал, что фреймворк и либа(библиотека) нужна чтобы ускорить рабочий процесс и упростить написание кода. В данный момент у меня ощущение, что я заново учусь программировать.

Если вы думаете перейти на него сейчас 04 декабря 2016, не стоит. Подождите еще, пусть пройдут конференции с best practice по 2-ке, они еще 100500 раз все изменят. Не стоит выступать в качестве тестировщика на коммерческом проекте! Что используем мы во Froncubator в данный момент - AngularJS 1 (когда хотим правил игры и удобства), VueJS - когда нужно быстро запилить компонентов! Йо!

P.S. Сейчас 18/12/2016 они решили не релизить 3-ю версию (только вторая же вышла), а сразу хуйнуть 4-ку, в марте angularjs.blogspot.ru

froncubator.com курсы для frontend разработчиков
https://vk.com/froncubator наша группа в vk

4 комментария:

  1. Фил, что скажешь насчет vue? Есть ли будущее у этой либы или стоит учить ангуляр 2 или реакт?)

    ОтветитьУдалить
    Ответы
    1. Привет! Да, но я бы не стал сильно углубляться в любые новые фреймворки.
      VueJS отличный, решает определенную задачу - веб-компоненты, получается делать быстро и просто.
      Подходит для небольших проектов или для проектов, где есть тот кто продумывает структуру приложения, чтобы потом не потеряться. React как и Angular диктуют правила игры, что круто, когда команда большая, потому что бывает сложно уговорить команду писать все именно "так" и именно "здесь".
      Если ищете работу, то я видел много вакансий на все 3 фреймворка/библиотеки. Я советую поверхностно пройтись по ним всем. Я считаю, что в основном все это вкусовщина. У нас постоянно возникают споры на работе не счет того кто же круче)). Есть проекты и на angular 1, angular 2, react и ведется разработка на vue.

      Удалить
    2. А вот angular 2 я думаю не стоит учить, хотя бы потому что уже в марте обещают 4-ю версию) я думаю будет много базовых изменений, ну и вообще не понятно как это все схавается публикой.

      А вообще я пишу на angular 2 в одном проекте до сих пор (в этом же что в посте). Нуууу таааак... ну не знаю... ни один из своих проектов или тех что начинал недавно не захотелось делать на angular2. Больше тянет на vue из-за простого подключения и начала работы, все как в jQuery, который в свое время всех удивил и порадовал

      Удалить
    3. Хорошо, большое спасибо!)

      Удалить