В этом файле я объясню зачем программистам нужна структура кода и что я имею ввиду когда говорю про структуру кода. Данные примеры вы можете добавлять в любые проекты от backend, frontend, data science, game development и даже создание физических объектов таких как самолеты(хотя у меня и нет опыта создания самолетов, но на простых примерах я докажу что структура нужна каждому проекту и программисту).
Структура кода это очень сложный и объемный материал, а поэтому у нас будет несколько публикаций. В данном файле вы поймете для чего она нужна, и как ее можно оценить в вашем проекте. Тут будут примеры с папками и файлами, но структура распространяется на все части проекта, а такой пример взят для простоты понимания.
Структура кода или проектов в моем понимании — это набор правил, которые вводятся в проект для упрощения создания или изменения любых его частей. По сути, структура помогает сделать проект более упорядоченным, что в будущем позволяет сэкономить время и усилия.
Давайте представим следующую ситуацию: вы пришли в проект, где папки кода выглядят следующим образом:
Для вас, как для нового программиста, это может показаться запутанным. Если я спрошу вас: где находится функция get_user_by_id()? Ответ может быть: utils/users.py, users/queries.py или users/database.py. Однако вы не будете знать это наверняка, пока не откроете каждый файл или не воспользуетесь поиском.
Сложности возрастают, если спросить, где находится функция get_product_by_id(). Логично предположить, что она находится в products/db.py. Но тогда возникает вопрос: зачем в папке users нужен файл queries.py? Чем db.py отличается от users/database.py?
Если вы не согласны, тогда попробуйте ответить на данные вопросы, а после спросите своего друга и сверьте ответы, которые скорее всего будут разными:
users/routes.py?utils/users.py и почему данный файл не в папке users/?Теперь, представим что ваш начальник дал вам новую задачу на написание SQL запросов в базу данных, и вы положили ваши запросы в products/db.py, а после писали код на протяжении двух дней. После чего, к вам подошел начальник и сказал что запросы должны лежать в новом файле products/queries.py, а вам следует переписать задачу и переместить весь ваш код туда. В итоге, на задачу вам приходится тратить больше времени и денег компании, а все последующие программисты будут совершать похожую ошибку так как у них отсутствует понимание вашего кода. В момент, когда новый работник вступит в проект, у него будут все вопросы на которые вам уже отвечал ваш начальник. В таком случае новому работнику и начальнику придется тратить больше времени на задачи, так как программист будет неведом в коде, а начальнику придется объяснять и отвечать на похожие или идентичные вопросы.
Представим диалог нового программиста и начальника:
А как понять где лежат запросы к базе данных, как вообще устроен проект?
Так, а ты про какое приложение говоришь? Про users или products?
Я говорю про users.