Я полагаю, что у большинства разработчиков есть идея многоуровневой архитектуры. У нас есть DAL (уровень доступа к данным), у нас BLL (уровень бизнес-логики), а где-то ближе к концу пути у нас есть наш интерфейс. Если у вас есть проект, который каким-то образом следует этим принципам, вы держите (или, по крайней мере, пытаетесь) сохранить/поместить вещи, где они концептуально принадлежат? Меня особенно интересуют приложения крупных компаний, где вы работаете вместе со многими другими людьми. Ясно, что вы можете делать все, что захотите, с помощью своего частного игрушечного проекта, изобретать любую архитектуру и придерживаться ее. Это не так просто с большими проектами, в которых много людей вносило вклад в программное обеспечение или общий беспорядок.
Например, мне показалось, что такие вещи, как компоненты пользовательского интерфейса, поступают непосредственно в базу данных, чтобы получить некоторые "отсутствующие" дополнительные данные, которые BL не предоставляет, а также UI и BL, работающие с элементами низкого уровня, такими как поля таблицы, где, на мой взгляд они должны делегировать эти операции на более низкий уровень, а именно DAL. Было особенно печально, когда, обсудив вещи со старшим разработчиком, я увидел, что он вообще не видит проблемы с этим.
Мы можем, конечно, принять меня, и кто бы ни разделял мою точку зрения, просто являются перфекционистами, но я ясно видел очень неблагоприятное последствие в том, что мне потребовались длительные периоды времени в некоторых моих задачах, чтобы проследить все "параллельные", маршруты, по которым данные перемещаются в базу данных и из нее, а также для определения того, кто и на каком пути теперь может повлиять на новую функциональность, которую я реализовал. То, как я это вижу, это увеличение расходов на дальнейшее развитие/обслуживание с избыточным весом, когда кто-то решил быстро взломать материал и как можно скорее закрыть задачу.
Вы проекты "чистые" или отказались от идеи сохранить четкую линию между слоями давным-давно? Если вы все еще держите это правильно, как вы относитесь к коллегам, которые не понимают этих вещей или не заботятся о том, чтобы они просто строили "пользовательские" решения и хакерские хаки все время? Или в какой-то момент вы перестали сражаться с ветряной мельницей и приняли ее как свое наказание? EDIT: Несколько удивил, что не многие люди заинтересовались проблемой. Значит ли это, что больше всего не важно?