"дизайн программы должен базироваться на использовании множества сильно связанных компонентов, которые слабо сцеплены друг с другом, благодаря чему тестирование кода упрощается"
Очевидно, что правильный перевод должен быть
"дизайн программы должен базироваться на использовании множества сильно сцепленых компонентов, которые слабо связаны друг с другом, благодаря чему тестирование кода упрощается"
Здравствуйте, Ikemefula, Вы писали:
I>Очевидно, что правильный перевод должен быть
I>"дизайн программы должен базироваться на использовании множества сильно сцепленых компонентов, которые слабо связаны друг с другом, благодаря чему тестирование кода упрощается"
Чуть дальше путаница с reactive — proactive. Переведено как реактивный — превентивный в контексте тестирования.
Превентивное тестировани, сдается тавтология. Проактивное тестирование — это уже совсем другое дело.
А мне вобще почему-то не нравится идея противопоставлять эти два термина.
Лучше один вместо них — Clustering (но иерархическая и без циферок): http://en.wikipedia.org/wiki/Data_clustering
И соответственно появляется два вопроса:
1) Как кластеризация физически оформлена, и почему с ней удобнее.
2) По каким признакам кластеризуется. Ясно что их много, и по каждому признаку может быть не совпадающие варианты деления.
Хорошая кластеризация когда делили по наиболее актуальным признакам (ясно что они могут быть разные в разных задачах), и плюс когда кластеры совпадают для разных признаков.
Не понял идею. Гранулярность это в первую очередь неоднородность структуры.
cohesion это state or act of keeping/working together
синоним — unity, отсюда понятно, почему di/ioc от MS называтся Unity
coupling — having sex или action of joining/combining
I>>Может баннер рекламный развесить где попало "cohesion == cцепление, coupling == связанность " ?
D>но в википедии слева есть ссылки на это же понятие на других языках. Там фигурируют связность и связанность. Придется править википедию..
I>cohesion это state or act of keeping/working together I>синоним — unity, отсюда понятно, почему di/ioc от MS называтся Unity
I>coupling — action of joining/combining
Ну и есть ли принципиальное различие между combining и working together ?
Это все вокруг одного и того же. Связность,связанность,сцепление, гранулярность(внутри одной гранулы у элементов связи сильнее чем между элементами разных гранул), кластеризация.
Кто-нибудь может сказать в чем отличае понятий Cohesion,Coupling в таком виде как они описаны в Wiki ?
В обоих случаях идет речь об отношениях элементов. В Coupling больше акцент в сторону отношений в виде dependency .
В Cohesion акцент больше в сторону сематники отношений (как близки по смыслу).
И еще Cohesion относительно связей внутри модуля, Coupling между модулями. Выглядит как смешивание мух с котлетами, кривоватые термины и понятия, нет?
Вот есть куча элементов их надо сгруппировать. Например, методы сгруппировать в классы, или классы в модули.
Так чтобы близкие классы оказались в одном модуле. В другом модуле другие близкие классы. Между классами в разных модулях близости нет.
Близость между классами может быть или из-за зависимостей, или близость семантическая — насколько похожие функции выполняют.
В обоих случаях внутри модуля между элементами сильные связи (хоть это Coupling назови, хоть Cohesion). А между разными модулями слабые.
On 17.07.2010 17:23, Ikemefula wrote: > Во многих книгах встречается путаница, особенно в переводных > Может баннер рекламный развесить где попало "cohesion == cцепление, coupling == связанность " ?
Здравствуйте, mazurkin, Вы писали:
>> Во многих книгах встречается путаница, особенно в переводных >> Может баннер рекламный развесить где попало "cohesion == cцепление, coupling == связанность " ?
M>Вот мой старый пост на эту тему
M>http://rsdn.ru/forum/design/3245422.1.aspx
Здравствуйте, Silver_s, Вы писали:
I>>cohesion это state or act of keeping/working together I>>синоним — unity, отсюда понятно, почему di/ioc от MS называтся Unity
I>>coupling — action of joining/combining
S_>Ну и есть ли принципиальное различие между combining и working together ?
Есть, вот главное отличие от keeping/working together:
combine — to come to form a single thing or group
join — to become one.
На примере — joing a pipe — присоединить трубу.
Очевидно, две трубы соединенные вместе становятся одной трубой.
S_> И еще Cohesion относительно связей внутри модуля, Coupling между модулями. Выглядит как смешивание мух с котлетами, кривоватые термины и понятия, нет?
Ты их попутал Cohesion это относительно связей между модулями, т.е. сцепление. Coupling — это внутри модуля, т.е. соединение, связанность.
On 18.07.2010 17:14, Ikemefula wrote:
> у тебя вобщем то все наоборот
Да я и говорю, что согласен с переводом.
Единственное, я бы написал "сильно связных" вместо "сильно связанных" —
иначе у неподготовленного русскоязычного читателя будет словесный
сумбур: "сильно связанные", но "слабо сцепленные" — как это?
Здравствуйте, mazurkin, Вы писали:
M>Единственное, я бы написал "сильно связных" вместо "сильно связанных" — M>иначе у неподготовленного русскоязычного читателя будет словесный M>сумбур: "сильно связанные", но "слабо сцепленные" — как это?
Я бы вообще избегал слов связность и связанность, ибо почти всегда возникает путаница.
На мой взгляд соединение и сцепление гораздо лучше отражает специфику.
On 18.07.2010 17:45, Ikemefula wrote:
> M>Единственное, я бы написал "сильно связных" вместо "сильно связанных" - > M>иначе у неподготовленного русскоязычного читателя будет словесный > M>сумбур: "сильно связанные", но "слабо сцепленные" — как это?
> Я бы вообще избегал слов связность и связанность, ибо почти всегда возникает путаница. > На мой взгляд соединение и сцепление гораздо лучше отражает специфику.
Мое мнение состоит в том, что мы имеем два термина, переводы которых на
русский язык очень схожи. Поэтому позиции "лучше" и "хуже" в данном
случае неизбежно скатываются к личному слабоаргументированному
субъективному предпочтению.
Единственный разумный выход в такой ситуации — договориться между собой
какие именно русские слова употреблять для обоих терминов и в дальнейшем
пропагандировать эти определения. Как видите, я избегаю собственной
позиции в данной проблеме, а просто занимаюсь подсчетом чужих
публикаций. При этом считаю, что печатное издание имеет намного больший
вес и авторитет, чем любой пост на форуме rsdn или другом ином.
Вместе с вашей ссылкой мы имеет четкую картину — в русскоязычной
литературе преобладает трактовка:
И в то же время, в определении слова join написано: синоним — to unite
I>Есть, вот главное отличие от keeping/working together: I>combine — to come to form a single thing or group I>join — to become one.
unity — the state or quality of being one;
Можно сказать это то что после выполнения combine получилось.
Это все к тому что сколько этими словами и их синонимами не играй, все равно cohesion,coupling это синонимы.
Есть в них некоторые нюансы, поэтому они и по-разному пишутся(разные слова).
Но пытаться на них навесить противоположный смысл, или их как-то сильно противопоставлять — это плохая затея.
Рано или позно, в том или ином месте все равно путаница возникнет.
А их противопоставляют когда говорят маленький coupling соответствует большому cohesion, и наоборот.
I>Ты их попутал Cohesion это относительно связей между модулями, т.е. сцепление. Coupling — это внутри модуля, т.е. соединение, связанность.
А по моему не я их попутал, а они уже давно были попутаны и запутаны
Здравствуйте, Silver_s, Вы писали:
S_>И в то же время, в определении слова join написано: синоним — to unite
Странно, у меня оксфордский и там такого синонима нет. Словарь синонимов остался на работе.
S_>Можно сказать это то что после выполнения combine получилось.
join, combine основная идея примерно такая — соединить две трубы и получится одна ТРУБА
S_>unity — the state or quality of being one;
а вот здесь совершенно иначе — соединить двух людей и получится не один человек(joing, combine), а СЕМЬЯ
т.е. unity дает новое качество, а joing/combine этого нового качества не дают
S_> Это все к тому что сколько этими словами и их синонимами не играй, все равно cohesion,coupling это синонимы.
Здравствуйте, Ikemefula, Вы писали:
S_>> Это все к тому что сколько этими словами и их синонимами не играй, все равно cohesion,coupling это синонимы. I>Ни в коем случае см. выше.
Ну не синонимы а очень близкие слова. Разницы между ними не больше чем между словами "сила" и "усилие" (это не синонимы все-таки).
Но если определить какие-то понятия в которых большая сила обычно соответствует маленькому усилию, а маленькое усилие соответствует большой силе. То такие же проблемы с путаницей возникнут.
Здравствуйте, Silver_s, Вы писали:
S_>Здравствуйте, Ikemefula, Вы писали:
S_>>> Это все к тому что сколько этими словами и их синонимами не играй, все равно cohesion,coupling это синонимы. I>>Ни в коем случае см. выше.
S_>Ну не синонимы а очень близкие слова. Разницы между ними не больше чем между словами "сила" и "усилие" (это не синонимы все-таки).
Слова близкие. И то и другое означает соединение. Отличаются результатом этого соединения — или сумма качеств участников, или принципиально новое качество.