Как я пережил свое «крещение огнем» с node.js

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

Обязан признать, что я ощущал себя мало обескураженным, в то время, когда просматривал спецификацию (спекуляцию) проекта. Новая совокупность должна была быть выстроена в Node.js, которую я должен был изучить с нуля. У проекта был тяжёлый, 12-недельный период времени. Проектная несколько была разбросана по 6 государствам. Начальником проекта был ‘архитектор доставки , инновационное понятие nearForm, что заменял классического менеджера проектов.

Лишь чтобы сделать коммуникации мало сложнее, на связи было кроме этого третье лицо: InterLink, компания, которая ранее обслуживала совокупность клиента.Давайте сперва взглянуть на клиента, на их существующую совокупность и что они потребовали от работы nearForm.

его Система и Клиент

Английская Школа Маркетинга (LSM) есть ведущим учебным заведением, базируемым в Лондоне и во всей Англии, которое предлагает аккредитованный деловые квалификации и маркетинг.Как я пережил свое «крещение огнем» с node.js Они уже создали фундамент дистанционного обучения для собственных собственных студентов. Сейчас клиент потребовал, дабы nearForm развил эту платформу, дабы сделать ее всецело универсальным и применимым для любого университета и колледжа в мире.
Эта платформа включала в себя пара совокупностей:

  • Отвлечённая совокупность управления
  • Платформа для обучения
  • Контент платформа
  • Совокупность онлайн-поступления
  • Совокупность подачи заявлений

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

Крутая линия обучения

Я планировал узнать о Node.js и я сделал то, что намного больше.

Node.js

Первоначально, все, что я знал о Node.js, было то, что он написан на JavaScript и владеет многими аккуратными преимуществами. Я скоро изучил эти преимущества, продемонстрировал их, и должен был предложить ее, трудясь над LSM (Английской Школой Маркетинга).
Сперва, Node.js показался тяжёлым для меня. Были кое-какие понятия, каковые какое-то время очень сильно схватили меня. Спустя некое время я заметил пример того, как трудятся эти вещи. В то время, когда дело доходит до разработки ПО, я нахожу, что лучший метод обучаться – это практика, так я забрал многие обучающие программы в nodeschool.io.

Они улучшили мое познание относительно того, какой в действительности сильный Node.js.
Одна из вещей, каковые поразили меня больше всего сначала, было то, как Node.js разрешает тебе настраивать веб-сервер примерно с 10 линиями кодекса. Мне кроме этого нравилось сообщество Node.js где я увидел пакет, доступный для практически всего через npm. Работа над проектом LSM помогла мне выяснять об изюминках, каковые предлагал Node.js, потому, что проект был полностью поддержан платформой Node.js.

Микросерверы (Микрослужбы)

В nearForm микрослужбы идут рука об руку с Node.js. Я изучил, как создать микрослужбы, применяя платформу Сенеки. Тогда как проект прогрессировал, я подмечал конкретно преимущество применения микрослужб в противоположность одной громадной работе, которая обрабатывает все.

И простое простой и обслуживание развертывание, эти преимущества кроме этого включают системную целостность — т.е. в случае если одна микрослужба повреждается, это не приводит в нерабочее состояние все приложение. Микрослужбы (микросерверы), каковые я записал – легко включенные, создают, просматривают и обновляют разные способы, тогда как другие, такие как поиск, являются более сложными.

AngularJS

Я усердно трудился над отвлечённой совокупностью управления (AMS). AMS – приложение в одну страницу, созданное при применении AngularJS (см. ‘Инфраструктуруниже для детальной информации о AMS).
Я определил большое количество о AngularJS и его функциях, включая да и то, как смогут употребляться директивы при помощи нескольких страниц в приложении, как контроллеры обрабатывают логическое представление и как работы взаимодействуют с API, которое воображает Seneca. Я отыскал, что AngularJS упростил стремительное создание веб-страницы, применяв службы и существующие директивы в приложении.
Обзор кода
Данный проект применял формальный процесс рассмотрения кода. Это разрешило мне улучшить уровень качества моих запросов, приобретая обратную сообщение от вторых участников команды. На предоставленной работе один из участников команды разглядел и покинул комментарии, как возможно улучшить определенный код.

И когда обзор был закончен, код был объединен в ведущее устройство и быстро запущен на протяжении следующего развертывания.

Инфраструктура

Я кроме этого определил о навыках разработки и о стороне инфраструктуры к проекту. Для этого проекта мы применяли Amazon Web Services (AWS). Мы применяли три разные группы серверов: один для постоянной интеграции (CI), один для подготовки и второй для производства. И применяли Дженкинса Jenkins , дабы развернуться к серверам AWS, и мы кроме этого применяли nScale nearForm, дабы разрешить простой откат и быстрое развёртывание.

Посредством вторых участников команды я сконфигурировал nScale, дабы развернуться к серверу CI.

Структура проекта

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

Методика разработки

Этот проект был создан при применении стремительного и эластичного подхода. Данный подход был выбран по обстоятельству громадного количества совокупностей, каковые должны были быть созданы. Методика разработки была следующей:

Клиент предоставлял nearForm конструктивные требования и макеты.
Были совершены встречи с всеми разработчиками и клиентом чтобы обсудить реализацию этих проектов.
Когда проекты были согласованы, архитектор доставки поручал работу каждому разработчику в течение каждой семь дней.
Архитектор доставки обрисовывал в общем цели, каковые будут достигнуты к концу семь дней. Цели были видны в basecamp.
Шаги разработки

Разработка была выполнена следующим образом:

Репозиторий был разветвлен в личную (персональную) учетную запись GitHub каждого разработчика. Все новые функции были продвинуты к этому репозиторию. После этого разработчик формирует запрос на включение трансформаций из собственного репозитория в GitHub репозиторий клиента.
Все запросы пересматриваются вторыми разработчиками проекта для поддержания большого уровня, и с целью достижения согласованности между каждой совокупностью.
По окончании того как запрос получения был рассмотрен и все комментарии и предложения адресовались, запрос получения объединяется в главное ответвление.
Сервер сборки Дженкинса машинально формирует и развертывает приложение на сервере постоянной интеграции (CI).
Еженедельные просмотры клиента

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

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

Способы развертывания

Первоначально, развертывание было установлено, применяя классический подход с Дженкинсом как сервер сборки. Любое изменение, внесенное в главное ответвление каждой совокупности, было машинально развернуто на клиенте сервера CI.
Дабы развернуться к серверу подготовки, мы создали новое ответвление в клиенте repo и позвали его v0.1.0, (к примеру). Оно выдало отечественному развертыванию номер версии. После этого мы делали задание на сервере Дженкинса, названном sync_repos. sync_repos , задание приняло данный номер версии в качестве параметра, а после этого уже продвинуло то ответвление к lsmdeployment, отдельной учетной записи GitHub.
Дабы создать сервер подготовки, мы установили параметр как упомянутый выше номер версии и выполнили сборку. Рабочий сервер был создан таким же образом; но, это потребовало того, дабы сервер подготовки был развернут сперва. К завершению проекта nScale был сконфигурирован, дабы заменить упомянутый выше способ развертывания.

Выпуск Продукта

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

Мои следующие шаги

Окончание работы совокупности Английской Школы Маркетинга есть примером того, как компании обновляют собственные существующие совокупности, дабы применять Node.js. Я горжусь тем вкладом, что я сделал для этого. Кроме того при том, что это было «крещением огнем» в моей карьере, как разработчик ПО, я уже ощущаю себя намного уверенней и уменьшил тот собственный проект ‘новичка , что стал успешным.
С моим новым знанием Node.js, AngularJS, Сенеки и nScale, я уже нахожусь в гуще моего следующего проекта: новая платформа сообщества для CoderDojo. Эта платформа подобна во многих отношениях проекту LSM, потому, что она кроме этого применяет упомянутые выше разработки. Я использую Seneca и AngularJS, дабы реализовать и бэкэнд и функции фронтэнда.

Знание, что я взял в работе LSM, помогло мне сразу же взяться за дело с платформой CoderDojo, и я все больше определю об этих разработках ежедневно.
Желаете трудиться на nearForm? Мы нанимаем.

Высоких конверсий!

Случайные статьи:

Пишем сайт на Node JS, Express | Как создать сайт #1


Подборка похожих статей:

riasevastopol