Давайте обсудим менее известную правду о сложности кодовой базы!

Каждая гигантская программная система имеет простую, экспериментальную и инновационную отправную точку. Программисты могут следовать различным стратегиям разработки, но есть два общих подхода к инициализации разработки: плановый и экспериментальный. Некоторые команды разработчиков программного обеспечения (особенно разработчики корпоративных систем) обычно собирают требования, подготавливают проектную документацию и создают строгие спецификации, прежде чем добавлять единственную фиксацию для своих исходных кодовых баз. Между тем, некоторые программисты начинают с инновационных проектов POC (Proof Of Concept) и постоянно совершенствуют их, пока эти проекты не будут готовы к работе. Известные проекты с открытым исходным кодом, такие как Flutter, React Native, Linux и большинство фреймворков, были разработаны с использованием второго подхода к разработке.

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

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

Некоторые зависимости приносят скрытые проблемы

Мы используем различные языки программирования общего назначения для разработки программных систем. Каждый язык программирования обычно поставляется со встроенной, хорошо структурированной стандартной библиотекой, которая предлагает API-интерфейсы для общих требований, таких как обработка файлов, работа в сети, управление процессами и т. д. В некоторых сценариях нам приходится писать много кода для доставки нашей программной системы. функции со стандартными библиотечными API. Поэтому мы часто начинаем использовать сторонние пакеты зависимостей, чтобы сократить код, который мы на самом деле пишем для реализации чего-либо. Например, мы можем использовать библиотеку поиска системной информации (т. е. infowave)…