powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подходы к построению архитектуры в функциональном программировании
25 сообщений из 207, страница 7 из 9
Подходы к построению архитектуры в функциональном программировании
    #39922425
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OpenGL - хотя и чисто-процедурный. Тем не менее имеет объектный вид.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922436
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
насколько я помню, (могу местами ошибаться), все с объектами (ООП !) и все на _чистом__ C.

объекты это ещё не ООП.
в C нет ООП (там только struct).
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922437
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь.

Java можно без ООП?
вроде нельзя.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922438
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот еще интересное ООП. Или не-ООП. Или просто структуризация атомов и method-reference в некие
группы.

Код: javascript
1.
2.
3.
4.
let user = {
  name: "John",
  age: 30,
}
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922440
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух
mayton
Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь.

Java можно без ООП?
вроде нельзя.

Статический метод main вызывается без создания объекта.

Значит я обманул ООП.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922445
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух
Leonid Kudryavtsev
насколько я помню, (могу местами ошибаться), все с объектами (ООП !) и все на _чистом__ C.

объекты это ещё не ООП.
в C нет ООП (там только struct).


Объекты, инкапсуляция, наследование - это еще не ООП ? И все реализовано на чистом C.

И, насколько я помню, в C++ можно вообще без классов писать! код ниже будет ООП или не будет? Там же только struct!
Код: plaintext
1.
2.
3.
4.
5.
6.
struct AA {
  int myVar;
  void myMethod( void ) {
     myVar = 0;
  }
}
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922446
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну смотри. Если программист берет Хаскель (чисто ФП. Породистый. Правильный. Без побочки).
То он нифига не может создать изменяемую переменную. Его язык ограничил! Он говорит - ты
сцуко ДОЛЖЕН сделать код без состояния.

Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь.

ООП - опционально!


Нет, не можешь. ООП не опционально. Как минимум должен быть класс с методом -- точкой входа.
И потом, все библиотечные средства представляют собой классы и интерфейсы.
В C# даже ссылка на метод -- делегат, является объектом соответствующего класса.

Поэтому не придумывайте :)
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922448
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Код: java
1.
2.
3.
4.
5.
public class Test{
 public static void main(String[] args) {
    ....
 }
}




Я пишу блин процедурно. У меня тут от ООП вообще нет ничего!! У меня ООП появится только когда я этого захочу.

Ты согласен?


Не могу согласиться. Вы создали класс с методами. Пусть он один и пусть в нём 100500 методов. Вы в мире ООП :)
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922450
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Код: java
1.
2.
3.
4.
5.
public class Test{
 public static void main(String[] args) {
    ....
 }
}




Я пишу блин процедурно. У меня тут от ООП вообще нет ничего!! У меня ООП появится только когда я этого захочу.

Ты согласен?


Не могу согласиться. Вы создали класс с методами. Пусть он один и пусть в нём 100500 методов. Вы в мире ООП :)


А ничего что экземпляра нет?
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922452
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

В C# всё есть объекты, числа, строки.
Да, конечно ещё есть структуры, но они могут наследовать интерфейсы, передаваться по ссылке, иметь закрытые поля и методы.

В общем, такое себе.

Собственно то, о чём вы говорите нужно смотреть в контексте конкретно решаемой задачи.
Можно решить её конечно в процедурном стиле, функциональном стиле, или с декомпозицией на объекты.
Но в любом случае у таких языках как C#, Java у вас будет машап с уклоном в какую-либо сторону.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922453
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А ничего что экземпляра нет?


Экземпляра класса? С синтаксической точки зрения он есть, это синглетон.
С точки зрения имплементации, есть экземпляр типа.

Но допустим вы не будете использовать библиотечный функционал, который использует ООП по полной.
Будет у вас определённый стиль.
ООП никуда не делось всё равно.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922455
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

И я вам больше скажу. Можно использовать ООП и писать в расово функциональном стиле при этом :)
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922456
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

Экземпляра класса? С синтаксической точки зрения он есть, это синглетон.

СИНГЛЕТОН ?

Дошли ((( Из всех патернов я знаю ровно один, пример mayton'а явно не синглетон (((
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922457
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно закроем тему. Я-бы поговорил по Хаскель. Но чуть позже.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922475
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
hVostt

Экземпляра класса? С синтаксической точки зрения он есть, это синглетон.

СИНГЛЕТОН ?

Дошли ((( Из всех патернов я знаю ровно один, пример mayton'а явно не синглетон (((

Мы можем спуститься на уровень JVM и рассматривать экземпляр класса как объект.
Но это явно не уровень Language. Это уже реализация машины. В Sun/Oracle так.
В Android может быть другой принцип.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922478
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Я уже несколько дней пишу о том что ООП - это просто набор "лучших практик".

А их никто никогда не доказывает. Недоказуемые они.


ООП это не набор лучших практик. Это конкретный инструмент, доступный во многих языках программирования на уровне синтаксиса и структур. С какой кстати, это стало практиками?

Хочешь не хочешь, в ЯП с ООП вы будете использовать это ООП, хотя бы как потребитель. Даже если не будете ничего проектировать.


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

Нет. User-stories могут содержать сэмплы входных данных в качестве примера.


Это для QA )


так можно сказать и про уравнения мат физики.
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922482
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
полудух
пропущено...

объекты это ещё не ООП.
в C нет ООП (там только struct).


Объекты, инкапсуляция, наследование - это еще не ООП ? И все реализовано на чистом C.

И, насколько я помню, в C++ можно вообще без классов писать! код ниже будет ООП или не будет? Там же только struct!
Код: plaintext
1.
2.
3.
4.
5.
6.
struct AA {
  int myVar;
  void myMethod( void ) {
     myVar = 0;
  }
}


Надо понимать, что ООП сегодня оброс таким кол-вом левой инфы, что уже чёрт ногу сломит, причём несколько десятилетий уже... Очень усложнили всё и всех запутали.
Сам создатель ООП-а заявлял, что сегодняшний ООП не имеет ничего общего с тем, что он задумывал.
Вот цитата из вики:
авторОбъектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов , каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования.
Да хрен там , объект это ещё не ООП! Тут только половина правды - "наследование" это уже ООП, а "совокупность объектов" - нет.
У вас же там просто структура без ООП-а (без того ООП-а, когда оно начинает работать, как ООП).

ООП это лишь способ сократить размер кода, убрать повторы, упростить сопровождение. А ему приписывают какие-то левые функции, которые часто вообще не про него.
Что я понимаю под чётким ООП, у него есть вполне определённый набор инструментов:
наследование, абстракция (интерфейсы), инкапсуляция (public/private) И конструкторы/деструкторы (почему-то про них все забывают, а они ведь имбово рулят в том же C++, позволяя на этапе создания класса проверить большинство параметров, чем сильно упрощают отлов багов.
В C++ вообще философия подхода к объектам очень сильно выпрямляет сознание после того же ПХП (откуда я пришёл), там в объекты пихают вообще всё-всё-всё уже, а в C++ нет, там наоборот уменьшают размер объектов и юзают их как мапы фактически).
Ещё есть полиморфизм (способность ф-и обрабатывать разные типы данных), но в C/C++ это обычный челлендж с шаблонами и к ООП не относится (т.е. опять деза, хоть и решает упрощение кода, но не всё то ООП, что упрощает код).

В C же вообще нет ООП, там нет наследования и нет private/protected, только public всегда.
А вместо наследования там это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
struct parent {
  /* ... */
}

struct child {
  struct parent p;
  /* ... */
}


А между тем, это самый настоящий объект .
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++ основана на неймспейсах, ф-ях и структурах, а классы это способ автоматизировать проверку данных на валидность.
Иерархия классов это громоздкая и сложная штука, её надо избегать, но иногда без неё никуда :(
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922483
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Ну смотри. Если программист берет Хаскель (чисто ФП. Породистый. Правильный. Без побочки).
То он нифига не может создать изменяемую переменную. Его язык ограничил! Он говорит - ты
сцуко ДОЛЖЕН сделать код без состояния.

Если я безу C# или Java то я могу делать ООП а могу и не делать. Опция у меня. Понимаешь.

ООП - опционально!


Нет, не можешь. ООП не опционально. Как минимум должен быть класс с методом -- точкой входа.
И потом, все библиотечные средства представляют собой классы и интерфейсы.
В C# даже ссылка на метод -- делегат, является объектом соответствующего класса.

Поэтому не придумывайте :)


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


Нет, не можешь. ООП не опционально. Как минимум должен быть класс с методом -- точкой входа.
И потом, все библиотечные средства представляют собой классы и интерфейсы.
В C# даже ссылка на метод -- делегат, является объектом соответствующего класса.

Поэтому не придумывайте :)


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


бест практикс, для сопровождения, ничего более, но и не менее
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922494
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух
Leonid Kudryavtsev
пропущено...


Объекты, инкапсуляция, наследование - это еще не ООП ? И все реализовано на чистом C.

И, насколько я помню, в C++ можно вообще без классов писать! код ниже будет ООП или не будет? Там же только struct!
Код: plaintext
1.
2.
3.
4.
5.
6.
struct AA {
  int myVar;
  void myMethod( void ) {
     myVar = 0;
  }
}


Надо понимать, что ООП сегодня оброс таким кол-вом левой инфы, что уже чёрт ногу сломит, причём несколько десятилетий уже... Очень усложнили всё и всех запутали.
Сам создатель ООП-а заявлял, что сегодняшний ООП не имеет ничего общего с тем, что он задумывал.
Вот цитата из вики:
авторОбъектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов , каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования.

Да хрен там , объект это ещё не ООП! Тут только половина правды - "наследование" это уже ООП, а "совокупность объектов" - нет.
У вас же там просто структура без ООП-а (без того ООП-а, когда оно начинает работать, как ООП).

ООП это лишь способ сократить размер кода, убрать повторы, упростить сопровождение. А ему приписывают какие-то левые функции, которые часто вообще не про него.
Что я понимаю под чётким ООП, у него есть вполне определённый набор инструментов:
наследование, абстракция (интерфейсы), инкапсуляция (public/private) И конструкторы/деструкторы (почему-то про них все забывают, а они ведь имбово рулят в том же C++, позволяя на этапе создания класса проверить большинство параметров, чем сильно упрощают отлов багов.
В C++ вообще философия подхода к объектам очень сильно выпрямляет сознание после того же ПХП (откуда я пришёл), там в объекты пихают вообще всё-всё-всё уже, а в C++ нет, там наоборот уменьшают размер объектов и юзают их как мапы фактически).
Ещё есть полиморфизм (способность ф-и обрабатывать разные типы данных), но в C/C++ это обычный челлендж с шаблонами и к ООП не относится (т.е. опять деза, хоть и решает упрощение кода, но не всё то ООП, что упрощает код).

В C же вообще нет ООП, там нет наследования и нет private/protected, только public всегда.
А вместо наследования там это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
struct parent {
  /* ... */
}

struct child {
  struct parent p;
  /* ... */
}


А между тем, это самый настоящий объект .
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++ основана на неймспейсах, ф-ях и структурах, а классы это способ автоматизировать проверку данных на валидность.
Иерархия классов это громоздкая и сложная штука, её надо избегать, но иногда без неё никуда :(
+
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922495
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
OpenGL - хотя и чисто-процедурный. Тем не менее имеет объектный вид.


не соглашусь. он имеет вид "управления объектами по их свойствам"
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922524
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мы можем спуститься на уровень JVM и рассматривать экземпляр класса как объект.
Но это явно не уровень Language. Это уже реализация машины. В Sun/Oracle так.

Вообще то экземпляр класса и есть объект, инстанс то бишь, называть статическую часть единую для всех
экземпляров класса экземпляром класса как то неправильно, каламбур получается))

ООП - уровень абстракции позволяющий разбить процедурную монолитную нечитаемую и неподдерживаемую
портянку на отдельные условно-независимые части, работать с кирпичиками и складывать из кирпичиков
человеку гораздо проще чем пытаться уместить в мозг все и сразу, на счет того как разбивать, каждый
разработчик компиляторов смотрит по своему, в любом случае ООП программа может быть декомпозирована
в процедурную (не человеком, человеку сложновато это проделать иначе бы не нужена была ООП-абстракция).
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922550
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev, так говоришь будто процедурно - это плохо. Все ядра операционных систем написаны на языке
в котором принципиально нет объектов. Наиболее популярные игры конца 2000х написаны на "C".
...
Рейтинг: 0 / 0
Подходы к построению архитектуры в функциональном программировании
    #39922556
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Это не плохо, то что ты перечислил это низкоуровневые вещи требующие хорошей работы с железом
и как следствие уровень наиболее близкий к железу, бизнес задачи решать на таком уровне как правило
не удобно, кода слишком много, организация его плохая, вот и выходим на другие уровни абстракции.
...
Рейтинг: 0 / 0
25 сообщений из 207, страница 7 из 9
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подходы к построению архитектуры в функциональном программировании
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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