Front-end глазами back-end разработчика

от автора

Немного (надеюсь) о себе

Всем привет! После учебы попал на ферросплавный завод в 2005 году, сначала «киповцем» в цех КИПиА, а позже меня перевели в службу АСУТП. Там относительная свобода в сравнении с цехом АСУП, потому что у них там были разные корпоративные стандарты безопасности, Active Directory и другие ограничения на разработку. В нашем же цехе, хоть и была проблема с Интернет, все сервера были на тот момент ограничены внутренней сетью, но на тот момент дома почти у всех был ADSL и дома можно было искать информацию, а потом на работе ее использовать.

В итоге практика написания скриптов на VBScriptSCADA Cimplicity был на тот момент только этот язык для написания сценариев, как и во многих других пакетах), с использованием Win32API, проект на Delphi с использованием Mutex и Semaphore, первый проект и вроде даже не один на Visual C++ MFC, поддержка и отладка проектов на Borland C++ и С++ Builder, с нуля созданный портал на PHP (спасибо коллеге Антону — это была его идея, чтобы не дописывать проект на умирающем уже на тот момент Delphi, хотя он вроде функционирует до сих пор), ну и самое главное, что появился опыт работы с MS SQL (почему-то нам его даже в университете не преподавали).

На следующем месте работы было более глубокое погружение в MS SQL, так как вся бизнес-логика была реализована на нём, и знакомство с Visual C# и .NET Framework, так как на нем был клиент написан на WinForms. Так же не первый опыт работы с OPC.

Но проект заканчивался, а новых пока там не планировалось, поэтому в следующей организации было знакомство с ASP.NET WebForms и, помимо MS SQL, уже и с Oracle DB. Всё было на примитивном уровне, опять сбор данных, хранение, отображение. Там было реализовано своеобразное хранение и отображение данных по сменам рабочих с помощью рекурсий на T-SQL.

В следующем проекте мне пришлось познакомиться со стеком Oracle посредством продуктов Oracle BI и сопутствующих ему продуктов, таких как Publisher, APEX, PL/SQL, JAVA и прочего.

Но Oracle BI мне быстро надоел, и я решил заняться чем-то другим. Сначала попрограммировал PLC, немного кода .NET, попробовал .NET Core, Signal R, но так и не удалось найти место, где заниматься надо только одним, может это и к лучшему.

Постановка задачи

Помимо, всего вышеперечисленного, кроме PLC занимаюсь до сих пор, но возникают внезапные задачи. На тот момент стек был такой: backendYii и Node.js; frontend — десктопный клиент на WPF, мобильный клиент на Flutter и веб-клиент на непонятно чем без исходников.

Веб-клиенту надо было расширять функционал, который появлялся в других клиентах и на сервере, но без исходников это проблематично. Немного посовещались с руководством и определились, что писать надо заново, так как нашел на чем написано и оказалось, что это ангуляроподобный китайский фреймворк, причём все описание его было тоже на китайском, чтобы его понять, тем более опыт фронтенда у меня был либо на PHP, либо на ASP.NET, но в этом варианте многое на сервере надо было переделывать, так как все висело на разных портах и на Linux. Какой-то функционал уже был, что-то подобное надо было реализовать на подобных технологиях, тем более как раз хотелось попробовать хотя бы поработать с чем-то новым на frontend.

Начал изучать существующие библиотеки и фреймворки. Так как был он ангуляроподобный, то первое, что начал смотреть — это Angular.

/Сразу понравился, но очень много проблем из его преимуществ.

  • Очень много подробной документации. Как я понял такое было не всегда, но конкуренция сделала свое дело. Но соразмерно и увеличивается время на изучение документации.

  • Хорошо структурированный. Как я понимаю, может меня поправят, но все таки, если есть хорошая структура, то что-то сделать неправильно очень сложно, что мне как больше предпочитающему строгую типизацию очень даже близко. Но когда не знаешь как к нему подступиться, то это очень сложно сделать «снаскоку».

  • Очень много обучающего видео и туториалов в сети, но требуется базовое понимание разработки на нём.

Изначально писать хотел именно на нём, но очень оттолкнула сложность и время, ну и на тот момент, как и сейчас нет хорошего материала изучения его «с нуля», поэтому его отложил и приступил к следющему знакомому мне и распространенному React.

За него почему-то не хотелось браться не смотря на все его плюсы.

  • Есть готовый пример на сайте с крестиками-ноликами, но после неё нет понимания, что кроме копи-паста ты что-то сделал.

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

  • Очень гибкий, один и тот же функционал можно сделать разными способами… Что в свою очередь, как по мне, ведет ко множеству ошибок и неоднозначности, что вообще свойственно JS, об этом очень много написано на Хабре и не только.

Вроде всё есть, а как к нему подступиться так и не понимал. Но во время поиска информации по вышеперечисленным наткнулся на Vue.js.

Так как о нём ничего не слышал — решил просто посмотреть про него и сразу наткнулся на:

  • Хорошую документацию. Но это как и у всех, но структура и язык описания оказались более удобочитаемыми. К чему стоит добавить, что была документация в том числе и на русском языке.

  • Наткнулся на очень много видео на изучение именно «с нуля», что говорило не о его популярности, а как раз о наборе популярности и популяризации.

  • Очень низкий порог вхождения. Что обусловлено хорошей документацией и популяризацией.

Понравился тем, что как раз был рассчитан на небольшие проекты и прост для изучения даже с элементарными знаниями HTML/CSS/JS, тем более по времени был ограничен.

Выводы

Думаю, что мой выбор уже очевиден, но нисколько не умиляю преимущество других библиотек/фреймворков, как перечисленных здесь, так и не перечисленных, каждому свое, тем более, что после приобретения опыта Vue.js перейти на что-то другое не будет проблематично, тем более сейчас мне надо раширить функционал для проекта на knockout.js, и несмотря на то, что с ним никогда не работал, но думаю, что уже могу разобраться. Кроме того, мне сейчас приходиться работать с проектом на React. Просто именно в моем личном опыте сыграл важную роль именно Vue.js.

P.S. Тут поступало предложение всё сделать с примерами и замерами, но тут до этого далеко мне было, но по поводу такой статьи я задумался. Как будет время что-нибудь придумаю.


ссылка на оригинал статьи https://habr.com/ru/articles/854150/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *