Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
OpenGL - хотя и чисто-процедурный. Тем не менее имеет объектный вид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 17:15 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev насколько я помню, (могу местами ошибаться), все с объектами (ООП !) и все на _чистом__ C. объекты это ещё не ООП. в C нет ООП (там только struct). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 17:53 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь. Java можно без ООП? вроде нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 17:55 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
А вот еще интересное ООП. Или не-ООП. Или просто структуризация атомов и method-reference в некие группы. Код: javascript 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 17:59 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
полудух mayton Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь. Java можно без ООП? вроде нельзя. Статический метод main вызывается без создания объекта. Значит я обманул ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:00 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
полудух Leonid Kudryavtsev насколько я помню, (могу местами ошибаться), все с объектами (ООП !) и все на _чистом__ C. объекты это ещё не ООП. в C нет ООП (там только struct). Объекты, инкапсуляция, наследование - это еще не ООП ? И все реализовано на чистом C. И, насколько я помню, в C++ можно вообще без классов писать! код ниже будет ООП или не будет? Там же только struct! Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:10 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton Ну смотри. Если программист берет Хаскель (чисто ФП. Породистый. Правильный. Без побочки). То он нифига не может создать изменяемую переменную. Его язык ограничил! Он говорит - ты сцуко ДОЛЖЕН сделать код без состояния. Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь. ООП - опционально! Нет, не можешь. ООП не опционально. Как минимум должен быть класс с методом -- точкой входа. И потом, все библиотечные средства представляют собой классы и интерфейсы. В C# даже ссылка на метод -- делегат, является объектом соответствующего класса. Поэтому не придумывайте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:13 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton Код: java 1. 2. 3. 4. 5. Я пишу блин процедурно. У меня тут от ООП вообще нет ничего!! У меня ООП появится только когда я этого захочу. Ты согласен? Не могу согласиться. Вы создали класс с методами. Пусть он один и пусть в нём 100500 методов. Вы в мире ООП :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:14 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
hVostt mayton Код: java 1. 2. 3. 4. 5. Я пишу блин процедурно. У меня тут от ООП вообще нет ничего!! У меня ООП появится только когда я этого захочу. Ты согласен? Не могу согласиться. Вы создали класс с методами. Пусть он один и пусть в нём 100500 методов. Вы в мире ООП :) А ничего что экземпляра нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:18 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton, В C# всё есть объекты, числа, строки. Да, конечно ещё есть структуры, но они могут наследовать интерфейсы, передаваться по ссылке, иметь закрытые поля и методы. В общем, такое себе. Собственно то, о чём вы говорите нужно смотреть в контексте конкретно решаемой задачи. Можно решить её конечно в процедурном стиле, функциональном стиле, или с декомпозицией на объекты. Но в любом случае у таких языках как C#, Java у вас будет машап с уклоном в какую-либо сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:20 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton А ничего что экземпляра нет? Экземпляра класса? С синтаксической точки зрения он есть, это синглетон. С точки зрения имплементации, есть экземпляр типа. Но допустим вы не будете использовать библиотечный функционал, который использует ООП по полной. Будет у вас определённый стиль. ООП никуда не делось всё равно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:22 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton, И я вам больше скажу. Можно использовать ООП и писать в расово функциональном стиле при этом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:23 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
hVostt Экземпляра класса? С синтаксической точки зрения он есть, это синглетон. СИНГЛЕТОН ? Дошли ((( Из всех патернов я знаю ровно один, пример mayton'а явно не синглетон ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:24 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Ладно закроем тему. Я-бы поговорил по Хаскель. Но чуть позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 18:25 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev hVostt Экземпляра класса? С синтаксической точки зрения он есть, это синглетон. СИНГЛЕТОН ? Дошли ((( Из всех патернов я знаю ровно один, пример mayton'а явно не синглетон ((( Мы можем спуститься на уровень JVM и рассматривать экземпляр класса как объект. Но это явно не уровень Language. Это уже реализация машины. В Sun/Oracle так. В Android может быть другой принцип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:19 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
hVostt mayton Я уже несколько дней пишу о том что ООП - это просто набор "лучших практик". А их никто никогда не доказывает. Недоказуемые они. ООП это не набор лучших практик. Это конкретный инструмент, доступный во многих языках программирования на уровне синтаксиса и структур. С какой кстати, это стало практиками? Хочешь не хочешь, в ЯП с ООП вы будете использовать это ООП, хотя бы как потребитель. Даже если не будете ничего проектировать. нет. в ФП поток, обрабатываемый/порождаемый программой не подразумевает никаких "классов, интерфейсов, наследования". там другие абстракции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:26 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
hVostt mayton пропущено... Нет. User-stories могут содержать сэмплы входных данных в качестве примера. Это для QA ) так можно сказать и про уравнения мат физики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:28 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev полудух пропущено... объекты это ещё не ООП. в C нет ООП (там только struct). Объекты, инкапсуляция, наследование - это еще не ООП ? И все реализовано на чистом C. И, насколько я помню, в C++ можно вообще без классов писать! код ниже будет ООП или не будет? Там же только struct! Код: plaintext 1. 2. 3. 4. 5. 6. Надо понимать, что ООП сегодня оброс таким кол-вом левой инфы, что уже чёрт ногу сломит, причём несколько десятилетий уже... Очень усложнили всё и всех запутали. Сам создатель ООП-а заявлял, что сегодняшний ООП не имеет ничего общего с тем, что он задумывал. Вот цитата из вики: авторОбъектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов , каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования. Да хрен там , объект это ещё не ООП! Тут только половина правды - "наследование" это уже ООП, а "совокупность объектов" - нет. У вас же там просто структура без ООП-а (без того ООП-а, когда оно начинает работать, как ООП). ООП это лишь способ сократить размер кода, убрать повторы, упростить сопровождение. А ему приписывают какие-то левые функции, которые часто вообще не про него. Что я понимаю под чётким ООП, у него есть вполне определённый набор инструментов: наследование, абстракция (интерфейсы), инкапсуляция (public/private) И конструкторы/деструкторы (почему-то про них все забывают, а они ведь имбово рулят в том же C++, позволяя на этапе создания класса проверить большинство параметров, чем сильно упрощают отлов багов. В C++ вообще философия подхода к объектам очень сильно выпрямляет сознание после того же ПХП (откуда я пришёл), там в объекты пихают вообще всё-всё-всё уже, а в C++ нет, там наоборот уменьшают размер объектов и юзают их как мапы фактически). Ещё есть полиморфизм (способность ф-и обрабатывать разные типы данных), но в C/C++ это обычный челлендж с шаблонами и к ООП не относится (т.е. опять деза, хоть и решает упрощение кода, но не всё то ООП, что упрощает код). В C же вообще нет ООП, там нет наследования и нет private/protected, только public всегда. А вместо наследования там это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. А между тем, это самый настоящий объект . Leonid Kudryavtsev И, насколько я помню, в C++ можно вообще без классов писать! Да, и создатели языка именно топят за то, чтобы делать классы как можно меньше : авторC.4: Make a function a member ONLY if it needs direct access to the representation of a class C.5: Place helper functions in the same namespace as the class they support Идеальная программа в C++ основана на неймспейсах, ф-ях и структурах, а классы это способ автоматизировать проверку данных на валидность. Иерархия классов это громоздкая и сложная штука, её надо избегать, но иногда без неё никуда :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:34 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
hVostt mayton Ну смотри. Если программист берет Хаскель (чисто ФП. Породистый. Правильный. Без побочки). То он нифига не может создать изменяемую переменную. Его язык ограничил! Он говорит - ты сцуко ДОЛЖЕН сделать код без состояния. Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь. ООП - опционально! Нет, не можешь. ООП не опционально. Как минимум должен быть класс с методом -- точкой входа. И потом, все библиотечные средства представляют собой классы и интерфейсы. В C# даже ссылка на метод -- делегат, является объектом соответствующего класса. Поэтому не придумывайте :) ООП в решении задачи - это ООП в мозгу решателя. решение дифура - это, пусть вульгарно, "ф-я". в ФП эта вульгарщина введена в формальную систему, там есть "можно доказать". в ООП - нет. просто потому что ООП - это никакая не парадигма, это просто надстройка. и, пока, надстройка над императивными языками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:35 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
love_bach hVostt пропущено... Нет, не можешь. ООП не опционально. Как минимум должен быть класс с методом -- точкой входа. И потом, все библиотечные средства представляют собой классы и интерфейсы. В C# даже ссылка на метод -- делегат, является объектом соответствующего класса. Поэтому не придумывайте :) ООП в решении задачи - это ООП в мозгу решателя. решение дифура - это, пусть вульгарно, "ф-я". в ФП эта вульгарщина введена в формальную систему, там есть "можно доказать". в ООП - нет. просто потому что ООП - это никакая не парадигма, это просто надстройка. и, пока, надстройка над императивными языками. бест практикс, для сопровождения, ничего более, но и не менее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:37 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
полудух Leonid Kudryavtsev пропущено... Объекты, инкапсуляция, наследование - это еще не ООП ? И все реализовано на чистом C. И, насколько я помню, в C++ можно вообще без классов писать! код ниже будет ООП или не будет? Там же только struct! Код: plaintext 1. 2. 3. 4. 5. 6. Надо понимать, что ООП сегодня оброс таким кол-вом левой инфы, что уже чёрт ногу сломит, причём несколько десятилетий уже... Очень усложнили всё и всех запутали. Сам создатель ООП-а заявлял, что сегодняшний ООП не имеет ничего общего с тем, что он задумывал. Вот цитата из вики: авторОбъектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов , каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования. Да хрен там , объект это ещё не ООП! Тут только половина правды - "наследование" это уже ООП, а "совокупность объектов" - нет. У вас же там просто структура без ООП-а (без того ООП-а, когда оно начинает работать, как ООП). ООП это лишь способ сократить размер кода, убрать повторы, упростить сопровождение. А ему приписывают какие-то левые функции, которые часто вообще не про него. Что я понимаю под чётким ООП, у него есть вполне определённый набор инструментов: наследование, абстракция (интерфейсы), инкапсуляция (public/private) И конструкторы/деструкторы (почему-то про них все забывают, а они ведь имбово рулят в том же C++, позволяя на этапе создания класса проверить большинство параметров, чем сильно упрощают отлов багов. В C++ вообще философия подхода к объектам очень сильно выпрямляет сознание после того же ПХП (откуда я пришёл), там в объекты пихают вообще всё-всё-всё уже, а в C++ нет, там наоборот уменьшают размер объектов и юзают их как мапы фактически). Ещё есть полиморфизм (способность ф-и обрабатывать разные типы данных), но в C/C++ это обычный челлендж с шаблонами и к ООП не относится (т.е. опять деза, хоть и решает упрощение кода, но не всё то ООП, что упрощает код). В C же вообще нет ООП, там нет наследования и нет private/protected, только public всегда. А вместо наследования там это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. А между тем, это самый настоящий объект . Leonid Kudryavtsev И, насколько я помню, в C++ можно вообще без классов писать! Да, и создатели языка именно топят за то, чтобы делать классы как можно меньше : авторC.4: Make a function a member ONLY if it needs direct access to the representation of a class C.5: Place helper functions in the same namespace as the class they support Идеальная программа в C++ основана на неймспейсах, ф-ях и структурах, а классы это способ автоматизировать проверку данных на валидность. Иерархия классов это громоздкая и сложная штука, её надо избегать, но иногда без неё никуда :( + ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:58 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton OpenGL - хотя и чисто-процедурный. Тем не менее имеет объектный вид. не соглашусь. он имеет вид "управления объектами по их свойствам" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 19:59 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton Мы можем спуститься на уровень JVM и рассматривать экземпляр класса как объект. Но это явно не уровень Language. Это уже реализация машины. В Sun/Oracle так. Вообще то экземпляр класса и есть объект, инстанс то бишь, называть статическую часть единую для всех экземпляров класса экземпляром класса как то неправильно, каламбур получается)) ООП - уровень абстракции позволяющий разбить процедурную монолитную нечитаемую и неподдерживаемую портянку на отдельные условно-независимые части, работать с кирпичиками и складывать из кирпичиков человеку гораздо проще чем пытаться уместить в мозг все и сразу, на счет того как разбивать, каждый разработчик компиляторов смотрит по своему, в любом случае ООП программа может быть декомпозирована в процедурную (не человеком, человеку сложновато это проделать иначе бы не нужена была ООП-абстракция). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 22:12 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
iOracleDev, так говоришь будто процедурно - это плохо. Все ядра операционных систем написаны на языке в котором принципиально нет объектов. Наиболее популярные игры конца 2000х написаны на "C". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 00:53 |
|
||
|
Подходы к построению архитектуры в функциональном программировании
|
|||
|---|---|---|---|
|
#18+
mayton, Это не плохо, то что ты перечислил это низкоуровневые вещи требующие хорошей работы с железом и как следствие уровень наиболее близкий к железу, бизнес задачи решать на таком уровне как правило не удобно, кода слишком много, организация его плохая, вот и выходим на другие уровни абстракции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 01:10 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39922550&tid=1339831]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 277ms |

| 0 / 0 |
