Введение сложное, длинное описание более потяное.
Есть 2 популярные парадигмы программирования: функциональное и ООП.
Я придумал следующее: в сущностях (можно написать «объектах» или любое другое слово, но это не прям объекты ООП, а в целом то, что мы используем при написании программы, функция — тоже какого-то рода «объект», который используется при написании программ, класс — это тоже некая сущность, некий «объект», который мы использвем при написании программ, переменная — тоже самое, т.е. те сущности их которых состоит программа).
В общем в этих сущностях/объектах выделять минимальные «свойства» (или можно сказать минимальное «поведение» или «элементарные свойства»), и создавать программы не на основе чего-то стандартного, например функции или класса, а создавать программы комбинируя эти выделенные минимальные «свойства» получая новые сущности/объекты.
В статье я попытался расписать подробнее, что я имею ввиду.
Возьмем например «объект», который используется при написании программ — функция.
У нее есть свойства:
-
имеет имя
-
можно вызывать ее — выполнять ее как код
-
можно присваивать в переменные (не в каждом языке программирования (ЯП))
-
можно передавать в другие функции или возвращать из других функций (не в каждом ЯП)
Т.е, относитесь к «свойствам» — как к предложениям на русском языке, которыми можно описать функцию. Я привел несколько. Вот сколько предложений о функции вы сможете сказать — столько свойств и есть у функции.
Т.е. первое — я предлагаю выделять минимальные частицы — минимальные уже неделимые дальше свойства из стандартных сущностей из которых состоит программа. Как будто мы составили список предложений, которые описывают программу, каждое предложение содержит одну мысль.
И затем мы можем создать новый «объект» из этих свойств:
-
имеет имя
-
можно передавать в другие функции
-
и все, других свойств у нашего нового «объекта» нету (для примера)
Такого объекта языка программирования конечно не существует, но мы можем его представить в образе и каким-то образом запрограммировать (используя классы ООП или функции в функциональном программировании, используя стандартные сущности, которые есть в языке программирования) и дальше использовать.
Очень хочется разобрать еще пару других стандартных «объектов», которые мы используем при написании программ.
Класс:
-
имеет даннные
-
имеет несколько функций
-
функции имеют доступ к данным
JSON строка:
-
может передаваться по сети (сериализоваться)
-
простая в структура и понимании
Вы можете выделить совершенно другие «элементарные свойства» этих 2 объектов.
Теперь мы можем комбинировать все свойства этих 3 объектов (функция, класс, json строка) вместе в любой комбинации:
-
имеет имя
-
может выполняться как код
-
может передаваться по сети (сериализоваться)
-
именно такая комбинация свойств и больше никаких свойств нету
Мы можем создать такой «объект» в нашей программе, используя стандартные сущности языка программирования (через классы в ООП или через функции в функциональном программировании) и запрограммировать такой «объект» и дальше использовать.
В общем суть моей парадигмы программирования:
Смотреть не на стандартные объекты типа функция, класс, а выделять из стандартных объектом минимальные свойства (поведение, элементарные частицы) и комбинировать эти элементарные свойства, создавать новые объекты и использовать их в своих программах.
ссылка на оригинал статьи https://habr.com/ru/articles/857284/
Добавить комментарий