Information
- Rating
- Does not participate
- Location
- Ташкент, Ташкентская обл., Узбекистан
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Software Architect
Middle
From 1,000 $
Git
Redis
MongoDB
Docker
Linux
English
REST
Apache Kafka
Golang
High-loaded systems
А вот этого CONSTRAINT не должно быть. В развитие ПО может появиться и другие флаги.
По этому лучше вообще отказаться от простых флагов и использовать рекомендованные структуры который подходить и сейчас и в будущем их использовать не будет проблемой
Вы не поняли суть. Вам когда пришлось работать в проектах где такие вещи просто на просто не было, такие данные и в модель таблицы это вообще не предусмотрели?
А вы видели старые Легаси проекты где этого не было и вам пришлось сделать "не очень хорошую" решению чтобы ваша работа закончилась?
Можно подумать что структура не хороша но есть такие проекты где в структуре вообще не предусмотрели такие вещи.
А вы видели старые Легаси проекты где этого не было и вам пришлось сделать "не очень хорошую" решению чтобы ваша работа закончилась?
Это и есть протокол)
Вы хотите видеть прям как он хранится?
Так хранится в редисе) И через запросы эти данные)
Не понял вопрос)
Там же говорится что Redis используется для кеша и ивентов(pub/sub)
Можете ли помочь с корректной формулировкой?
RUG — сначала напиши рабочий код, затем постепенно выполняй рефакторинг и улучшения, пока не станет ясно, как правильно выделить и оформить абстракции.
Во-первых, это явно просто пример.
Во-вторых, что именно не так с тем, чтобы сохранить нужный ключ и назвать его так же, как его значение?
Если мы используем это значение в нескольких местах и нам важно явно понимать, с чем мы работаем, разве не логично дать ему именно такое имя?
Ты хочешь сказать, что всё должно называться по-разному, лишь бы было "смыслово отличимо"?
Какой бы дал имя для разных шлюз платежей?
Спасибо за объяснение и примеры — очень точно подмечено! Особенно понравилось сравнение с прогрессивным JPEG 😊
Можно сказать, что RUG как раз и подразумевает:
сначала сделай вещь, а потом — сделай правильную вещь, когда станет понятно, какой она должна быть.
Ну это всегда зависит от контекста:
Если там нет такого большого логики то это оправдано
Но если там будет подключится проверка с запросами в базу или ещё какое-то например алгоритмы то лучше эти вещи отдельно сделать
Но в целом согласен с вами
Я реально рад что кто то прочитал и критикует. Спасибо вам)
Я не приводил других примеров, потому что считал текущий достаточным. Возможно, добавлю ещё примеры позже.
RUG — это не про упрощение, а про то, чтобы позволить себе временные компромиссы, пока они не начнут негативно сказываться на коде.
SOLID — это не «чистый код». Почему?
Потому что Clean Code — это фундаментальный подход, применимый ко всем парадигмам программирования.
А SOLID — это специфический набор принципов, актуальный только для ООП.
Я говорил именно о чистом, понятном коде в целом, а не только об объектно-ориентированном.
Да, в примере используется ООП, но это не значит, что RUG должен обязательно сочетаться с SOLID.
RUG — независимый принцип.
Этот пример слишком мал и недостаточно проработан, чтобы его объективно критиковать.
Три варианта можно оставить, но повторения делают код уже трудночитаемым (появился условные параметры).
Применение паттерна Strategy улучшит читаемость.
Принцип KISS не поощряет дублирование — он говорит о необходимости упрощать код.
В каком контексте вы хотите применить принципы SOLID?
Согласен.