В одном из предыдущих постов я писал про упаковку кода.
Хочу ещё обратить внимание на папку utils в проектах.
Ставь 💊 , если в вашем проекте есть папка utils и она похожа на солянку после новогоднего стола.
utils/common/base - набор бессмысленных названий пакетов и модулей, которые открываешь со словами из мема "ЧТО У ВАС ЗДЕСЬ ПРОИСХОДИТ?"
Да, у нас у всех есть дублирующийся код, который вообще не зависит от предметной области, конкретного модуля, и есть желание его вынести и переиспользовать.
Но не нужно бездумно выносить его в "utils", как "нужную" вещь на балкон.
Я призываю четко выделять пакеты, определять их границы и давать наименования, отталкиваясь от того, что они делают, а не от того, что в них содержится.
Вот пример
❌
utils/
- Floats.php
- Integers.php
- ChunkHelper.php
- RequestHelper.php
- Masker.php
- TimezoneShiftInterface.php
- UuidUtils.php
- Pagination.php
- Config/
- Parser.php
- ParseException.php
Декомпозированный вариант, с выделением пакетов по смыслу:
✅
math/
- FloatOperations.php
- IntegerOperations.php
http/
- CreateRequest.php
- ErrorHandler.php
datetime/
- TimezoneShiftInterface.php
uuid/
- UuidFactory.php
crud/
- Pagination.php
config/
- Parser.php
- ParseException.php
Бессмысленное название пакетов прямой путь к складированию кода, нарушению SRP, запутыванию кода и поиску нужных вещей.
Если у вас был опыт с такой папкой, встречали ли вы две одинаковые функции в ней, написанные разными разработчиками?
У меня было и такое, но одна и та же функция по смыслу, написана дважды разными способами один разработчиком. Не потому что у него биполярка, просто
когда utils разрастается, там реально хер что найдешь 🙂