LINUX.ORG.RU

[посоветуй-тред] что почитать по основам ООП

 


1

3

Посоветуйте чтиво, в котором доступным языкам на реальных примерах объясняются основные моменты и концепции ООП. не учебник по С++ или другому ЯП, а именно ООП как явление

А. Л. Фридман - Основы объектно ориентированной разработки программных систем

Boy_from_Jungle ★★★★
()

Лучше с практики начинать: попробовать перевести не-ООП программу на рельсы ООП и понять в чём суть и профиты от такого преобразования.

В этом поможет книжка Майкл Физерс «Эффективная работа с унаследованным кодом», ISBN 978-5-8459-1530-6.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

на языке оригинала — Working Effectively with Legacy Code — есть в Осле в виде pdf и chm.

anonymous
()

Бутча уже рекомендовали? «Основы ооп и проектирования» (как то так)?

На редкость унылая книженция. Тысяча страниц ни о чем.

baverman ★★★
()
Ответ на: комментарий от baverman

*Буч, конечно же. Одна знакомая, почему-то вспомнилась.

baverman ★★★
()

не учебник по С++ или другому ЯП, а именно ООП как явление

Карделли. только зачем?

jtootf ★★★★★
()
Ответ на: комментарий от Xenesz

Адепты Смолтока где-то затаились.

Да вон он, в овечьей шкуре, объектами из недоCL тряс.

baverman ★★★
()
Ответ на: комментарий от marvin_yorke

сейчас? мазохизмом пахнет. пиши бакалавр, потом поговорим на тему ооп

isako ★★★
()
Ответ на: комментарий от marvin_yorke

концепции ООП в целом не зависят от языка?

Начни практиковать ООП на кривой реализации, и реализация тебя поведёт от фейла к фейлу.

Xenesz ★★★★
()
Ответ на: комментарий от Xenesz

ну у меня выбор реализаций невелик - пишу в основном под эмбеддед, т.е. С(++). Вот ++'ов я не знаю и думаю - поможет ли мне чем-то ООП и имеет ли смысл ++'ы учить в данный момент

marvin_yorke ★★★
() автор топика
Ответ на: комментарий от anonymous

ну вот поэтому я и прошу литературу по возможности в отрыве от языка, чтобы не навязывались конкретные language-specific фишки

marvin_yorke ★★★
() автор топика
Ответ на: комментарий от archimag

Читай Фаулера «Архитектура корпоративных программных приложений» - хоть какой-то толк будет.

в свете задач автора - наибесполейзнейшее чтиво-с

shty ★★★★★
()
Ответ на: комментарий от marvin_yorke

пишу в основном под эмбеддед

ООП

В том виде, в котором ООП дается в большинстве книжек, он тебе точно не нужен.

baverman ★★★
()
Ответ на: комментарий от marvin_yorke

Майкл Физерс пишет как раз об этом и в этом ключе. Для твоего случая лучше его книжки не найти. Кстати, есть примеры перевода программ с чистого Си на C++ и объясняется на каждом шаге, почему он сделан и зачем.

iZEN ★★★★★
()
Ответ на: комментарий от yoghurt

Пользователь: <произвольный вопрос на тему программирования>
4-ый по счёту ответ: <Настольная Книга Сектанта>

ЛОР торт же!

anonymous
()
Ответ на: комментарий от baverman

> На редкость унылая книженция. Тысяча страниц ни о чем.

Бомж Петрович нашёл на свалке учебники по алгебре и геометрии за 8-й класс. «Тьфу ты, тысяча страниц ни о чём!»

Намёк понят?

anonymous
()
Ответ на: комментарий от iZEN

>> Кстати, есть примеры перевода программ с чистого Си на C++ и объясняется на каждом шаге, почему он сделан и зачем.
вот это было бы интересно

marvin_yorke ★★★
() автор топика
Ответ на: комментарий от anonymous

Бомж Петрович нашёл на свалке учебники по алгебре и геометрии за 8-й класс. «Тьфу ты, тысяча страниц ни о чём!»

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

baverman ★★★
()

Гради Буч - классика. Это именно то, что тебе нужно.

kermzyxer
()
Ответ на: комментарий от marvin_yorke

> Вот ++'ов я не знаю и думаю - поможет ли мне чем-то ООП и имеет ли смысл ++'ы учить в данный момент

под ембеддед не поможет: http://en.wikipedia.org/wiki/Embedded_C%2B%2B
это и не С и не ++ а какой-то огрызок, на котором пишут драйвера банально ориентированные программеры в макоси и ядра в беоси/хайку и L4

для ембеддед лучше осилить любой язык, который лучше структурирует код

anonymous
()
Ответ на: комментарий от anonymous

> ООП учит правильно думать и структурировать программу даже если не писать ее на С++

ты будешь смеятьтсо, но мёртвый страус в 'design and evolution of C++' пишет, что он его выдумал ради способа структурирования кода распределённого юникс-ядра. хотя с++ с этой задачей справляется как раз хреново.

anonymous
()
Ответ на: комментарий от marvin_yorke

>ну вот поэтому я и прошу литературу по возможности в отрыве от языка

ну тогда осиль графоманию ^W монографию Бертрана Мейера на 1200+ страниц про Эйфель — там хотя и про Эйфель для примера, разобраны основопологающие концепции независимо от языка. книжка в одном ряду с Гради Бучем «OOA&OOD»

Object-Oriented Software Construction, Second Edition, by Bertrand Meyer, Prentice Hall, 1997, ISBN 0-13-629155-4

http://www.ict.edu.ru/ft/004511//index.html

anonymous
()
Ответ на: комментарий от anonymous

IOKit

Когда это он успел стать ООП страшилкой?

Просто, как всегда, практика имеет мало общего с книжным графоманством.

baverman ★★★
()
Ответ на: комментарий от marvin_yorke

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

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

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

isako ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.