Перейти к содержимому

Зачем net разработчику знать javascript

  • автор:

Зачем net разработчику знать javascript

Не думал, что напишу это, но JavaScript победил. Мы перестали использовать Razor для создания веб-приложений. Вместо этого реализуем front-end в отдельном проекте на JavaScript-фреймворках. От ASP.NET остался только WebAPI и «движок», на котором мы пишем бизнес-логику и API для пользовательского интерфейса.

Вселенная JavaScript и CSS

Последнее время мы наблюдаем взрывное развитие веб-технологий. Появились полноценные IDE для работы с HTML/CSS/JavaScript, проекты типа Grunt и сотни JavaScript-фреймворков. Инфраструктура для создания front-end’а стала взрослой.

Давайте посмотрим на статистику Github. Я нашел два источника статистики по языкам программирования, в обоих JavaScript стоит на первом месте.

В статье Language Trends on GitHub посчитали с помощью Linguist, что JavaScript на первом месте на GitHub по популярности, среди языков программирования:

GitHut показывает аналогичную ситуацию:

Теперь я понимаю откуда каждую неделю появляются новые JavaScript-фреймворки. Могу себе представить трудозатраты сообщества JavaScript-программистов, которые поставили JavaScript на первое место на github.

Миф о кроссфункциональности

Мы отказываемся верить во всемогущих full-stack web-разработчиков. Full-stack означает, что программист разбирается и в .NET, и в JavaScript/CSS.

Что значит разбираться в этих двух мирах? Это значит знать тонкости работы с браузерами, знать и практиковаться с новыми JavaScript-фреймворками, и одновременно с этим знать о новых фишках в C#, изменениях в платформе .NET, следить за новыми версиями ASP.NET MVC и новым базами данных. Такого всезнающего full-stack web-разработчика я последний раз видел. никогда. Охватить и стать экспертом в этих двух областях не под силу смертному. Я не говорю о людях с железным стержнем и безграничным запасом свободного времени, речь об обычных людях типа меня.

Если вы спросите меня, знаю ли я JavaScript и CSS? Я отвечу, что знаю. Но знаю ли я эти технологии достаточно, чтобы создать качественное решение на front-end? Нет, моих знаний недостаточно, я знаю эти технологии поверхностно по сравнению, например, с front-end разработчиками нашей компании.

Я пришел к выводу, что сложный проект не создать силами full-stack разработчиков . Если речь о сложном UI и сложном back-end, то специализация необходима. Доверять full-stack разработчикам проекты сложнее, чем натягивание дизайна на CMS, настройки интерфейса в SharePoint или кастомизации Bootstrap — губительно для проекта.

История из соседней компании. Lead .NET разработчик усмотрел проблемы на front-end. Он решил, что у UI-проекта неправильная архитектура и технический долг, поэтому он пошел наводить там порядок. В итоге стало еще хуже, чем было, потому что JavaScript-приложение он создавать не умел.

Я думаю похожая ситуация могла бы произойти, если бы JavaScript-разработчик полез в C#. Разница в том, что .NET разработчики считают, что смогут корректно поправить JavaScript/CSS, а front-end разработчики знают, что им в C# лучше не залезать и они не лезут.

Схема взаимодействия

На старте работы мы делаем два проекта. Первый проект традиционный — ASP.NET Web API приложение в Visual Studio, второй проект в Webstorm. Оба проекта лежат в одном репозитории, хотя это не обязательно.

Front-end разработчики согласуют с back-end разработчиками API, через которое происходит взаимодействие двух приложений.

Процесс работы

Мы создаем проектные команды, поэтому разработчики, QA и другие члены команды входят в состав единой команды проекта. В том числе front-end и back-end разработчики входят в эту команду. Единая команда работает с Impact Mapping, Customer Journey Mapping, User Story Mapping, которые появляются во время процесса создания ПО:

Видно, что с точки зрения процесса создания ПО, мы никак не разделяем front-end и back-end части. Это осознанный шаг, который помогает делать поставку бизнес-ценности.

Плюсы и минусы

В разделении front-end и back-end на два проекта я нахожу и плюсы и минусы:

  • Плюсы
    1. Front-end и back-end проекты слабо связаны. Становится возможно развиваться эти проекты параллельно или отдельно друг от друга.
    2. У вас случалось, что кроме веб-интерфейса, вас просят создать API к Android-приложению? У нас заказчики просили об этом и не раз. Если вы изначально создаете API, документируете API, то подключение новых клиентов к нему не составляет труда.
    3. Выкладка front-end и back-end частей теперь может происходить независимо. Вам не придется перезаливать монолитное ASP.NET MVC приложение из-за изменений в JavaScript/CSS или разметки.
    4. Чем сложнее проект, тем сложнее управлять монолитным ASP.NET MVC приложением. Если разнести единое приложение на два проекта, как показано в статье, то развивать два небольших проекта проще.
    5. В монолитном ASP.NET MVC приложение цена ошибки это весь проект. В раздельных проектах цена ошибки это части системы.
  • Минусы
    1. Нужны сильные front-end разработчики, которые могут и не понадобится, если full-stack разработчики создают back и front.
    2. Следствие из предыдущего пункта — нужно больше людей в проект.
    3. Инфраструктура сложнее, усложняется процесс сборки релиза.
    4. Дополнительно время тратиться на согласование API между двумя проектами.
    5. Изменения в бизнес-логике часто затрагивают оба проекта.

Выбор подхода

Мы выбираем ASP.NET MVC приложение и рендер HTML через Razor, если используем CMS или пишем небольшой проект без сложной бизнес-логики. Например, так сделан сайт компании ByndyuSoft. Мы выбираем front-end в виде JavaScript-приложения во всех остальных случаях.

Зачем .Net разработчику нужны отличные знания JavaScript?

Не так давно решил изучить C#/.Net и пойти в веб бэкенд разработку. Посмотрел вакансии по .Net разработке на HH, в большинстве случаев необходимо отличное знание фронт стека (HTML, CSS, JS (React/Angular/Vue)). Ещё попросил HR-а компании, в которой работал, скинуть список вопросов на Junior .Net разработчика. Половина вопросов связаны с фронт стеком, в особенности вопросы по JS, ощущение такое, что все веб разработчики на .Net в основном фуллстеки. Есть ли вообще позиции чистого бэкенд разработчика на .Net-е? Или каждой компании требуется фуллстек .Net разработчик за цену фронт или бэк разработчика отдельно с целью экономии бюджета?

  • Вопрос задан более двух лет назад
  • 969 просмотров

3 комментария

Средний 3 комментария

AndromedaStar @AndromedaStar

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

SamMorgan @SamMorgan Автор вопроса
AndromedaStar @AndromedaStar

SamMorgan, ну там совсем базовые вопросы по JS. Но конечно упоминание ext.js меня поразило. Я когда на первую работу устроился это уже легаси было. А это было давно.

Решения вопроса 1

samodum

Какой вопрос — такой и ответ

Первое. Половину требований в вакансиях можно смело отбрасывать. Это автогенерируемый мусор, чтобы быть конкурентными.
.NET-разработчики разные бывают. Есть чистый бэкенд, которым не нужно знать ангуляр, но JS знать рекомендуется, а HTML обязательно знать вообще всем.
ASP.NET-разработчик тесно связан с фронтендом, а значит все ангуляры и реакты ему знать нужно, чтобы можно было договориться с тру-фронтендщиками на том же ангуляре.
Не надо так близко к сердцу принимать все прописываемые требования. Часто сами HR, а потом ещё и разработчики сами удивляются как та или иная технология попала в их список. Учитывать надо и то, что вакансия могла быть написана 5 лет назад, а за это время многое в компании поменялось

Ответ написан более двух лет назад
Нравится 4 4 комментария
SamMorgan @SamMorgan Автор вопроса

Как ни странно, такое я вижу в относительно свежих вакансиях компаний, которым по описанию 2-3 года. Плюс смущает строка из серии «Опыт разработки на JS от 1 года». Складывается ощущение, что проще было изучать фронт стек и пойти во фронтенд разработку, так как уровень знаний меньше по сравнению с .Net, а на нём ты и жнец, и чтец, а платят как фронтедеру.

samodum

SamMorgan, ещё раз: не надо буквально воспринимать текст по вакансии. Убирай 50% мусора.
И не будет у тебя складываться никаких ощущений.
Не понимаю пооблемы

samodum

Aleksandr-JS-Developer, опыт проходить собесеседования и первичный фильтр в виде HR — это навык, который приобретается только с опытом.
Расписывать все хитрости как что обходить я не буду — это бесполезно и не имеет смысла.
Просто подскажу, что

а потом HR (или даже автомат) по чек листу пробегает и отметает нерелевантного кандидата.

обходится простым подтверждением, что тебе это знакомо.
Человек приобретает опыт только на собственных ошибках.

Что должен знать C#/.NET разработчик в 2023 году

Что должен знать C#/.NET разработчик в 2023 году

13.12.2022

21796

Рейтинг: 5 . Проголосовало: 9
Вы проголосовали:
Для голосования нужно авторизироваться

advertisement advertisement

  1. Язык программирования C#
  2. ООП
  3. Алгоритмы и структуры данных
  4. Шаблоны проектирования
  5. Базы данных
  6. SQL
  7. Entity Framework Core
  8. LINQ
  9. ASP.NET
  10. ASP.NET Core
  11. Git
  12. Основы FrontEnd
  13. Английский язык
  14. Итоги

На сегодняшний день .NET программист может применять свои навыки в различных сферах разработки программных продуктов:

  • создание веб-приложений и веб-сервисов
  • создание настольных приложений;
  • создание облачных сервисов;
  • создание игр;
  • создание мобильных приложений.

Когда говорят о .NET разработчиках, имеют в виду программистов, которые пишут на языке С#. Этот язык программирования, как и вся платформа .NET, был создан, развивается и поддерживается компанией Microsoft, которая стабильно уже несколько десятилетий входит в ТОП-10 компаний — мировых лидеров рынка информационных технологий. Все продукты компании Microsoft созданы на платформе .NET. Какие же технологии необходимо изучить, чтобы стать .NET программистом?

Поскольку львиная доля .NET-вакансий приходится именно на веб-сегмент, данная статья будет охватывать как фундамент, которым обязаны владеть все разработчики этой платформы, так и основные технологии серверной стороны веб-девелопмента.

advertisement advertisement

Любой .NET разработчик не может называться и быть таковым, если он не умеет хорошо программировать на языке C#.

Это универсальный объектно-ориентированный язык, который является мощным инструментом создания программного обеспечения с широкой областью применения. При столь высокой функциональности он является достаточно несложным в изучении и отлично подойдет тем, кто собирается сделать первый шаг навстречу программированию.

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

Компания Microsoft активно развивает свое детище — .NET направление, потому C# всегда актуален, идет расширение функционала, добавляются новые возможности. Тенденция последних лет — кроссплатформенность, реализуемая в .NET Core. Огромное количество учебных материалов, качественная официальная документация, видео курсы, образовательные вебинары, дружное комьюнити — всё это создает максимально комфортные условия для грамотного поэтапного изучения данного языка.

Объектно-ориентированное программирование — это методология разработки программного обеспечения, в основе которой лежат четыре главных принципа: абстракция, инкапсуляция, наследование и полиморфизм. Поскольку C# является объектно-ориентированным языком, необходимость изучения и полного понимания ООП парадигм обязательно. Однако, есть и приятная новость: все принципы быстро и легко усваиваются во время изучения C#.

Понимание алгоритмов и структур данных – также обязательно для любого программиста.

Тема связана со специальностями:

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

Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач.

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

Каждое приложение оперирует данными – от интернет-магазинов и банковских систем до корпоративных приложений и социальных сетей. Регистрация, авторизация и аутентификация пользователя, прием, изменение и отправка данных на сервер или даже простое сохранение конфигурации приложения – все это данные, требующие отдельного места для их хранения.

Этим хранилищем служат базы данных (БД), представляющие собой организованную структуру для приема, хранения и обработки данных различного формата – от ФИО и номеров телефона до изображений и видео контента.

Именно поэтому знания БД очень важны в том числе и для .NET разработчиков. Необходимо владеть базовой теорией по БД: основные термины, реляционные и нереляционные базы данных (вы будете работать именно с реляционными – имеющими реляционную структуру), нормализация, отношение one-to-one, one-to-many и many-to-many, поиск и упорядочение информации, работа с таблицами и т.п.

Structured Query Language — декларативный язык структурированных запросов, который создан для взаимодействия с базами данных. Особенность SQL состоит в том, что он лишь описывает необходимые компоненты и желаемые результаты, не указывая, как именно эти результаты должны быть получены.

Изучение языка запросов очень тесно связано с изучением теории баз данных, поэтому углубляясь в БД, вы непременно начнете практиковаться и набивать руку и с SQL.

Entity Framework — специальная объектно-ориентированная технология на базе фреймворка .NET, которая позволяет разработчикам получать доступ к данным, используя концептуальную объектную модель, а не непосредственно реляционную базу данных. Это дает возможность абстрагироваться от самой БД и работать с данными на более высоком уровне абстракции, который более понятен и удобен для человека. Благодаря такому подходу уменьшается количество кода, необходимого для получения доступа к базе, растет производительность и уменьшается время на поддержку объектов в приложениях, которые работают с данными.

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

Language Integrated Query (язык интегрированных запросов) — это простая и удобная .NET технология доступа к данным. Особенность данного языка запросов: возможность применения ко всем источникам данных (XML-документы, XML-потоки, наборы данных ADO.NET, базы данных SQL, массивы и коллекции .NET и т. д.) одного и того же самого подхода выборки данных.

Active Server Pages для .NET — платформа, использующая среду выполнения .NET Framework и предоставляющая необходимые службы для создания серверных веб-приложений и веб-сервисов. Является развитием более ранней технологии Microsoft ASP.

ASP.NET базируется на среде выполнения Common Language Runtime (CLR), которая является основой всех приложений Microsoft .NET. Также данная платформа имеет преимущество в скорости по сравнению со скриптовыми технологиями.

Видео курсы по схожей тематике:

JavaScript разработчик: чем занимается и где его искать

JavaScript не менее популярный язык, чем Java. Но в чем отличие этих технологий и как найти хорошего JS разработчика? Разбираемся в статье.

Что такое JavaScript

JavaScript — это динамический язык программирования, который используется для разработки фронтенда. Это один из основных инструментов при разработке сайта, который совместим со всеми операционными системами и популярными мобильными платформами. Его создали с целью оживить веб-страницы: разметку страниц HTML и пользовательскую часть (CMS). То есть без JavaScript веб-страница «неживая» и сайт не реагирует на действия.

Вот как работает JavaScript простыми словами:

  1. Пользователь нажимает кнопку/заполняет форму на сайте.
  2. Браузер распознает действие.
  3. Автоматически срабатывает JS-код.
  4. На странице отображаются изменения.
В чем отличие JavaScript и Java

Java и JavaScript путать нельзя: это совершенно разные языки, которые похожи только по названию. Java — это объектно-ориентированный язык, который нужен для серверного софта и мобильных приложений. JavaScript используют для создания элементов именно браузера — всего, что видит пользователь.

Сценарии, написанные на JS — это скрипты. Они встраиваются в веб-страницу и срабатывают автоматически при открытии веб-страницы. Для этого их не нужно дополнительно программировать в отличие от инструментов на Java.

Что делает JavaScript разработчик

Разработчику нужно создать ответ сайта на каждое действие пользователя. Для этого он разрабатывает архитектуру всех модулей и программную логику приложения. Затем разработчик тестирует и внедряет эти инструменты в работу. JS позволяет создавать привлекательный веб-сайт с интерактивными и графическими элементами. Таким мы видим сайт благодаря JS разработчику.
Что еще входит в его функционал:

  • Поддержка web-сайтов;
  • Разработка расширений и прототипов для браузеров;
  • Рефакторинг frontend-части веб-сайта/приложения;
  • Разработка веб-версий продукта;
  • Участие в развитии архитектуры проекта.
Что должен знать

Требования к скиллам JavaScript разработчика не такие высокие, как для бэкендера. Но он также должен знать фреймворки, шаблоны проектирования и базы данных языка JS. Вот какие скиллы должны быть у JS-разработчика уровня Middle:

  • HTML и CSS;
  • принципы взаимодействия клиент-сервер (HTTP/HTTPS, Rest API, soap
  • JSON, form data);
  • система контроля версий GIT;
  • другие языки программирования (С, С++, С#);
  • принципы объектно-ориентированного программирования;
  • фреймворки и библиотеки (NodeJS/JQuery/React/Angular/Vue.js);
  • базы данных (PostgreSQL/ MongoDB/ SQL/ NoSQL);
  • технологии (REST, XML, TCP, VS Code, SVN);
  • СУБД;
  • Design Patterns;
  • английский на уровне Intermediate.

На что обратить внимание при подборе

Высокий уровень коммуникативных навыков

Умение взаимодействовать с командой — важный скилл для любого программиста. Но JS разработчик отвечает за пользовательскую часть продукта, которая привлекает клиента. А значит, он должен уметь доносить свою мысль другим разработчикам, дизайнерам и остальным членам команды.

На собеседовании стоит уделить этому время и дать пару кейсов на проверку коммуникации.

Экспертиза разработчика

Кроме самого JavaScript, разработчик должен знать стек, относящийся к определенному профилю проекта. Лучше знать одну технологию, но хорошо, чем несколько поверхностно. Например, для кроссплатформенных мобильных приложений нужен React Native, Flutter или Dart. А вот для веб-сайта больше подойдет NextJS, Redux или Create React App.

Широкий кругозор

У JS разработчика должна быть хорошая насмотренность и свое видение продукта. Проходит ли он дополнительное обучение? Какие веб-сервисы/приложения ему нравятся по внешнему виду? Какие проекты считает наиболее удачными и почему? Эти вопросы можно смело задавать кандидату. Если он подходит к разработке комплексно, интересуется бэкендом и готов делать продукт, удобный для пользователя — результативность его будет выше.

Где искать

Самый действенный путь — сайты для фрилансеров и Telegram. Здесь можно найти фронтендеров и других смежных специалистов: дизайнеров, копирайтеров и SEO.

Сайты для фрилансеров

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

Telegram-каналы

Количество подписчиков: 15 700+
Бесплатное размещение вакансий для JavaScript разработчиков.

Количество подписчиков: 3 000+
Бесплатное размещение вакансий для JavaScript, Node.js разработчиков.

Количество подписчиков: 2 100+

Количество подписчиков: 1 100+
Бесплатное размещение вакансий для JavaScript на Angular.

Количество подписчиков: 1 000+
Бесплатное размещение вакансий для фронтендеров на разных стеках.

Количество подписчиков: 550+
Вакансии международных проектов для иностранных специалистов.

Количество подписчиков: 3 500+

Количество подписчиков: 3 200+

Канал для бесплатного размещения вакансий для JavaScript разработчиков и обмена резюме.

В статье мы рассказали о том, чем занимается JavaScript разработчик и где его искать.

Оставляйте заявку на нашем сайте — мы поможем найти классного специалиста.

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

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