Кодирование до 2015 года

Ежегодный обзор всех технологий здесь, в штаб-квартире Brndstr.

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

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

В начале 2015 года мы в штаб-квартире Brndstr оказались в ловушке путаницы требований и запросов функций, которые диктовали, как мы будем продолжать разрабатывать программное обеспечение, а также формировали наше представление о более широкой картине.

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

Итак, что мы узнали? И что мы реализовали?

Начиная с наших основных веб-приложений.

  1. Веб-сервисы Amazon (AWS)

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

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

2. На что мы смотрим?

Я не уполномочен делиться нашими планами по созданию следующей Звезды Смерти, но вот список того, что мы рассмотрели при переносе на AWS:

  • EC2 — виртуальный хостинг, который можно масштабировать до безумных размеров, что приводит к минимальным царапинам на голове и выдергиванию волос. Мы использовали nginx вместе с Phusion Passenger Application Server.
  • SnS — экономичная служба обмена сообщениями, требующая минимальной настройки, позволяющая сразу же протестировать обмен сообщениями и push-уведомления.
  • SQS. Если одной части вашего приложения необходимо взаимодействовать с другими частями, это определенно лучшее решение. Эта услуга лежит в основе нашей деятельности, и мы буквально не можем жить без нее. В прямом смысле!
  • S3 — конечно, но мы совсем недавно дополнили его Cloud Front CDN, поэтому время загрузки мультимедиа сократилось до двухзначных миллисекунд.
  • Elasticsearch — недавно добавленная в наш стек, это молниеносно быстрая система полнотекстового поиска. Это действительно сложная задача для дизайна, но, в конце концов, это стоит всех этих мучений.

3. Сервис-ориентированная архитектура

AWS великолепен и все такое, но он требует от нас, инженеров, меньше заниматься настройкой и больше кодировать; что мы собственно и сделали. Нам удалось перейти на сервис-ориентированную архитектуру. Наши приложения, которые раньше работали на Ruby on Rails, теперь работают только на Ruby и Grape, которые являются промежуточным программным обеспечением стойки. Звучит пугающе, если вы уберете достоинства Rails из своего приложения, но это также избавит вас от многих накладных расходов. AngularJS — это правильный интерфейсный инструмент, на который стоит обратить внимание, если вы хотите погрузиться в мир SOA.

Что касается разработки мобильных приложений…

… там тоже многому научились и сделали:

  1. Ткань

Мы открыли для себя Fabric и набор инструментов, которые он предоставляет.
Лучшее в Fabric то, что оно работает в режиме реального времени. Одним из наиболее часто используемых инструментов является Crashlytics. С помощью всего лишь 2 строк кода вы получите все свои сбои на красивой панели инструментов, а также сделаете специальное развертывание блаженством. Мы также использовали Ответы и показывали их по телевизору, чтобы видеть аналитику наших приложений в режиме реального времени. Это просто выглядело круто. Fabric также предоставляет другие инструменты, такие как Digits, Twitter SDK, которые мы внедряем в наши будущие мобильные приложения.

2. Фреймворки реактивного функционального программирования

Для написания приложений для iOS и Android мы начали использовать реактивные фреймворки функционального программирования. RX Java для Android и ReactiveCocoa для iOS. У реактивного функционального программирования есть кривая обучения, но это очень помогло нам.

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

Спросите любого мобильного разработчика, и одна из их проблем будет заключаться в том, что их классы Activity или ViewController безумно велики. Итак, мы рекомендуем остановить MVC и запустить MVVM.

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


#Jasim / The iOS Dude