@beginer123

Как понять какие вещи в программе налдо универсализировать?

Что я имею ввиду?
Для наглядонсти:
допустим надо получить цену квартиры
Вроде все просто храним price и выводим
НО
-что если нам понадобиться выводить за кв метр?
-что если надо будет выводить в разных валютах?(тогда надо переделывать БД под разные валюты)
-что если возможно будут скидки и надо будет ыводить полную и неполную цену
Это я привел всего лишь пример, вопрос не про него, а про ситуацию вообще
Как понять какие части кода надо делать универсальные а какие жеско прописывать?
При том что клиент не знает допустим будут у него другие валюты и т.д
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ответы на вопрос 4
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Совокупное значение (значение, образующееся по формуле из конечных/единичных) максимально дробим до единичных составляющих вариативных/зависимых параметров и для всех параметров создаём столбцы в БД (из чего складывается стоимость и сколько стоит одна часть) и проверяем правильность и полноту её содержания у заказчика.
2. Если параметров может быть несколько - создаём отдельную таблицу с ID-шниками для нескольких параметров и туда заносим их значения (например, валютные курсы, градации качества чего-либо, различные цвета и т.д.).
Ответ написан
Комментировать
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Это я привел всего лишь пример, вопрос не про него, а про ситуацию вообще
Как понять какие части кода надо делать универсальные а какие жеско прописывать?
Если это не социальная сеть, где трафик исчисляется петабайтами, а нагрузка на базу - тысячами запросов в секунду, то наиболее рациональное решение в подобных вопросах, на мой взгляд, давно было найдено и называется оно ООП, в т.ч. для обработки данных, во многих системах (например, фреймворках) присутствует такая сущность как объект (или "модель" если угодно), в которую Вы без особого труда можете добавить новое свойство, рассчитываемое динамически. Это отлично работает в большинстве случаев.

Другой пример решения подобных "проблем" - на уровне БД (я подозреваю, что речь про хранение данных в текстовых файлах не идёт?), например, в той же MySQL (всем до боли знакомой) есть механизм "виртуальных колонок", который решает проблему и с валютами (при должном желании) и с ценой за кв.м. и так далее. Ещё более простой вариант, который существует, наверное, во всех РСУБД - использовать VIEWS, дополняя его новыми значенями по мере необходимости, ещё вариант - создать триггер на INSERT/UPDATE и добавить новую колонку, значение которой будет вычисляться автоматически.

Ну и т.д., примеров масса, но, как верно подметил предыдущий оратор - всё зависит от конкретного случая и универсального инструмента ни для решения подобных задач, ни для проведения строительных работ (как пример) - пока не придумали. Какие-то задачи лучше решаются "молотком", какие-то "дрелью"...
Ответ написан
Комментировать
lxsmkv
@lxsmkv
Test automation engineer
Наверное общее правило такое: "если значение от чего-то зависит, нужно делать его гибким".
Ответ написан
Комментировать
andrew-r
@andrew-r
Фронтенд-разработчик

Как понять какие части кода надо делать универсальные а какие жеско прописывать?


Если вы только начинаете делать проект и есть некоторая степень неопределённости, не стоит гнаться за универсальностью. Лучше «жёстко прописать» правила и даже продублировать в некоторых местах код, чем преждевременно сделать универсальное решение, которое в будущем окажется неподходящим. Когда проект проживёт какое-то время и требования более-менее устаканятся, вы поймёте, какие части проекта можно сделать универсальными.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы