@nera4llife
Сторонник гелиоцентр

Какое приложение написать для понимания ООП?

Пожалуйста посоветуйте, какую программу написать для полноценного понимания ООП на пхп? чтобы по максимуму использовались шаблоны проектирования, интерфейсы, трейты и тд, а то по нескольку раз все прочитал, но как это все в связке работает не совсем понимаю. Заранее благодарю
  • Вопрос задан
  • 1330 просмотров
Пригласить эксперта
Ответы на вопрос 10
Lastor
@Lastor
В чем сила, брат? В ньютонах.
Полноценного понимания не существует.
Я долго писал в процедурном стиле и долго не мог понять зачем вообще нужны эти классы какие-то.
Всё решалось функциями. С ростом сложности проекта приходилось передавать в функции всё больше и больше аргументов. Когда аргументов стало слишком много, я стал передавать в качестве аргумента массив с переменными.
Функция изменяла значения в этом массиве и возвращала.

Иногда (часто) функция должна была вызвать другую функцию и передать туда этот массив. Количество функций росло, цепочки из них становились всё длиннее и я даже стал путаться в том, какая функция в какой цепочке (трейсе) участвует.
Тогда я стал раскладывать группы функций по разным подключаемым файлам и называл эти файлы так, чтобы по названию понять какой группе переменных они нужны.

А потом я случайно узнал, что эти какие-то непонятные методы, которые "являются поведением объектов класса" (как это обычно объясняют) на самом деле просто функции и есть. И оказалось, что можно не пропихивать массив через них, а наоборот - функции сложить в этот массив. Получилось, что класс это такой "массив" в котором есть не только переменные, но и функции. И эти функции могут видеть все эти переменные, даже если не написать global $var. И это было как раз тем, чего я очень желал и радости моей не было предела.
Кстати, узнал я это, когда забавы ради кодил 2D платформер на C# в Unity.
Ответ написан
Комментировать
php666
@php666
PHP-макака
на пхп
на пхп есть два мира - академический и реальный

в академическом мире люди пишут красивый ООП код, классы, интерфейсы и тд. Это же все спрашивают на собеседованиях.
в реальном мире, в реальной работе, зачастую всё ООП заканчивается одними классами, редко трейты, редко интерфейсы, наследование не далее одного потомка. Особенно если уже используешь готовый фреймворк, где за тебя почти все сделано.

php - не лучший язык, что бы на нем писать "полноценные" приложения на пхп. там должна быть какая-то ну очень сложная бизнес-логика.

можно, конечно, нарисовать кучу классов, но это будет "ООП ради ООП"
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Когда не знаешь что кодить - делай "каталогизатор". Фильмов. Сериалов. Музыки. Спортивных событий. Тема простая. И легко тестируется. Формочки и запросы - придумай сам. От них уже пойдут интерфейсы и трейты. Это уже как-бы детали ТЗ.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Ты не поймешь сути ООП, если будешь писать в одиночку. Нужно проецировать это на команду.
Ответ написан
Комментировать
@PiloTeZ
...
Нужно начинать с малого, не надо все и сразу. Рекомендую начать с фрейворка какого-нибудь, например Laravel. Развернуть. Посмотреть как что сделано, как работает. Попишите простенькие контроллеры. А потом, как поймете, что морально готовы, попробуйте следовать советам из другого топика https://qna.habr.com/q/1247800#answer_2286412
Ответ написан
@Wan-Derer
Зобанели на Хабре, волки́ ;((
Автоматизируй зоопарк :)
Ответ написан
Комментировать
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
Надо писать социальную сеть. Только тогда ты поймёшь ООП
Ответ написан
Комментировать
@JustMoose
Программист. Радиолюбитель. Прокрастинатор ;)
Можно открыть книжку Гради Буч Объектно-ориентированный анализ и проектирование. Там как раз есть несколько примеров. Правда, она не про PHP :(
Ответ написан
Комментировать
@japanxt
Напиши текстовую онлайн игру для телеграмм бота где пользователи могут взаимодействовать как сами с собой, так и с npc. не надо заморачиваться с авторизацией и протоколом взаимодействия, реляционной логики практически нет.
Ответ написан
Комментировать
@mrStrike
Форум, Библиотеку, Складской учет(вообще бомба), Управление персоналом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы