Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 На счет ООП программирования  [new]
qi_ip
Member

Откуда:
Сообщений: 551
Приветствую!
Подскажите, пожалуйста, ресурсы/книги/доки, чтобы начать полноценно программировать в ключе ООП программирования.
Недавно делали код ревью, сказали, что код работает, но больше смахивает на "процедурное программирование". Где поднатаскаться на ООП? В основном программирую под веб, а теперь хочу изучить еще и Сore.
Спасибо!
5 июл 19, 00:19    [21921239]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Подпишись на https://javarush.ru

Там было несколько курсов по ООП.
5 июл 19, 00:24    [21921242]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Sergunka
Member

Откуда:
Сообщений: 1843
qi_ip
Приветствую!
Подскажите, пожалуйста, ресурсы/книги/доки, чтобы начать полноценно программировать в ключе ООП программирования.
Недавно делали код ревью, сказали, что код работает, но больше смахивает на "процедурное программирование". Где поднатаскаться на ООП? В основном программирую под веб, а теперь хочу изучить еще и Сore.
Спасибо!


Посмотрите как программируются классические дизайн патерны хороший пример декоратора
https://www.baeldung.com/java-decorator-pattern

Там важен момент, что вы не изменяя объекта добавляете ему новую функциональность.

На самом деле никто особо на практике ООП не пользуется все пользуют дизайн патернами когда подвернется случай
5 июл 19, 02:51    [21921254]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
qi_ip
больше смахивает на "процедурное программирование
ни одного класса поди не создал и глобальные переменные?
5 июл 19, 08:03    [21921280]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
qi_ip
Member

Откуда:
Сообщений: 551
PetroNotC Sharp
qi_ip
больше смахивает на "процедурное программирование
ни одного класса поди не создал и глобальные переменные?

Как это ни одного класса )))) Много классов, потоки, бины, соединение к БД ))))
5 июл 19, 08:37    [21921289]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
qi_ip
Member

Откуда:
Сообщений: 551
Sergunka, mayton, спасибо буду смотреть.
5 июл 19, 08:38    [21921291]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
qi_ip,
То есть ты вообще не понял что они имели ввиду конкретно?
5 июл 19, 09:21    [21921321]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Sergunka
самом деле никто особо на практике ООП не пользуется
+1
В веб проектах процедурное)
5 июл 19, 09:23    [21921324]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
qi_ip
Member

Откуда:
Сообщений: 551
PetroNotC Sharp
qi_ip,
То есть ты вообще не понял что они имели ввиду конкретно?

Честно сказать, не совсем ))) Под Сore писал не так много, поэтому запостил тут, чтобы уточнить у знающих, в чем разница.
5 июл 19, 09:36    [21921332]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
qi_ip
Member

Откуда:
Сообщений: 551
Как вариант, может поделитесь ссылками на хорошие опенсорс core проекты (там различные сокет-сервера и прочее), где можно будет код посмотреть
5 июл 19, 09:39    [21921334]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
qi_ip,
Зря ты у них не уточнил.
Если много классов и нет глобальных, код неможет быть процедурным. Спагетти может.
5 июл 19, 09:41    [21921337]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
pavel_nv
Member

Откуда: NV -> SpB
Сообщений: 257
PetroNotC Sharp
Если много классов и нет глобальных, код не может быть процедурным. Спагетти может.


Может, если ему нужно расширить поведение метода, он добавляет в него boolean параметры или перегружает его, вместо наследования. Тогда да, без ОПП, хоть и есть классы и потоки.
5 июл 19, 10:55    [21921417]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
pavel_nv,
Вместо 6ти перегруженных один с 6тью параметрами - да. Согласен. Но перегрузка это не наследование. Наследование я не понял.
5 июл 19, 11:00    [21921423]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Нет. Вы просто красавчеки-Нострадамусы. Автор вообще ни слова не сказал про 6 перегруженных а вы
уже развиваете идею.

Остановитесь.
5 июл 19, 11:20    [21921443]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
mayton,
Это курилка по теме, а рядом без темы))
5 июл 19, 11:23    [21921446]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
qi_ip
Подскажите, пожалуйста, ресурсы/книги/доки, чтобы начать полноценно программировать в ключе ООП программирования.

лучшая
5 июл 19, 13:33    [21921594]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
qi_ip
Member

Откуда:
Сообщений: 551
полудух
qi_ip
Подскажите, пожалуйста, ресурсы/книги/доки, чтобы начать полноценно программировать в ключе ООП программирования.

лучшая

Спасибо, почитаю
5 июл 19, 15:23    [21921669]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
казинак
Member

Откуда:
Сообщений: 1263
qi_ip
Недавно делали код ревью, сказали, что код работает, но больше смахивает на "процедурное программирование".
я тебе один умный вещь скажу, но только ты не обижайся.(c)
те кто тебе это сказал, просто пукнули в лужу
еслиб они конкретно сказали, что это не будет работать, или будет работать плохо, или трудно сопровождать, причем аргументированно, то был бы смысл задуматься над их словами...
а типа : "смахивает на процедурное..." - это просто им отбрехаться на митинге надо было
5 июл 19, 17:36    [21921766]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Sergunka
Member

Откуда:
Сообщений: 1843
Обычно, чтоб на ревью с группой "босоногих пацанов" не попасть очередной бла-бла-бла. Делается предварительный рефакторинг кода.

Сразу я обычно пишу кирпичом так как надо, чтоб работало уже вчера

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

Процесс довольно итерационный если ли есть время то сразу начинаю писать тесты... много думать
5 июл 19, 19:38    [21921808]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
вообще-то фреймворки придумали
5 июл 19, 20:30    [21921820]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Sergunka
Member

Откуда:
Сообщений: 1843
полудух
вообще-то фреймворки придумали


Да тут большое подспорье так как уже как бЭ намекают, что в том же спринге подставь аннотацию @Component, @Service, @Repository etc и ты уже вписался
5 июл 19, 20:40    [21921822]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
полудух
вообще-то фреймворки придумали
ну он на java core замахнулся. Получается это в С++ без Boost и java без фреймворков наверно.
5 июл 19, 20:42    [21921823]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Sergunka
Сразу я обычно пишу кирпичом так как надо, чтоб работало уже вчера Картинка с другого сайта.

Перед ревью или обычно перед тестами садишься и разбиваешь кирпич на классы. После чего из классов выносишь интерфейс. Потом смотришь можно ли классы
я обычно классы ввожу сразу.
Смотрю, что мне для получения инфы нужно 10 строк крда впереди написать, ну я умный класс и ввожу сразу.
А термин писать кирпичом это как?)) Это сленговое слово?)))
5 июл 19, 20:51    [21921824]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
PetroNotC Sharp
полудух
вообще-то фреймворки придумали
ну он на java core замахнулся. Получается это в С++ без Boost и java без фреймворков наверно.

в яве нет фреймворков?
они же даже в C++ есть Картинка с другого сайта.
6 июл 19, 02:52    [21921902]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
полудух,
В яве больше чем в других ЯП. Как раз получается что в яве тяжелее без них писать.
Вот в C++ core замутить ООП элементарно. А в яве сложно так как в основном веб проекты. Тут куча матрешек и ООП выхолащивается. За жизненным циклом классов следить не надо. Инжекция в полный рост. Декларативное программирование тоже губит ООП.
Как то так. Процедурщики давно тут)).
Пару аннотаций написал и REST готов.
))
6 июл 19, 10:08    [21921944]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
казинак
qi_ip
Недавно делали код ревью, сказали, что код работает, но больше смахивает на "процедурное программирование".
я тебе один умный вещь скажу, но только ты не обижайся.(c)
те кто тебе это сказал, просто пукнули в лужу
еслиб они конкретно сказали, что это не будет работать, или будет работать плохо, или трудно сопровождать, причем аргументированно, то был бы смысл задуматься над их словами...
а типа : "смахивает на процедурное..." - это просто им отбрехаться на митинге надо было


Вот мне тоже кажется. Тут либо одно либо другое. Либо ты пишешь класс и создаешь его объект, либо ты пишешь процедуру (т.е. метод) в классе и все действия производишь в нем.
А когда кто-то говорит что это "смахивает" на процедурное, то это скорее смахивает на то, что он идиот. Это как быть немножко беременной. Тут либо одно либо другое. "Смахивает" - не прокатит.
7 июл 19, 14:08    [21922223]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
процедурный код отличается от ООП визуально
его сразу видно
но в яве всё классы, так что даже хз, как там с этим...
7 июл 19, 14:43    [21922234]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
qi_ip
Member

Откуда:
Сообщений: 551
полудух
процедурный код отличается от ООП визуально
его сразу видно
но в яве всё классы, так что даже хз, как там с этим...

Как Вы его отличаете, если не секрет? Какие параметры смотрите? На что обращаете внимание?
Спасибо!
7 июл 19, 19:32    [21922301]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
В объектном программировании каждая процедура снабжается виртуальным параметром.
Это указатель на текущий объект. Так называемый this. В ООП языках (C++/C#) этот this
поддерживается на уровне языка и компиллятора. Тоесть каждый метод вызывается
в КОНТЕКСТЕ текущего объекта.

В процедурном программировании ничего подобного нет.
7 июл 19, 20:15    [21922307]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
процедурное программирование это просто портянка ф-й
у тех кто с ООП не знаком, они даже по файлам то раскиданы не будут толком
ну а дальше открываем файл, а там:
$this->
public/protected/private
extends
interface/abstract
7 июл 19, 20:24    [21922310]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
сам стиль кода сильно отличается у новичка и того, кто крупные многопользовательские проекты создавал
в коде новичка ничего не понятно - где кто за что отвечает и что происходит
в коде спеца разберётся и студент
7 июл 19, 20:25    [21922311]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
mayton
В объектном программировании каждая процедура снабжается виртуальным параметром.
Это указатель на текущий объект. Так называемый this. В ООП языках (C++/C#) этот this
поддерживается на уровне языка и компиллятора. Тоесть каждый метод вызывается
в КОНТЕКСТЕ текущего объекта.

В процедурном программировании ничего подобного нет.


Правда в ООП this пишут не часто, разве что в конструкторе да в методе, если названия переменных совпадают, ну да ладно. Он как бы подразумевается, но за счет того, что подразумевается, его как раз и используют не часто.
7 июл 19, 20:31    [21922312]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
полудух
сам стиль кода сильно отличается у новичка и того, кто крупные многопользовательские проекты создавал
в коде новичка ничего не понятно - где кто за что отвечает и что происходит
в коде спеца разберётся и студент


значит ли это, что студент это спец? Раз легко разберется.
7 июл 19, 20:33    [21922314]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Кто в топике считает что процедурно == плохо?

Большая часть компьютерных игр эпохи 90х написана в процедурном стиле.
7 июл 19, 21:33    [21922324]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
Мозговой_слизень
полудух
сам стиль кода сильно отличается у новичка и того, кто крупные многопользовательские проекты создавал
в коде новичка ничего не понятно - где кто за что отвечает и что происходит
в коде спеца разберётся и студент


значит ли это, что студент это спец? Раз легко разберется.

нет, это значит, что спец это спец, и его легко разобрать
mayton
Кто в топике считает что процедурно == плохо?

Большая часть компьютерных игр эпохи 90х написана в процедурном стиле.

игры эпохи 90х весьма просты и их намного проще сопровождать, чем нонешние
тут весь вопрос в лёгкости сопровождения программы
её можно считать написанной буквально сразу, как только запускается
а всё остальное время это сопровождение и доработка
именно она и занимает всё основное время
ООП сильно экономит это время
и чем дальше, тем сильнее
7 июл 19, 22:32    [21922338]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
игры 90х, кстати, на C писали
а потом "зачем-то" изобрели ООП С++
7 июл 19, 22:33    [21922339]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Несколько цитат с хабра
Объектно-ориентированная версия «спагетти кода» — это, конечно, «лазанья код» (очень много слоев).

— Roberto Waltman


Я изобрел понятие «объектно-ориентированный», но могу заявить, что не имел в виду C++ при этом.

— Alan Kay
7 июл 19, 22:42    [21922340]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
mayton

Я изобрел понятие «объектно-ориентированный», но могу заявить, что не имел в виду C++ при этом.

— Alan Kay

И это правда. его задумка гораздо ближе к акторам, чем к уродцам вроде с++ и java.
7 июл 19, 23:02    [21922348]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Интересно на чём щас пишут яблочники? Вроде как они от Objective-C отказались.
Видимо были причины. Неудобство там? Моральное старение? Просто требования рынка?

Яблочники есть в топике?
7 июл 19, 23:07    [21922350]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
mayton
Интересно на чём щас пишут яблочники? Вроде как они от Objective-C отказались.
Видимо были причины. Неудобство там? Моральное старение? Просто требования рынка?

Яблочники есть в топике?

swift же
7 июл 19, 23:43    [21922363]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
забыл ник
уродцам вроде с++

давно он уродцем стал?
я бы сказал, что ООП в C++ великолепен
лучше чем в ПХП/питоне том же
а где же "правильный ООП" по-вашему?
7 июл 19, 23:47    [21922366]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
mayton
Несколько цитат с хабра
Объектно-ориентированная версия «спагетти кода» — это, конечно, «лазанья код» (очень много слоев).

— Roberto Waltman

это сетевой-софт-инженер (сокеты пишет, типа), насколько я понял
там нет ООП
и сказал он, в общем-то, херню, без понимания смысла ООП (упрощение сопровождения)

Я изобрел понятие «объектно-ориентированный», но могу заявить, что не имел в виду C++ при этом.

— Alan Kay

после него ООП доработали 38 раз Картинка с другого сайта.
7 июл 19, 23:50    [21922368]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
mayton
Интересно на чём щас пишут яблочники? Вроде как они от Objective-C отказались.
Видимо были причины. Неудобство там? Моральное старение? Просто требования рынка?

Яблочники есть в топике?

так они ж пишут софт так, чтобы он тормозил
это же их смысл жизни - продавать новые модели "с оптимизированной ОСью"
7 июл 19, 23:53    [21922370]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
полудух
mayton
Интересно на чём щас пишут яблочники? Вроде как они от Objective-C отказались.
Видимо были причины. Неудобство там? Моральное старение? Просто требования рынка?

Яблочники есть в топике?

так они ж пишут софт так, чтобы он тормозил
это же их смысл жизни - продавать новые модели "с оптимизированной ОСью"

Почитал статейки. Визуально он должен быть в 1.5-2 раза компактнее.
+

Swift
class MyClass {
    var a: Int
    var b: String
    init(a: Int, b: String) {
        self.a = a
        self.b = b
    }
}

var mc = MyClass(a: 2, b: "string"


Objective-C
//Myclass.h
#import <Foundation.h>
@interface MyClass: NSObject
- (id) initWithA: (int)a andB: (NSString *)b;
@end

//Myclass.m
#import "MyClass.h"
@interface MyClass()
	@property (assign, nonatomic) int a;
	@property (strong, nonatomic) NSString *b;
@end
@implementation MyClass
	@synthesize a;
	@synthesize b;
	- (id) initWithA: (int)a andB: (NSString *)b {
		self = [super init];
		if (self) {
			_a = a;
			_b = b;
		}
		return self;
	}
@end

MyClass *mc = [[MyClass alloc] initWithA: 2 andB @"string"];

Я не думаю что они такие-уж вредители. Всё таки им нужно не завалить
свои-же спринты по перформанс-тестингу.
8 июл 19, 00:20    [21922375]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
автор
давно он уродцем стал?

да с самого рождения, само собой.

автор
я бы сказал, что ООП в C++ великолепен

а алан кей, создатель термина ооп считает немного иначе:) для обьективного сравнения попрошу вас указать ссылки на ваши публикации. до тех пор мнение алана для меня авторитетнее
ну и обьясни заодно как в обьектноориентированном языке могут быть примитивные типы, статические методы и классы:)
автор
лучше чем в ПХП/питоне том же


нет ну это просто 5+.а еще лучше чем в жабаскрипте.

автор
а где же "правильный ООП" по-вашему?

Я же написал, что ближе всего подходит модель акторов, а следовательно erlang/scala. хотя последняя мультипарадигменная.

Я в принциме не принимаю ооп как таковое, потому что оно не имеет под собой никской математической основы, в отличие от любой другой, даже процедурной:)
ну а напоследок задача со звездочкой, опиши в чем же суть ооп, и чем эта парадигма отличается от других. Хинты:
1) нужна ли инкапсуляция если состояние не шарится?
2) чем отличается параметрический, adhoc и subtype полиморфизм
3) является ли наследование единственным методом переиспол зования кода? а как насчет prefer composition over inheritance от апологетов ооп:)
8 июл 19, 00:37    [21922376]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
До того как начнется метание навоза на турбину.

С++ - это мультипарадигменный язык. Как минимум к ООП можно добавить обобщённое.
И можно просто процедурно говно-кодить.

Тоесть он поддерживает ООП. Но ООП не является доминирующей фичей. Или определяющей
бытие и сознание кодера.
8 июл 19, 01:04    [21922380]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
полудух
mayton
Несколько цитат с хабра
пропущено...

это сетевой-софт-инженер (сокеты пишет, типа), насколько я понял
там нет ООП
и сказал он, в общем-то, херню, без понимания смысла ООП (упрощение сопровождения)

По аналогии с микросервисами. Помните? Была картинка. Большая какашка. Это типа монолит.
И множество мелких какашек. Это типа после миграции монолита в микросервисы.
8 июл 19, 01:07    [21922382]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
mayton
До того как начнется метание навоза на турбину.

С++ - это мультипарадигменный язык. Как минимум к ООП можно добавить обобщённое.
И можно просто процедурно говно-кодить.

Тоесть он поддерживает ООП. Но ООП не является доминирующей фичей. Или определяющей
бытие и сознание кодера.

ты прав, но я предполагал что сие очевидно, а еще там можно усмотреть элементы фп и dependent types, такой себе комбайн.
но главный поинт в том, что надо просто задуматься что такое ооп и есть ли в нем чтото чего нет в других парадигмах? коода ты знаешь один язык или семейство похожих языков, сложро вылезти за их рамки. а стоит немного поразмыслить и оппа. а король то голый. даже муть вроде все есть обьект не катит, по перечисленным выше причинам:)
8 июл 19, 01:10    [21922383]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
mayton
Почитал статейки. Визуально он должен быть в 1.5-2 раза компактнее.

мда, так себе лапша... на любителя

забыл ник
а алан кей, создатель термина ооп считает немного иначе:)

маловато "создать термин", мягко говоря Картинка с другого сайта.
после этого создания ООП довели до такого состояния, что БЕЗ него большие проекты в 2-5 раз сложнее сопровождать
забыл ник
Я в принциме не принимаю ооп как таковое, потому что оно не имеет под собой никской математической основы, в отличие от любой другой, даже процедурной:)

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

как в ООП могут быть классы? серьёзно?
прочитайте книжку по ООП плиз, а то людей сбиваете с правильного пути своей критикой на пустом месте.
8 июл 19, 01:15    [21922385]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
mayton
полудух
пропущено...

это сетевой-софт-инженер (сокеты пишет, типа), насколько я понял
там нет ООП
и сказал он, в общем-то, херню, без понимания смысла ООП (упрощение сопровождения)

По аналогии с микросервисами. Помните? Была картинка. Большая какашка. Это типа монолит.
И множество мелких какашек. Это типа после миграции монолита в микросервисы.

и первый же "навоз" полетел от автора Картинка с другого сайта.
монолит разбитый на микросервисы это ок
монолит разбитый на файлы это ок
монолит разбитый на классы это ок
в чём какашка - не понял...
8 июл 19, 01:18    [21922386]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
mayton
До того как начнется метание навоза на турбину.

С++ - это мультипарадигменный язык. Как минимум к ООП можно добавить обобщённое.
И можно просто процедурно говно-кодить.

Тоесть он поддерживает ООП. Но ООП не является доминирующей фичей. Или определяющей
бытие и сознание кодера.

C++ вообще-то изобрели как раз для ООП
он прям ООП-ориентированный, как никто (иди в жопу, ява)
если ООП не нужен, то C
8 июл 19, 01:18    [21922387]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 600
забыл ник
Я же написал, что ближе всего подходит модель акторов, а следовательно erlang/scala. хотя последняя мультипарадигменная.

erlang не ООП Картинка с другого сайта.
8 июл 19, 01:21    [21922388]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Видать ответил на все слова, которые понял из моего текста:) Время позднее, придется ждать ликбеза до завтра. и все же, чтобы не выглядеть таким простофилей как сейчас, потрудись перечитать мой пост и загуглить все непонятные слова. ну и задачку со звездочкой никто не отменял.
п.с статические методы и статические классы, раз уж тебе из контекста непонятно:) хотя на досуге можешь заодно подумать чем отличаются классы от обьектов, и необходимы ли первые для имплементации вторых, можно взять для этого яваскрипт ранних версий.
и еще, пылкий отважный вьюноша - горящие глаза и шпага в жопе это хорошо, но зачастую приводит к попаданию в такие вот дурацкие ситуации. но в них есть и польза, если начнете читать и думать, то возможно я помогу тебе стать умнее, а вследствие и востребованнее как специалисту
8 июл 19, 01:34    [21922389]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Sergunka
Member

Откуда:
Сообщений: 1843
Возращаясь к теме топика. Возьмите как образец к примеру исходные коды того же Spring

https://github.com/spring-projects/spring-security/tree/master/acl/src/main/java/org/springframework/security/acls

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

В общем не стесняйтесь лезть в исходники тем более в яве они все в свободном доступе лежат как молчаливый упрек.
8 июл 19, 02:20    [21922393]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Я про лапшу и лазанью.
8 июл 19, 07:31    [21922410]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
полудух
забыл ник
Я же написал, что ближе всего подходит модель акторов, а следовательно erlang/scala. хотя последняя мультипарадигменная.

erlang не ООП Картинка с другого сайта.

Ближе к Lisp я-бы сказал.
8 июл 19, 11:31    [21922536]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
забыл ник
ну и обьясни заодно как в обьектноориентированном языке могут быть примитивные типы, статические методы и классы:)


забыл ник
ну а напоследок задача со звездочкой, опиши в чем же суть ооп, и чем эта парадигма отличается от других. Хинты:
1) нужна ли инкапсуляция если состояние не шарится?
2) чем отличается параметрический, adhoc и subtype полиморфизм
3) является ли наследование единственным методом переиспол зования кода? а как насчет prefer composition over inheritance от апологетов ооп:)


Круто. Подкинем дровишек.

0) В ООП могут быть примитивные типы, например int. А пример класса-обертки для этого типа - это Integer.
1) Если состояние не "шарится", то нужна инкапсуляция, потому что иначе нельзя влиять на состояние объекта. Если я правильно отгадал значение слова "шарится".
2) Не вполне понял вопрос.
3) Не является. Ты сам ответил. Есть, например, composition pattern, а есть наследование классов.
8 июл 19, 13:20    [21922638]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

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

Класс это кусок кода в исходнике, а объект это экземпляр класса в памяти, с которым можно производить действия (менять состояние, вызывать методы, передавать куда-то и т.п.). Верно?
Только вот, думается, "имплементация", скорей, относится к классу, который implements какой-либо интерфейс. То есть класс и объект не связаны какой-либо имплементацией, а вот класс и интерфейс - связаны. Опять же, зависит от того как понимается слово "имплементация". Если буквально "implements", то это к интерфейсам относится.
8 июл 19, 13:27    [21922646]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
полудух
забыл ник
Я же написал, что ближе всего подходит модель акторов, а следовательно erlang/scala. хотя последняя мультипарадигменная.

erlang не ООП Картинка с другого сайта.

Уверен?
Dynamic dispatch - Каждый процесс в Эрланге можно рассматривать как объект, который принимает сообщения. Proved
Encapsulation - Можно ассоциировать отправку сообщения с вызовом метода. А респонс - как результат выполнения вызова. Proved
Subtype polymorphism - Каждый процесс может принимать люые сообщения и реагировать на них определенным образом, unconstrained polymorphism. Proved.
object inheritance (or delegation) - Inheritance в классическом смысле не поддерживается, но делегация юез проблем.
Open recursion - Поддерживается, через посылку сообщений самому себе.

А теперь расскажи почему он не ООП? Потому что Его создатель написал что он функциональный? То есть ты судишь по форме а не содержанию, все правильно?
8 июл 19, 13:57    [21922678]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
полудух

забыл ник
а алан кей, создатель термина ооп считает немного иначе:)

маловато "создать термин", мягко говоря Картинка с другого сайта.
после этого создания ООП довели до такого состояния, что БЕЗ него большие проекты в 2-5 раз сложнее сопровождать

Пруфы есть? Какие свойства ООП позволяют упростить сопровождение?Особенно в многопоточных приложениях. Мутабельность? Запутывание данных и логики? Наследование, которое ломает инкапсуляцию? Environmental reasoning? Интересует сравнение с ФП или логическим программированием

полудух
забыл ник
Я в принциме не принимаю ооп как таковое, потому что оно не имеет под собой никской математической основы, в отличие от любой другой, даже процедурной:)

вы "не туда воюете" Картинка с другого сайта.
ООП не про математику

Ну хоть тут не споришь. Только почему то не понимаешь, что раз так, то это полное говнище. Ты вообще инженер по образованию?
полудух
он про упрощение сопровождения кода (а сопровождение кода это гораздо, намного, сильно-сильно дольше, чем создание первой версии. Сопровождение это вся жизнь и развитие проекта)

Так какие качества\свойства ООП позволяют этого достичь? Где пруфы? Я тебе могу привести десяток причин почему ООП как раз мешает сопровождению
полудух
забыл ник
как в обьектноориентированном языке могут быть примитивные типы, статические методы и классы:)

как в ООП могут быть классы? серьёзно?
прочитайте книжку по ООП плиз, а то людей сбиваете с правильного пути своей критикой на пустом месте.

Ну так что, прочитал уже про OOP основанном на prototype? Надо разьяснять? Что насчет статических типов и классов?
8 июл 19, 14:04    [21922688]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Мозговой_слизень
Круто. Подкинем дровишек.

С тобой хоть интересно, видно что открыт для дискуссий. Поехали.


Мозговой_слизень
0) В ООП могут быть примитивные типы, например int. А пример класса-обертки для этого типа - это Integer.

Правильно, а в некоторых языках примитивов нет, есть только объекты, как по фэншую. Так получается все же ООП C++ не совсем такая трушная?:) Тут очень подходит выражение - или крестик сними или трусы одень)

Мозговой_слизень
1) Если состояние не "шарится", то нужна инкапсуляция, потому что иначе нельзя влиять на состояние объекта. Если я правильно отгадал значение слова "шарится".

Смысл в том что обычно апологеты ООП утверждают что ООП стоит на трех китах - инкапсуляция, полиморфизм и наследование, и героически доказывают что это венец программирования. Так вот. Инкапсуляция не нужна если нету мутабельного стейта. Думаешь как можно программировать без мутабельного стейта? Можно, есть множество способов, некоторые ограничвают доступ к мутабельному стейту - actors, STM, другие избегают его вообще - FP.Минус один китенок
Мозговой_слизень
2) Не вполне понял вопрос.

Суть сводится к тому что полиморфизм он разный бывает, и в ООП он самый корявый. Минус второй кит.

Мозговой_слизень
3) Не является. Ты сам ответил. Есть, например, composition pattern, а есть наследование классов.

Правильно, а ты знаешь почему не рекомендуют использовать наследование? Например попробую напиши корректный метод equals для иерархии классов. Ну а потом почитай почему inheritance breaks incapsulation. Ну а делегация есть почти во всех языках, в других это просто не нужно. Минус третий кит.

Что же остается в итоге? Вот я и хотел узнать у парня, что же в ООП помогает поддерживать maintainability, и что вообще отличает ООП от других парадигм.
8 июл 19, 14:19    [21922708]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Мозговой_слизень
забыл ник
чем отличаются классы от обьектов, и необходимы ли первые для имплементации вторых

Класс это кусок кода в исходнике, а объект это экземпляр класса в памяти, с которым можно производить действия (менять состояние, вызывать методы, передавать куда-то и т.п.). Верно?

В общем случае верно. Но есть версии ООП базирующаяся на прототипах а не классах, как пример javascript.

Мозговой_слизень
Только вот, думается, "имплементация", скорей, относится к классу, который implements какой-либо интерфейс. То есть класс и объект не связаны какой-либо имплементацией, а вот класс и интерфейс - связаны. Опять же, зависит от того как понимается слово "имплементация". Если буквально "implements", то это к интерфейсам относится.

Ну тут ты совсем не в ту сторону. Я про представление ООП в языке как стратегию. Классы не единственная стратегия
8 июл 19, 14:23    [21922714]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
забыл ник
Правильно, а в некоторых языках примитивов нет, есть только объекты, как по фэншую. Так получается все же ООП C++ не совсем такая трушная?:) Тут очень подходит выражение - или крестик сними или трусы одень)

за С++ я не могу говорить, я знаю только 2 языка и 1 чуть-чуть. И среди них нет си.


забыл ник
Смысл в том что обычно апологеты ООП утверждают что ООП стоит на трех китах - инкапсуляция, полиморфизм и наследование, и героически доказывают что это венец программирования. Так вот. Инкапсуляция не нужна если нету мутабельного стейта. Думаешь как можно программировать без мутабельного стейта? Можно, есть множество способов, некоторые ограничвают доступ к мутабельному стейту - actors, STM, другие избегают его вообще - FP.Минус один китенок


Так ведь мутабельность зависит от класса. Какие-то мутабельные, какие-то нет. Если мутабельный то меняем состояние, если не мутабельный, то получаем состояние, меняем его и записываем в новую ссылку. То есть получаем уже измененный как нам надо объект. Например String не мутабельный. А StringBuilder мутабельный. И это все в одном языке программирования.

забыл ник
Суть сводится к тому что полиморфизм он разный бывает, и в ООП он самый корявый. Минус второй кит.

Я это понимаю так, например. У нас есть тип ссылки и в зависимости от него мы можем (или не можем) получить доступ к полю или методу в классе-наследнике. Корявый ли это способ работы или нет - я думаю зависит от сравнения. Смотря с чем сравниваем.

забыл ник
Правильно, а ты знаешь почему не рекомендуют использовать наследование? Например попробую напиши корректный метод equals для иерархии классов. Ну а потом почитай почему inheritance breaks incapsulation. Ну а делегация есть почти во всех языках, в других это просто не нужно. Минус третий кит.


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



забыл ник
Что же остается в итоге? Вот я и хотел узнать у парня, что же в ООП помогает поддерживать maintainability, и что вообще отличает ООП от других парадигм.


Вот лично я думаю, ООП это просто способ программирования. Причем в каждом ЯП он будет чем-то отличаться. Это не значит то это логичный, простой и понятный способ. Скорее даже сложный и порой нелогичный. Просто это правила, по которым язык работает. Так сделали разработчики. Точно так же как любой язык - китайский или английский не обязаны быть логичными и поняными. Просто так пошло издавна.
8 июл 19, 14:42    [21922735]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
забыл ник
В общем случае верно. Но есть версии ООП базирующаяся на прототипах а не классах, как пример javascript.


А я вот что думаю. Если за язык не платят или на нем сложно найти работу, то это плохой язык. И не важно как красиво он написан. Я считаю, язык не имеет права на существование если он не дает разработчику нормально зарабатывать. Вот что сейчас происходит с битриксом например. Вводятся новые классы, новые методы разработки, новые правила. А облегчило ли это жизнь разрабам? Нет, только усложнило потому что нужно переучиваться за ту же зарплату. И только в страшном сне я задумаюсь об условно "прототипах а не классах" в битриксе, потому что я понимаю что это грабеж моей жизненной энергии. Вот и все. Поэтому я лучше уйду в другой более некрасивый язык, но востребованный, чем буду изучать красоту и мудрость создателей какого-то нового языка или фреймворка. Это уже конечно не относится к программированию, но показывает предел рациональности изучения и поклонения какой-либо технологии.
8 июл 19, 14:49    [21922743]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
iOracleDev
Member

Откуда:
Сообщений: 24
Мозговой_слизень
Вот лично я думаю, ООП это просто способ программирования.

Это вид и уровень абстракции, чтобы пользователь пардон программист оперировал понятными ему абстрактными понятиями.
8 июл 19, 14:54    [21922753]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
iOracleDev
Мозговой_слизень
Вот лично я думаю, ООП это просто способ программирования.

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

словоблудие) для неокрепших умов звучит убедительно
8 июл 19, 15:12    [21922765]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Мозговой_слизень
Так ведь мутабельность зависит от класса. Какие-то мутабельные, какие-то нет. Если мутабельный то меняем состояние, если не мутабельный, то получаем состояние, меняем его и записываем в новую ссылку. То есть получаем уже измененный как нам надо объект. Например String не мутабельный. А StringBuilder мутабельный. И это все в одном языке программирования.

Это в тех языках, которые ты знаешь. Есть языки которые запрещают переприсваивание значения переменной, делая их по факту константами. Если тебе надо что-то поменять, то ты просто создаешь копию на основе существующего объекта. Это сильно упрощает разработку для многопоточных приложений. Вообще оператор присваивания(assignment) приносит в любой язык зависимость понятие времени, для достижения корректности программы нужно следить за порядком операций. Для этого изобретают всякие там JMM и happens-before. Нет мутабельности - нет такой проблемы.


Мозговой_слизень
Я это понимаю так, например. У нас есть тип ссылки и в зависимости от него мы можем (или не можем) получить доступ к полю или методу в классе-наследнике. Корявый ли это способ работы или нет - я думаю зависит от сравнения. Смотря с чем сравниваем.

Полиморфизм в общем случае это способность вызвать кастомный код в зависимости от типа объекта. Все. Методы, поля, наследники это все вторично. Полиморфизм бывает разных типов - параметрический(женерики), subtype - тот о котором ты знаешь и ad-hoc(погугли). Так вот, в этом плане polymorphism самый косячный из них. Потому что размазывает код по нескольким классам, и тебе трудно судить о том что будет выполнено только глядя в сам класс. Это также приводит к сложности с тестированием. Ну и в целом, в ФП у тебя есть функция, ее инпут и аутпут, чтобы понять что не так, тебе достаточно прочитать текст функции и пофиксить. в Случае ООП - тебе надо дебажить, смотреть какие операции привели к такому состоянию объекта и тд. Это называется environmental reasoning(опять можешь погуглить)

Мозговой_слизень
Просто переопределяешь метод конкретно для нужного класса и все. Если это приведет к каким-то проблема с классами-наследниками, то в них можно тоже этот метод переопределить. Или конкретно уже разбираться с возникшей проблемой. Просто вот так теоретизируя, сложно понять в чем именно проблема.

А как же принципы Лисков и сингл респосибилити? Проблема с наследованием как раз в том, что изменения в одном месте могут аффектнуть корректно написанный код в другом классе НЕЯВНО


Мозговой_слизень
Вот лично я думаю, ООП это просто способ программирования. Причем в каждом ЯП он будет чем-то отличаться. Это не значит то это логичный, простой и понятный способ.

В этом и проблема, и большинство проектов сейчас фейлится именно из-за этого, это как строить мост на глаз и по интуиции, без сопромата. Сначала героически придумываем себе проблемы а потом решаем. По сути все дизайн паттерны - это суть попытка исправить корявости ООП.
Мозговой_слизень
Скорее даже сложный и порой нелогичный. Просто это правила, по которым язык работает. Так сделали разработчики. Точно так же как любой язык - китайский или английский не обязаны быть логичными и поняными. Просто так пошло издавна.

И тебя это устраивает? К тому же не путай чуловеческие языки, зависящие от контекста, от четко структурированных языков программирования, в основе которых математика и логика.
8 июл 19, 15:12    [21922767]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Мозговой_слизень
забыл ник
В общем случае верно. Но есть версии ООП базирующаяся на прототипах а не классах, как пример javascript.


А я вот что думаю. Если за язык не платят или на нем сложно найти работу, то это плохой язык. И не важно как красиво он написан. Я считаю, язык не имеет права на существование если он не дает разработчику нормально зарабатывать. Вот что сейчас происходит с битриксом например. Вводятся новые классы, новые методы разработки, новые правила. А облегчило ли это жизнь разрабам? Нет, только усложнило потому что нужно переучиваться за ту же зарплату. И только в страшном сне я задумаюсь об условно "прототипах а не классах" в битриксе, потому что я понимаю что это грабеж моей жизненной энергии. Вот и все. Поэтому я лучше уйду в другой более некрасивый язык, но востребованный, чем буду изучать красоту и мудрость создателей какого-то нового языка или фреймворка. Это уже конечно не относится к программированию, но показывает предел рациональности изучения и поклонения какой-либо технологии.

Ну тут ты прав. ООП знать надо, но если хочешь развиваться надо понимать его слабости и знать алтернативы. Знание только ООП крайне сужает твою перспективу. Вот даже в твоих ответах постоянно сквозит - класс, наследник, поле..
8 июл 19, 15:14    [21922771]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
В общем тут уже можно так далеко уйти что не найдешь откуда пришел)

Вот лично я согласен с тем, что
забыл ник
размазывает код по нескольким классам, и тебе трудно судить о том что будет выполнено только глядя в сам класс.
Это конечно жопа и моя бы воля, я бы всегда писал процедурно т.к это очень просто и понятно. Ну и вряд ли я соглашусь с тем, что ЯП как-то связан с математикой, увы, будучи троешником по математике, можно быть норм программистом. Арифметика да, но математика, увы, я не нашел общего. В математике есть логика (надеюсь) а в программровании ИМХО ее мало, есть просто правила которые нужно запомнить.
8 июл 19, 15:35    [21922802]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
забыл ник
Мозговой_слизень
пропущено...


А я вот что думаю. Если за язык не платят или на нем сложно найти работу, то это плохой язык. И не важно как красиво он написан. Я считаю, язык не имеет права на существование если он не дает разработчику нормально зарабатывать. Вот что сейчас происходит с битриксом например. Вводятся новые классы, новые методы разработки, новые правила. А облегчило ли это жизнь разрабам? Нет, только усложнило потому что нужно переучиваться за ту же зарплату. И только в страшном сне я задумаюсь об условно "прототипах а не классах" в битриксе, потому что я понимаю что это грабеж моей жизненной энергии. Вот и все. Поэтому я лучше уйду в другой более некрасивый язык, но востребованный, чем буду изучать красоту и мудрость создателей какого-то нового языка или фреймворка. Это уже конечно не относится к программированию, но показывает предел рациональности изучения и поклонения какой-либо технологии.

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


а какая альтернатива?) Если пишешь на Java "процедурно", то у тебя не скомпилируется класс. А вот если пишешь на PHP, то пожалуйста. ИМХО логика такая. Смотрим индекс тиобе и зарплаты программистов. Находим лучшее сочетание и начинаем поклоняться этому ЯП. Остальное нерационально.
8 июл 19, 15:38    [21922807]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Мозговой_слизень
В математике есть логика (надеюсь) а в программровании ИМХО ее мало, есть просто правила которые нужно запомнить.

Ее нет в ООП и только в ООП, о чем я тебе и говорю. Проблема именно в том, что целая индустрия ООП была создана ради того чтобы в профессию могли придти люди чуть ли не с улицы, а что идея то простая, да? Все есть объекты. Освоить логическое программирование или функциональное без математического(технического) бэкграунда уже напорядок сложнее. Да, создание фичи у меня занимает времени больше, в несколько раз больше чем на ООП, но веришь нет, только что чекунл джиру, на меня за год завели 3 бага. Нуллпоинтер я ловил 2 раза - оба прилетали из внещних java-библиотек. И т.д. и т.п. Для бизнема пока все еще выгодно держать толпу ООП манки-кодеров, но из-за распространения многопточности облаков и AI(которым можно будет формализовать рутинное программирование и заменить толпу индусов) маятник уже качнулся имхо. Но тут я могу только водить руками, это лишь мое мнение, я далеко не сейлс и не бизнесмен.
Ты просто попробуй изучить другой язык, радикально отличающийся, например хаскелл, эрланг, идрис. Это тебе даст +100 даже при ООП программировании, код в разы улучшится, я тебе гарантирую. Собственно я и сам иногда пишу на Java, но мутаьельную переменную использовал в последний раз год назад.
8 июл 19, 15:50    [21922831]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Мозговой_слизень
а какая альтернатива?) Если пишешь на Java "процедурно", то у тебя не скомпилируется класс. А вот если пишешь на PHP, то пожалуйста. ИМХО логика такая. Смотрим индекс тиобе и зарплаты программистов. Находим лучшее сочетание и начинаем поклоняться этому ЯП. Остальное нерационально.


А когда java не дай бог умрет, то что делать? Почитай как дельфисты с болью переходили на Java, на этом форуме куча примеров. Никогда не клади все яйца в одну корзину. Да и блин, ну мне лично интересно посоянно узнавать что-то новое, если тебе неинтересно - велик шанс что программирование не про тебя, будем честны. Ну и ты говоришь в основном про масс-маркет, если же говорить о специалистах высокого уровня, то просто НЕОБХОДИМО знать несколько языков\платформ\парадигм чтобы выбрать нужную. И такие спецы это товар штучный, и их не увидишь в индексах тиобе и тд. Можно легко иметь зарплату x2 x3 по рынку от средней, если ты что-то из себя представляешь.
8 июл 19, 15:53    [21922839]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
andreykaT
Member

Откуда:
Сообщений: 2181
парадигмы всего три. чо там учить то. структурная объектная функциональная.

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

да и в принципе на этом всё. остальное - декорации. ничего нового не придумали и скорее всего не придумают при нынешнем ходе вещей.
8 июл 19, 16:20    [21922863]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
andreykaT
Member

Откуда:
Сообщений: 2181
забыл ник
Мозговой_слизень
В математике есть логика (надеюсь) а в программровании ИМХО ее мало, есть просто правила которые нужно запомнить.

Ее нет в ООП и только в ООП, о чем я тебе и говорю. Проблема именно в том, что целая индустрия ООП была создана ради того чтобы в профессию могли придти люди чуть ли не с улицы, а что идея то простая, да? Все есть объекты. Освоить логическое программирование или функциональное без математического(технического) бэкграунда уже напорядок сложнее. Да, создание фичи у меня занимает времени больше, в несколько раз больше чем на ООП, но веришь нет, только что чекунл джиру, на меня за год завели 3 бага. Нуллпоинтер я ловил 2 раза - оба прилетали из внещних java-библиотек. И т.д. и т.п. Для бизнема пока все еще выгодно держать толпу ООП манки-кодеров, но из-за распространения многопточности облаков и AI(которым можно будет формализовать рутинное программирование и заменить толпу индусов) маятник уже качнулся имхо. Но тут я могу только водить руками, это лишь мое мнение, я далеко не сейлс и не бизнесмен.
Ты просто попробуй изучить другой язык, радикально отличающийся, например хаскелл, эрланг, идрис. Это тебе даст +100 даже при ООП программировании, код в разы улучшится, я тебе гарантирую. Собственно я и сам иногда пишу на Java, но мутаьельную переменную использовал в последний раз год назад.

хаскель эрланг идрис (это кто воще? казахский штоле какой то) - это канеш круто. но проблема в том что найти на них работу заметно сложнее чем на джаве. джавой завалено всё. а теперь вот котлин подлезает. имхо, не сильно то лучше джавы в корне и в смысле самой идеи. вот скала да. скала нравится. но тоже - рынок сильно скромнее. хотя много ли надо?

насчет затаскивания идей фп в ооп согласен. прям очень согласен и в джаве для этого многое есть. многое устарело до ужаса (сривниваю со скалой) но. зато быстро надежно и предсказуемо :)
8 июл 19, 16:24    [21922868]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
забыл ник
А когда java не дай бог умрет, то что делать? Почитай как дельфисты с болью переходили на Java, на этом форуме куча примеров. Никогда не клади все яйца в одну корзину. Да и блин, ну мне лично интересно посоянно узнавать что-то новое, если тебе неинтересно - велик шанс что программирование не про тебя, будем честны. Ну и ты говоришь в основном про масс-маркет, если же говорить о специалистах высокого уровня, то просто НЕОБХОДИМО знать несколько языков\платформ\парадигм чтобы выбрать нужную. И такие спецы это товар штучный, и их не увидишь в индексах тиобе и тд. Можно легко иметь зарплату x2 x3 по рынку от средней, если ты что-то из себя представляешь.

Назовите условия при которых Java умрет. Просто всё имеет причины ход и следствие
и мне было-бы тоже интересно пофантазировать на эту тему. Как вариант - научно
техническая революция которая вообще отменит программирование как таковое.
Может быть биоинформатика. Может интеллект роя. Я не знаю. Но это должно
быть нечто настолько сильное что похоронит не только Java но и разом целый
пласт технологий.
8 июл 19, 18:24    [21922995]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
mayton
Назовите условия при которых Java умрет. Просто всё имеет причины ход и следствие
и мне было-бы тоже интересно пофантазировать на эту тему. Как вариант - научно
техническая революция которая вообще отменит программирование как таковое.
Может быть биоинформатика. Может интеллект роя. Я не знаю. Но это должно
быть нечто настолько сильное что похоронит не только Java но и разом целый
пласт технологий.

В краткой перспективе я говорю о языке Java, не JVM. У нее как раз все прекрасно, а вот насчет Java - все больше и больше команд переключаются на scala\kotlin, нарабатываются коммьюнити и потихоньку накапливается критическая масса, так что рано или поздно новые проекты могут перестать стартовать с java по дефолту. Поддержка она конечно будет очень долго, тут без вариантов
8 июл 19, 18:29    [21922996]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Kotlin - это сегмент рынка Google/Android. Это вообще не про это. Не наша тема.
Там другая jvm и другие задачи.
8 июл 19, 18:45    [21923005]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
andreykaT
Member

Откуда:
Сообщений: 2181
mayton
забыл ник
А когда java не дай бог умрет, то что делать? Почитай как дельфисты с болью переходили на Java, на этом форуме куча примеров. Никогда не клади все яйца в одну корзину. Да и блин, ну мне лично интересно посоянно узнавать что-то новое, если тебе неинтересно - велик шанс что программирование не про тебя, будем честны. Ну и ты говоришь в основном про масс-маркет, если же говорить о специалистах высокого уровня, то просто НЕОБХОДИМО знать несколько языков\платформ\парадигм чтобы выбрать нужную. И такие спецы это товар штучный, и их не увидишь в индексах тиобе и тд. Можно легко иметь зарплату x2 x3 по рынку от средней, если ты что-то из себя представляешь.

Назовите условия при которых Java умрет. Просто всё имеет причины ход и следствие
и мне было-бы тоже интересно пофантазировать на эту тему. Как вариант - научно
техническая революция которая вообще отменит программирование как таковое.
Может быть биоинформатика. Может интеллект роя. Я не знаю. Но это должно
быть нечто настолько сильное что похоронит не только Java но и разом целый
пласт технологий.

я думаю джава не умрет она просто эволюционирует (уже) на те же самые котлин, скала кложур и тп. но положа руку на сердце - джава старА. стара как продукт жизнедеятельности мамонта.
8 июл 19, 19:09    [21923018]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
С/C++ постарее будет. За Кобол еще можно вспомнить.
8 июл 19, 19:14    [21923021]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
andreykaT
Member

Откуда:
Сообщений: 2181
mayton
Kotlin - это сегмент рынка Google/Android. Это вообще не про это. Не наша тема.
Там другая jvm и другие задачи.


котлин форсят и на бэк. вон даже со спрингом подружили. почему не та? котлин нейтив вон вообще под айос проталкивают.

какая разница какая жвм язык он и в африке язык. язк делают обязки из фреймворков. если там ок то и на бэк ок. а он действиетльно ок. но мне скала больше по душе :)
8 июл 19, 19:16    [21923023]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
andreykaT
котлин форсят и на бэк. вон даже со спрингом подружили. почему не та?
потому что вы без спринга не можете, а андроид прогеры могут
8 июл 19, 19:32    [21923032]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
забыл ник
mayton
Назовите условия при которых Java умрет. Просто всё имеет причины ход и следствие
и мне было-бы тоже интересно пофантазировать на эту тему. Как вариант - научно
техническая революция которая вообще отменит программирование как таковое.
Может быть биоинформатика. Может интеллект роя. Я не знаю. Но это должно
быть нечто настолько сильное что похоронит не только Java но и разом целый
пласт технологий.

В краткой перспективе я говорю о языке Java, не JVM. У нее как раз все прекрасно, а вот насчет Java - все больше и больше команд переключаются на scala\kotlin, нарабатываются коммьюнити и потихоньку накапливается критическая масса, так что рано или поздно новые проекты могут перестать стартовать с java по дефолту. Поддержка она конечно будет очень долго, тут без вариантов


Точно так же как когда-то все кипятком писали на тему Zend framework, yii и веб 2.0. И где сейчас эти фреймворки? Посмотрите на взлет php по индексу тиобе, и где сейчас этот php? У нас еще ладно, мы отстали, а посмотрите на кол-во вакансий в штатах. Их кот наплакал.
Джаву просто никто не рекламирует. На ней работают и делают деньги. Это примерно как говорить, что команда молодых и энергичных ребят из офиса в гонконге и второго офисе на кипре сейчас выпустить новую ОС и заменит майкрософт. Вообще мне кажется, что подобные мысли свойственны амбициозным и романтичным людям. Они хотят весь мир поменять и думают что вот щас что-то выстрелит вверх.
8 июл 19, 19:32    [21923033]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Да, и еще мысля.
рынок ЯП это первый рынок который появился. Дальше рынок ОС, дальше рынок софта, дальше рынок веб проектов, дальше рынок мобилок. Новая тема может выстрелить на новом рынке. Но не на старом. На старом уже все поделено.
Вот появится что-то новое, тогда и новый язык может какой-то появиться как в свое время появился пхп для веба.
8 июл 19, 19:35    [21923035]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
mayton
Kotlin - это сегмент рынка Google/Android. Это вообще не про это. Не наша тема.
Там другая jvm и другие задачи.

Ну в нашей конторе уже есть проекты с бэкэндом на котлин и не андроид, так что...

Ну а что касается долгосрочной перспективы, то я считаю что ООП канет в лету, рано или поздно индустрия переключится на формализованное описание задач и кода, содержать толпу бестолковых программистов банально дорого, и большинство интеграций по плечу не сильно навороченному AI.
8 июл 19, 19:48    [21923047]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
забыл ник
mayton
Kotlin - это сегмент рынка Google/Android. Это вообще не про это. Не наша тема.
Там другая jvm и другие задачи.

Ну в нашей конторе уже есть проекты с бэкэндом на котлин и не андроид, так что...

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


ООП сложнее процедуры. Куда тогда девать толпу говнокодеров не знающих ООП?
8 июл 19, 19:49    [21923048]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
andreykaT
Member

Откуда:
Сообщений: 2181
PetroNotC Sharp
andreykaT
котлин форсят и на бэк. вон даже со спрингом подружили. почему не та?
потому что вы без спринга не можете, а андроид прогеры могут

я уже на спринге месяцев 8 ничего не писал и не пишу. ты о чем? вы андройдеры варитесь в своем маленьком котелке и к базе коннекты устраиваете в каждой вьюшке и вам норм че один юзер че думать то ))
8 июл 19, 21:16    [21923080]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
andreykaT
Member

Откуда:
Сообщений: 2181
PetroNotC Sharp
andreykaT
котлин форсят и на бэк. вон даже со спрингом подружили. почему не та?
потому что вы без спринга не можете, а андроид прогеры могут

кстати от котлов есть туториалы как на котлине и спринге писать
8 июл 19, 21:17    [21923081]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
andreykaT,
Я поддержал mayton что котлин не наша тема.
8 июл 19, 22:09    [21923090]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Мозговой_слизень
забыл ник
пропущено...

Ну в нашей конторе уже есть проекты с бэкэндом на котлин и не андроид, так что...

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


ООП сложнее процедуры. Куда тогда девать толпу говнокодеров не знающих ООП?


К кучерам и таксистам.
8 июл 19, 22:31    [21923098]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
ViPRos
Member

Откуда:
Сообщений: 9545
забыл ник
К кучерам и таксистам.

Давно пора! ООП - говно!
8 июл 19, 22:54    [21923110]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
ViPRos
забыл ник
К кучерам и таксистам.

Давно пора! ООП - говно!
из шарпа аргументы пришли)
8 июл 19, 23:07    [21923116]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
andreykaT
mayton
Kotlin - это сегмент рынка Google/Android. Это вообще не про это. Не наша тема.
Там другая jvm и другие задачи.


котлин форсят и на бэк. вон даже со спрингом подружили. почему не та? котлин нейтив вон вообще под айос проталкивают.

какая разница какая жвм язык он и в африке язык. язк делают обязки из фреймворков. если там ок то и на бэк ок. а он действиетльно ок. но мне скала больше по душе :)

Главное преимущество Java - это максимально близкий и точный маппинг на объекты JVM. Создаёшь class/interface/enum
и имеешь сущность которая является единицей информации для classloader/JIT. Грубо говоря - работаешь на Java - работаешь
с ассемблером той целевой машины под которую пишется код. Сюда-же относится "разбор полётов". Тоесть разбор стектрейсов
с ошибками. В них - сущности языка. В противоположность Scala стектрейс будет содержать скорее всего достаточно
сложную прослойку которой нужно дать интерпретацию и понять что где чему соответствовало.

Вспомните ORM. За что их ругают? За потерю соответствия. Здесь тоже можно наблюдать подобную картинку.

Вот если мы завтра резко переключимся на машину другого типа. Не байткод и не стеко-ориентированную - то тогда
я буду первым кто выступит за смену языка.
9 июл 19, 11:02    [21923269]     Ответить | Цитировать Сообщить модератору
 Re: На счет ООП программирования  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
забыл ник
Мозговой_слизень
пропущено...


ООП сложнее процедуры. Куда тогда девать толпу говнокодеров не знающих ООП?


К кучерам и таксистам.

Им ничего не грозит. PHP по прежнему существует. В виде готовых коробочных систем.
И их дорабатывать и поддерживать кому-то надо.
9 июл 19, 11:05    [21923272]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / Java Ответить