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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Основополагающие принципы ООП

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Вопросы по стилю и философии ООП
burn
Отправлено: 16 Апреля, 2012 - 16:01:12
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




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



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




burn пишет:
нигде не рассматриваются, например, такие вопросы:

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

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

Ну и остальные из этого списка вполне вероятно окажутся нелишними: http://habrahabr[dot]ru/post/135897/


-----
PostgreSQL DBA
 
 Top
caballero
Отправлено: 16 Апреля, 2012 - 16:54:47
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




такие вопросы не рассматриваются потому что рассматривать их нет смысла


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
burn
Отправлено: 17 Апреля, 2012 - 08:51:38
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




caballero пишет:
такие вопросы не рассматриваются потому что рассматривать их нет смысла

Интересно, а какие же тогда есть смысл рассматривать?
 
 Top
eai
Отправлено: 17 Апреля, 2012 - 09:17:34
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




 
 Top
Stierus Супермодератор
Отправлено: 18 Апреля, 2012 - 00:10:19
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
Конечно, существует множество книг по ООП, но нигде не рассматриваются, например, такие вопросы
В каких книгах по ООП не затрагиваются эти темы?
 
My status
 Top
caballero
Отправлено: 18 Апреля, 2012 - 00:25:32
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Интересно, а какие же тогда есть смысл рассматривать?

которые имеют смысл. Чтоб задавать осмысленные вопросы нужно как минимум ознакомится с основами ООП.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
ferz
Отправлено: 18 Апреля, 2012 - 15:17:35
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




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. Опечатка? или почему?


-----
рожден стоячим
 
 Top
caballero
Отправлено: 18 Апреля, 2012 - 16:03:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?

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


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 18 Апреля, 2012 - 16:05:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




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

Разве одно другому мешает?


-----
PostgreSQL DBA
 
 Top
ferz
Отправлено: 18 Апреля, 2012 - 16:18:26
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




caballero пишет:
Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?

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

Так где что использовать? и почему? плюсы я уже знаю!


-----
рожден стоячим
 
 Top
eai
Отправлено: 19 Апреля, 2012 - 14:37:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Цитата:
В Страуструпе написано, что лучше использовать 0 вместо NULL. Опечатка? или почему?


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

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

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

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

Я бы рекомендовал такую последовательность
BASIC - как алгоритмический язык
Pascal - привыкание к строгой типизации
С - начинаем понимать суть процессов в компьютере
С++ - ОПП строго и по правилам
PHP + JS - привет WEB и быстрая разработка и хаос Улыбка

(Отредактировано автором: 19 Апреля, 2012 - 14:38:36)

 
 Top
burn
Отправлено: 19 Апреля, 2012 - 14:44:27
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Цитата:
Я бы рекомендовал такую последовательность
BASIC - как алгоритмический язык


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

(Отредактировано автором: 19 Апреля, 2012 - 14:49:05)

 
 Top
eai
Отправлено: 19 Апреля, 2012 - 14:48:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




burn пишет:

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

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

Вот яву я бф запретил Улыбка
 
 Top
burn
Отправлено: 19 Апреля, 2012 - 14:51:05
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Да что смысла флуд разводить, ты меня не переубедишь, я тебя... Фу, ненавижу basic censored недоязык
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB