Сона Аветян о JavaScript и его наиболее часто используемых фреймворках

Опубликовано: 2022-10-06

В мире технологий мы все можем найти ответы на свои вопросы одним щелчком мыши. Однако обращали ли вы когда-нибудь пристальное внимание на формат источника? Любите смотреть видео, читать статьи, голосовой поиск или проверку от первого лица? Например, в сфере разработки программного обеспечения и ITO проверка интервью и личных историй непосредственно от профессионалов, таких как разработчики программного обеспечения, инженеры и технические директора, является одним из самых интерактивных и надежных способов самообразования. Личные истории и реальный опыт делают обучение более применимым и запоминающимся.

В CodeRiders у нас есть серия интервью с нашими разработчиками программного обеспечения.

В мире технологий мы все можем найти ответы на свои вопросы одним щелчком мыши. Однако обращали ли вы когда-нибудь пристальное внимание на формат источника? Любите смотреть видео, читать статьи, голосовой поиск или проверку от первого лица? Например, в сфере разработки программного обеспечения и ITO проверка интервью и личных историй непосредственно от профессионалов, таких как разработчики программного обеспечения, инженеры и технические директора, является одним из самых интерактивных и надежных способов самообразования. Личные истории и реальный опыт делают обучение более применимым и запоминающимся.

В CodeRiders у нас есть серия интервью с нашими разработчиками программного обеспечения.

JavaScript также лидирует в другом отчете Statista как самый востребованный язык программирования рекрутерами во всем мире.

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

По данным Statista, по состоянию на 2022 год Node.js, React.js и Vue.js входят в десятку самых популярных фреймворков среди разработчиков программного обеспечения во всем мире.

Имея это в виду, давайте начнем наш разговор с разработчиком полного стека программного обеспечения CodeRiders Соной Аветян.

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

Привет. Спасибо за приглашение на интервью. Меня зовут Сона, я разработчик полного стека программного обеспечения с более чем 3-летним профессиональным опытом разработки веб-приложений и настольных приложений с использованием инновационных технологий. С момента моего принятия в компанию по разработке программного обеспечения CodeRiders я принимал участие в проектах нашей компании и успешно разрабатывал приложения с использованием PHP, JavaScript и его основных фреймворков: Vue.js, Node.js, React.js и MySQL.

Как вы оказались в CodeRiders?

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

У меня есть степень магистра актуарных наук и математики, и в начале своей карьеры я представлял себя успешным профессионалом в этой области. Однако со временем я заметил, что мои интересы угасли, особенно после большого «взрыва» индустрии компьютерных наук и информационных технологий в экономику Армении. В студенческие годы в Армении процветала ИТ-сфера. Все больше и больше молодых людей были одержимы информационными технологиями, и в этом было так много возможностей для роста и отличной карьеры. Хотя я неплохо справлялся в своей области, я решил начать совершенно новую в индустрии информационных технологий. Мои друзья посоветовали мне довериться школе веб-разработки CodeRiders для стабильного старта, и я последовал их совету.

После успешного окончания школы разработки программного обеспечения CodeRiders я начал работать в одной из крупнейших страховых компаний Армении в качестве специалиста технической поддержки. В конце концов, я вырос и стал руководителем группы. Хотя мне нравилась моя работа, я всегда знал, что хочу большего, чем просто поддерживать и поддерживать код, написанный другими разработчиками программного обеспечения и инженерами. Страховая компания была для меня лишь «подготовкой» к более широкой и яркой карьере.

Я проработал в страховой компании 6 лет, а пока думал о CodeRiders. Я знал, что школа разработки программного обеспечения была преобразована в компанию по аутсорсингу программного обеспечения CodeRiders и стала одной из самых успешных местных технологических компаний в Армении. Я следил за CodeRiders в социальных сетях и всегда представлял себя частью их дружной команды. Мне понравилась компания и ее стиль работы. В 2019 году мне позвонил основатель CodeRiders и пригласил присоединиться к их прекрасной команде. Это был один из моих любимых телефонных звонков. Я был в восторге и, конечно же, принял предложение, так все и началось. Я быстро адаптировался к атмосфере, так как был знаком с компанией, и все были очень благосклонны, дружелюбны и всегда готовы помочь.

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

Это «полный пакет» моих технических навыков на данный момент.

  • Интернет: HTML, CSS3, LESS, SASS, Bootstrap, JavaScript, PHP
  • Сервера: Апач, WAMP
  • Базы данных: MySQL, MSSQL
  • Языки: PHP (версия 5.6-8.x), JavaScript, SQL
  • Технологии/библиотеки: Vue.js, React.js, Node.js, Laravel, JQuery, Electron.js, социальные API (Google)
  • Концепции: ООП, MVC
  • Среды: Linux (Ubuntu, CentOS 6/7), MS Windows 10, Git, SVN

В начале своей карьеры программиста я работал с языком разработки программного обеспечения PHP. Затем я переключился на JavaScript. Я люблю их обоих, но больше всего мне нравится JS.

Моим первым «мини-проектом» с JS было создание системы онлайн-визитки для нашей компании. Все наши сотрудники могли ввести свои учетные данные и сделать свои собственные визитные карточки. Затем они могли сканировать и распечатывать эти визитные карточки, переносить их на свои мобильные телефоны или компьютеры и использовать в различных случаях. Я использовал Vue.js для внешней разработки, Node.js и MongoDB для внутренней разработки. Это был мой самый первый проект, полностью основанный на JS-технологиях. В то время у меня был выбор использовать PHP для серверной части, но меня очень интересовал JavaScript и его фреймворки. Кроме того, это был наш собственный проект, так что я попробовал, и он сработал очень хорошо.

JavaScript очень динамичен, если вы не используете с ним TypeScript, что мне и нравится в JS. Мне нравится играть с кодом. Это похоже на игру с гипсом, и во многих случаях вам не нужно выполнять определенные фиксированные шаги. В отличие от статических языков, таких как Java, в JavaScript интерпретатор присваивает переменным тип во время выполнения на основе значения переменных в то время. Динамический JavaScript — это метод создания действий на веб-странице без необходимости загрузки всей страницы в браузере. Это, в свою очередь, повышает скорость работы сайта и делает его более отзывчивым для пользователя. С другой стороны, вы не можете представить веб-разработку без JS, потому что весь контроль над фронтенд-разработкой находится в руках JS-технологий.

Итак, в JavaScript вы можете быть гораздо более гибкими, и во многих случаях это может вам помочь. Однако этот динамизм иногда раздражает многих разработчиков программного обеспечения, особенно если они являются разработчиками программного обеспечения для типизированных языков, таких как Java или C#. У нас ничего не исправлено в JavaScript, но, с другой стороны, если вы хотите немного «творческого подхода» к коду, это дает вам шанс. Между тем, у JavaScript также есть решение для тех разработчиков программного обеспечения, которые привыкли к типизированным языкам. Благодаря его гибкости они могут просто использовать с ним TypeScript.

Разница между типизированным и динамическим языками разработки программного обеспечения заключается в следующем. Если вы присвоите определенной переменной тип, он будет фиксированным, и вы никогда не сможете его изменить. Например, если вы определяете определенную переменную как строку, число или что-то еще, вы никогда не сможете вернуться и изменить ее тип. С другой стороны, в динамических языках, таких как JS, вы можете сказать: «ОК, сейчас моя переменная — это число, но позже я сделаю ее строкой». В некоторых случаях «строгость» типизированных языков великолепна, потому что вы избегаете многих ошибок, но, с другой стороны, динамизм «гибкости» также помогает во многих других случаях. Поэтому трудно сказать, какой из них лучше. В основном это зависит от конкретного разработчика программного обеспечения и характерных особенностей конкретного проекта.

Подводя итог, если у меня есть возможность выбрать технический стек конкретного проекта, я обращаю пристальное внимание на «содержание» проекта. Очень важно понимать суть вашего проекта, его структуру и возможность его целесообразности, так как это основные факторы, которые следует учитывать перед выбором конкретного технологического стека для вашего проекта. Например, вы должны использовать SQL или MongoDB для базы данных? Почему для фронтенд-разработки лучше использовать Vue.js? Как насчет Node.js или PHP для серверной разработки и так далее?

Расскажите, что вам больше всего нравится в JavaScript и его фреймворках (Node.js, Vue.js и React.js).

  • Динамизм JavaScript
  • Работать с JS и его фреймворками — это как строить дом

Как я упоминал ранее, динамизм — моя любимая вещь. Мне больше всего нравятся интерфейсные фреймворки JS. С интерфейсными фреймворками JavaScript вы можете свободно играть со своим воображением.

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

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

Какой лучший фреймворк JavaScript?

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

Vue.js и React.js используются для фронтенд-разработки, а Node.js — для серверной разработки программного обеспечения.

Vue.js и React.js очень похожи и в то же время очень разные. Если вы знаете React.js, очень легко выучить Vue.js и наоборот. Эти два фреймворка дополняют друг друга. Например, когда я имею дело с входными данными и изменениями, мне гораздо проще работать с Vue.js, чем с React.js.

В React.js нужно писать больше кода, чем в Vue.js. Структура кода также лучше организована в Vue.js, но опять же, она также сильно зависит от того, как вы пишете свой код.

В общем, фреймворки JS — лучшие, потому что они состоят из компонентов, и с ними очень легко поиграться. Вы принимаете во внимание шаблон «не повторяйся». Если вы уже написали компонент, вы можете использовать его в нескольких местах вместо того, чтобы переписывать его.

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

Я использую Node.js в своей бэкенд-разработке вместе с React.js и Vue.js для фронтенд-разработки, и комбинация этих трех технологий просто идеальна. Я шучу над этим сочетанием, сравнивая его с идеальным человеком, который великолепен как внутри, так и снаружи.

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

Как бы вы оценили важность JavaScript в современной ИТ-индустрии?

Я не представляю веб-разработку без JavaScript. Конечно, в настоящее время ИТ-индустрия развивается масштабно и быстро, но JS имеет такую ​​же скорость роста. Он адаптирует свои решения в соответствии с последними разработками в области ИТ. Так что я уверен, что JS останется в ИТ-индустрии на десятилетия.

Расскажите, пожалуйста, о своих самых «запоминающихся» проектах по разработке программного обеспечения на CodeRiders.

Я расскажу о своем первом «массивном, сложном и огромном» проекте, как я люблю его называть. Этот проект сформировал меня как опытного разработчика программного обеспечения.

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

Я работал над этим проектом со своими коллегами из CodeRiders и с некоторыми другими удаленными инженерами-программистами из других стран. Мы работали над этим проектом во время блокировки COVID, когда все работали из дома. Прошло всего несколько месяцев с тех пор, как меня приняли в команду CodeRiders. Поскольку это был мой первый масштабный проект, я задерживался допоздна, до 2 часов ночи, с моими коллегами-разработчиками программного обеспечения из CodeRiders, которые стремились помочь мне, чтобы я мог беспрепятственно участвовать в процессах разработки. Это было для меня «знакомством» с командным духом CodeRiders.

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

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

Пожалуйста, перечислите некоторые преимущества и недостатки JavaScript.

Преимущества

  • JavaScript прост для понимания и изучения.
  • JavaScript поддерживает все современные браузеры, что помогает получить эквивалентный результат.
  • Разработчики программного обеспечения имеют возможность создавать богатые интерфейсы.
  • Вы можете просто реализовать его в каждом проекте, потому что он отлично работает с другими языками программирования.
  • Глобальные компании отдают приоритет развитию сообщества и инвестируют в важные проекты. Хорошими примерами являются Google, созданный с помощью фреймворка Angular, и Facebook, созданный с помощью React.js.
  • JS очень хорошо сочетается с другими техническими языками.
  • Можно разработать полное приложение, используя только JavaScript от начала до конца, потому что у нас есть различные способы использования JS через серверы Node.js.
  • И последнее, но не менее важное: он очень популярен и имеет огромное сообщество. Вы можете легко расширить свои знания JS, потому что существует множество доступных курсов.

Недостатки

  • Код JavaScript виден всем. Любой может проверить код.
  • Различные браузеры интерпретируют код JavaScript по-разному, что может привести к трудностям при чтении и написании кроссбраузерного кода.
  • В JS отладка поддерживается редакторами HTML, которые не так эффективны, как другие редакторы, такие как C/C+. Это может усложнить работу разработчика по обнаружению проблемы (не является критическим недостатком).

Можете ли вы описать типичный рабочий день в CodeRiders?

Мой обычный день в CodeRiders начинается с хорошей чашки кофе и теплой утренней беседы с коллегами. Затем каждый идет на свою работу. У нас может быть несколько встреч в течение дня. Если это понедельник, вся команда собирается на большое собрание в конце дня. Каждый представляет, что он сделал, над чем сейчас работает и что нужно сделать. Если у кого-то есть проблемы, они делятся ими с командой, и мы даем советы.

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

Мы знаем, что CodeRiders дает возможность выбирать между работой дома или в офисе. Какой из них вы предпочитаете и почему?

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

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

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

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

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

Какой твой самый любимый проект и почему?

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

Как вы думаете, за каким техническим языком будущее ИТ?

Это вопрос, на который не будет однозначного ответа. Каждая технология важна по-своему, и для правильной работы ее следует использовать на своем месте. Например, для науки о данных и искусственного интеллекта мы используем Python, и он работает. Однако Python — не лучшее решение для серверной веб-разработки. Некоторые проекты не такие большие и сложные, но написаны не на тех языках, что излишне усложняют работу.

Что бы вы посоветовали тем разработчикам программного обеспечения, которые только начинают свою карьеру в индустрии информационных технологий?

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

Спасибо, Сона, за то, что нашли время поговорить с нами и поделиться своим богатым опытом.

Кроме того, отметим, что в наши дни очень популярны разработчики программного обеспечения JavaScript с их популярными фреймворками (React.js, Vue.js и Node.js). В сегодняшней глобальной нехватке ИТ-специалистов гораздо проще найти разработчиков программного обеспечения JavaScript, Vue.js, React.js и Node.js по доступным ценам, особенно если вы занимаетесь аутсорсингом программного обеспечения и ищете удаленных разработчиков программного обеспечения в авторитетных технических центрах. .

Чтобы нанять разработчиков JavaScript, мы предлагаем бесплатную консультацию с командой CodeRiders. Свяжитесь с нами, чтобы обсудить ваши потребности в программном обеспечении и узнать наши тарифы для разработчиков программного обеспечения.