Вопрос, основанный на мнении: ваш вклад будет оценен!
Два застройщика находятся в одной комнате с исполнительным директором. Они обсуждают новый проект, который будет разработан с использованием Angular и API .NET Core. Проект будет представлять собой сложное приложение для хранения данных с множеством HTML-форм. Входные данные будут обработаны с помощью уровней проверки и бизнес-правил, прежде чем они будут сохранены в базе данных. Данные в конечном счете отображаются обратно в отчет и отправляются клиенту.
Исполнительный директор говорит: "мне нужно, чтобы мои расходы были низкими, и это должно быть легко поддерживать."
Разработчик 1 говорит: "Все наши формы должны быть построены динамически. Мы можем хранить поля формы в базе данных и динамически загружать их в форму во время рендеринга. Таким образом, когда вам нужно будет добавить новое поле в форму в будущем, сделайте это самостоятельно, посетив раздел администратора, выбрав форму и добавив ее через конфигурацию. Это будет дешевле для вас, чтобы поддержать в будущем."
Руководителю нравится то, что он говорит.
Разработчик 2 говорит: "хороший подход, разработчик 1, но все поля должны быть добавлены с помощью декларативного HTML в соответствующие формы. Делая это, мы получаем больше контроля над нашим макетом в наших представлениях. Кроме того, в соответствии с нашим подходом к разработке формы будут отправлять данные в конечные точки с привязками моделей в конечных точках API, которые ожидают объекты определенного типа. Затем эти объекты проходят через уровни проверки и бизнес-правил, которые кодируются для работы с различными атрибутами, прежде чем данные будут сохранены и в конечном итоге отправлены в отчет."
Это реальная ситуация, в которой я сейчас нахожусь. При подходе разработчика 1 я вижу следующие проблемы:
- Потеря точного контроля над позиционированием элементов в HTML-формах;
- Дополнительная сложность за счет динамического подхода;
- Понижение поведения связывателя модели по умолчанию и замена его сфальсифицированным связывателем модели с использованием отражения для наблюдения и привязки разнесенных значений формы;
-Потеря контроля над проверкой входных данных и обработкой пользовательских бизнес-правил;
Исполнительный директор говорит: "Да, но это звучит так, как будто это может быть труднее поддерживать"
Я согласен с руководителем, что затраты на разработку и минимальные затраты, связанные с будущим обслуживанием, должны быть приняты во внимание, но я не согласен с подходом разработчика 1.
Если бы вы участвовали в этом разговоре, что бы вы сказали? Мы ценим ваш вклад. Я поделюсь им со своей командой!
Что я уже пробовал:
Я успешно разрабатывал приложения в течение многих лет. Я хорошо разбираюсь в использовании шаблонов и следую рекомендуемым соглашениям программирования.
Это вопрос, основанный на мнении. Ваши отзывы будут ценны для меня, поскольку я подкрепляю свои мнения вашими профессиональными ответами. Мнения будут разделены с моей командой.
Опять же, это вопрос, основанный на мнении. Спасибо Вам за Ваш вклад/
Gerry Schmitz
Понижение поведения связывателя модели по умолчанию и замена его сфальсифицированным связывателем модели с использованием отражения для наблюдения и привязки разнесенных значений формы;
Я "развивался" в течение "многих лет" и никогда не слышал, чтобы люди говорили так; особенно "руководители"; и особенно в "начале "нового" проекта".
Звучит как "agile", то есть нет никакой осуществимости, анализа или дизайна, которые "диктовали бы" подход, который нужно принять.
(На самом деле, у меня был кто-то, кто говорил так; к счастью, я был лидером команды и смог отменить их. Еще один фактор риска, который в то время был неприемлем. Остерегайтесь кровоточащего края.)