НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Наступаем на Rake

Знакомимся с инструментарием для современных ИТ-архитектур (продолжение).

[spoiler]Из множества фреймворков, сред разработки и языков программирования авторы отчета из ThoughtWorks обратили внимание на Rake. Этот инструмент написан на Ruby и использует его синтаксис, а представляет собой DSL-язык для автоматизации сборки ПО (как утилита make). В чем же его примечательность и актуальность?

Главно, что Ruby -- язык кросс-платформный, поэтому Rake также работает фактически в любых ОС и на разных виртуальных машинах (имеются самые разные реализации, от Java до .NET), что позволяет добиться высокой степени переносимости сборочных скриптов, а это крайне важно для крупных и сложных систем. К недостаткам же аналогичных по назначению систем Ant и Maven эксперты относят излишнюю увлеченность XML, не слишком подходящего для описания сборочной специфики, а также акцент на плагинной архитектуре, которая предоставляет гораздо меньше гибкости, нежели синтаксические возможности Ruby. Специалисты thoughtworks вообще считают plugin-архитектуру ошибочным уровнем абстракции.

Подробная статья Мартина Фаулера о плюсах и возможностях Rake.

Что касается организации масштабных сборок Java-проектов под разные JVM, рекомендовано средство gemjars.org.

Для анализа и мониторинга работы масштабных распределенных систем, поддерживающих Big Data, выбран Zipkin, хорошо стыкующийся с Hadoop. Еще одна полезная система мониторинга и изучения исторических данных и сведений в реальном времени, отличающаяся мощными средствами визуализации -- Graphite. А в агрегации и изучении тысяч одновременных системных событий с вашего сервера -- в реальном времени! -- поможет riemann.io. Написан на Clojure, использует протокол Protobuf, удобно стыкуется с тем же graphite.

Еще несколько специализированных тулзов для тестирования:
- Crazyegg строит так называемые Heat Maps, напрямую подсказывающие, как конвертировать посетителей в профит :) (а используют ее Amazon, eBay, Dell...). Интересен принцип -- анализ движений мышки пользователя на сайте, которые хорошо коррелируют с движениями глаз;
- еще более хитрая Silverback изучает не только "экранную" активность человека, но и автоматически анализирует выражение физиономии пользователя и его недовольное бормотание во время работы с программой.

Поддержка разработки, управляемой поведением (behaviour driven development), для iOS хорошо реализована в zucchiniframework.org. В качестве скрипт-языка применяется CoffeeScript. Что касается самого программирования на Objective C, особо отмечена IDE JetBrains AppCode.

Что касается новых инструментальных трендов, то пока ничего круче идей, воплощенных в Smalltalk, не находится. Так, крайне успешно собрала финансы на кикстартере среда LightTable, крайне интересный проект по созданию интерактивной-интеграционной IDE (обратная связь с кодом в реальном времени, "на кончиках пальцев"; Clojure, Python, JacaScript), который развивает Chris Granger, выходец из Microsoft. Бюджет был исходно объявлен в 200 тыс долл, однако собрал он в итоге аж за 300 тысяч!