Re[6]: Путь к ООП - туда и обратно :)
От: metaprogrammer  
Дата: 24.10.09 11:55
Оценка:
Здравствуйте, VGn, Вы писали:

VGn>ООП vs Глупость.


Это как "пчёлы против мёда"?
Re: Путь к ООП
От: g_i  
Дата: 26.10.09 14:18
Оценка:
Здравствуйте, jeeist, Вы писали:

"Изучай формулу, но ищи отсутствие формул, слушай беззвучие, изучи всё, затем забудь всё,
изучи путь, затем ищи свой путь." (c)
Re[7]: Путь к ООП - туда и обратно :)
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 27.10.09 09:16
Оценка:
M> Это как "пчёлы против мёда"?

Придумай другой механизм, позволяющий легко оперировать разными уровнями абстракции в программном коде.
А то это похоже на "демократия — это плохо, потому что не совершенно".
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[2]: Путь к ООП - туда и обратно :)
От: rfq  
Дата: 01.11.09 06:13
Оценка: :)
Здравствуйте, Voblin, Вы писали:

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


V>И ещё. За очень редким исключением (gamedev, имитационное моделирование) программа не должна моделировать реальный мир. Но она должна уметь встраиваться в реальный мир. Есть куча программ, которые замечательно что-то там моделируют, но для которых в реальном мире места не нашлось.


Как раз в большинстве случаев программа если не моделирует, то отображает реальный мир. Вот я набираю текст: в голове моей фраза, я по буковкам переношу ее в программу и программа моделирует мой мозг. Частично, конечно, но больше мне и не надо.
Отображение фразы в программе — типичный объект, и философия его проста но никак не слаба: из реального мира поступают сообщения, по ним поддерживать актуальное состояние отображаемого объекта.
Re[4]: Путь к ООП - туда и обратно :)
От: elmal  
Дата: 01.11.09 06:33
Оценка:
Здравствуйте, Voblin, Вы писали:

V>Менее радикальный — это "сходить налево" туда, где ООП вообще не применяется. Это не обязательно Нотепад. Это может быть что-то из ФП, это может быть SQL, это может быть VBA или 1С.

Не надо ля ля. В VBA ООП применяется и еще как, это вполне себе ООП язык . В 1С тоже можно некоторые практики из ООП перенести, хоть и сложнее это будет. SQL — сам язык конечно не ООП даже близко, но базу можно проектировать по ООП принципам. Плюс применять ООП (а также другие подходы) можно для генерации SQL запроса.
Re[5]: Путь к ООП - туда и обратно :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.09 09:47
Оценка:
Здравствуйте, elmal, Вы писали:

E>Не надо ля ля. В VBA ООП применяется и еще как, это вполне себе ООП язык .


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

E> SQL — сам язык конечно не ООП даже близко, но базу можно проектировать по ООП принципам.


Отличный способ прострелить себе ногу.

E> Плюс применять ООП (а также другие подходы) можно для генерации SQL запроса.


Я тебе больше скажу — в ООП стиле можно писать на голом С. Вот только объектно ориентированным С от этого не становится.
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
AVK Blog
Re[8]: Путь к ООП - туда и обратно :)
От: thesz Россия http://thesz.livejournal.com
Дата: 02.11.09 03:20
Оценка:
Здравствуйте, VGn, Вы писали:

M>> Это как "пчёлы против мёда"?

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

Теория множеств Цермело-Френкеля.

Теория типов Мартина-Лёфа.

VGn>А то это похоже на "демократия — это плохо, потому что не совершенно".


Демократия — ещё один способ манипулирования. Как и ООП.

Поэтому они оба плохи.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[3]: Путь к ООП - туда и обратно :)
От: Voblin Россия http://maslyaew.narod.ru/
Дата: 02.11.09 12:00
Оценка:
Здравствуйте, rfq, Вы писали:

rfq>Как раз в большинстве случаев программа если не моделирует, то отображает реальный мир. Вот я набираю текст: в голове моей фраза, я по буковкам переношу ее в программу и программа моделирует мой мозг. Частично, конечно, но больше мне и не надо.

rfq>Отображение фразы в программе — типичный объект, и философия его проста но никак не слаба: из реального мира поступают сообщения, по ним поддерживать актуальное состояние отображаемого объекта.

Ага. Зеркало если не моделирует, то отражает мою морду лица.
Вот я варю борщ. В голове моей желание покушать. Я переношу в кастрюлю свеклу, картошку, морковку, и кастрюля моделирует мой желудок. Частично, конечно, но больше мне и не надо.
Варка борща в кастрюле — типичный объект, и философия его проста но никак не слаба: из реального мира поступают вода, мясо и овощи, по ним поддерживать актуальное состояние отображаемого объекта (желудка? надеюсь, что не содержимого прямой кишки...). Какая-то тень от листьев хрена необыкновенно хреномутного получается.
Re[6]: Путь к ООП - туда и обратно :)
От: elmal  
Дата: 02.11.09 18:21
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Оно там конечно применяется, но возможности конструирования объектов там нет, значит говорить об объектной декомпозиции не приходится.

Как это нет? Оператор new есть. Инкапсуляция есть в полном объеме, полиморфизм тоже достаточно неплох. С наследованием хуже дела обстоят, но без него вполне можно обойтись, а где надо — эмулировать.

E>> SQL — сам язык конечно не ООП даже близко, но базу можно проектировать по ООП принципам.

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

AVK>Я тебе больше скажу — в ООП стиле можно писать на голом С. Вот только объектно ориентированным С от этого не становится.

Ну это да. Я в свое время читал книгу — ООП на ассемблере, очень много интересного подчерпнул .
Re[8]: Путь к ООП - туда и обратно :)
От: metaprogrammer  
Дата: 02.11.09 19:10
Оценка: 2 (1)
Здравствуйте, VGn, Вы писали:

M>> Это как "пчёлы против мёда"?


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


Я всю жизнь пользуюсь этими другими механизмами, коих очень, очень много. ООП — частный случай, пригодившийся только для задач агентного моделирования. Других применений ООП я не видел — для всех прочих задач эта модель неадекватна.
Re[7]: Путь к ООП - туда и обратно :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.11.09 19:50
Оценка:
Здравствуйте, elmal, Вы писали:

AVK>>Оно там конечно применяется, но возможности конструирования объектов там нет, значит говорить об объектной декомпозиции не приходится.

E>Как это нет? Оператор new есть.

Речь о конструировании типов. Если его нет (а его нет), то нет и ОО декомпозиции, а значит и говорить об ООП не приходится.

AVK>>Отличный способ прострелить себе ногу.

E>Во всех крупных проектах, где я учавствовал и учавствую, база и была спроектирована по ООП принципам.

Угу, я знаю что 70% проектов неуспешны, а те что успешны на 2/3 хромают на обе ноги. Но миллионы леммингов не могут ошибаться.
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
AVK Blog
Re[8]: Путь к ООП - туда и обратно :)
От: elmal  
Дата: 03.11.09 04:34
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Речь о конструировании типов. Если его нет (а его нет), то нет и ОО декомпозиции, а значит и говорить об ООП не приходится.

Немного не понял, а что ж тогда конструируется оператором new, как не экземпляр определенного типа (класса)? И что тогда описывает Class, как не тип? Если я разбиваю свою предметную область на типы (классы), в них инкапсулирую данные и операции над этими данными — почему это не ОО декомпозиция? То, что среда уродская, и достоточно большим числом классов неудобно оперировать — это мелочи, в конце концов можно на модули еще разбить.
Re[9]: Путь к ООП - туда и обратно :)
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.11.09 05:32
Оценка:
Здравствуйте, elmal, Вы писали:
E>Немного не понял, а что ж тогда конструируется оператором new, как не экземпляр определенного типа (класса)?
Андрей намекает, что есть существенная разница между конструированием типов и конструированием экземпляров.

E>И что тогда описывает Class, как не тип?

А что, в VBA уже можно описать свой Class?

E>Если я разбиваю свою предметную область на типы (классы), в них инкапсулирую данные и операции над этими данными — почему это не ОО декомпозиция? То, что среда уродская, и достоточно большим числом классов неудобно оперировать — это мелочи, в конце концов можно на модули еще разбить.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Путь к ООП
От: PostGet  
Дата: 03.11.09 07:13
Оценка:
Здравствуйте, jeeist, Вы писали:

J>Извиняюсь, опять не смог ничего найти, хотя наверно

J>такая тема уже где-то была.

J>Заинтересовал вопрос: как лучше освоить ООП?

J>Точнее — что следует освоить перед этим.

J>Почему-то мне кажется, что в реальной жизни

J>все устроено "не по ООП", а объекты могут быть
J>(или не быть) добавлены к этому.

J>И программист должен в первую очередь освоить

J>основы и только потом, если хочет, может добавить ООП.
J>А если начинать с ООП, ничего хорошего не получится.

Я прошёл путь от восхищения от ООП до его полного неприятия. Сей-час нахожусь по середине. ООП иногда предлагает красивые и понятные решения проблем дизайна программы. Я так и думаю что правда всегда где-то по середине. Ни одна пародигма только сама по себе не ведёт к успеху.
Re[10]: Путь к ООП - туда и обратно :)
От: elmal  
Дата: 03.11.09 08:37
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, elmal, Вы писали:

E>>Немного не понял, а что ж тогда конструируется оператором new, как не экземпляр определенного типа (класса)?
S>Андрей намекает, что есть существенная разница между конструированием типов и конструированием экземпляров.
под коструированием экземпляров понимается MyClass object = new MyClass? Такой синтаксис есть, и всегда был. Или проблема в том, что конструктор без параметров? Так делается это через фабричный метод, например так:

Public Static Function createInstance(param1 As Integer, param2 As Integer) As Class1
    Class1 myclass = New Class1
    ...
    createInstance = myclass
End Function

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

E>>И что тогда описывает Class, как не тип?

S>А что, в VBA уже можно описать свой Class?
Всегда было можно. Называется это правда Class Module, ключевого слова Class да, в VBA нет. Но по сути Class Module это и есть класс. Да, один Class Module на файл получается, очень неудобно. Но тоже самое, можно конструктор, деструктор задать, можно органичение видимости сделать, и можно new сделать.

Практически все то, что можно на VB6, можно и на VBA. Код в обе стороны переносится на ура.
Re[11]: Путь к ООП - туда и обратно :)
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.11.09 09:00
Оценка:
Здравствуйте, elmal, Вы писали:
E>под коструированием экземпляров понимается MyClass object = new MyClass? Такой синтаксис есть, и всегда был.
Да.

E>Всегда было можно. Называется это правда Class Module, ключевого слова Class да, в VBA нет. Но по сути Class Module это и есть класс. Да, один Class Module на файл получается, очень неудобно. Но тоже самое, можно конструктор, деструктор задать, можно органичение видимости сделать, и можно new сделать.

Хм. Что-то не получается у меня это сделать. Как создать экземпляр этого "Class Module"? Точнее, у меня это валится прямо на строчке c = New Class1.

E>Практически все то, что можно на VB6, можно и на VBA. Код в обе стороны переносится на ура.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Путь к ООП - туда и обратно :)
От: elmal  
Дата: 03.11.09 09:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Хм. Что-то не получается у меня это сделать. Как создать экземпляр этого "Class Module"? Точнее, у меня это валится прямо на строчке c = New Class1.

Так я ж написал — MyClass object = new MyClass. Конструктор только как public надо объявить
Re[13]: Путь к ООП - туда и обратно :)
От: elmal  
Дата: 03.11.09 09:46
Оценка:
Здравствуйте, elmal, Вы писали:

E>Так я ж написал — MyClass object = new MyClass. Конструктор только как public надо объявить

Только что прогнал, у меня работало. По умолчанию да, валилось на этой строчке так как конструктор приватный генерился по умолчанию. Я аж удивился, думал что правдо нельзя стало, и я наврал
Re[9]: Путь к ООП - туда и обратно :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.11.09 12:53
Оценка:
Здравствуйте, elmal, Вы писали:

E>Немного не понял, а что ж тогда конструируется оператором new, как не экземпляр определенного типа (класса)?


Я жирным ключевое слово пометил.
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
AVK Blog
Re[10]: Путь к ООП - туда и обратно :)
От: elmal  
Дата: 04.11.09 13:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

E>>Немного не понял, а что ж тогда конструируется оператором new, как не экземпляр определенного типа (класса)?

AVK>Я жирным ключевое слово пометил.
Что-то я не понимаю. Объект всегда был экземпляром класса, нет?
Myclass instance1 = New Myclass
Myclass instance2 = New Myclass

Myclass в данном случае — мой сконструированный тип. instance1, instance2 — экземпляры моего собственного сконструированного типа.

Речь шла изначально про конструирование типов, якобы в VBA этого нет. А что тогда Class Module, как не собственный тип?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.