|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
Дискуссия на тему ООП/РМД вызвала дежавю. парадигма OOP плохо ложиться на реляционные отношения...? Наверное к каждому разработчику со временем приходит понимание, что мы каждый раз, как бы мы не старались, разрабатываем колесо в сотый раз по новому. Иногда оно на спицах, иногда большое, иногда стеклянное. Образно говоря, имея набор "паттернов" для разработки, их каждый раз приходится компоновать по новому и при этом писать заново или переписывать уже много раз писаные алгоритмы. И хотя проблема "повторов" сама по себе не нова, но и все представленные подходы к программированию не ращают её окончательно. Другими словами, все методологии: процедурное программирование, структурное программирование, модульное программирование, ООП, генерики и т.д. хотя уменьшают потребностъ в повторении кода, но не умешают потребность в повторенни реализаций паттернов. Интересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов? Первое что приходит на ум: - меняется язык программирования. (С++ -> Ява). Такие изменения происходят тоже не на ровном месте, стоят немалых затрат, но т.к. априори оправданы в долгосрочной перспективе, буду утверждать, что новая языковая среда должна уменщать затраты на "повторения". - меняется АПИ окружения. Скажем были файлы данных, тепь нужны регионы в шаред мемори или обмен сообщениями по каналам сщязи. Ранше были нужны кэшы, теперь стали мэнегеры буферов. т.е. базовый протокол/паттерн обмена данными не поменялся, но меняется АПИ / неявные протоколы, интерфейсы окружения. - частный случай меняются ограничения окружения. Скажем был алгоритм обработки данных, расчитаный на 10МБ и вдруг нужно обработать 10ГБ данных. если рассмотреть паттерн обработки в общем виде, он не меняется для большего кол-ва данных, (пусть: прочитать кусок, сравнить с другими кусками, выбрать наилутшее совпадение, записать результат) но теперь например где ранше работал простоя хэш-таблица нужны буфера, файлы, кэши и т.д.) Поящляется реализовывать того-же паттерна, но в рамках другого АПИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:44 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikron, ты сам и ответил паттерны базируются на сегодняшнем состоянии технологий меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 20:30 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
библиотека math наверное 1000 раз реализован :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 20:31 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikron Интересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов? каким боком паттерны к повторному использованию кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 21:34 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
ViPRosmikron, ты сам и ответил паттерны базируются на сегодняшнем состоянии технологий меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые паттерны на то и придуманы чтобы архитектурные решения не зависели от технологии. и паттерны не "натягивают" а проектируют архитектуру в соответсвии с ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 21:36 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
caballeroViPRosmikron, ты сам и ответил паттерны базируются на сегодняшнем состоянии технологий меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые паттерны на то и придуманы чтобы архитектурные решения не зависели от технологии. и паттерны не "натягивают" а проектируют архитектуру в соответсвии с ними. ты потихоньку начинаешь надоедать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 00:28 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
ViPRosmikron, ты сам и ответил паттерны базируются на сегодняшнем состоянии технологий меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые - На вопрос почему - ответ не полный. На вопрос чего не хватает я ответа вообще не предложил. - я не согласен с формиловкой - базируются. Некоторые паттерны специфичны для определённых технологий, гругие вообще независыми. Я бы сказал "подвержены влиянию технологического развития". Давайте различать паттерны и их реализации. Например паттерн (как более ощий случай алгоритма) поиска оптимума в задачах полного перебора с элементами эвристической оценки ожидаемого результата вполне нейтрален к технологии. Используется при игре в шахматы, в задаче навигачиии и кучи других областях. Паттерн универсален. Но писать приходится каждый раз заново. Другой пример паттерна специфичного к технологии - заезженный синглтон. Паттерн один а реализачия каждый раз по новой. (С оговоркой на обобщённое програмирование) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 09:41 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikron- На вопрос почему - ответ не полный. На вопрос чего не хватает я ответа вообще не предложил. - я не согласен с формиловкой - базируются. Некоторые паттерны специфичны для определённых технологий, гругие вообще независыми. Я бы сказал "подвержены влиянию технологического развития". Давайте различать паттерны и их реализации. Например паттерн (как более ощий случай алгоритма) поиска оптимума в задачах полного перебора с элементами эвристической оценки ожидаемого результата вполне нейтрален к технологии. Используется при игре в шахматы, в задаче навигачиии и кучи других областях. Паттерн универсален. Но писать приходится каждый раз заново. Другой пример паттерна специфичного к технологии - заезженный синглтон. Паттерн один а реализачия каждый раз по новой. (С оговоркой на обобщённое програмирование) Паттерны это чистой воды абстракции. Т.е. это "способ думать". Например, в математике сейчас признанный стандарт "думать" кванторами. Паттерны предназначены для коммуникации м/у программистами. Вот сказал один программисту другому "синглтон", оба поняли что имеется ввиду. Где-то так :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 10:57 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
caballeromikron Интересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов? каким боком паттерны к повторному использованию кода? Самое непосредственно: код реализует паттерн. Паттерн может может исполъзоватся во многих местах. При повторном использовании паттерна приходится "повторять" код. Повторять в ковычках т.к. по аналогии с текстом это не тупое цитирование а изложение тех-же идей но каждый раз другими словами и в другом контексте. Некоторые идеи/паттерны можно обобщить с помощю генериков. Пример тому Lazy<T> как Singlton. Но далеко не все и главаня причина тому, мне кажется, что генерики представляют закрытый блок кода, где только в определённых местах предусмотрены <расширения кода>/<сужения абстракции до конкретной реализации>. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 11:07 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikronViPRosmikron, ты сам и ответил паттерны базируются на сегодняшнем состоянии технологий меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые - На вопрос почему - ответ не полный. На вопрос чего не хватает я ответа вообще не предложил. - я не согласен с формиловкой - базируются. Некоторые паттерны специфичны для определённых технологий, гругие вообще независыми. Я бы сказал "подвержены влиянию технологического развития". Давайте различать паттерны и их реализации. Например паттерн (как более ощий случай алгоритма) поиска оптимума в задачах полного перебора с элементами эвристической оценки ожидаемого результата вполне нейтрален к технологии. Используется при игре в шахматы, в задаче навигачиии и кучи других областях. Паттерн универсален. Но писать приходится каждый раз заново. Другой пример паттерна специфичного к технологии - заезженный синглтон. Паттерн один а реализачия каждый раз по новой. (С оговоркой на обобщённое програмирование) в другой технологи нет понятия синглтон вообще, так как там все синглтоны ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 11:08 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
[quot mad_nazgul Паттерны это чистой воды абстракции. Т.е. это "способ думать". Например, в математике сейчас признанный стандарт "думать" кванторами. [/quot] Я схожего мнения. [quot mad_nazgul Паттерны предназначены для коммуникации м/у программистами. Вот сказал один программисту другому "синглтон", оба поняли что имеется ввиду. [/quot] Совсем не согласен с таким упрощением. Паттерны используютса для/в коммукации, но не только, и это не основновная их целевая нагрузка. Паттерн - идея/схема, как добится определённого резултатат. Цель паттерна - добится этого определённого резултатат наиболее эфективно. (Не путать с эфективным результатом) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 11:17 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
ViPRosв другой технологи нет понятия синглтон вообще, так как там все синглтоны И поэтому в той другой технологии нет паттернов вообще? Я не понял. Это возражение какому-то конктернтому пункту моего утверждения или слова подтверждения? Я вроде так и написал: Некоторые паттерны специфичны для определённых технологий, другие вообще независимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 11:24 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikron, ладно, паттерн - способ более менее эффективного решение некоторой проблемы, которая не имеет явного и однозначного решения внутри технологической парадигмы ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 12:48 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
костыль ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 13:04 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikroncaballeroпропущено... каким боком паттерны к повторному использованию кода? Самое непосредственно: код реализует паттерн. Паттерн может может исполъзоватся во многих местах. При повторном использовании паттерна приходится "повторять" код. Повторять в ковычках т.к. по аналогии с текстом это не тупое цитирование а изложение тех-же идей но каждый раз другими словами и в другом контексте. Некоторые идеи/паттерны можно обобщить с помощю генериков. Пример тому Lazy<T> как Singlton. Но далеко не все и главаня причина тому, мне кажется, что генерики представляют закрытый блок кода, где только в определённых местах предусмотрены <расширения кода>/<сужения абстракции до конкретной реализации>. Паттерны предназначены для унификации архитектурных решений. вы делаете такое же решение но на другом языке - паттерн тот же - код полностью переписывается. Обратный вариант - процедурная библиотека без всякого ООП тем более патернов но используется во многих местах. посему прямой связи между использованием паттернов и повторяемустью или наоборот повторным использованием кода нет ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 13:21 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
ViPRosты потихоньку начинаешь надоедать я понимаю что писать чушь когда никто не тыкает в нее носам приятнее. Но тут форум так что извини, думай перед тем как что то ляпнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 13:23 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
ViPRosmikron, ладно, паттерн - способ более менее эффективного решение некоторой проблемы, которая не имеет явного и однозначного решения внутри технологической парадигмы паттерн (шаблон) - это типовое часто повторяемое архитектурное решение которому дадено наименование и абстрактное описание ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 13:26 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
caballeroViPRosты потихоньку начинаешь надоедать я понимаю что писать чушь когда никто не тыкает в нее носам приятнее. Но тут форум так что извини, думай перед тем как что то ляпнуть. пошел бы ты отдохнул немного на природе ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 14:07 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
caballeroПаттерны предназначены для унификации архитектурных решений. вы делаете такое же решение но на другом языке - паттерн тот же - код полностью переписывается. Обратный вариант - процедурная библиотека без всякого ООП тем более патернов но используется во многих местах. посему прямой связи между использованием паттернов и повторяемустью или наоборот повторным использованием кода нет Вы доказываете что-то своё, и я пока не понимаю, что вы хотите сказать и какое это имеет отношение к теме. Тем не менее в некоторых утверждениях усомнился. >> вы делаете такое же решение но на другом языке - паттерн тот же - код полностью переписывается да, я это уже упоминал >> Обратный вариант - процедурная библиотека без всякого ООП тем более патернов но используется во многих местах 1. Что вы называете "обратным" вариантом? Я бы мог назвал обратным "паттерн тот же - код полностью переписывается" -> "Вы делате решение на том-же языке". 2. "процедурная библиотека без всякого ООП тем более патернов" это нонсенс. Если есть реализация - библиотека, то есть и абстракция этой реализации - паттерн. 3. "посему прямой связи между использованием паттернов и повторяемустью или наоборот повторным использованием кода нет". Мне кажется здеь не хватает строгости рассуждений. Вопервых "паттерн" и "код" это понятия разного уровня абстракций. Если вы говорите "повторяемость" то повторяемость извините чего? Паттерна? кода? А код реализует паттерн. А повторное использование кода разве не есть повтореное исползование паттерна? mikronДругими словами, все методологии: процедурное программирование, структурное программирование, модульное программирование, ООП, генерики и т.д. хотя уменьшают потребностъ в повторении кода, но не умешают потребность в повторенни реализаций паттернов. "но не умешают потребность в повторенни реализаций паттернов" Соврал, уменшают, но не в ноль. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 15:23 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikron, авторпарадигма OOP плохо ложиться на ... парадигма ООП плохо ложится на программирование. авторИнтересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов? Наличие паттернов от слова совсем никак не связано с проблемой повторения кода, и желательности или нежелательности повторов однотипных фрагментов кода. Вот есть паттерн присвоения - присвоить значение вычисляемого выражения переменной некоторого типа. Почему приходится из раза в раз повторяться, выписывая эти присвоения заново для каждого нового алгоритма? Программирование не висит в воздухе самодостаточным образом. программирование может (должно) рассматриваться, как существующее для кого-то/чего-то. Обычно в качестве "целевых потребителей" программирования упоминают, конечных пользователей, использующих написанные программистом программы, компьютеры, которые умеют выполнять написанные программистом программы и "других программистов", которые должны сопровождать, поддерживать, развивать написанные программистом программы. Ни для конечного пользователя, ни для компьютера "паттерны программирования", и уж тем более "паттерны программирования ООП" не входят в состав их специфического предметно-ориентированного языка. Единственным потребителем паттернов является другой программист. В этом смысле утверждение mad_nazgul невозможно оспорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 21:56 |
|
парадигма OOP плохо ложиться на ...
|
|||
---|---|---|---|
#18+
mikron... 3. "посему прямой связи между использованием паттернов и повторяемустью или наоборот повторным использованием кода нет". Мне кажется здеь не хватает строгости рассуждений. Вопервых "паттерн" и "код" это понятия разного уровня абстракций. Если вы говорите "повторяемость" то повторяемость извините чего? Паттерна? кода? А код реализует паттерн. А повторное использование кода разве не есть повтореное исползование паттерна? ... авторВопервых "паттерн" и "код" это понятия разного уровня абстракций. По части уровня абстракции - однозначно да. Паттерн слово не русское. Чтобы понять, о чем речь - требуется перевод - образец . О поторяемости паттерна осмысленно говорить, когда, читая код раличных программ вы опознаете в них известные вам образцы. Паттерны - это тоже "код", но читается и опознается этот код на уровне выше синтаксиса программы, реализующей паттерн. автор А повторное использование кода разве не есть повтореное исползование паттерна? За паттерн можно было бы признать идею повторного использования кода. Это затрудняется тем, что фраза "повторное использование кода" расплывчата и не дает точного специфически опознаваемого варианта. Слишком общая и абстрактная идея, а для паттерна, имеющего собственное имя , специфическое имя важнее самого образца, т.к. паттерн животное не дает возможности отличить барана от козла , в ситуациях требующих такого различения. Повторное использование кода, в качестве общей идеи заключается, в выделении и создании собственного имени некоторому фрагменту кода. Но есть ситуации, когда компилятор скрытым образом создает специфические реализации этого кода для каждого типа данных, для которого этот код однажды и единственный раз написал этот код. А есть ситуации, когда однажды и единственным образом текст программы и физически в системе существует в единственной реализации для всех использующих его типов данных. Можно сказать, что это два подпаттерна одного суперпаттерна. но обычно так не говорят, предпочитая рассуждать в терминах плоского набора паттернов - опознаваемых образцов кода, решающих специфическую задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 22:48 |
|
|
start [/forum/topic.php?fid=33&msg=39034278&tid=1547451]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 288ms |
total: | 418ms |
0 / 0 |