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

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

Пожалуйста посоветуйте, какую программу написать для полноценного понимания ООП на пхп? чтобы по максимуму использовались шаблоны проектирования, интерфейсы, трейты и тд, а то по нескольку раз все прочитал, но как это все в связке работает не совсем понимаю. Заранее благодарю
  • Вопрос задан
  • 1319 просмотров
Пригласить эксперта
Ответы на вопрос 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
Форум, Библиотеку, Складской учет(вообще бомба), Управление персоналом.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽