Python conf in Kharkiv, Nov 16 with Intel, Elastic engineering leaders. Prices go up 21.10

Вопрос от джуна по Angular

Доброго времени суток, на связи июнь веб-разработчик(стаж почти полгода), на работе пишу на AngularJS и Yii, одна из обязанностей это перенос серверной части в виде шаблонизатора на клиентскую часть.

Вопрос:
стоит ли писать проект «для себя» с нуля, кроме работы, средней сложности, по времени который займет 1-2 месяца, что бы понять всю суть разработки с нуля на AngularJS, или забить на это дело, и посмотреть в сторону React, Vue сразу с нацелом на будущее? Если менять работу, и меня попросят показать свой код, а у меня ничего нет, так как я работал только над продуктом компании (не аутсорс), как быть?

Сам проект рано или поздно перейдет на другой фреймворк, но это не сейчас, а с ангуляром тесно придется работать еще полгода точно.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

В коментах — очередное обсирание Angular (2+), чуваками, которые ничего о нем не знают (лет 5 назад делали что-то на AngularJS 1 и думают, что все так и осталось).
Автору — с VUE работу найти сложно, Angular сложнее, чем React (речь о нормальном уровне, а не hello world на localhost).

меня попросят показать свой код, а у меня ничего нет

Никакому работодателю твой код не впался (я лично с подобным вопросом сталкивался всего один раз во времена моего фриланса, заказчик спросил пример моего кода, я кинул кусок в 40 строк, он походу ничерта в нем не понял но заапрувил).
AngularJS я бы не брал, лучше возьми Angular 2-4 и на нем запили собственный проект, вот это пригодится в будущем, еси не сам проект, то знания приобретенные во время его разработки.
А еще лучше, прикинь для себя не сильно хитрый проект, и запили его сначала на Vue, потом на Angular 4 и потом все тоже но на React’e. Заодно сам для себя пощупаешь на практике как что работает, и что тебе больше нравится. А там уже и определишься с тем что тебе по душе и что учить дальше в глубь и в ширь

Поддержу комментарии по поводу первого Angular, это уже legacy продукт и соответственно все что с ним связано будет такой же legacy с кучей старый либ которые уже как года 3 никто не поддерживает. Отсюда вырисовывается не очень радужная перспектива работы на таких проектах. Берите сразу последний Angular. Он намного проще React из за того что это фреймворк, и вам не нужно знать кучу сторонних библиотек и их API как уже было сказано в комментариях ранее, учить Vue тоже не советую, потому как вакансии рассчитаных на джунов ничтожно мало, и годных проектов тоже в наших реалиях практически днём с огнём не сыщешь. Ну и конечно нужно учить обычный JS, быть в курсе ES6/7/8 и базовых вещей: Замыкания, ЛекОкружение, Всплытие, Область видимости , Функции высшего порядка, разница Декларативных функций и Функциональных, this в разных контекстах и т.д

Я еще могу понять, когда Angular и AngularJS путают рекрутерши, но веб-разработчику со стажем почти полгода лучше так не делать :).

По теме: учить можно любой фреймворк, который вам больше нравится — работа на каждом из них будет. Ангуляр 2+ перспективнее AngularJS, но и на первой версии написано много проектов, которые нужно будет поддерживать еще не один год.

На нг1 точно забей. Это устаревшая технология, бесперспективная с точки зрения интересной работы.

свой проект лучше писать на 5й версии и учить собственно ее
и второй важный пункт — не попросят у тебя свой код — он никому не сдался — свой проект надо писать для себя и для собственного развития — и показать можно свой проект в браузере а не код

React, а особливо Vue, не факт що будуть «майбутнім», на яке слід орієнтуватись. Судячи із тих порівнянь «React vs. Angular», що я встиг прочитати, то на скільки React простіший за Angular, на стільки ж він і менш функціональний.

React це щось середнє між старим-добрим jQuery і Angular v2+. На ньому так само просто створювати щось легеньке... як і на jQuery свого часу. Але для проектів середнього й великого розміру вже треба тягнути цілий зоопарк сторонніх модулів, причому самому вирішувати що, де й коли прикрутити, бо React це таки не фреймворк.

Щоправда й Angular також тягне цілий зоопарк сторонніх модулів, але на відміну від React, він сам упорядковує цей зоопарк, і видає користувачу API фреймворка Angular, а не API розрізнених сторонніх модулів, що є дуже важливим моментом для розробників.

Стосовно AngularJS, тобто першої версії Angular, то я б точно не радив новачку витрачати час на явно застарілу версію. Тут я згоден — AngularJS не є майбутнім, на яке слід орієнтуватись.

зоопарк сторонніх модулів

імхо — це axios, react-bootstrap, react-router, react-redux i react-saga. Увесь інший «зоопарк» набігає зі сторонніми компонентами, які так само буде потрібно прикручувати до анґуляру, але там через аґуляровий компонент-контроллер-сервіс не перестрибнеш. В реакті шо хочеш, те й роби зі здоровим глуздом (шо виключає йунов зі списку розробників ))) ). Десь після п’ятого модулю в додатку починаєтсья ентерпрайз копіпаста зі зміненням назов.

але там через аґуляровий компонент-контроллер-сервіс не перестрибнеш

З якою метою перестрибувати? Для чого саме ця архітектура не є гнучкою?

Передовсім тим, що дані чітко зв’язані з командами. Захотілося щось отримати — відправляй команду та приймай її результат. Це анахронізм реалтайм підрахунків. Вулиця з однією смугою, якою рухаються в двох напрямках. Причому, сама веб строрінка цього не потребує. Значно частіше виникають ситуації, коли _багато_ елементів очікують на якусь подію. І це робиться в реакт/редаксі легко та невимушено. Можна на будь-якому етапі прикручувати казна-що, але результат дійде за призначенням в очікуваному місці. А от якраз в анґулярі доводиться при цьому влаштовувати зоопарк. А з-за того, шо «можна все, що не заборонено», непередбачувані ситуації виникають постійно.
Я з ним розпрощався десь рік тому. Відтоді віра в людство тільки збільшилася. Може вони поступлво наближаються до ідей реакту, але я про це ще ніде не прочитав.

Передовсім тим, що дані чітко зв’язані з командами. Захотілося щось отримати — відправляй команду та приймай її результат. Це анахронізм реалтайм підрахунків. Вулиця з однією смугою, якою рухаються в двох напрямках. Причому, сама веб строрінка цього не потребує. Значно частіше виникають ситуації, коли _багато_ елементів очікують на якусь подію. І це робиться в реакт/редаксі легко та невимушено.

Ви явно не заглядали в Angular v2+, бо в новій версії, по-перше, можна розділяти обробники подій окремо від присвоєння певного значення для властивості елемента:

<input [ngModel]="myInput" (ngModelChange)="myInput = $event">

Тут в квадратних дужках йде прив’язка змінної myInput до input-значення, що йде з компонента до HTML-шаблону. В круглих дужках йде прив’язка до output-події, що йде з HTML-шаблону до компонента.

По-друге, з таким синтаксисом, тобто використовуючи круглі й квадратні дужки, ви можете легко використовувати однонапрямлену прив’язку, а також будь-яку подію, що може бути або нативною JavaScript-подією для певного елемента, або кастомною подією, що ви самі створили:

<input [disabled]="isDisabled" (someEvent)="callSomeMethod()">

По-третє, в Angular v2+ використовується RxJS by default як для HTTP-запитів, так і для прив’язки до вищезгаданих output-подій. Тобто ви можете робити підписку для багатьох елементів, що очікують певної події.

Про ці дужечки я знаю -) Можна, звичайно, за допомогою кувалди та щоденних код ревью щось з анґуларом зробити корисне. Але то буде важко читати та дебажити. Якщо правильні речі вимагають зусиль та погіршення читабельності, їх поступово перестануть робити.
Можна взагалі кожен компонент анґулара зробити з реактового та прикрутити редакс ))

ngrx-store вам в помощь и не пишите глупости просто потому что чего то не знаете

В Angular желательно неплохо знать RxJS

И желательно писать на ТС.

Если работаешь на AngularJS, но хочешь смотришь в сторону React, Redux и тд, как работодатели смотрят на то, что бы взять на проект такого человека, у которого за спиной будет какой нибудь pet-project на React + вся его новомодная экосистема

Нормально смотрят. Я бы даже сказал, с заинтересованностью.

Подписаться на комментарии