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

Блог

Технотренды 2014-го

В феврале вышел долгожданный Technology Radar хорошо известной в мире программной инженерии консалтинговой фирмы Thought Works. Он обновляется раз в полгода и фиксирует ключевые тактические тренды в сфере развития ИТ-архитектур, средств и платформ разработки.
В этом блоге уже рассматривался Technology Radar полуторагодичной давности, давайте теперь выясним, куда движется ИТ-мир сегодня.
http://www.thoughtworks.com/radar/

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

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

- Девелоперские экосистемы на JavaScript продолжают активно развиваться как по клиентскому, так и по серверному направлениям.

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

Radar традиционно рассматривает решения по четырём сферам: технологии, платформы, инструменты и языки программирования. Каждая из них делится на: настоятельно рекомендованные к использованию; потенциально полезные для использования, но с определённым риском; желательные к изучению и ознакомлению; морально устаревшие или неудачные.
Начнём с технологий и концепций.

Рекомендованные.

- Подробный и детальный контроль ошибок JavaScript-сценариев на клиентской стороне реализуется сегодня на самом зрелом уровне.

- Непрерывная поставка родных мобильных приложений избавилась от большинства недостатков. Например, опенсорсный Xctool
https://github.com/facebook/xctool  
автоматизирует тестирование, развёртывание и обновление программ на iOS7.

- Веб-архитектуры дозрели до сегрегированного уровня объектной модели DOM -- пока DOM подчас тесно переплетается с прикладной логикой и AJAX-вызовами, превращая проект в нечитабельную мешанину кода. А изолирование DOM позволяет быстро тестировать его логику независимо от браузера (та же node.js до этого уже вполне доросла).

- Зрелыми, наконец :) стали и системы автоматизации инфраструктур на базе Windows.

Полезные, но потенциально рисковые.

- Генерация HTML-кода сегодня вполне возможна на сервере с помощью JavaScript, причём один и тот же JS-код во многих случаях может одинаково работать и на сервере, и на клиенте. К чему это приведёт, пока сказать трудно, но результаты могут быть весьма неожиданными.
Кстати, предсказывается смерть куков: им на смену идут встроенные возможности HTML5.

- DevOps-платформы Chef и Puppet http://www.pcweek.ru/idea/blog/idea/6038.php
Очень полезная технология, но централизованная БД представляется единой точкой сбоя. Рекомендуется использовать выделенный сервер в сочетании с системой контроля версий.

- Развивающееся направление структурных логов подразумевает хранение не только происходящих в системе фактов-событий, но и сопроводительной мета-информации (описаний, смысла), что позволяет анализировать их мощными инструментами -- таков, например, опенсорсный Graylog2 http://graylog2.org/ с развитыми механизмами визуализации, агрегированием, выборками, обрабатывающий в секунду на типовом оборудовании десятки тысяч сообщений.

Продолжение следует
Сергей Тарасов
Тестирование в ходе эксплуатации называется опытной эксплуатацией  ;)

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

По сути, рекламируют ускорения частоты дестабилизации систем клиента.

Пример из быта: я хоть и не плачу за Firefox, но его относительно частые (раз в месяц) обновления откровенно достали. А если еще и деньги за это платить...
Сергей Бобровский
Это ведь вопрос баланса: если бы не такие частые обновления, возможно, он превратился бы в IE :) Систему можно дестабилизировать, когда она стабильна, а тут идея видимо в выпуске нестабильной системы и доводке ее до стабильности без того ущерба, которым этот процесс сегодня часто сопровождается. Но тренд провокационный конечно.
Сергей Тарасов
У нас в продуктовом софтостроении обновления версий чаще раза в год вызывают у клиентов серьезные причины поглядеть на продукты конкурентов  :oops:
При этом часть клиентов предпочтет пропустить обновления до того момента, пока это действительно не станет нужным.

Описанные тренды - это способы проектных софтостроителей доить клиентов относительно честным способом.