All streams
Search
Write a publication
Pull to refresh
-6
0
Bobur Abdullayev @BoburF

Backend Developer

Send message

А вот этого CONSTRAINT не должно быть. В развитие ПО может появиться и другие флаги.

По этому лучше вообще отказаться от простых флагов и использовать рекомендованные структуры который подходить и сейчас и в будущем их использовать не будет проблемой

Вы не поняли суть. Вам когда пришлось работать в проектах где такие вещи просто на просто не было, такие данные и в модель таблицы это вообще не предусмотрели?

А вы видели старые Легаси проекты где этого не было и вам пришлось сделать "не очень хорошую" решению чтобы ваша работа закончилась?

Можно подумать что структура не хороша но есть такие проекты где в структуре вообще не предусмотрели такие вещи.

А вы видели старые Легаси проекты где этого не было и вам пришлось сделать "не очень хорошую" решению чтобы ваша работа закончилась?

export const box = SchemaBuilder.schemaDefinition({
    index: SchemaBuilder.number32(),
    value: SchemaBuilder.string(),
});

Это и есть протокол)

Вы хотите видеть прям как он хранится?

00 00 00 10
00 00 00 00 00 00 00 01
62

Так хранится в редисе) И через запросы эти данные)

Не понял вопрос)

Там же говорится что Redis используется для кеша и ивентов(pub/sub)

Можете ли помочь с корректной формулировкой?

RUG — сначала напиши рабочий код, затем постепенно выполняй рефакторинг и улучшения, пока не станет ясно, как правильно выделить и оформить абстракции.

Во-первых, это явно просто пример.

Во-вторых, что именно не так с тем, чтобы сохранить нужный ключ и назвать его так же, как его значение?
Если мы используем это значение в нескольких местах и нам важно явно понимать, с чем мы работаем, разве не логично дать ему именно такое имя?

Ты хочешь сказать, что всё должно называться по-разному, лишь бы было "смыслово отличимо"?

Какой бы дал имя для разных шлюз платежей?

Спасибо за объяснение и примеры — очень точно подмечено! Особенно понравилось сравнение с прогрессивным JPEG 😊

Можно сказать, что RUG как раз и подразумевает:
сначала сделай вещь, а потом — сделай правильную вещь, когда станет понятно, какой она должна быть.

Ну это всегда зависит от контекста:
Если там нет такого большого логики то это оправдано
Но если там будет подключится проверка с запросами в базу или ещё какое-то например алгоритмы то лучше эти вещи отдельно сделать

Но в целом согласен с вами

Я реально рад что кто то прочитал и критикует. Спасибо вам)

Я не приводил других примеров, потому что считал текущий достаточным. Возможно, добавлю ещё примеры позже.

RUG — это не про упрощение, а про то, чтобы позволить себе временные компромиссы, пока они не начнут негативно сказываться на коде.

SOLID — это не «чистый код». Почему?
Потому что Clean Code — это фундаментальный подход, применимый ко всем парадигмам программирования.
А SOLID — это специфический набор принципов, актуальный только для ООП.

Я говорил именно о чистом, понятном коде в целом, а не только об объектно-ориентированном.
Да, в примере используется ООП, но это не значит, что RUG должен обязательно сочетаться с SOLID.
RUG — независимый принцип.

  1. Этот пример слишком мал и недостаточно проработан, чтобы его объективно критиковать.

  2. Три варианта можно оставить, но повторения делают код уже трудночитаемым (появился условные параметры).
    Применение паттерна Strategy улучшит читаемость.

  3. Принцип KISS не поощряет дублирование — он говорит о необходимости упрощать код.

  4. В каком контексте вы хотите применить принципы SOLID?

  5. Согласен.

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