Увеличение объема нового кода и приложений, ежечасно поступающих на рынок, привело к тому, что традиционные инструменты разработчика, в первую очередь это касается кросс-платформенных редакторов кода и интегрированных сред разработки (integrated development environment, IDE), начинают терять популярность, сообщает портал eWeek.
Схема разработки кода начинает меняться. Чтобы соответствовать современным темпам написания программ, требованиям к качеству и приносить предприятиям отдачу в виде коммерческих результатов, разработчикам приходится справляться с большими объемами и разновидностями кода. В этих условиях первостепенное значение имеет их способность эффективно писать и вносить изменения в код с целью соблюдения сжатых сроков выпуска версий программ и строгих требований к безопасности. Продуктивность разработчиков в эпоху так называемого «большого кода» (Big Code) имеет решающее значение.
Точно так же, как огромные объемы данных позволили создать класс веб-ориентированных приложений для больших данных, теперь крупные репозитории программ (например, Open Source на GitHub) являются основой для создания нового класса приложений, использующих репозитории большого кода. Задействовав Big Code, разработчик может автоматически приспособить имеющийся у него код для прогнозирования частоты возникновения программных ошибок, поведения программы, имен идентификаторов или автоматического создания нового кода. Разработка охватывает междисциплинарные исследования в области машинного обучения, языков программирования и создания ПО. С некоторыми из самых современных методов в этой области можно ознакомиться на сайте Learning from «Big Code».
Понимание всех этих изменений и того, что ими движет, позволит разработчикам оставаться конкурентоспособными и быстрее создавать качественное ПО. Соучредитель и CEO поставщика платформы для универсального поиска кода Sourcegraph Куинн Слэк рассказывает о четырех тенденциях, способствующих изменению ландшафта в области большого кода.
1. Объем
С каждым днем количество кода в мире растет экспоненциально — это связано с тем, что ПО стало основным драйвером инноваций едва ли не в каждой отрасли. Разработчики все чаще или применяют большие, взаимозависимые кодовые базы, или им приходиться сталкиваться с ними, при этом сами базы включают как проприетарный, так и открытый код. В результате увеличения его объема традиционные средства разработки, такие как редакторы и IDE теряют эффективность. Эти инструменты были разработаны для отдельных разработчиков, работающих в одном репозитории, а не для команд разработчиков, которые создают большие кодовые базы и подключены к нескольким репозиториям. Поиск в массивных и постоянно растущих кодовых базах — один из главных приоритетов высокопродуктивных команд программистов.
2. Разнообразие
Прежде чем появились репозитории большого кода, компании применяли продукты Microsoft (Visual Studio и .NET) или Linux, в основном стек LAMP (ОС Linux, Apache, MariaDB / MySQL, PHP). Большинство разработчиков применяло единый набор технологий с кодом, который хранится в одном месте. Сегодня для этой работы разработчики используют любые подходящие технологии, что привело к значительному росту числа языков программирования, хостов кода, репозиториев, систем контроля версий, сервисов и API. Для создания высококонкурентных продуктов организациям нужно найти способы оперативного анализа и управления массивными хранилищами кода независимо от системы, репозитория или языка. Эффективный поиск информации необходим разработчикам, чтобы они комфортно чувствовали себя в сегодняшней совместной и разноплановой среде разработки. Неумение или нежелание справляться с разнообразием сред может привести к снижению производительности программирования.
3. Скорость
Ускоренные циклы доставки, которые достигаются при помощи практик разработки типа Agile, влияют на скорость изменений в коде, который в теперешних условиях поставляется практически каждый день. Команды находятся под давлением — им нужно непрерывно поставлять качественное ПО, и любые задержки в разработке могут срывать планы выпуска версий программ, приводить к снижению качества, и, как следствие, к разочарованию команд, недовольству клиентов и неконкурентоспособности продуктов. Повышение эффективности проверки кода и других процессов, критически важных для развертывания ПО, может повысить производительность труда разработчиков и ускорить выход ПО.
4. Ценность
Эра большого кода подчеркивает важность эффективной разработки ПО. Код лежит в основе бесчисленных инноваций, которые каждый день улучшают жизнь людей, и стал основной интеллектуальной собственностью большинства компаний. Разработчики напрямую вносят в него свой вклад, поставляя высококачественное ПО — ценный бизнес-актив.
Ландшафт разработки софта продолжает развиваться и организации, которые уделяют приоритетное внимание для решения проблем, связанных с объемом, разнообразием, скоростью и стоимостью кода, вырвутся вперед.