Контакты
Москва
Серебряническая наб., 29
+7 (495) 108-24-49
Кемерово
Ноградская, 5, офис 404
+7 (3842) 65-04-90
Digital-агентство
Мэйк

Немного терминов. Технологии, которые мы используем в разработке

Подпишись на наш telegram-канал

Не пропусти новые полезные статьи и держи под рукой старые.

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

Администрирование

  1. На наших серверах мы используем ОС семейства UNIX в частности Ubuntu, поэтому для администрирования нужно хорошо знать, как работать в консоли с основными утилитами Ubuntu.
  2. Нужно понимать, как выстраиваются компьютерные сети и уметь их администрировать.
  3. Для управления базами данных используется 2 вида СУБД: Postgresql и mysql.
  4. В случае, если сайты падают, например, при отключении света, для их автоматического включения используется один из 2-х способов: демон monit или стандартная утилита автозагрузки в ubuntu - update-rc.d.
  5. Также на случай непредвиденных ситуаций настроена система бэкапирования на основе гема backup. Она каждый день создает бэкапы для всех сайтов и приложений.
  6. Некоторые сторонние приложения, например gitlab, запущены в docker контейнерах для их изоляции от основной системы. Поэтому неплохо было бы знать docker.
  7. Также используются виртуальные машины с windows, для виртуализации используется система виртуализации QUEM/KVM.
  8. Nginx, apache сервера и их настройка
  9. Развертывание сайтов с помощью capistrano.

Бэкэнд разработка

  1. Для небольших шаблонных сайтов мы используем CMS систему 1С-Битрикс
  2. Более сложные системы разрабатываются на фреймворке Ruby on Rails.
  3. Для управления данными применяются 2 вида СУБД: для битрикса - mysql, а для проектов на ruby - Postgresql.
  4. При работе над ruby проектами мы используем некоторое количество обязательных подключаемых библиотек, называемых гемами в мире Ruby on Rails разработки.
  5. puma - основной сервер приложения.
  6. sass-rails - препроцессор для css.
  7. coffee-rails - препроцессор для javascript.
  8. slim-rails - шаблонизатор html
  9. rmagick - для обработки изображений на сайте (масштабирование, изменение пропорций, сжатие и т.д)
  10. carrierwave - для загрузки различных документов на сервер.
  11. whenever - для настройки периодически выполняемых в приложении действий
  12. ckeditor - текстовый редактор для админки с дружественным интерфейсом
  13. russian - для локализации сайта на русский язык
  14. devise - используется для регистрации и аутентификации пользователей
  15. pundit - разграничение прав доступа для пользователей.
  16. friendly_id - для автоматической генерации человеко-понятных идентификаторов для объектов БД
  17. sidekiq - для управления очередями в rails приложении
  18. capistrano - удобное средство для деплоя приложения на сервер.
  19. rails_admin - создает понятную админку для всех сущностей на сайте
  20. sentry-raven - наблюдает за возникновением ошибок в программном коде сайта и хранит о них всю информацию.
  21. nokogiri - для парсинга html документов

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

Фронтенд разработка

Здесь будут также приведены, только самые важные и необходимые технологии, которые мы используем.

  1. scss - препроцессор для css
  2. coffeescript - препроцессор для javascript
  3. slim - шаблонизатор html
  4. bootstrap - css фреймворк для создания стандартных элементов на странице.
  5. react - javascript фреймворк, необходимый для создания интерактивных сайтов со сложным фронтендом, который очень тесно связан с базой данных
  6. jquery - для упрощения работы с javascript, и для программирования множества стандартных техник поведения элементов на сайте.
  7. webpack - для сборки и оптимизации фронтенд части сайта
  8. leaflet - упрощает работу с различными видами географических карт
  9. d3 - позволяет комфортно работать с svg форматом
  10. slick slider - универсальный слайдер на все случаи жизни
  11. БЭМ методология - делает верстку более поддерживаемой, также дает лучше понимание того, как построена вся система.

Общие знания

Это неплохо было бы знать для работы в любой области программирования

  1. Иметь хотя бы общие представление о работе в системе контроля версий git.
  2. Общие представление о работе в linux.
  3. Знать основные принципы ООП.
  4. Иметь общее понимание о том, как проектируется БД.
  5. Уметь читать UML диаграммы.
  6. Уметь читать и разбираться в чужом коде.
  7. Знать английский язык

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

Самое главное что, администратор должен знать linux, бэкэнд разработчик должен уметь разрабатывать на ruby on rails фреймворке или на битриксе, а фронтенд разработчик должен уметь верстать и знать javascript.

Станислав 
Фоменко

Full-Stack Software Engineer

Почитать еще на эту тему

Обсудить