LINUX.ORG.RU

AngularJS и как с этим жить...

 ,


0

3

Волею судеб, дали проект, набросанный на коленке, в котором используется частично AngularJS (тот самый, который версии 1.6), но частично - ничерта не соблюдается даже его идеология и некоторые моменты написаны через задницу императивщину, а данные с сервера обновляются по таймеру. Всё это вызывает у меня дикую боль ниже пояса. И пока проект не вырос, с этим нужно что-то делать, иначе это может привести в итоге к краху. Собственно, вопрос, что делать?

Ко мне в скайп некто постучался недавно. Я забил, но сейчас вспомнил. И вот такой диалог получился. Может, конечно, это я дурак... Но я не понимаю, как с такими эйчарами работу искать.

Доброго дня. У вас всё ещё есть проекты с релокейтом?

добрый день! да

Польша и Латвия, вам где интересно?)

Я думаю, больше Польша.

Вот мне предлагают вакансию:

Есть такой проект..

Компания, ориентированная на экосистему Atlassian и agile методологию. Atlassian является их самым большим и стратегическим клиентом. Ежедневно разработчики компании участвуют во всех областях разработки (видение, проектирование, внедрение, тестирование, обслуживание) нескольких продуктов Atlassian, таких как JIRA, Bamboo, Fisheye, Crucible или Clover. Вакансия открыта Гданьске, Польша.

Требования:

Практический опыт работы с JavaScript и такими фреймворками, как React (как приоритет), Backbone.js, Angular.js, Ember.js; Хорошее знание интерфейсных технологий, таких как HTML5, CSS, LESS и templating (ручные панели, шаблоны закрытия Google и т.д.);

Опыт создания веб-приложений Ajaxified – одностраничные приложения;

Опыт работы с jQuery;

Опыт разработки таких методологий разработки программного обеспечения, как XP и Scrum;

Некоторый опыт в технологии интерфейса Java;

Высокий уровень английского. что скажете?

Вот мой ответ:

В целом интересно, но меня смущают некоторые моменты, а именно:

1. Слово AJAXified использовали больше десяти лет назад, потом оно как бы отмерло за ненадомностью; говорить ajaxified - это как сказать что-нибудь на старославянском... в описании вакансии выглядит странно;

2. Смущает, что «всё смешалось, люди, кони...». Это я про методологии разработки. Здесь вам и скрам, и экстремальное программирование, и эджайл... про канбан забыли - был бы полный винегрет, а так - будто огурчиков не хватает;

3. Вот эти слова «ручные панели», «шаблоны закрытия» - мне кажется, их не человек перевёл, а Promt. Их в принципе не нужно переводить было - смысл теряется;

4. Интерфейсы для языка/платформы Java бывают разные... их несколько и они сильно друг от друга отличаются;

5. Backbone - морально устаревшая технология, которая никак не используется совместно с Angular/Ember/React... ну просто совсем никак. Ну или вот, например, AngularJS и Angular - это два разных Фреймворка по сути. Сначала был AngularJS, он дорос до версии 1.6.6, а потом вышла версия Angular 2 (уже без суффикса JS) - и разработчик прямо указал, что это совершенно новый фреймворк и стоит использовать его, а AngularJS - не стоит. Затем вышла четвёртая версия (через третью они перепрыгнули по некоторым соображениям). Затем вышлам пятая. И вот к выходу готовится шестая. И вот я не очень понимаю, что рядом делают старые Backbone и AngularJS рядом с современными React и Ember. Кроме того, есть такие замечательные вещи, как Vue.js, например. А если уж использовать Backbone, то должно быть требование знания Marionette, потому что без него на чистом бэкбоне писать не очень здравая затея;

6. Про одностраничные приложения. Вот эти самые и React, и Ember, и даже Angular с бэкбоном - как бы предполагают, что человек одностраничники как раз и умеет в первую очередь разрабатывать;

7. Чего в вашей вакансии реально не хватает. Например, знание современного чистого (vanilla) JavaScript, он за последние годы сильно шагнул вперёд и многие разработчики реально его не знают. Если использовать Angular, нужно требование знания TypeScript. Если использовать React, нужно требование знания, например, Redux хотя бы. Не хватает умения работы с системами сборки типа gulp, grunt, webpack. Нужен babel на сервер-сайде, чтобы из es2015 перегонять в более низкую версию js для совместимости с не очень свежими браузерами. Ну и ко всему не помешает умение (нормальное) пользоваться системами контроля версий - наиболее актуальной из которых на данный момент является Git, как показывает практика большинство разработчиков не умеют даже мержить конфликты в репозиториях.

Это я бегло, по мелочам прошёлся. На самом деле, подавляющее большинство вакансий вот так выглядит. И я не знаю реально, что от неё ожидать. Кто её составлял? Если тимлид, - я боюсь под его руководством работать. Если нет - то почему он не проверил и не переписал к чертям всё, чтобы оно адекватно выглядело.

Здесь нет описания OS, под которой будет вестись разработка, нет зарплатной вилки, нет намёка на помощь в релокации, нет информации о том, какого уровня должность. Если это просто developer - то зачем ему знание английского? Разве не тимлид должен общаться с заказчиком? Или команда очень разношерстная. Ничего не понятно.

Мне, наверное, ничего не ответят. Но я думаю, что оно и к лучшему.

ShadowMaker-work
()
Ответ на: комментарий от ShadowMaker-work

Может, конечно, это я дурак...

Хуже, ты умник с конским ЧСВ. Вакансии конечно пишут дебилы, но ты мог бы просто спросить: над чем конкретно сейчас работаете. Всё, а рецензии твои никому не упали.

anonymous
()
Ответ на: комментарий от AndreyKl

Аналогия с врачем - она плохая, совсем плохая.

конкретный вопрос заданный ТСом,то будь я менеджером, я бы ни за что не согласился писать на ванилке + джейквери

Правильный вопрос, да. Логично всё переписать с нуля и на выгодной ТС технологии, попутно ее освоив.

ТС - всё равно что слушать человека без опыта. У ТС, если ты заметил, очень широкий спектр используемых технологий
всё равно что слушать человека без опыта

Вроде бы наоброт же? Так он как человек навидавшийся всяких разных фреймворков, говорит, что сделано плохо вообще, надо переделывать и ангуляр 1.х в помойку потому как не-deprecated лишь формально и у него вроде еще какие-то там аргументы есть.

Если мне опытный программист (но не знакомый ни с той ни с другой технологией) скажет, что вот этот кем-то уже начатый проект написан очень плохо, причем написан говно-1.x (которая уже всё и вообще ему невыгодна), и его бы надо переписать заново причем на моча-5.х, то он то я ему поверю.

Они взяли проект

  • оказалось написаный на, по сути, deprecated технологии
  • у них, внезапно оказалось, вообще нет в штате человека, который эту технологию хорошо знает и комфортно и с ней работает до сих пор
  • некоему работнику которому заассайнили оно ожидаемо оказалось карьерно невыгодно и вредно (надо быть дауном чтоб не понимать последствий от этого, как бы тимлид/менеджер/кто угодно не петушились и надувались)
  • выяснилось вдруг, что проект написан очень плохо
  • еще какие-то пункты были, забыл, но это не важно уже, всё утонуло
anonymous
()
Ответ на: комментарий от anonymous

Вроде бы наоброт же? Так он как человек навидавшийся всяких разных фреймворков, говорит, что сделано плохо вообщe

Нет, вот тут неверно.
1) он (условно) одинаково малограмотен во всех областях, доверять его мнению сложно уже поэтому
2) детальный опыт переносится из области в область очень плохо, а опыта работы с веб-фреймворками у ТС нет вообще

Из этого видно что тот опыт который у ТС может и есть, фреймворк выбрать ему не поможет. Вон тут недавно ден73 страдал с выбором фремворка. Дену уже 45 лет и опыт в написании программ у него есть точно. Но что Дениса отличает от ТС, так это то что Денис прямо спросил на форуме - что взять. Потому что Денис понимает, что его опыт, (т.е. все лет 20 что он работает программистом или более, понимаешь?) совершенно не поможет ему выбрать веб фреймворк. Не поможет от того что детали не переносятся, к сожалению.

Они взяли проект

Они его начали две недели назад я так понял из слов ТС, а не взяли начатым. То что он написан плохо сказал челоек который ни в зуб ногой в вопросе. Далее, новый проект я бы на ангулярджиэс не писал. но аргументы такие: а) ангулярджиэс себя показал хорошо, б) технология уже хорошо отлажена, в) все баги вычищены, г) поддержка ещё 3.5 года, затем можно сделать проект «стейбл» и писать новую версию на чём то другом. часто это проще чем развивать проект. За 3.5 года придёт куча разработчиков которые скажу что «надо заново», инфа 146%. И наступит момент когда действительно надо будет заново. Это если у проекта будет долгая жизнь. А ведь он может помереть до того как запуститься. В целом решение не выглядит глупым: технологические риски малы (баги, поддержка браузеров/стандартов). Единственный минус - разработчики могут быть немотивированы изучать ангуляр1.6, поэтому лучше искать тех кто уже умеет с ним работать.

В целом видно что денег на специалиста им жалко почему то, поэтому они взяли ТС. Но мы ведь говорим о том что делать ТС-у.

Вариант не самый плохой. Ну пусть поговорит с менеджером, может менеджер и согласится. А может и нет (потому что ещё раз повторюсь, ангуляр1 неплохо себя зарекомендовал. что взять вместо? ангуляр 5? а риски? ангуляр 4? а почему тогда выпустили 5?)

По факту я бы человека с опытом в вебе как у ТС не слушал в вопросах веба. И если мне более надёжный источник посоветовал бы 1.6, я бы вероятно согласился. Единственная причина согласиться на то что предлагает ТС - это большая лояльность ТС-а. Но тут уж менеджеру виднее, что выбрать: риски технологические или риски из-за меньшей лояльности конкретного разработчика.

Я ещё раз повторюсь, если бы у ТС-а был опыт с любым более-менее современным _веб_-фреймворком, его мнение было бы на мой взгляд решающим. Но у тс-а опыт с ванилкой и jquery. А это всё равно что нет опыта.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 4)
Ответ на: комментарий от AndreyKl

Ты делаешь слишком много допущений и предположений и о его компетентности/некомпетентности и, неявно, об организации.

Учитывая сам характер сложившейся ситуации, его (ТС) мнение компетентнее, а предложения стоят больше, чем мнения всех остальных так или иначе причастных к проекту.

может менеджер и согласится

Так пускай не соглашается и сам пишет, раз у него такой программист который всё равно "нет опыта", "нет знаний", "первого встречного с улицы".

anonymous
()
Ответ на: комментарий от anonymous

Ты делаешь слишком много допущений и предположений и о его компетентности/некомпетентности и, неявно, об организации.

Знание ванила js + jquery в вебе это не предположение. Знание о том что опыт не переносится прямо это тоже не предположение. Да, он наберёт опыт в вебе заметно быстрее новичка. Да, заметно лучше будет код в первый год чем у джуна. Да, «бекграунд» начнёт давать дополнительную интуицию. Но всё это будет после. Сейчас он _в вебе_ где-то около нуля. И это не предположение. Он не пройдёт собеседование для работы в веб-деве на ЗП заметно выше чем у него есть в текущем состоянии с вероятнстью я бы сказал 95% (правда, если не в москве, но это отдельная песня).

Где тут допущения? Тут факты и выводы из этих фактов. Ну или перечисли пожалуйста допущения.

Так пускай не соглашается и сам пишет, раз у него такой программист который всё равно «нет опыта», «нет знаний», «первого встречного с улицы».

Я не против. ТС вполне может отказаться. ТС спрашивал советы, я сказал своё мнение - лучше поднабраться опыта.

AndreyKl ★★★★★
()

У говнокода есть две ипостаси, локальный говнокод и говноархитектура. Локальный говнокод (говнокод, у которого есть вменяемый интерфейс и говно ограничено рамками функции/класса вменяемого объёма) это вообще не проблема, во-первых он не воняет, если в него не нырять, во-вторых его реально переписать, если уж пришлось нырять. Говноархитектура это хуже, её переписывание легко превращается в переписывание всего проекта. Тут надо проявлять настоящий профессионализм, чтобы что-то улучшить. Можно пытаться улучшать какие-то вещи так, чтобы не поломать всё остальное. Можно параллельно развивать вторую вменяемую архитектуру в надежде когда-нибудь перейти на неё (правда нередко бывает, что таких архитектур в проекте с каждым новым умником становится всё больше). Можно просто понять все её минусы и жить с этим фактом.

А вообще по моему опыту проект развивается до какого-то уровня, когда он уже становится неуправляем и потом переписывается. Ты на это вряд ли сможешь повлиять, на это влияет только банкротство компании или систематический срыв всех сроков.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

Хуже, ты умник с конским ЧСВ. Вакансии конечно пишут дебилы, но ты мог бы просто спросить: над чем конкретно сейчас работаете. Всё, а рецензии твои никому не упали.

Если бы каждый программер хоть раз в день указывал эйчару, а лучше - её начальнику, что она - идиотка, и не понимает, что пишет, чем по сути вредит конторе, - глядишь, пусть не всех, но хоть некоторых попёрли бы поганой метлой с их должностей и наняли адекватных людей. А так вы сидите, языки, извините, в задницы позасовывали, мол, я - не я и которова не моя... А потом каждая первая вакансия - выглядит как ментальная отрыжка душевнобольного человека.

ShadowMaker-work
()
Ответ на: комментарий от ShadowMaker-work

Не знаю, как за бугром, у нас вообще в стране просто есть огроменная проблема, помимо всех остальных огроменных проблем, разумеется, и заключается она в том, что толпы людей занимают места, работать на которых они не способны в виду каких-то своих недостатков: часто - это недостатки умственные, часто - моральные, это приносит ущерб и конторе, на которую данные человек работает, и обществу в целом. У меня набралось очень много опыта общения в различных областях, отличных от IT, с людьми, которым самое то - дворы мести, но по блату они сидят и занимаются откровенным вредительством, и кроме того, рубят бабло, пока, возможно, талантливые парни и девушки убиваются за копейки, крича «свободная касса». Я не хотел бы говорить об этом здесь и сейчас, ибо я и так слишком много говорю, и из-за этого имею через чур много врагов. Для всего найдётся и время и место. А сейчас же я призываю обоснованно указывать идиотам, дегенератам и просто мудакам на то, кто они есть, ну и просвещать окружающих на данную тематику... если вам, конечно, не в кайф жить среди мудаков.

ShadowMaker-work
()
Ответ на: комментарий от anonymous

Хуже, ты умник с конским ЧСВ. Вакансии конечно пишут дебилы, но ты мог бы просто спросить: над чем конкретно сейчас работаете. Всё, а рецензии твои никому не упали.

А мне, между прочим, ответили сегодня. Если кратко, эйчар сказала, что у меня очень много технических вопросов и предложила сконтачить с технарём, чтобы я с ним перетёр всё это. Толи меня пытаются любыми средствами вытащить за бугор, чтобы продать на органы, толи ещё остались адекватные эйчары.

ShadowMaker-work
()
Ответ на: комментарий от ShadowMaker-work

Ребят, мою страницу посетило несколько сотен человек. И всем насрать. Ну как так то? Если бы каждый по десять рублей скинул, на нём бы это нём бы это не сказалось, а меня бы очень подлечило.

ShadowMaker-work
()

Пиши новое как надо и в сроки закладывай рефакторинг существующего. Условно - вместо множителя 3 на срок, ставь 5.

Чо как маленький?

А, это эта хурма. Тебе бесполезно.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от ShadowMaker-work

Знаете, у меня бывает, накатывает, сделать что-то полезное для СПО. Выложить сорцы проектов, может кто полезного чего-то почерпнёт, контролы готовые, написать какую-то утилиту, или выложить в опенсорс те, которыми лично я пользуюсь. Но приходят вот такие уроды и отбивают всё желание. Будто я попросил чего-то такого запредельного, будто говном товарища облил,... так нет же... Хотя, может человек, сам жизнью обиженный, чёрт знает, - тогда и зла на него держать не за что особо, но неприятный осадок остаётся, а прекрасные порывы загнивают на корню.

ShadowMaker-work
()
Ответ на: комментарий от anonymous

Ну как там с работой, Михаил?

Ты свою рожу прячешь, я не могу тебе язвительно ответить, - потому что не знаю, кто ты. Так бы мог сказать (в зависимости от того, кто ты из моих, к сожалению, знакомых, которые бы меня по имени на форумах называли):

- Ну как там с сексом? В свои почти 30 с девственностью расстался?

- Ну как там пилится госбюджет? С это работы ещё не попёрли? Козла отпущения, на кого всё повесишь, уже нашёл?

- Как там твой движок? Пишется? Может хоть одну игру запилишь на нём?

- Ты всё ещё хранишь запрещённые фотки на телефоне или стал более внимательным?

- ... Давай, деанонимизируйся.

ShadowMaker-work
()
Ответ на: комментарий от ShadowMaker-work

Ну вот и жопонька настала. Race condition на таймерах (которые вообще непонятно, начерта в проекте) и ивентах. Пока я валидировал данные регулярками на клиенте, а серверная валидация была в виде заглушки, всегда возвращающей Okay - всё работало. Как только сделали серверную валидацию - события на клиенте пошли в другом порядке и всё к чертям посыпалось.

Встречается безумие такого рода и хуже: https://storage.russiancoders.tech/h1RyEWWc6aJ67t2h1ulH/2MeZ6ooLB1ZZGFhv3LuS.jpg

ShadowMaker-work
()
15 июня 2018 г.
Ответ на: комментарий от ShadowMaker-work

Ну как там? Все нормально?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.