Скажите свое мнение по поводу следующего способа изучения php. Способ заключается в смелом и резком погружении в код и дальнейшем его разборе. То есть берем любую популярную CMS (например Joomla) или фреймворк (например Yii2), открываем любой файл с расширением .php и построчно прочитываем код. Понятное дело, что для новичка это дело покажется очень сложным. Но например мне такой подход давал хороший результат. В процессе чтения, через справочник разбираем все неизвестные функции, конструкции и все остальное... Цель не в увеличении понимания CMS или фрейморка, а в повышении у ученика количественного показателя диалога с кодом. Еще и в боевом режиме. Ну ни как не прет изучение по стандартным урокам, коих туча. Ты вроде проходишь урок по ООП, но даже представить себе не можешь, где это применить. От этого понимание материала, ничтожна. На данный момент, разбираю любые .php файлы cms и фреймворка и более менее начинаю понимать, что классы на самом деле работают и общаются друг с другом, а не просто красивая и сложная конструкция. А также получил информацию об немалом количестве функций и прочих конструкций языка, постоянно копаясь в справочнике и разбирая каждую строчку, к чему очень слабо сподвигают стандартные уроки, появляющиеся по запросу, типа "Уроки PHP для новичков".
так же делаю, только не построчно, а ветви методов конструирую, чтобы понять логику поэтапной загрузки ядра махины. Этап - пропись корневой директорий, директории где лежит само ядро с библиотеками, директории загрузки важных конфигураций и т.д. воссоздание объектов конфигурационных библиотек (классы) - в Ларавель через ReflectionClass все проиходит. Круто! а в Уии автоподгрузка классов збс. (мое мнение) кому как.
Построчно, пометодно, поклассово, зависит от уровня юзера. Бывает читаешь страницу, и чем ниже, тем большими кусками идет чтение, так как уровень понимание абстракции повышается. На сколько я понимаю речь идет не о basic-версии. Хороший тест, спасибо. Думаю я его осилю.
https://github.com/MouseZver/My-garbage-code/blob/master/php.ru/64708/66243/laravel.php ну да, через жопу, изучая все досканально --- Добавлено --- P.s: это не код, а росписи
Ну я решил начать с лайтцовой версии. Для наглядного знакомства с ООП, думаю будет достаточно. Это как пример ? Как я уже сказал, главная цель - увеличение объема знаний. Кто-то советовал начинающим программистам, на начальном этапе изучать все, что только попадется - прямо, поперечно и если того потребуется, вперемешку. P.S. И вообще на сколько я понял, исходя из своего опыта, начинать изучать ЯП, нужно предварительно конкретно пополнив свой багаж знаний в этой сфере. Как бы парадоксально это не звучало, но после практического разбора кода, становится намного легче читать о синтаксисе.
да, изучая в свободное время структуру стартвого движка фреймворков, выбрал в качестве лабораторной мыши Laravel и строил ветвление, что как все работает, какая логика задается. Чтобы не только не заговнокодить, но и старательно логично писать код, а по пути его еще оптимизировать. Дремучий лес получался... но эпически интересно было.... Пока не пришла эта ебаная лень к кодингу.. --- Добавлено --- Да, для начало немного опыта в самом ооп накопить, либо открыв любой фреймворк и вникать - пустая трата времени. + неймспейсы, не буду говорить что это легко, ведь изучив их - легко сказать "ааа да это цветочки, расплюнуть"... Да изучив, окажется особого то и нифуя --- Добавлено --- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --- Добавлено --- чем по стандарту идти и изучать азы для нубаф - больше времени пройдет
Никогда не читаю код фреймворка без надобности. Пока всё работает, пофигу, что там написано. Другое дело, что иногда что-то не работает, начинаешь, естественно грешить на фреймворк, залазишь в его код и в процессе чтения/трассировки отладчиком понимаешь, где ошибся сам. К хорошему фреймворку всегда есть хорошая документация - вот её раздел "руководство" прочитываю полностью при начале работы с новым фреймворком, раздел справочника по API пользую в качестве такового. По поводу всяких паттернов ООП - это надо прочитать/послушать лекции и оставить в голове. Как только возникнет ситуация, они сами всплывают, иногда даже без названия, а просто: ну как-то так можно сделать. Вроде @Fell-x27 писал, что он до части паттернов дошёл самостоятельно. Я, к сожалению, не столь талантлив. Но я их в проектах применяю. Не во всех и не всегда, поскольку это не самоцель. Иногда думаешь: "вот здесь бы стратегию неплохо, но пока и if сойдёт". Как один лектор сказал, рефакторить на паттерны имеет смысл только те части программы, через которые проходит ось изменения. А если какой-то метод написал, пусть с if-ами, но нормально, он работает, и ты в него вообще не лазишь - ну и пусть там живут себе эти ифы, никому не мешают.
Ну да. Наверное данный метод обучения подойдет тем, кто уже прошел все самое легкое. Видимо вы меня не поняли. Мне наоборот абсолютно наплевать работает фреймворк или нет. Он мне нужен только для изучения анатомии языка. И данный метод подходит скорее для новичков. Если хорошо понимаешь тему, держишь ее в голове и программируешь в уме, можно и дойти самому куда угодно.
Для изучения языка есть тонна литературы и прекрасный мануал от разработчиков. --- Добавлено --- Кстати, в коде фреймворков и CMS тоже не всегда фонтан, чтоб брать за образец. Все программисты - люди. У Laravel к примеру мне код не нравится, хотя пользоваться фреймворком приятно. А в коде чёрт ногу сломит, и обычно когда добираешься до нужного кода, это оказывается Symfony