Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Основополагающие принципы ООП
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Основополагающие принципы ООП

Страниц (2): [1] 2 »
 

1. burn - 16 Апреля, 2012 - 16:01:12 - перейти к сообщению
Здравствуйте, господа!
Я начинающий программист. И мне необходимо узнать некоторые основополагающие, базовые принципы ООП. Конечно, существует множество книг по ООП, но нигде не рассматриваются, например, такие вопросы:
* как правильно писать методы? должны они возвращать что-то, или наоборот, записывать свойства класса?
* что лучше принять за объект?
* как избежать ошибки проектирования ещё на начальной стадии?
Буду также признателен за познавательную литературу по теме.
2. Мелкий - 16 Апреля, 2012 - 16:20:13 - перейти к сообщению
burn пишет:
нигде не рассматриваются, например, такие вопросы:

Макконнелл, "Совершенный код", первые 2 вполне затрагиваются.

На последний вопрос ответ однозначен - начинающему невозможно. Опыт, опыт, опыт.

Ну и остальные из этого списка вполне вероятно окажутся нелишними: http://habrahabr[dot]ru/post/135897/
3. caballero - 16 Апреля, 2012 - 16:54:47 - перейти к сообщению
такие вопросы не рассматриваются потому что рассматривать их нет смысла
4. burn - 17 Апреля, 2012 - 08:51:38 - перейти к сообщению
caballero пишет:
такие вопросы не рассматриваются потому что рассматривать их нет смысла

Интересно, а какие же тогда есть смысл рассматривать?
6. Stierus - 18 Апреля, 2012 - 00:10:19 - перейти к сообщению
Цитата:
Конечно, существует множество книг по ООП, но нигде не рассматриваются, например, такие вопросы
В каких книгах по ООП не затрагиваются эти темы?
7. caballero - 18 Апреля, 2012 - 00:25:32 - перейти к сообщению
Цитата:
Интересно, а какие же тогда есть смысл рассматривать?

которые имеют смысл. Чтоб задавать осмысленные вопросы нужно как минимум ознакомится с основами ООП.
8. ferz - 18 Апреля, 2012 - 15:17:35 - перейти к сообщению
burn пишет:
Здравствуйте, господа!
Я начинающий программист. И мне необходимо узнать некоторые основополагающие, базовые принципы ООП. Конечно, существует множество книг по ООП, но нигде не рассматриваются, например, такие вопросы:
* как правильно писать методы? должны они возвращать что-то, или наоборот, записывать свойства класса?
* что лучше принять за объект?
* как избежать ошибки проектирования ещё на начальной стадии?
Буду также признателен за познавательную литературу по теме.


1, если нужно, тогда да. хотя я сомневаюсь, в правильности своего ответа.
2, в проэктировании есть такие понятия как доменный объект, абстракция, сущность...
3, как сказано выше "опыт, опыт, опыт", можно почитать страуструпа, там есть пару глав о проектировании и достаточно много практических советов в конце главы.
Цитата:
1. Делайте осознанные решения по способам использования классов
(осознанные как проектировщиком, так и пользователем); §25.1.
2. Учитывайте достоинства и недостатки применения разных видов классов;
§25.1.
3. Используйте конкретные типы для представления простых независимых
концепций; §25.2.
4. Используйте конкретные типы для представления концепций, для которых
важна близкая к оптимальной эффективность; §25.2.
5. Не наследуйте от конкретного класса; §25.2.
6. Используйте абстрактные классы для представления интерфейсов в случаях,
когда реализации объектов могут варьироваться; §25.3.
7. Используйте абстрактные классы для представления интерфейсов в случаях,
когда разные реализации объектов должны сосуществовать; §25.3.
8. Используйте абстрактные классы для предоставления новых интерфейсов
к уже существующим типам; §25.3.
9. Используйте узловые классы там, где схожие концепции разделяют большую
часть реализации; §25.4.
10. Используйте узловые классы для постепенного расширения реализации;
§25.4.
11. Используйте RTTI для выявления интерфейса объекта; §25.4.1.
12. Используйте классы для ассоциации действий с состоянием (данными);
§25.5.
13. Используйте классы для представления действий (операций), которые нужно
сохранять, передавать или откладывать их выполнение; §25.5.
14. Используйте интерфейсные классы для адаптирования классов к новым
способам их использования (без модификации самих классов); §25.6.
15. Используйте интерфейсные классы, чтобы добавить проверки; §25.6.1.
16. Применяйте дескрипторы, чтобы избежать непосредственного
использования указателей или ссылок; §25.7.
17. Применяйте дескрипторы для управления разделяемыми представлениями;
§25.7.
18. Применяйте прикладные среды разработок в тех областях, где особенности
программ допускают их стандартную структуру; §25.8.

(Добавление)
burn пишет:
такие вопросы не рассматриваются потому что рассматривать их нет смысла

В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?
9. caballero - 18 Апреля, 2012 - 16:03:28 - перейти к сообщению
Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?

смотря где
слишком абстрактный вопрос.
А если читать страуструпа то надо С++ изучать а не PHP
10. Мелкий - 18 Апреля, 2012 - 16:05:05 - перейти к сообщению
caballero пишет:
А если читать страуструпа то надо С++ изучать а не PHP

Разве одно другому мешает?
11. ferz - 18 Апреля, 2012 - 16:18:26 - перейти к сообщению
caballero пишет:
Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?

смотря где
слишком абстрактный вопрос.
А если читать страуструпа то надо С++ изучать а не PHP

Так где что использовать? и почему? плюсы я уже знаю!
12. eai - 19 Апреля, 2012 - 14:37:30 - перейти к сообщению
Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?


Не надо понимать все в лоб.
Лично я использую NULL c указателями.
Мне так легче код читать.

ЗЫ я кстати такого не помню

Цитата:
А если читать страуструпа то надо С++ изучать а не PHP

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

Я бы рекомендовал такую последовательность
BASIC - как алгоритмический язык
Pascal - привыкание к строгой типизации
С - начинаем понимать суть процессов в компьютере
С++ - ОПП строго и по правилам
PHP + JS - привет WEB и быстрая разработка и хаос Улыбка
13. burn - 19 Апреля, 2012 - 14:44:27 - перейти к сообщению
Цитата:
Я бы рекомендовал такую последовательность
BASIC - как алгоритмический язык


Гг, вот уж BASIC я НИКОМУ и НИКОГДА рекомендовать бы не стал, дабы не насиловать ещё юный и девственно чистый мозг будущего программиста, это влечет за собой необратимые последствия, после которых человек программистом может и не стать. Радость
(Добавление)
Короче, я понял, что действительно компетентных людей здесь мало... Огорчён Первым постом было сказано всё. Мелкий, спасибо!
14. eai - 19 Апреля, 2012 - 14:48:05 - перейти к сообщению
burn пишет:

Гг, вот уж BASIC я НИКОМУ и НИКОГДА рекомендовать бы не стал, дабы не насиловать ещё юный и девственно чистый мозг будущего программиста, это влечет за собой необратимые последствия, после которых человек программистом может и не стать. Радость

Ерунда, он дает быстро и легко основные понятия алгоритмических языков без излишних сложностей

Вот яву я бф запретил Улыбка
15. burn - 19 Апреля, 2012 - 14:51:05 - перейти к сообщению
Да что смысла флуд разводить, ты меня не переубедишь, я тебя... Фу, ненавижу basic censored недоязык

 

Powered by ExBB FM 1.0 RC1