Работа веб программистом – стек технологий


5 1

Этот вопрос задавали на youtube раза три (возможно даже один и тот же человек, я это не отслеживаю) и когда я начал писать заметку, то понял, мне нечего рассказать. Я стал чаще писать сначала заметку, а потом записываю видео. Пока пишу заметку, я как бы прикидываю, о чем я буду говорить в видео. В итоге текстовая и youtube версии получаются очень похожими. 

После клика я попал в компанию, которая делает что-то похожее на 1C кадры для рынка США и Канады. Это одностраничное приложение, в котором очень много сделано на стороне клиента, поэтому здесь очень даже серьезный упор на JavaScript. 

Чтобы реализовать одностраничное приложение когда-то было принято решение использовать фреймворк Dojo Toolkit. Изначально я его не очень воспринял, но потом как-то втянулся и мне понравилось, как все реализовано. По идеологии Dojo очень похож на Angular 2, что очень даже эффективно при создании одностраничных приложений. 

Мы очень много пишем JS компонентов и UI разработка занимает достаточно большую часть моего рабочего дня. На backend стоит SQL Server и .NET и коммуникация между UI и задним планом происходит как у REST сервисах. Это не совсем сервисы, я бы даже сказал совсем не сервисы, но все же общение между двумя слоями идет с помощью передачи JSON пакетов. И это наверно единственное с точки зрения архитектуры, что мне нравится. 

Отделение представления от backend таким способом, что они общаются через простой JSON формат реально отделяет представление от контроллеров и тем более логики. Если использовать представления Razor, то ваши представления будут слишком жестко привязаны к контроллерам и перейти на что-то другое будет практически невозможно. В нашем случае все независимо и перейти на что-то типа микросервисы будет достаточно просто.  Достаточно просто перенаправить запрос в JS на endpoint микросервисы и больше никаких изменений в JS коде делать не нужно. И этот сервис может работать даже на Java, главное, чтобы он возвращал нам JSON. 

Я уже на блоге как-то писал, что интегрировать C# код в представления в любом его виде не желательно. Это нормально для небольшого приложения, но, если это серьезный проект, общение контроллера с UI должно быть совершенно не связанным. 

Ну ладно, Razor использовать еще можно даже в средних проектах, потому что он реально удобный, но в представлениях не должно быть никаких хелперов типа Html.Form() даже в самых маленьких проектах, никаких плюшек, которые предоставляет задний план, иначе зависимость представления сильно растет и перевести backend на java без полного переписывания заднего плана будет невозможно. 

У нас крупный проект, над которым работают сотни программистов и в нашем случае было правильное решение полностью отделить UI и сделать его максимально независимым. 

В остальном, мне реально нечего сказать про мою нынешнюю работу. Это самая скучная позиция, которая у меня когда-либо была. Я прихожу каждый день на работу и просто пишу совершенно скучный код получения данных из базы с минимальной бизнес логикой на backend. Я так же пишу много JS, HTML и CSS для UI. 

Я очень любил работу в Klick Health, когда я работал на Sony. Да, были бессонные ночи, не очень высокая оплата труда, но были интересные проекты, я мог сам решать, как и что реализовывать, я выбирал технологии и процессы. У меня были реально сложные задачи, много серьезной оптимизации и т.д. 

В моей нынешней компании день более спокойный, работа более предсказуема и процессы уже давно сформированы и если меняются, то не сильно. И это наверно проблема любой большой компании. То же самое и в Apple или Microsoft и в этом тоже есть свой плюс – спокойная и предсказуемая работа. Она мне нравится, но все же когда меня спрашивают – а чем ты гордишься, что ты такого крутого делаешь – мне совершенно нечего сказать. 

Что еще можно сказать о технологиях. Недавно мы перешли на git. До этого долго использовали TFS, в котором все пишут в одном брэнче SharpTop, а если нужно смерджить что-то в другое место, то это занимало очень много времени и происходило слишком медленно. Не знаю, это проблема TFS или того, как все было сделано в компании. Неужели и в Microsoft все пишут так же в одном большом брэнче? Я этого не понимаю и не приветствую, хотя в Макрософт кажется уже перешли на git, поэтому тут больше вопрос должен звучать – неужели они писали все в одном брэнче?

Я не понимаю, как так можно писать все одну кучу и потом тестировать. Сейчас мы перешли на git, но процесс не изменился, теперь просто пишут не в sharptop, а master, но делают это все и сначала код попадает в туда, а только потом его тестирует qa. 

Блин, ну это наверно тема отдельного разговора, как работают люди с git. Но это опять же мне не нравится. В нашей команде мы пытаемся изменить это и возможно будет разрабатывать все в отдельных бренчах, тестировать, и только по завершению всей работы переносить код в основной брэнч. 

Что мне дала новая работа – более высокая зарплата за спокойную и предсказуемую работу. Возможность научится в реальном приложении (а не на тестовых примерах) писать одностраничное приложение - не понравилось. Я считаю, что одностраничные приложения прекрасно подходят для таких вещей, как текстовый редактор, электронные страницы и т.д., но не для того приложения, которое создаем мы на работе. Познакомился с Dojo (неплохо). Познакомился с TFS - не понравилось и судя по всему все уже переходят на git. 

В общем, мне особо нечего рассказать про нынешнюю работу. Я смог рассказать про стек, но я понял, что видео на эту тему писать смысла нет и пока не буду, потому что оно получится слишком скучным и ограничимся только статьей на блоге. 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку уже лайкнули 1 человек


Комментарии

Максим

24 Января 2019

Привет, Михаил у меня ваша книга Библия C# 2-е издание покупал, вот в инете нашел Библия C# 3-е издание что бы посмотреть, про WPF там не чего нету, там только WinForm


Михаил Фленов

24 Января 2019

Новое издание, которое выходит уже кажется четвертое. Оно кажется даже еще не вышло.


Максим

25 Января 2019

Михаил вчера в видео вы говорили про Java в банковском секторе что им платят много и работы много, вот интересно стало почему им так много платят ? чем они там занимаются в банке ?  


Михаил Фленов

25 Января 2019

Банки - это финансы, там ответственности больше. Там опыт и знания нужны выше. Я же сам работал как бы в банке, когда работал на Sony, потому что мы ,были банком поинтов. Это реально нагрузка. Каждый запуск сидишь и боишься, что где-то есть ошибка и компания потеряет деньги. Меня как-то пока больше в банковскую сферу не тянет.


Алексей

29 Января 2019

Михаил, доброго дня.
В Java бэкенд разработчику нужно знать сам язык, технологии работы с БД и фреймворк для разработки. Получаем Java Core, JDBC (по старинке), Hibernate, Spring(какие-то части, слишком он большой). Какие аналогии в данном примере будут на .NET? C#, ADO.NET/Linq, ASP.NET Core?


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

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне