Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2017, 07:09   #1
develop2201
Пользователь
 
Регистрация: 07.09.2017
Сообщений: 11
Сообщение Вектор перехода от Процедурного к ООП.

Проблема в освоении, переходу из процедурного программирования к ООП. Понимаю что нужно изменить само мышление и прогресс есть. НУжно подкрепить хорошим материалом, хорошей сборкой материала по этому поводу. Если у кого есть понимание такой проблемы и вещественная информация в виде схем, литературы, теорий. Задача - сравнить проц и ооп программирование,. ООП это ведь некий стилевой каркас, под которым всё те-же структуры и функции по обработки полей этих структур. Действие кофеина заканчивается, и мое обращение к вам тоже. Но идея и желание освоить ООП на высоком уровне, не проходите мимо если есть что посоветовать на основе опыта.
develop2201 вне форума Ответить с цитированием
Старый 10.09.2017, 08:00   #2
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Сложно вывернуть мышление на изнанку сходу. Нужно 10000 часов практики, как обычно. Можно попробовать писать, скажем, на java, где процедурного по сути нет.

Ну и постоянный самоконтроль- пришло быстрое процедурное решение, спроси себя - как его вывернуть наизнанку?

Вобщем должно получается, что некая сущность умеет сама что-то делать, вместо привычного - мы делаем что-то над сущностью. Декомпозиция задач выглядит как деление на сущности, которые что-то умеют делать. А сама программа - это некий дирежер (буквально 5-10 процедурных строк), который запускает оркестр сущностей и далее они сами.

Общие места -выносятся в отдельные сущности. Это тоже, целое искусство, придумать иерархию наследования. Тут главное, не ленится рефакторить и не делать процедурные костыли.

Вобщем, отдельную сущность(класс) можно рассматривать как очень маленькую процедурную программу, которая решает какую-то элементарную задачу.

Последний раз редактировалось alexzk; 10.09.2017 в 08:08.
alexzk вне форума Ответить с цитированием
Старый 10.09.2017, 08:19   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Основная литература:
1] (В подлиннике) Макс Шлее-Qt 5.3. Профессиональное программирование на C++-БХВ-Петербург (2015) (3)
2] Стивен МакКонналл Совершенный код (2005)
3](Библиотека программиста) Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес-Приемы объектно-ориентированного проектирования. Паттерны проектирования-ДМК Пресс (2010)
4]Ошероув Рой.-Искусство автономного тестирования с примерами на С#(2014)
5]Фаулер Мартин (Fowler Martiп)-Рефакторинг - улучшение существующего кода-Символ-Плюс (2003)

Дополнительная литература:
6](Профессионально) Брукс.-Мифический человеко-месяц или как создаются программные системы-Символ (2003)
7]Буч Г., Максимчук Р., и др.(Booch)-Объектно-ориентированный анализ и проектирование с примерами приложений-Вильямс (2008)
8]Кент Бек-Экстремальное программирование. Разработка через тестирование (2003)
9]Гради Буч, Джеймс Рамбо, Ивар Якобсон-Язык UML. Руководство пользователя-ДМК Пресс (2006)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.09.2017, 10:23   #4
develop2201
Пользователь
 
Регистрация: 07.09.2017
Сообщений: 11
Сообщение Абстракции не рассматриваю.

Абстрактивный подход - не то что я ищу. Я уточнил - "вектор перехода". Сравнение стилей. Техническое сравнение.
develop2201 вне форума Ответить с цитированием
Старый 10.09.2017, 10:57   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

Его ж придумали не просто чтоб запихнуть функции в классы для красоты. В первую очередь оно для упрощения управления состоянием и т.п.

На маленьком/простом проекте может быть сложно понять в чем смысл.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.09.2017, 11:02   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от develop2201 Посмотреть сообщение
Сравнение стилей. Техническое сравнение.
Программирование это не техническая наука, а философская.

Цитата:
Сообщение от develop2201 Посмотреть сообщение
Я уточнил - "вектор перехода"
А вектор я вам опубликовал.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.09.2017, 11:04   #7
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Его ж придумали не просто чтоб запихнуть функции в классы для красоты.
Вообще-то именно для красоты. Смотри Smalltalk и читай статьи его создателя Алан Кэйя - отца ООП.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 10.09.2017 в 11:11.
Pavia вне форума Ответить с цитированием
Старый 10.09.2017, 14:13   #8
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от develop2201 Посмотреть сообщение
Если у кого есть понимание такой проблемы и вещественная информация в виде схем, литературы, теорий. Задача - сравнить проц и ооп программирование
мне понравилось, как тему ООП преподносит П.Франка
(с++, учебный курс)

он делает упор именно на понимание самой парадигмы,
постепенно подводя читателя к деталям реализации ООП
на языке с++
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ООП Одномерный массив - вектор n_zheka Помощь студентам 5 11.01.2011 13:36
ПОДПРОГРАММЫ С ПАРАМЕТРАМИ ПРОЦЕДУРНОГО ТИПА Kira09 Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2010 17:55
из процедурного в модульное pavel42 Помощь студентам 7 30.03.2010 20:27
подпрограммы с параметрами процедурного типа stargirl Помощь студентам 2 14.03.2009 14:52