count create all = 35700date create all = 16th March 2015
4th December 2015
/ 12 21
|
Разумеется правильного ответа никто не знает. Но два самые главные пользы следующие:
1. УПРОЩЕНИЕ ПОНИМАНИЯ ЧЕЛОВЕКОМ
2. ЛОКАЛИЗАЦИЯ ВЛИЯНИЯ КОДА
1. Упрощение понимания — человеком. Ведь наш, человеческий, язык так и устроен. Помните шутку про «утку»?
Что такое «стул»? «Вот это стул, на нем сидят». Это одновременно и поведение, и предмет.
Человек привык обозначать _класс предметов схожего поведения_ одним словом, которое определяет его поведение.
Что же удивительного в том, что эта практика перекочевала в программирование?
Ведь гораздо проще рассуждать о стеке, чем об «этом наборе данных и кода, который отдает первым последний занесенный объект».
Давайте представим себе неправильную разработку приложения. Например, есть структура с данными пользователя и есть структура записи журнала. При сохранении на диск с ними нужно работать одинаково — рассматривать их как непрерывный блок данных. Однако, эта работа не была проделана. Не было ВЫЯВЛЕНО ПОВЕДЕНИЕ. Значит в любом месте у нас дублируется код записи в файл, системные вызовы и т.д.
|
2. Локализация влияния.
Начинаем расширять — хотим транзакционную запись. Как быть? Ее нужно прикрутить ее _ко всем местам_, где есть запись на диск.
И т.д. Через какое-то время расширение приложения становится СЛИШКОМ дорогостоящим. Получаем то, что называют «монолитное приложение». Это плохо, вроде бы все это понимают.
Внимание — вопрос. А что является «антимонолитным» приложением? Остановитесь, подумайте. Какая она — идеальная архитектура?
Все просто — она легко РАСШИРЯЕТСЯ в рамках поставленных задач.
Как этого достичь?
Правильный ответ такой — нужно выделить одинаковое поведение и запрограммировать его в одном месте.
Следующий вопрос — одинаковое поведение «чего»? Компонента, класса, объекта? А это важно?
|
Link
WWW+Programming
HTML SQL Geo:Geo:Europe & USA & World
|
|