Я слышал, что люди много говорят о бизнес-логике на работе и в Интернете, и я прочитал несколько вопросов на этом сайте об этом, но этот термин все еще не имеет большого смысла для меня. Например, вот некоторые (перефразированные) утверждения, которые я часто вижу:
«Бизнес-логика - это часть вашей программы, которая кодирует реальные бизнес-правила». Большинство определений, которые я прочитал, являются круглыми, как это.
«Бизнес-логика - это все уникальное для вашего конкретного приложения». Я не понимаю, чем это отличается от «ваше конкретное приложение - не что иное, как бизнес-логика», если только мы случайно не заново изобрели набор колес, для которых мы могли бы использовать существующее стороннее программное обеспечение. Отсюда и название вопроса.
«Должен быть уровень бизнес-логики выше уровня доступа к данным и ниже уровня графического интерфейса». В коде, который я пишу, инициаторы доступа к базе данных должны знать, к каким данным они должны обращаться, и код пользовательского интерфейса должен знать много о том, что он отображает, чтобы правильно отображать его, и между ними действительно ничего не нужно делать. эти два места, кроме передачи больших двоичных данных между клиентом и сервером. Так что же на самом деле должно входить в уровень бизнес-логики?
«Бизнес-логика должна быть отделена от логики представления». Большинство запросов к функциям, которые мы получаем, должны изменить логику представления по деловым причинам. Если одно из бизнес-правил состоит в том, чтобы по умолчанию отображать цены государственных облигаций США в 32-й записи (при этом пользователь также может настраивать пользовательский интерфейс), логике представления необходимо, по крайней мере, знать, что это правило существует, если оно не реализовано полностью. Кроме того, похоже, что основная часть UX-дизайна помогает пользователю понять бизнес-правила, которые пытается реализовать наше программное обеспечение.
Возможно ли, что я на самом деле в команде, которая занимается только бизнес-логикой, а вся некоммерческая логика выполняется другими командами? Или вся концепция «бизнес-логики» как отдельной сущности применима только для определенных приложений или архитектур?
Чтобы конкретизировать ответы: представьте, что вам нужно переопределить приложение Domino's Pizza. Что такое бизнес-логика и какова не-бизнес-логика этого приложения? И как можно было бы поместить эту бизнес-логику для заказа пиццы в ее собственный «слой» кода, без того, чтобы большая часть информации о пицце перетекла на уровни доступа к данным и представления?
Обновление: я пришел к выводу, что моя команда, вероятно, делает 90% кода пользовательского интерфейса, и большая часть - но не все - того, что вы бы назвали бизнес-логикой, исходит от других команд или компаний. В основном наше приложение для мониторингафинансовые данные и почти все функции позволяют пользователям настраивать, какие данные они видят и как они их видят. Покупки или продажи не ведутся (хотя мы немного интегрируемся с другими приложениями нашей компании, которые это делают), а фактические данные поступают от множества внешних источников. Но мы разрешаем пользователям делать такие вещи, как отправка копий своих «мониторов» другим пользователям, поэтому детали того, как мы поступаем, вероятно, квалифицируются как бизнес-логика. На самом деле есть мобильное приложение, которое в настоящее время общается с некоторым из нашего внутреннего кода, и я точно знаю, какой частью нашего кода веб-интерфейса я хотел бы поделиться им с нашим пользовательским интерфейсом в идеальном мире (в основном это M в нашем квази-MVC), поэтому Я предполагаю, что это BLL для нас.
Я принимаю ответ user61852, поскольку он дал мне гораздо более конкретное понимание того, что «бизнес-логика» делает и не относится к ней.
Ответы:
Я дам вам несколько советов, касающихся CRUD- приложений, поскольку у меня нет большого опыта в играх или графически насыщенных приложениях:
источник
Похоже, что большая часть вашей работы может быть на уровне пользовательского интерфейса. Изменение формата отображения по деловым причинам не подразумевает никакой бизнес-логики. Изменение - это изменение логики представления.
Возможность изменения формата подразумевает некоторую бизнес-логику, которая может включать сохранение предпочтения.
Сохранение формата в cookie, также может быть реализовано на уровне представления.
Однако это может быть реализовано способом MVC. (Некоторые модели реализуют представление как собственный MVC, способный работать с предпочтениями.)
Сделайте обоснованное предположение о вашем заявлении.
Бизнес-логика обрабатывает такие вещи, как:
Если это сделано правильно, должна быть возможность предоставить несколько компонентов представления без изменения модели или бизнес-логики. Например, если текущим дизайном является веб-сайт, новый сервер представления для приложения iPhone или Android будет использовать существующую модель и бизнес-логику. Они могут вводить новые бизнес-функции для предоставления push-уведомлений при выполнении заказа, что может потребовать внесения изменений в несколько уровней.
Эта разбивка позволяет разделить проблемы.
источник