Люди, помогите, пожалуйста, ответить на вопрос!
От: Pilot_istrebitel  
Дата: 25.11.03 07:59
Оценка: :)
Кто знает, выскажите ваше мнение по вопросам: в чем состоит суть объектной (ООП) революции? И почему в последнее время стало "модным" закрывать поля в классах?
Буду очень благодарен, с уважением , pilot-istrebitel.
Re: Люди, помогите, пожалуйста, ответить на вопрос!
От: LaptevVV Россия  
Дата: 25.11.03 08:05
Оценка: 11 (2)
Здравствуйте, Pilot_istrebitel, Вы писали:

P_>Кто знает, выскажите ваше мнение по вопросам: в чем состоит суть объектной (ООП) революции? И почему в последнее время стало "модным" закрывать поля в классах?

2. Поля в классах надо закрывать не потому, что "модно", а потому, что способствует инкапсуляции. И это было всегда, независимо от каких-либо "мод". А инкапсуляция, в свою очередь, сильно способствует локализации ошибок.
Насчет революции — ничего не знаю, ИМХО, обычная эволюция. Просто все языки программирования постепенно становятся ОО. А насчет революции — это, наверное, фирмы трещат, так как продукты надо продавать. Вот и вопят на всех углах о своих супер-пупер-оо продуктах. Не обращай внимания — все идет своим чередом и находится на очередном витке спирали развития.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Люди, помогите, пожалуйста, ответить на вопрос!
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 25.11.03 08:44
Оценка: 9 (1)
Здравствуйте, Pilot_istrebitel, Вы писали:

P_>Кто знает, выскажите ваше мнение по вопросам: в чем состоит суть объектной (ООП) революции? И почему в последнее время стало "модным" закрывать поля в классах?


Скрытие полей помогает помогает менять реализацию класса без изменения остального кода.
Также способствует надежности кода.
Re: Люди, помогите, пожалуйста, ответить на вопрос!
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.11.03 09:18
Оценка:
Здравствуйте, Pilot_istrebitel, Вы писали:

P_>Кто знает, выскажите ваше мнение по вопросам: в чем состоит суть объектной (ООП) революции? И почему в последнее время стало "модным" закрывать поля в классах?

Я думаю, тебе надо книжек почитать. Типа Объектно-ориентированный анализ и проектирование, Г.Буч.
Тогда слова "революция" и "модно" перестанут столь прочно ассоциироваться с ООП.
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Люди, помогите, пожалуйста, ответить на вопрос!
От: Socrat Россия  
Дата: 25.11.03 09:42
Оценка:
Здравствуйте, Pilot_istrebitel, Вы писали:

P_>Кто знает, выскажите ваше мнение по вопросам: в чем состоит суть объектной (ООП) революции? И почему в последнее время стало "модным" закрывать поля в классах?

P_>Буду очень благодарен, с уважением , pilot-istrebitel.

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

1. Переход от машинных команд к мнемонике (Assembler) — улучшение читаемости кода.
2. Язык с макросредствами (Macroassembler) — тут можно поспорить.
3. Язык более высокого уровня.
4. Структурное программирование — уход от операторов goto заменой их на циклы и ветвления.
5. Объектно-ориентированое программирование — выделение данных и функций для них в один блок (реализация метода решения сложных задач путем разделения на более мелкие).

А закрытие данных способствует локализации ошибок и облегчает замену алгоритмов работы класса, что облегчает сопровождение программ.
Re[2]: Люди, помогите, пожалуйста, ответить на вопрос!
От: mihailik Украина  
Дата: 25.11.03 16:23
Оценка: +1
S>Я думаю, тебе надо книжек почитать. Типа Объектно-ориентированный анализ и проектирование, Г.Буч.

Я бы сильно не советовал эту книгу читать. Особенно людям, ещё не очень разбирающимся в ООП.

Это не книга, а талмуд какой-то, написаный утомительным языком с совершенно ненужными отступлениями и бесполезными советами.
... << RSDN@Home 1.1.0 stable >>
Re[2]: Люди, помогите, пожалуйста, ответить на вопрос!
От: LaptevVV Россия  
Дата: 25.11.03 16:40
Оценка:
Здравствуйте, Socrat, Вы писали:

S>Мне лично кажется, что всякая революция происходит, когда меняется подход к программированию. Я бы назвал 5 революций:


S>1. Переход от машинных команд к мнемонике (Assembler) — улучшение читаемости кода.

S>2. Язык с макросредствами (Macroassembler) — тут можно поспорить.
S>3. Язык более высокого уровня.
S>4. Структурное программирование — уход от операторов goto заменой их на циклы и ветвления.
S>5. Объектно-ориентированое программирование — выделение данных и функций для них в один блок (реализация метода решения сложных задач путем разделения на более мелкие).
Ну и еще пару-тройку мелких восстаний
изобретение операционной системы
лисп и пролог
отделение данных от алгоритмов и возникновение субд
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Люди, помогите, пожалуйста, ответить на вопрос!
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.11.03 04:11
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Я бы сильно не советовал эту книгу читать. Особенно людям, ещё не очень разбирающимся в ООП.

Хм. А мне как раз показалось, что книга правильная, т.к. там в отличие от всех этих "С++ за 30 часов" приведен пример полного цикла разработки софта с использованием ООП, а не дурацкие примеры с квадратами и прямоугольниками. Страуструп хорош, но после него очень трудно принять мысль, что ООП не синоним С++. Посоветуй альтернативные источники — я как-то мало книг читал, все больше доки
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Люди, помогите, пожалуйста, ответить на вопрос!
От: Socrat Россия  
Дата: 26.11.03 08:29
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


S>>Мне лично кажется, что всякая революция происходит, когда меняется подход к программированию. Я бы назвал 5 революций:


S>>1. Переход от машинных команд к мнемонике (Assembler) — улучшение читаемости кода.

S>>2. Язык с макросредствами (Macroassembler) — тут можно поспорить.
S>>3. Язык более высокого уровня.
S>>4. Структурное программирование — уход от операторов goto заменой их на циклы и ветвления.
S>>5. Объектно-ориентированое программирование — выделение данных и функций для них в один блок (реализация метода решения сложных задач путем разделения на более мелкие).
LVV>Ну и еще пару-тройку мелких восстаний
LVV>изобретение операционной системы
LVV>лисп и пролог
LVV>отделение данных от алгоритмов и возникновение субд

Операционная система мало связана собственно с программированием. Примерно так же, как и интегрированная среда.
Лисп, Пролог и СУБД — параллельные ветви развития. Еще можно добавить сюда различные ветки, например, визуальное программирование (Builder, Delphi), SDL (здесь программирование заменяется рисованием алгоритмов), а также всевозможных систем, претендующих на звание "программирование без программистов".
Re[4]: Люди, помогите, пожалуйста, ответить на вопрос!
От: LaptevVV Россия  
Дата: 26.11.03 08:39
Оценка:
Здравствуйте, Socrat, Вы писали:

LVV>>Ну и еще пару-тройку мелких восстаний

LVV>>изобретение операционной системы
LVV>>лисп и пролог
LVV>>отделение данных от алгоритмов и возникновение субд

S>Операционная система мало связана собственно с программированием. Примерно так же, как и интегрированная среда.

Не-е-е-е-т! Где бы мы сейчас были, если бы не API, которые уже первые оси предоставили. А про интегрировагнную среду тоже самое нужно сказать: где бы мы сейчас были, если бы не Турбо Паскаль 3? Так что ито, и другое — очень существенные шаги в ПРАКТИЧЕСКОМ программировании.
S>Лисп, Пролог и СУБД — параллельные ветви развития.
Во-первых, я не зря отделил. ИИ весь практически на лиспе и прологе и их последователях держится — очень больщой кусок программирования (функциональное, например).
Субд — из тех же революций, что и оси и интегрированные среды: где бы мы сейчас были, если бы данные не отделили от программ и не изобрели SQL???

S>Еще можно добавить сюда различные ветки, например, визуальное программирование (Builder, Delphi),

А вот с этим не могу согласиться — визуальное программирование — это детище Windows. ИМХО. гораздо важнее паттерны.
S>SDL (здесь программирование заменяется рисованием алгоритмов), а также всевозможных систем, претендующих на звание "программирование без программистов".
Пока эти дела не оказывают такого существенного влияния на развитие программирования, как перечисленный мной "восстания".
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Люди, помогите, пожалуйста, ответить на вопрос!
От: WeCom Беларусь  
Дата: 26.11.03 08:44
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Я бы сильно не советовал эту книгу читать. Особенно людям, ещё не очень разбирающимся в ООП.


M>Это не книга, а талмуд какой-то, написаный утомительным языком с совершенно ненужными отступлениями и бесполезными советами.


А за смешение бизнес уровня с уровнем представления так и вообще стрелять надо.
Re[5]: Люди, помогите, пожалуйста, ответить на вопрос!
От: Socrat Россия  
Дата: 26.11.03 09:17
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


LVV>>>Ну и еще пару-тройку мелких восстаний

LVV>>>изобретение операционной системы
LVV>>>лисп и пролог
LVV>>>отделение данных от алгоритмов и возникновение субд

S>>Операционная система мало связана собственно с программированием. Примерно так же, как и интегрированная среда.

LVV>Не-е-е-е-т! Где бы мы сейчас были, если бы не API, которые уже первые оси предоставили. А про интегрировагнную среду тоже самое нужно сказать: где бы мы сейчас были, если бы не Турбо Паскаль 3? Так что ито, и другое — очень существенные шаги в ПРАКТИЧЕСКОМ программировании.

Интегрированные среды и операционные системы сильно упрощают программирование и служат его популяризации. Я же имел в виду те события, которые повлияли на стиль программирования.


S>>Лисп, Пролог и СУБД — параллельные ветви развития.

LVV>Во-первых, я не зря отделил. ИИ весь практически на лиспе и прологе и их последователях держится — очень больщой кусок программирования (функциональное, например).
LVV>Субд — из тех же революций, что и оси и интегрированные среды: где бы мы сейчас были, если бы данные не отделили от программ и не изобрели SQL???

Там же, где и сейчас. Может, я просто мало сталкивался с СУБД?


S>>Еще можно добавить сюда различные ветки, например, визуальное программирование (Builder, Delphi),

LVV>А вот с этим не могу согласиться — визуальное программирование — это детище Windows. ИМХО. гораздо важнее паттерны.

Но они тоже влияют на стиль программирования. Всякий раз, когда я встречался с программистами под Windows и заговаривал о том, что надо закрывать члены классов так, как только можно, они делали круглые глаза и спрашивали "А зачем?".


S>>SDL (здесь программирование заменяется рисованием алгоритмов), а также всевозможных систем, претендующих на звание "программирование без программистов".

LVV>Пока эти дела не оказывают такого существенного влияния на развитие программирования, как перечисленный мной "восстания".

Это да. Скорее не восстания, а тихий ропот.
Re[6]: Люди, помогите, пожалуйста, ответить на вопрос!
От: LaptevVV Россия  
Дата: 26.11.03 09:32
Оценка:
Здравствуйте, Socrat, Вы писали:

S>Интегрированные среды и операционные системы сильно упрощают программирование и служат его популяризации. Я же имел в виду те события, которые повлияли на стиль программирования.

Тогда да, конечно.

LVV>>Субд — из тех же революций, что и оси и интегрированные среды: где бы мы сейчас были, если бы данные не отделили от программ и не изобрели SQL???

S>Там же, где и сейчас. Может, я просто мало сталкивался с СУБД?
Вероятно. А я имел удовольствие программисть еще в советские времена — вы меня извините — без БД — это кошмар.

S>>>Еще можно добавить сюда различные ветки, например, визуальное программирование (Builder, Delphi),

LVV>>А вот с этим не могу согласиться — визуальное программирование — это детище Windows. ИМХО. гораздо важнее паттерны.
S>Но они тоже влияют на стиль программирования. Всякий раз, когда я встречался с программистами под Windows и заговаривал о том, что надо закрывать члены классов так, как только можно, они делали круглые глаза и спрашивали "А зачем?".
Должен заметить, что неряшливому программированию гораздо больше способствовала именно визуализация на дисплее, а не столько Windows. Это дело в Советском союзе проходило при мне, поэтому я сам часто себя ловил на том, что не так тщательно, как раньше (при перфокартах, и особенно, при перфолентах) "вылизываю" текст программы. Стало легче просто еще раз прогнать программу — компилятор все скажет.
У вин-программистов такой стиль еще и сама Виндовс провоцирует, тут ничего нельзя поделать.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Люди, помогите, пожалуйста, ответить на вопрос!
От: Socrat Россия  
Дата: 26.11.03 09:50
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


LVV>>>Субд — из тех же революций, что и оси и интегрированные среды: где бы мы сейчас были, если бы данные не отделили от программ и не изобрели SQL???

S>>Там же, где и сейчас. Может, я просто мало сталкивался с СУБД?
LVV>Вероятно. А я имел удовольствие программисть еще в советские времена — вы меня извините — без БД — это кошмар.

Смотря какая задача. Я программировал в основном бортовые компьютеры, микроконтроллеры. Там никакими СУБД и не пахнет.


S>>>>Еще можно добавить сюда различные ветки, например, визуальное программирование (Builder, Delphi),

LVV>>>А вот с этим не могу согласиться — визуальное программирование — это детище Windows. ИМХО. гораздо важнее паттерны.
S>>Но они тоже влияют на стиль программирования. Всякий раз, когда я встречался с программистами под Windows и заговаривал о том, что надо закрывать члены классов так, как только можно, они делали круглые глаза и спрашивали "А зачем?".
LVV>Должен заметить, что неряшливому программированию гораздо больше способствовала именно визуализация на дисплее, а не столько Windows. Это дело в Советском союзе проходило при мне, поэтому я сам часто себя ловил на том, что не так тщательно, как раньше (при перфокартах, и особенно, при перфолентах) "вылизываю" текст программы. Стало легче просто еще раз прогнать программу — компилятор все скажет.
LVV>У вин-программистов такой стиль еще и сама Виндовс провоцирует, тут ничего нельзя поделать.

Я, когда перешел под Windows, по привычке старался вылизывать тексты программ. Но на это требуется время, а его-то как раз и не бывает...
Что касается сокрытия данных, то все мастера классов в Builder и Visual C++ создают новые классы, где все члены public. Что же тогда требовать от программистов? Да и проще открыть все, чем потом возиться со старым классом, если вдруг потребуется что-нибудь еще оттуда достать.
Re[8]: Люди, помогите, пожалуйста, ответить на вопрос!
От: LaptevVV Россия  
Дата: 26.11.03 10:02
Оценка:
Здравствуйте, Socrat, Вы писали:

LVV>>Вероятно. А я имел удовольствие программисть еще в советские времена — вы меня извините — без БД — это кошмар.

S>Смотря какая задача. Я программировал в основном бортовые компьютеры, микроконтроллеры. Там никакими СУБД и не пахнет.
Вы случайно не из Питера?
Мне приходилось тоже такое писать для Авроры. Там, конечно, нет подобных задач.
Но приходилось и зарплату делать — вот где песня начинается!

S>Я, когда перешел под Windows, по привычке старался вылизывать тексты программ. Но на это требуется время, а его-то как раз и не бывает...

S>Что касается сокрытия данных, то все мастера классов в Builder и Visual C++ создают новые классы, где все члены public. Что же тогда требовать от программистов? Да и проще открыть все, чем потом возиться со старым классом, если вдруг потребуется что-нибудь еще оттуда достать.
А в результате — профессионалы эти системы не используют. Тут неоднократно были топики, на чем кто пишет. Обычно отвечали так6 начинали на борландах, но замучились и перешли на VC6
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: Люди, помогите, пожалуйста, ответить на вопрос!
От: Socrat Россия  
Дата: 26.11.03 10:08
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


LVV>>>Вероятно. А я имел удовольствие программисть еще в советские времена — вы меня извините — без БД — это кошмар.

S>>Смотря какая задача. Я программировал в основном бортовые компьютеры, микроконтроллеры. Там никакими СУБД и не пахнет.
LVV>Вы случайно не из Питера?
LVV>Мне приходилось тоже такое писать для Авроры. Там, конечно, нет подобных задач.

Нет, я из Владимирской области, сейчас работаю в Москве.

LVV>Но приходилось и зарплату делать — вот где песня начинается!


S>>Я, когда перешел под Windows, по привычке старался вылизывать тексты программ. Но на это требуется время, а его-то как раз и не бывает...

S>>Что касается сокрытия данных, то все мастера классов в Builder и Visual C++ создают новые классы, где все члены public. Что же тогда требовать от программистов? Да и проще открыть все, чем потом возиться со старым классом, если вдруг потребуется что-нибудь еще оттуда достать.
LVV>А в результате — профессионалы эти системы не используют. Тут неоднократно были топики, на чем кто пишет. Обычно отвечали так6 начинали на борландах, но замучились и перешли на VC6

Будем считать, что договорились.
Re[10]: Люди, помогите, пожалуйста, ответить на вопрос!
От: LaptevVV Россия  
Дата: 26.11.03 10:11
Оценка:
Здравствуйте, Socrat, Вы писали:

S>Будем считать, что договорились.

Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Люди, помогите, пожалуйста, ответить на вопрос!
От: mihailik Украина  
Дата: 26.11.03 16:10
Оценка: +1
S>Хм. А мне как раз показалось, что книга правильная, т.к. там в отличие от всех этих "С++ за 30 часов" приведен пример полного цикла разработки софта с использованием ООП, а не дурацкие примеры с квадратами и прямоугольниками. Страуструп хорош, но после него очень трудно принять мысль, что ООП не синоним С++. Посоветуй альтернативные источники — я как-то мало книг читал, все больше доки

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

Вполне надёжный путь: изучаешь какой-нибудь толковый ОО-язык, впитываешь через него все парадигмы, а уж по ходу можно теоретическую терминологию и прочий шаманизм осваивать. Толковыми языками для впитывания я бы принял на данный момент Яву, C# и Дельфи (в порядке полезности для изучения).
... << RSDN@Home 1.1.0 stable >>
Re[5]: Люди, помогите, пожалуйста, ответить на вопрос!
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.11.03 04:11
Оценка: 9 (1) +1
Здравствуйте, mihailik, Вы писали:
M>Вполне надёжный путь: изучаешь какой-нибудь толковый ОО-язык, впитываешь через него все парадигмы, а уж по ходу можно теоретическую терминологию и прочий шаманизм осваивать. Толковыми языками для впитывания я бы принял на данный момент Яву, C# и Дельфи (в порядке полезности для изучения).
Неа. Ненадежный. Подавляющее большинство тех, кто знакомится с ООП через язык, попадают в ловушку представлений. Очень трудно после какого-то языка выбить представление о том, что ООП есть синоним некоторых ключевых слов. А ООП гораздо шире, чем любой из современных языков. К счастью, некоторым из жертв удается впоследствии выбраться из этой ловушки. Как правило, после чтения книг и изучения еще 2х-3х ОО-языков.
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Люди, помогите, пожалуйста, ответить на вопрос!
От: Pilot_istrebitel  
Дата: 01.12.03 15:19
Оценка:
Здравствуйте, Socrat, Вы писали:


S>А закрытие данных способствует локализации ошибок и облегчает замену алгоритмов работы класса, что облегчает сопровождение программ.


P-I: А можно, пожалйста в 2-х словах объяснить, каким образом облегчается замена алгоритмов.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.