Re[14]: Как правильно выполнять декомпозицию задачи?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 05:54
Оценка:
Здравствуйте, Ikemefula, Вы писали:

G>>То есть до этого таки сначала нужны задачи?

I>У заказчика. Без них он к тебе не пойдет. Что бы понять, что он от тебя хочет, тебе надо начинать с модели предметной области. Грубо говря — начать вникать в его специфику.
То есть сначала ты все таки получишь от заказчика задачи, а потом будешь троить модель предметной области?

G>>То есть задачи являются необходимым условием для модели (любой)?

I>Конечно.
Ну вот, значит сначала тебе нужны функции, а потом модель.

G>>А теперь внимание: задачи не являются достаточным условием для модели предметной области. Также модель предметной области не является необходимым условием для задач.

I>Чушь. Без модели ты вообще ничего сделать не можешь.
Ты "моделью" называешь вообще любые данные? Ну тогда ты прав.
А если рассматривать "модель предметной области" по эвансу, то нафиг она не нужна.


G>>Кратко задачи => модель != (в общем случае) модель предметной области

G>>Ну как-бы первую импликацию ты и сам только что сказал, осталось тебе согласиться со вторым неравенством.
I>Я не понял что ты здесь хотел сказать.
Ботай матлогику.

I>>>Полного соответсвия не нужно. Полное несоответсвие делает невозможным решение задач.

G>>А меня вообще это соответствие не интересует, понимаешь? Это лишняя для меня информация.
I>А нахрена ты уточняешь термины если тебя соответствие не волнует ?
Какие термины?

I>>>Наоборот — я дал тебе другую задачу, что бы ты понял, насколько важны термины.

G>>
G>>А оказалось — не важны. Особенно там где дело касается выходных данных термины могут быть даже вредны.
I>Ага, с незнакомыми терминами ты ничего придумать не смог. Как только появились знакомые — сразу и вопросы конкретные появились.
Конечно, мне не термины нужны, а данные с которыми работают алгоритмы.
А ты зачем-то пытаешься терминами заменить понимание этих данных.


I>>>Вот эти детали и есть модель предметной области.

G>>Ну если ты любые данные называешь предметной областью, то ты прав. А я не так называю и ты неправ
I>Предметная облсть это совокупность всех знаний. Модель — это часть необходимая для решения конкретной задачи.
Я говорю про "модель предметной области по эвансу", а не про модель вообще.
Мы же всетаки код пишем, нам нужен формальный подход к этому процессу.

I>>>Не будет. Минимальный набор слов в словаре — для описания модели данных. Максимальный — для описания всех функций системы.

I>>>Вот это — Эванс. А то что ты вычитал — фигня
G>>Ну так покажи в его книге это утверждение? У всех апологетов ddd я встречаю такое первый раз.
I>В первых двух главах он говорит про это.
Номер страницы, абзаца.


G>>Но это и не важно. Суть вопроса не в том что такое модель предметной области, а как ты с ней работаешь создавая программу.

G>>А вот тут DDD сосет как промышленный пылесос, потому что создает сложности на пустом месте.
I>Не знаю кто чего сосёт, но ты пока проделал ровно то же что и Эванс в первой главе например. Только у него это ДДД, а у тебя "ДДД сосёт".
Где это я построил модель предметной области в виде диаграмм классов со связями?
Эванс первые несколько абзацев уделяет модели предметной области, не говоря о функциях вообще.
Не надо мне приписывать то что я не делаю.
Re[15]: Как правильно выполнять декомпозицию задачи?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 09:41
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

I>>У заказчика. Без них он к тебе не пойдет. Что бы понять, что он от тебя хочет, тебе надо начинать с модели предметной области. Грубо говря — начать вникать в его специфику.

G>То есть сначала ты все таки получишь от заказчика задачи, а потом будешь троить модель предметной области?

Конечно. Если у заказчика задач не появится, с чего бы ему к разработчику идти ?

G>>>То есть задачи являются необходимым условием для модели (любой)?

I>>Конечно.
G>Ну вот, значит сначала тебе нужны функции, а потом модель.

Ты уже показал, как можно описать функции не зная модели

Пока ты не скажешь мне хотя бы приблизительно, что такое Cost Based Mesh Design для SONET, твоим словам верить нельзя.

Если тебе не нужны ни термины, ни модель — покажи это на деле, задача не сложнее той что c Ethernet.

Но ты уже сказал, что ничего не понятно.

А что бы стало понятно, тебе надо взять и вкуривать предметную область.

G>>>А теперь внимание: задачи не являются достаточным условием для модели предметной области. Также модель предметной области не является необходимым условием для задач.

I>>Чушь. Без модели ты вообще ничего сделать не можешь.
G>Ты "моделью" называешь вообще любые данные? Ну тогда ты прав.
G>А если рассматривать "модель предметной области" по эвансу, то нафиг она не нужна.

Конечно, ведь есть хороший выход — дергать заказчика каждые пять минут на протяжении всей разработки.

I>>>>Полного соответсвия не нужно. Полное несоответсвие делает невозможным решение задач.

G>>>А меня вообще это соответствие не интересует, понимаешь? Это лишняя для меня информация.
I>>А нахрена ты уточняешь термины если тебя соответствие не волнует ?
G>Какие термины?

Те самые.

I>>Ага, с незнакомыми терминами ты ничего придумать не смог. Как только появились знакомые — сразу и вопросы конкретные появились.

G>Конечно, мне не термины нужны, а данные с которыми работают алгоритмы.
G>А ты зачем-то пытаешься терминами заменить понимание этих данных.

Одних данных мало. Кто будет за тебя функционал разрабатывать ? Будешь к заказчику бегать каждые пять минут ?

G>Я говорю про "модель предметной области по эвансу", а не про модель вообще.


Нет никакой специальной модели по эвансу.

G>Мы же всетаки код пишем, нам нужен формальный подход к этому процессу.


Вот и он говорит про это.

G>>>Ну так покажи в его книге это утверждение? У всех апологетов ddd я встречаю такое первый раз.

I>>В первых двух главах он говорит про это.
G>Номер страницы, абзаца.

Просто возьми и перечитай.

G>>>А вот тут DDD сосет как промышленный пылесос, потому что создает сложности на пустом месте.

I>>Не знаю кто чего сосёт, но ты пока проделал ровно то же что и Эванс в первой главе например. Только у него это ДДД, а у тебя "ДДД сосёт".
G>Где это я построил модель предметной области в виде диаграмм классов со связями?

А ты прочти внимательно диалог.

G>Эванс первые несколько абзацев уделяет модели предметной области, не говоря о функциях вообще.


А когда он говорит про прозванивание цепи, это что по твоему ?

G>Не надо мне приписывать то что я не делаю.


Да ты сам не знаешь чего делаешь

Все твои рассуждения сводятся примерно к следующим — можно написать программу для игры в шахматы, не зная правил игры в шахматы.
Re[14]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 09:44
Оценка:
Здравствуйте, gandjustas, Вы писали:

I>>Да, пока заказчик не пришел к тебе, ты про него ничего не знаешь.

I>>Как только он раскрыл рот, тебе надо строить модель предметной области, иначе ты вряд ли поймешь заказчика.
G>Это голословное утверждение тебе еще не удалось доказать. При любой попытке доказательства ты скатываешь к тому что сначала нужны функции, о чем тебе тут и говорят.

По моему очень неплохо получилось доказать, ты ведь так и не родил ничего для Cost Based Mesh Design для SONET и сказал что тебе непонятно ?

Дальше я скипнул, ибо стало скучно. Как сможешь родить что нибудь про Cost Based Mesh Design для SONET без знаний в предметной области, приходи.
Re[16]: Как правильно выполнять декомпозицию задачи?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 10:18
Оценка:
Здравствуйте, Ikemefula, Вы писали:


G>>>>А теперь внимание: задачи не являются достаточным условием для модели предметной области. Также модель предметной области не является необходимым условием для задач.

I>>>Чушь. Без модели ты вообще ничего сделать не можешь.
G>>Ты "моделью" называешь вообще любые данные? Ну тогда ты прав.
G>>А если рассматривать "модель предметной области" по эвансу, то нафиг она не нужна.

I>Конечно, ведь есть хороший выход — дергать заказчика каждые пять минут на протяжении всей разработки.

А разве эванс не пишет тоже самое, называя представителей заказчика Domain Experts?

Если что подход к анализу одинаковый. А вот подход к проектированию разный.
Можно начинать с функций, как показывает Лебедев, можно с "модели предметной области", а по сути с какого-то представления о данных, как говорит эванс.
Если первый путь ведет к хорошим приложениям, с правильной структурой, то к чему ведет второй путь непонятно.

I>>>>>Полного соответсвия не нужно. Полное несоответсвие делает невозможным решение задач.

G>>>>А меня вообще это соответствие не интересует, понимаешь? Это лишняя для меня информация.
I>>>А нахрена ты уточняешь термины если тебя соответствие не волнует ?
G>>Какие термины?
I>Те самые.
А чего ты прицепился к терминам. Мы тут анализ не рассматриваем а рассматриваем проектирование. В проектировании абсолютно пофиг на термины, можно свои произвольные выдумать. Термины могут понадобится если человеческим языком требования выразить сложно.


I>>>Ага, с незнакомыми терминами ты ничего придумать не смог. Как только появились знакомые — сразу и вопросы конкретные появились.

G>>Конечно, мне не термины нужны, а данные с которыми работают алгоритмы.
G>>А ты зачем-то пытаешься терминами заменить понимание этих данных.
I>Одних данных мало.
С чего ты взял?

I>Кто будет за тебя функционал разрабатывать ?

Так у меня уже есть описание функционала. У меня данные не из воздуха появляются, а из того самого описания функций (функциональной модели если угодно).

G>>Я говорю про "модель предметной области по эвансу", а не про модель вообще.

I>Нет никакой специальной модели по эвансу.
"Модель по эвансу" это некоторые артефакты, создаваемые определенным процессом с определенными целями, которые описаны в книге эванса.
Так понятнее?

G>>Мы же всетаки код пишем, нам нужен формальный подход к этому процессу.

I>Вот и он говорит про это.
Он говорит о том что сначала рисуется модель (в прямом смысле). Потом берет одну из функций, не уточняя что на самом деле надо на входе и на выходе и пытается её натянуть на модель.

Лебедев говорит что сначала берем функции, получаем структуры данных с которыми эти функции удобнее всего будет реализовать. Вот как раз в этом месте теряется связь с этой самой предметной областью.
Как бы ты не представлял себе предметную область графических редакторов, те функции которые определены в статье решаются проще всего именно полученной моделью данных.

G>>Эванс первые несколько абзацев уделяет модели предметной области, не говоря о функциях вообще.

I>А когда он говорит про прозванивание цепи, это что по твоему ?
А вот даже не знаю. Серьезно.
Не вижу я юзкейса прозванивания цепи, зачем эта функция нужна пользователю?

I>Все твои рассуждения сводятся примерно к следующим — можно написать программу для игры в шахматы, не зная правил игры в шахматы.


Ты видишь исключительно то что хочешь.
Последний раз повторю: чтобы написать программу для игры в шахматы нужно знать шахматы настолько насколько необходимо для этой программы.
Причем заранее про шахматы знать не обязательно, а чтобы определить сколько необходимо знаний потребуется построить функциональную модель.
А вот для построения функциональной модели действительно правил игры в шахматы знать необязательно.
Re[15]: Проектирование классов
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 10:21
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


I>>>Да, пока заказчик не пришел к тебе, ты про него ничего не знаешь.

I>>>Как только он раскрыл рот, тебе надо строить модель предметной области, иначе ты вряд ли поймешь заказчика.
G>>Это голословное утверждение тебе еще не удалось доказать. При любой попытке доказательства ты скатываешь к тому что сначала нужны функции, о чем тебе тут и говорят.

I>По моему очень неплохо получилось доказать, ты ведь так и не родил ничего для Cost Based Mesh Design для SONET и сказал что тебе непонятно ?

I>Дальше я скипнул, ибо стало скучно. Как сможешь родить что нибудь про Cost Based Mesh Design для SONET без знаний в предметной области, приходи.
Ты кидаешься терминами, не пытаясь указать функции. Короче выкручивашься как можешь.

Последний вопрос. Ты счташь что надо заниматься построением предметной области до того как ты узнаешь какие функции требуются от программы или нет?
Однозначный ответ да или нет.
Re[16]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 10:56
Оценка:
Здравствуйте, gandjustas, Вы писали:

I>>По моему очень неплохо получилось доказать, ты ведь так и не родил ничего для Cost Based Mesh Design для SONET и сказал что тебе непонятно ?

I>>Дальше я скипнул, ибо стало скучно. Как сможешь родить что нибудь про Cost Based Mesh Design для SONET без знаний в предметной области, приходи.
G>Ты кидаешься терминами, не пытаясь указать функции. Короче выкручивашься как можешь.

Ты даже понять не можешь, что функция указана более чем явно и при этом утверждаешь что понимать и не нужно

G>Последний вопрос. Ты счташь что надо заниматься построением предметной области до того как ты узнаешь какие функции требуются от программы или нет?

G>Однозначный ответ да или нет.

Да, для того, что бы понять о чем речь. см пример выше
Re[17]: Как правильно выполнять декомпозицию задачи?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 11:08
Оценка:
Здравствуйте, gandjustas, Вы писали:

I>>Конечно, ведь есть хороший выход — дергать заказчика каждые пять минут на протяжении всей разработки.

G>А разве эванс не пишет тоже самое, называя представителей заказчика Domain Experts?

Для посмотрение модели так и нужно. А потом уже без этого можно ехать.

G>Если что подход к анализу одинаковый. А вот подход к проектированию разный.

G>Можно начинать с функций, как показывает Лебедев, можно с "модели предметной области", а по сути с какого-то представления о данных, как говорит эванс.
G>Если первый путь ведет к хорошим приложениям, с правильной структурой, то к чему ведет второй путь непонятно.

Очевидно, к хорошим приложениям, с правильной структурой.

I>>>>>>Полного соответсвия не нужно. Полное несоответсвие делает невозможным решение задач.

G>>>>>А меня вообще это соответствие не интересует, понимаешь? Это лишняя для меня информация.
I>>>>А нахрена ты уточняешь термины если тебя соответствие не волнует ?
G>>>Какие термины?
I>>Те самые.
G>А чего ты прицепился к терминам. Мы тут анализ не рассматриваем а рассматриваем проектирование. В проектировании абсолютно пофиг на термины, можно свои произвольные выдумать.

Вобщем поскольку у нас с тобой тут взгляды противоположные, то дальше продолжать смысла нет.

Спасибо за потраченое время.
Re[17]: Проектирование классов
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 11:26
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


I>>>По моему очень неплохо получилось доказать, ты ведь так и не родил ничего для Cost Based Mesh Design для SONET и сказал что тебе непонятно ?

I>>>Дальше я скипнул, ибо стало скучно. Как сможешь родить что нибудь про Cost Based Mesh Design для SONET без знаний в предметной области, приходи.
G>>Ты кидаешься терминами, не пытаясь указать функции. Короче выкручивашься как можешь.

I>Ты даже понять не можешь, что функция указана более чем явно и при этом утверждаешь что понимать и не нужно

Еще раз. Функция это входыне данные, выходные данные и некоторые преобразования над ними.
Ты не указываешь ни входных, ни выходных данных.

Давай ченить более приземленное, чтобы понятно было всем. Тебе говорят "создать сайт", какие функции или какую предметную область ты видишь в такой постановке?

G>>Последний вопрос. Ты счташь что надо заниматься построением предметной области до того как ты узнаешь какие функции требуются от программы или нет?

G>>Однозначный ответ да или нет.
I>Да, для того, что бы понять о чем речь. см пример выше
Ок, вот тебе пример выше про сайт. Можешь взять пример из статьи Лебедева, про графический редактор.
Покажи как спроектировать то что нужно начиная с модели предметной области. Хотябы начни.
Re[18]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 11:59
Оценка:
Здравствуйте, gandjustas, Вы писали:

I>>Ты даже понять не можешь, что функция указана более чем явно и при этом утверждаешь что понимать и не нужно

G>Еще раз. Функция это входыне данные, выходные данные и некоторые преобразования над ними.
G>Ты не указываешь ни входных, ни выходных данных.

Смотри, насколько всё просто:

var SONET(1) = CostBasedMeshDesign(SONET(0));

Очевидно, что понятнее тебе не стало и тебе надо погружаться в предметную область.

G>Давай ченить более приземленное, чтобы понятно было всем. Тебе говорят "создать сайт", какие функции или какую предметную область ты видишь в такой постановке?


Пока что здесь слово сайт, которое обладает вполне конкретным смыслом. Этот смысл я и буду прояснять, вдруг, например, окажется, что сайт это не веб-сайт

Вот если это окажется "Веб-сайт" то это уже предполагает кое какие функции — показ контента в некоторой сети, предоставление некоторых возможностей и тд. Соответсвенно у меня сразу появляется N уточняющих вопросов, т.к. базовые сведения про веб-сайты у меня уже есть.
И если заказчик не будет утаивать от меня сведения, то я вытащу из него все что ему надо, попутно выясняя значения неизвестных мне слов.

I>>Да, для того, что бы понять о чем речь. см пример выше

G>Ок, вот тебе пример выше про сайт. Можешь взять пример из статьи Лебедева, про графический редактор.
G>Покажи как спроектировать то что нужно начиная с модели предметной области. Хотябы начни.

В таких простых примерах модель передается _неявно_. Она как правило всем известна и только поэтому никто не задумывается об этом как о модели.

В таких случаях думают только о конкретной модели данных, т.е. о срезе модели и о функциональной модель, т.е. обратно о срезе.
Re[19]: Проектирование классов
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 14:24
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


I>>>Ты даже понять не можешь, что функция указана более чем явно и при этом утверждаешь что понимать и не нужно

G>>Еще раз. Функция это входыне данные, выходные данные и некоторые преобразования над ними.
G>>Ты не указываешь ни входных, ни выходных данных.

I>Смотри, насколько всё просто:

I>var SONET(1) = CostBasedMeshDesign(SONET(0));
I>Очевидно, что понятнее тебе не стало и тебе надо погружаться в предметную область.
Запомним это.

G>>Давай ченить более приземленное, чтобы понятно было всем. Тебе говорят "создать сайт", какие функции или какую предметную область ты видишь в такой постановке?


I>Пока что здесь слово сайт, которое обладает вполне конкретным смыслом. Этот смысл я и буду прояснять, вдруг, например, окажется, что сайт это не веб-сайт



I>Вот если это окажется "Веб-сайт" то это уже предполагает кое какие функции — показ контента в некоторой сети, предоставление некоторых возможностей и тд. Соответсвенно у меня сразу появляется N уточняющих вопросов, т.к. базовые сведения про веб-сайты у меня уже есть.

Ну давай свои вопросы.

I>И если заказчик не будет утаивать от меня сведения, то я вытащу из него все что ему надо, попутно выясняя значения неизвестных мне слов.

А ты собственно и занимаешься утаиванием сведений, пряча их за терминологией.
Если бы ты был заинтересован в решении своих проблем, то не стал бы так поступать.


I>>>Да, для того, что бы понять о чем речь. см пример выше

G>>Ок, вот тебе пример выше про сайт. Можешь взять пример из статьи Лебедева, про графический редактор.
G>>Покажи как спроектировать то что нужно начиная с модели предметной области. Хотябы начни.

I>В таких простых примерах модель передается _неявно_. Она как правило всем известна и только поэтому никто не задумывается об этом как о модели.

Ок, опиши неявную модель графического редактора.
Re[20]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 14:43
Оценка:
Здравствуйте, gandjustas, Вы писали:

I>>Вот если это окажется "Веб-сайт" то это уже предполагает кое какие функции — показ контента в некоторой сети, предоставление некоторых возможностей и тд. Соответсвенно у меня сразу появляется N уточняющих вопросов, т.к. базовые сведения про веб-сайты у меня уже есть.

G>Ну давай свои вопросы.

Предположим, я ничего не знаю про сайты и тд.

Вопрос — что такое сайт про который ты говоришь ? У меня на бумаге уже строится модель — квадратик, с подписью "сайт ?" и стрелочка ведет пока в троеточие.

Почти как у Эванса, только у него было два квадрата.

I>>И если заказчик не будет утаивать от меня сведения, то я вытащу из него все что ему надо, попутно выясняя значения неизвестных мне слов.

G>А ты собственно и занимаешься утаиванием сведений, пряча их за терминологией.
G>Если бы ты был заинтересован в решении своих проблем, то не стал бы так поступать.

Ты говоришь, что тебе не нужны знания по предметной области. Вот я тебе ничего и не сообщаю.

I>>В таких простых примерах модель передается _неявно_. Она как правило всем известна и только поэтому никто не задумывается об этом как о модели.

G>Ок, опиши неявную модель графического редактора.

Зачем ? Это сделал Лебедев, только задом наперёд.
Re[21]: Проектирование классов
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 15:01
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


I>>>Вот если это окажется "Веб-сайт" то это уже предполагает кое какие функции — показ контента в некоторой сети, предоставление некоторых возможностей и тд. Соответсвенно у меня сразу появляется N уточняющих вопросов, т.к. базовые сведения про веб-сайты у меня уже есть.

G>>Ну давай свои вопросы.

I>Предположим, я ничего не знаю про сайты и тд.


I>Вопрос — что такое сайт про который ты говоришь ? У меня на бумаге уже строится модель — квадратик, с подписью "сайт ?" и стрелочка ведет пока в троеточие.


"Да, хочу чтобы на сайте были новости, контакты, еще там картинки и чтобы я все мог поменять" (я такое слышал от одного из заказчиков).

I>>>В таких простых примерах модель передается _неявно_. Она как правило всем известна и только поэтому никто не задумывается об этом как о модели.

G>>Ок, опиши неявную модель графического редактора.

I>Зачем ? Это сделал Лебедев, только задом наперёд.

Так сделай ты, как считаешь правильно.
Re[22]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 15:15
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

I>>Предположим, я ничего не знаю про сайты и тд.


I>>Вопрос — что такое сайт про который ты говоришь ? У меня на бумаге уже строится модель — квадратик, с подписью "сайт ?" и стрелочка ведет пока в троеточие.


G>"Да, хочу чтобы на сайте были новости, контакты, еще там картинки и чтобы я все мог поменять" (я такое слышал от одного из заказчиков).


Я не понимаю что значит слово "сайт". Что это такое или где можно узнать это ?

I>>>>В таких простых примерах модель передается _неявно_. Она как правило всем известна и только поэтому никто не задумывается об этом как о модели.

G>>>Ок, опиши неявную модель графического редактора.

I>>Зачем ? Это сделал Лебедев, только задом наперёд.

G>Так сделай ты, как считаешь правильно.

Ага, и с сайтом, и с редактором, а ты будешь в сторонке курить ?
Re[23]: Проектирование классов
От: Кирилл Лебедев Россия http://askofen.blogspot.com/
Дата: 30.11.10 15:55
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>Я не понимаю что значит слово "сайт". Что это такое или где можно узнать это ?


Ты путаешь предметную область заказчика с областью твоей компетенции, как программиста. Если ты не умеешь создавать сайты, то, следовательно, ты не являешься компетентным web-девелопером.

Кстати, критерий компетентности — это не знание определения понятия сайт, а именно умение разрабатывать сайты.

I>Ага, и с сайтом, и с редактором, а ты будешь в сторонке курить ?

Пока что ты не привёл ни одного рабочего примера, иллюстрирующего твой подход. А как известно, практика — критерий истинности.
С уважением,
Кирилл Лебедев
Software Design blog — http://askofen.blogspot.ru/
Re[24]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 16:31
Оценка:
Здравствуйте, Кирилл Лебедев, Вы писали:

I>>Я не понимаю что значит слово "сайт". Что это такое или где можно узнать это ?


КЛ>Ты путаешь предметную область заказчика с областью твоей компетенции, как программиста. Если ты не умеешь создавать сайты, то, следовательно, ты не являешься компетентным web-девелопером.


gandjustas взял такой пример, по нему и работаем.

КЛ>Кстати, критерий компетентности — это не знание определения понятия сайт, а именно умение разрабатывать сайты.


Ценное замечание, К.О. Как оно относится к нынешней беседе ?

I>>Ага, и с сайтом, и с редактором, а ты будешь в сторонке курить ?

КЛ>Пока что ты не привёл ни одного рабочего примера, иллюстрирующего твой подход. А как известно, практика — критерий истинности.

У меня нет никакого "моего" подхода. Есть подход который изложен в книге DDD Эрика Эванса.

Хочешь рабочий пример, смотри первоисточник — http://dddsample.sourceforge.net/
Re[25]: Проектирование классов
От: Кирилл Лебедев Россия http://askofen.blogspot.com/
Дата: 30.11.10 17:12
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

КЛ>>Кстати, критерий компетентности — это не знание определения понятия сайт, а именно умение разрабатывать сайты.

I>Ценное замечание, К.О. Как оно относится к нынешней беседе ?

Очень просто: Если ты не знаешь, что такое сайт, но умеешь разрабатывать сайты, то всем, грубо говоря, начхать на твоё незнание. Клиенты будут платить деньги. Если же ты знаешь, что такое сайт, но не можешь его разработать, то твоё знание мало кому будет интересно, потому что ты не можешь делать сайты.

Отсюда вывод: Первичны задачи и умение их решать (т.е. действия), а не познания в предметной области.

Другой вывод: Программисту не стоит вникать в предметную область клиента более, чем требуется для решения задач клиента. У программиста вполне конкретная задача — разработать программу, а не затмить клиента в области его экспертизы.

Рекомендация: Проектирование программы следует начинать не с изучения предметной области, а с изучения проблем клиента. Вникать в предметную область нужно лишь по мере необходимости — для уяснения сформулированных проблем.

А построение всеобъемлющей модели предметной области — задача дорогостоящая и неподъёмная в рамках обычного бюджета.

В качестве дополнения: Учёные-физики до сих пор не смогли построить полную непротиворечивую модель Вселенной. Но это не мешает ни тебе, ни кому-либо другому в ней жить.

I>У меня нет никакого "моего" подхода. Есть подход который изложен в книге DDD Эрика Эванса.

I>Хочешь рабочий пример, смотри первоисточник — http://dddsample.sourceforge.net/

Если ты читал эту книгу, то, наверное, можешь изложить какой-нибудь пример из неё в паре-тройке абзацев. Я всё-таки беседую с тобой, а не с Эриком Эвансом. И если ты выступаешь в защиту его подхода, то, наверное, можешь привести подтверждённые примерами аргументы.
С уважением,
Кирилл Лебедев
Software Design blog — http://askofen.blogspot.ru/
Re[26]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 17:26
Оценка: -1
Здравствуйте, Кирилл Лебедев, Вы писали:

КЛ>>>Кстати, критерий компетентности — это не знание определения понятия сайт, а именно умение разрабатывать сайты.

I>>Ценное замечание, К.О. Как оно относится к нынешней беседе ?

КЛ>Отсюда вывод: Первичны задачи и умение их решать (т.е. действия), а не познания в предметной области.


Вообще говоря первичность задач никто и не оспаривал. Есть задача — кастомер идет к девелоперу. Нет задачи — не идет к девелоперу.

КЛ>Другой вывод: Программисту не стоит вникать в предметную область клиента более, чем требуется для решения задач клиента. У программиста вполне конкретная задача — разработать программу, а не затмить клиента в области его экспертизы.


Предметная область есть у задачи. А чем занят клиент — дело десятое. Может, он спец по порнографии, но ему понадобился проектировщик оптических сетей, что бы забабахать мега-сеть, что бы его порно мега-скачивалось ? В этом случае его порно никак не влияет на предметную область задачи — проектирование оптических сетей.

Еще раз — предметная область у _задачи_.

КЛ>Рекомендация: Проектирование программы следует начинать не с изучения предметной области, а с изучения проблем клиента. Вникать в предметную область нужно лишь по мере необходимости — для уяснения сформулированных проблем.


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

А рекомендации своему папе давай.

КЛ>А построение всеобъемлющей модели предметной области — задача дорогостоящая и неподъёмная в рамках обычного бюджета.


А кто кроме тебя говорит про всеобъемлющую модель предметной области ?

Покажи цитатой, где ты уведел "всеобъемлющую модель" в моем исполнении.

КЛ>Если ты читал эту книгу, то, наверное, можешь изложить какой-нибудь пример из неё в паре-тройке абзацев. Я всё-таки беседую с тобой, а не с Эриком Эвансом. И если ты выступаешь в защиту его подхода, то, наверное, можешь привести подтверждённые примерами аргументы.


Не, хватит с меня одного gandjustas, которому надо по пять раз указывать на "прозванивание".
Re[25]: Проектирование классов
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 20:36
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Хочешь рабочий пример, смотри первоисточник — http://dddsample.sourceforge.net/


Я все никак не соберусь с силами разобрать пример по кирпичикам и написать нормальное решение.

Если вкратце смотри там классы *Facade, это и есть функции, а куча неэффективного кода внутри — это DDD
Re[23]: Проектирование классов
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.10 20:41
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


I>>>Предположим, я ничего не знаю про сайты и тд.


I>>>Вопрос — что такое сайт про который ты говоришь ? У меня на бумаге уже строится модель — квадратик, с подписью "сайт ?" и стрелочка ведет пока в троеточие.


G>>"Да, хочу чтобы на сайте были новости, контакты, еще там картинки и чтобы я все мог поменять" (я такое слышал от одного из заказчиков).


I>Я не понимаю что значит слово "сайт". Что это такое или где можно узнать это ?

Ну вот http://rsdn.ru это сайт, и http://gandjustas.blogspot.com тоже сайт. (я вот честно определения не знаю поэтому привожу примеры)

I>>>>>В таких простых примерах модель передается _неявно_. Она как правило всем известна и только поэтому никто не задумывается об этом как о модели.

G>>>>Ок, опиши неявную модель графического редактора.

I>>>Зачем ? Это сделал Лебедев, только задом наперёд.

G>>Так сделай ты, как считаешь правильно.

I>Ага, и с сайтом, и с редактором, а ты будешь в сторонке курить ?

Так не нужно все решение. Нужно проектирование. Надо поучить некоторые сведения, принять какие-то дизайнерские решения и обосновать их на основе имеющихся данных. Прочитай книгу Брукса Design of Design, многое тебе станет понятнее.
Re[24]: Проектирование классов
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.10 22:32
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

G>>>"Да, хочу чтобы на сайте были новости, контакты, еще там картинки и чтобы я все мог поменять" (я такое слышал от одного из заказчиков).


I>>Я не понимаю что значит слово "сайт". Что это такое или где можно узнать это ?

G>Ну вот http://rsdn.ru это сайт, и http://gandjustas.blogspot.com тоже сайт. (я вот честно определения не знаю поэтому привожу примеры)

Значит, ты имеешь ввиду именно веб сайт (в квадратике сайт надпись меняется на веб-сайт). Этот сайт должен показывать картинки, какие то контакты и новости. Правильно ? (в модели появляется еще три квадратика с соответствующими надписями).

Что за контакты и что за новости ?

I>>>>>>В таких простых примерах модель передается _неявно_. Она как правило всем известна и только поэтому никто не задумывается об этом как о модели.

G>>>>>Ок, опиши неявную модель графического редактора.

I>>>>Зачем ? Это сделал Лебедев, только задом наперёд.

G>>>Так сделай ты, как считаешь правильно.

I>>Ага, и с сайтом, и с редактором, а ты будешь в сторонке курить ?

G>Так не нужно все решение. Нужно проектирование. Надо поучить некоторые сведения, принять какие-то дизайнерские решения и обосновать их на основе имеющихся данных.

Не, это слишком долго и точно не для форума. Кроме брукса у меня есть чего читать
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.