powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / парадигма OOP плохо ложиться на ...
21 сообщений из 21, страница 1 из 1
парадигма OOP плохо ложиться на ...
    #39032656
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дискуссия на тему ООП/РМД вызвала дежавю.

парадигма OOP плохо ложиться на реляционные отношения...?

Наверное к каждому разработчику со временем приходит понимание, что мы каждый раз, как бы мы не старались,
разрабатываем колесо в сотый раз по новому. Иногда оно на спицах, иногда большое, иногда стеклянное.
Образно говоря, имея набор "паттернов" для разработки, их каждый раз приходится компоновать по новому и при этом
писать заново или переписывать уже много раз писаные алгоритмы. И хотя проблема "повторов" сама по себе не нова, но и
все представленные подходы к программированию не ращают её окончательно. Другими словами, все методологии:
процедурное программирование, структурное программирование, модульное программирование, ООП, генерики и т.д. хотя
уменьшают потребностъ в повторении кода, но не умешают потребность в повторенни реализаций паттернов.

Интересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов?

Первое что приходит на ум:
- меняется язык программирования. (С++ -> Ява). Такие изменения происходят тоже не на ровном месте, стоят немалых
затрат, но т.к. априори оправданы в долгосрочной перспективе, буду утверждать, что новая языковая среда должна
уменщать затраты на "повторения".

- меняется АПИ окружения. Скажем были файлы данных, тепь нужны регионы в шаред мемори или обмен сообщениями по
каналам сщязи. Ранше были нужны кэшы, теперь стали мэнегеры буферов. т.е. базовый протокол/паттерн обмена данными не
поменялся, но меняется АПИ / неявные протоколы, интерфейсы окружения.

- частный случай меняются ограничения окружения. Скажем был алгоритм обработки данных, расчитаный на 10МБ и вдруг
нужно обработать 10ГБ данных. если рассмотреть паттерн обработки в общем виде, он не меняется для большего кол-ва
данных,
(пусть: прочитать кусок, сравнить с другими кусками, выбрать наилутшее совпадение, записать результат) но теперь
например где ранше работал простоя хэш-таблица нужны буфера, файлы, кэши и т.д.)
Поящляется реализовывать того-же паттерна, но в рамках другого АПИ.
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032743
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron,

ты сам и ответил
паттерны базируются на сегодняшнем состоянии технологий
меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032744
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
библиотека math наверное 1000 раз реализован :)
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032765
caballero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
Интересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов?

каким боком паттерны к повторному использованию кода?
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032767
caballero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosmikron,

ты сам и ответил
паттерны базируются на сегодняшнем состоянии технологий
меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые

паттерны на то и придуманы чтобы архитектурные решения не зависели от технологии.
и паттерны не "натягивают" а проектируют архитектуру в соответсвии с ними.
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032799
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
caballeroViPRosmikron,

ты сам и ответил
паттерны базируются на сегодняшнем состоянии технологий
меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые

паттерны на то и придуманы чтобы архитектурные решения не зависели от технологии.
и паттерны не "натягивают" а проектируют архитектуру в соответсвии с ними.
ты потихоньку начинаешь надоедать
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032897
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosmikron,

ты сам и ответил
паттерны базируются на сегодняшнем состоянии технологий
меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые

- На вопрос почему - ответ не полный. На вопрос чего не хватает я ответа вообще не предложил.
- я не согласен с формиловкой - базируются. Некоторые паттерны специфичны для определённых технологий, гругие вообще независыми. Я бы сказал "подвержены влиянию технологического развития". Давайте различать паттерны и их реализации. Например паттерн (как более ощий случай алгоритма) поиска оптимума в задачах полного перебора с элементами эвристической оценки ожидаемого результата вполне нейтрален к технологии.
Используется при игре в шахматы, в задаче навигачиии и кучи других областях. Паттерн универсален. Но писать приходится каждый раз заново.
Другой пример паттерна специфичного к технологии - заезженный синглтон. Паттерн один а реализачия каждый раз по новой. (С оговоркой на обобщённое програмирование)
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032965
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron- На вопрос почему - ответ не полный. На вопрос чего не хватает я ответа вообще не предложил.
- я не согласен с формиловкой - базируются. Некоторые паттерны специфичны для определённых технологий, гругие вообще независыми. Я бы сказал "подвержены влиянию технологического развития". Давайте различать паттерны и их реализации. Например паттерн (как более ощий случай алгоритма) поиска оптимума в задачах полного перебора с элементами эвристической оценки ожидаемого результата вполне нейтрален к технологии.
Используется при игре в шахматы, в задаче навигачиии и кучи других областях. Паттерн универсален. Но писать приходится каждый раз заново.
Другой пример паттерна специфичного к технологии - заезженный синглтон. Паттерн один а реализачия каждый раз по новой. (С оговоркой на обобщённое програмирование)

Паттерны это чистой воды абстракции.
Т.е. это "способ думать".
Например, в математике сейчас признанный стандарт "думать" кванторами.

Паттерны предназначены для коммуникации м/у программистами.
Вот сказал один программисту другому "синглтон", оба поняли что имеется ввиду.

Где-то так :-)
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032976
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
caballeromikron
Интересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов?

каким боком паттерны к повторному использованию кода?

Самое непосредственно: код реализует паттерн. Паттерн может может исполъзоватся во многих местах.
При повторном использовании паттерна приходится "повторять" код. Повторять в ковычках т.к. по аналогии с текстом это не тупое цитирование а изложение тех-же идей но каждый раз другими словами и в другом контексте.

Некоторые идеи/паттерны можно обобщить с помощю генериков. Пример тому Lazy<T> как Singlton.

Но далеко не все и главаня причина тому, мне кажется, что генерики представляют закрытый блок кода, где только в определённых местах предусмотрены <расширения кода>/<сужения абстракции до конкретной реализации>.
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032978
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronViPRosmikron,

ты сам и ответил
паттерны базируются на сегодняшнем состоянии технологий
меняются технологии (новые улучшенные или просто деньгу кому то захотелось и он убил допустим сильверлайт) и надо паттерны натянуть на эти технологии с учетом нюансов или выкинуть и/или разработать новые

- На вопрос почему - ответ не полный. На вопрос чего не хватает я ответа вообще не предложил.
- я не согласен с формиловкой - базируются. Некоторые паттерны специфичны для определённых технологий, гругие вообще независыми. Я бы сказал "подвержены влиянию технологического развития". Давайте различать паттерны и их реализации. Например паттерн (как более ощий случай алгоритма) поиска оптимума в задачах полного перебора с элементами эвристической оценки ожидаемого результата вполне нейтрален к технологии.
Используется при игре в шахматы, в задаче навигачиии и кучи других областях. Паттерн универсален. Но писать приходится каждый раз заново.
Другой пример паттерна специфичного к технологии - заезженный синглтон. Паттерн один а реализачия каждый раз по новой. (С оговоркой на обобщённое програмирование)
в другой технологи нет понятия синглтон вообще, так как там все синглтоны
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39032989
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot mad_nazgul
Паттерны это чистой воды абстракции.
Т.е. это "способ думать".
Например, в математике сейчас признанный стандарт "думать" кванторами.
[/quot]
Я схожего мнения.
[quot mad_nazgul
Паттерны предназначены для коммуникации м/у программистами.
Вот сказал один программисту другому "синглтон", оба поняли что имеется ввиду.
[/quot]
Совсем не согласен с таким упрощением.
Паттерны используютса для/в коммукации, но не только, и это не основновная их целевая нагрузка.
Паттерн - идея/схема, как добится определённого резултатат. Цель паттерна - добится этого определённого резултатат наиболее эфективно. (Не путать с эфективным результатом)
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033000
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosв другой технологи нет понятия синглтон вообще, так как там все синглтоны
И поэтому в той другой технологии нет паттернов вообще? Я не понял. Это возражение какому-то конктернтому пункту моего утверждения или слова подтверждения?
Я вроде так и написал: Некоторые паттерны специфичны для определённых технологий, другие вообще независимы.
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033085
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron,

ладно, паттерн - способ более менее эффективного решение некоторой проблемы, которая не имеет явного и однозначного решения внутри технологической парадигмы
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033105
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
костыль
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033116
caballero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikroncaballeroпропущено...

каким боком паттерны к повторному использованию кода?

Самое непосредственно: код реализует паттерн. Паттерн может может исполъзоватся во многих местах.
При повторном использовании паттерна приходится "повторять" код. Повторять в ковычках т.к. по аналогии с текстом это не тупое цитирование а изложение тех-же идей но каждый раз другими словами и в другом контексте.

Некоторые идеи/паттерны можно обобщить с помощю генериков. Пример тому Lazy<T> как Singlton.

Но далеко не все и главаня причина тому, мне кажется, что генерики представляют закрытый блок кода, где только в определённых местах предусмотрены <расширения кода>/<сужения абстракции до конкретной реализации>.
Паттерны предназначены для унификации архитектурных решений.
вы делаете такое же решение но на другом языке - паттерн тот же - код полностью переписывается. Обратный вариант - процедурная библиотека без всякого ООП тем более патернов но используется во многих местах.
посему прямой связи между использованием паттернов и повторяемустью или наоборот повторным использованием кода нет
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033119
caballero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosты потихоньку начинаешь надоедать
я понимаю что писать чушь когда никто не тыкает в нее носам приятнее. Но тут форум так что извини, думай перед тем как что то ляпнуть.
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033122
caballero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosmikron,

ладно, паттерн - способ более менее эффективного решение некоторой проблемы, которая не имеет явного и однозначного решения внутри технологической парадигмы

паттерн (шаблон) - это типовое часто повторяемое архитектурное решение которому дадено наименование и абстрактное описание
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033163
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
caballeroViPRosты потихоньку начинаешь надоедать
я понимаю что писать чушь когда никто не тыкает в нее носам приятнее. Но тут форум так что извини, думай перед тем как что то ляпнуть.
пошел бы ты отдохнул немного на природе
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39033260
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
caballeroПаттерны предназначены для унификации архитектурных решений.
вы делаете такое же решение но на другом языке - паттерн тот же - код полностью переписывается. Обратный вариант - процедурная библиотека без всякого ООП тем более патернов но используется во многих местах.
посему прямой связи между использованием паттернов и повторяемустью или наоборот повторным использованием кода нет
Вы доказываете что-то своё, и я пока не понимаю, что вы хотите сказать и какое это имеет отношение к теме.
Тем не менее в некоторых утверждениях усомнился.

>> вы делаете такое же решение но на другом языке - паттерн тот же - код полностью переписывается
да, я это уже упоминал

>> Обратный вариант - процедурная библиотека без всякого ООП тем более патернов но используется во многих местах
1. Что вы называете "обратным" вариантом? Я бы мог назвал обратным "паттерн тот же - код полностью переписывается" -> "Вы делате решение на том-же языке".

2. "процедурная библиотека без всякого ООП тем более патернов" это нонсенс. Если есть реализация - библиотека, то есть и абстракция этой реализации - паттерн.

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


mikronДругими словами, все методологии:
процедурное программирование, структурное программирование, модульное программирование, ООП, генерики и т.д. хотя
уменьшают потребностъ в повторении кода, но не умешают потребность в повторенни реализаций паттернов.

"но не умешают потребность в повторенни реализаций паттернов"
Соврал, уменшают, но не в ноль.
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39034267
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron,

авторпарадигма OOP плохо ложиться на ...

парадигма ООП плохо ложится на программирование.

авторИнтересно разобратся, почему приходится повторятся и чего не хватает, что бы заниматся программированием на уровне паттернов?

Наличие паттернов от слова совсем никак не связано с проблемой повторения кода, и желательности или нежелательности повторов однотипных фрагментов кода.

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

Программирование не висит в воздухе самодостаточным образом.
программирование может (должно) рассматриваться, как существующее для кого-то/чего-то.

Обычно в качестве "целевых потребителей" программирования упоминают, конечных пользователей, использующих написанные программистом программы, компьютеры, которые умеют выполнять написанные программистом программы и "других программистов", которые должны сопровождать, поддерживать, развивать написанные программистом программы.

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

В этом смысле утверждение mad_nazgul невозможно оспорить.
...
Рейтинг: 0 / 0
парадигма OOP плохо ложиться на ...
    #39034278
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron...
3. "посему прямой связи между использованием паттернов и повторяемустью или наоборот повторным использованием кода нет".
Мне кажется здеь не хватает строгости рассуждений. Вопервых "паттерн" и "код" это понятия разного уровня абстракций.
Если вы говорите "повторяемость" то повторяемость извините чего? Паттерна? кода? А код реализует паттерн.
А повторное использование кода разве не есть повтореное исползование паттерна?
...


авторВопервых "паттерн" и "код" это понятия разного уровня абстракций.
По части уровня абстракции - однозначно да.

Паттерн слово не русское. Чтобы понять, о чем речь - требуется перевод - образец .
О поторяемости паттерна осмысленно говорить, когда, читая код раличных программ вы опознаете в них известные вам образцы.
Паттерны - это тоже "код", но читается и опознается этот код на уровне выше синтаксиса программы, реализующей паттерн.

автор А повторное использование кода разве не есть повтореное исползование паттерна?
За паттерн можно было бы признать идею повторного использования кода.
Это затрудняется тем, что фраза "повторное использование кода" расплывчата и не дает точного специфически опознаваемого варианта. Слишком общая и абстрактная идея, а для паттерна, имеющего собственное имя , специфическое имя важнее самого образца, т.к. паттерн животное не дает возможности отличить барана от козла , в ситуациях требующих такого различения.

Повторное использование кода, в качестве общей идеи заключается, в выделении и создании собственного имени некоторому
фрагменту кода.
Но есть ситуации, когда компилятор скрытым образом создает специфические реализации этого кода для каждого типа данных, для которого этот код однажды и единственный раз написал этот код.
А есть ситуации, когда однажды и единственным образом текст программы и физически в системе существует в единственной реализации для всех использующих его типов данных.
Можно сказать, что это два подпаттерна одного суперпаттерна. но обычно так не говорят, предпочитая рассуждать в терминах плоского набора паттернов - опознаваемых образцов кода, решающих специфическую задачу.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / парадигма OOP плохо ложиться на ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]