Michael Joseph Lukatchik Ответов: 1

Вопрос, основанный на мнении: ваш вклад будет оценен!


Два застройщика находятся в одной комнате с исполнительным директором. Они обсуждают новый проект, который будет разработан с использованием Angular и API .NET Core. Проект будет представлять собой сложное приложение для хранения данных с множеством HTML-форм. Входные данные будут обработаны с помощью уровней проверки и бизнес-правил, прежде чем они будут сохранены в базе данных. Данные в конечном счете отображаются обратно в отчет и отправляются клиенту.

Исполнительный директор говорит: "мне нужно, чтобы мои расходы были низкими, и это должно быть легко поддерживать."

Разработчик 1 говорит: "Все наши формы должны быть построены динамически. Мы можем хранить поля формы в базе данных и динамически загружать их в форму во время рендеринга. Таким образом, когда вам нужно будет добавить новое поле в форму в будущем, сделайте это самостоятельно, посетив раздел администратора, выбрав форму и добавив ее через конфигурацию. Это будет дешевле для вас, чтобы поддержать в будущем."

Руководителю нравится то, что он говорит.

Разработчик 2 говорит: "хороший подход, разработчик 1, но все поля должны быть добавлены с помощью декларативного HTML в соответствующие формы. Делая это, мы получаем больше контроля над нашим макетом в наших представлениях. Кроме того, в соответствии с нашим подходом к разработке формы будут отправлять данные в конечные точки с привязками моделей в конечных точках API, которые ожидают объекты определенного типа. Затем эти объекты проходят через уровни проверки и бизнес-правил, которые кодируются для работы с различными атрибутами, прежде чем данные будут сохранены и в конечном итоге отправлены в отчет."

Это реальная ситуация, в которой я сейчас нахожусь. При подходе разработчика 1 я вижу следующие проблемы:

- Потеря точного контроля над позиционированием элементов в HTML-формах;
- Дополнительная сложность за счет динамического подхода;
- Понижение поведения связывателя модели по умолчанию и замена его сфальсифицированным связывателем модели с использованием отражения для наблюдения и привязки разнесенных значений формы;
-Потеря контроля над проверкой входных данных и обработкой пользовательских бизнес-правил;

Исполнительный директор говорит: "Да, но это звучит так, как будто это может быть труднее поддерживать"

Я согласен с руководителем, что затраты на разработку и минимальные затраты, связанные с будущим обслуживанием, должны быть приняты во внимание, но я не согласен с подходом разработчика 1.

Если бы вы участвовали в этом разговоре, что бы вы сказали? Мы ценим ваш вклад. Я поделюсь им со своей командой!

Что я уже пробовал:

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

Это вопрос, основанный на мнении. Ваши отзывы будут ценны для меня, поскольку я подкрепляю свои мнения вашими профессиональными ответами. Мнения будут разделены с моей командой.

Опять же, это вопрос, основанный на мнении. Спасибо Вам за Ваш вклад/

Gerry Schmitz

Понижение поведения связывателя модели по умолчанию и замена его сфальсифицированным связывателем модели с использованием отражения для наблюдения и привязки разнесенных значений формы;

Я "развивался" в течение "многих лет" и никогда не слышал, чтобы люди говорили так; особенно "руководители"; и особенно в "начале "нового" проекта".

Звучит как "agile", то есть нет никакой осуществимости, анализа или дизайна, которые "диктовали бы" подход, который нужно принять.

(На самом деле, у меня был кто-то, кто говорил так; к счастью, я был лидером команды и смог отменить их. Еще один фактор риска, который в то время был неприемлем. Остерегайтесь кровоточащего края.)

1 Ответов

Рейтинг:
1

OriginalGriff

Мое мнение? Убирайтесь из компании как можно быстрее, прежде чем начнете говорить в том же духе.

Не имеет значения, в какую сторону они пойдут, это будет проект кластера-f***, если эти трое будут вовлечены ...


Maciej Los

Полностью согласен!