Недавно шел в одну крупную компанию как Junior PHP Dev, отвечал на тех. собеседовании хорошо, после чего меня спросила HR: а что будете делать, если вы столкнетесь с кодом какой вам не понятен, сотрудника этого в компании (какой этот код писал) уже давно может не быть, как справитесь?
И я вот действительно в тот момент задумался, как справлюсь то? Допустим, код не комментирован никем, сам код чужой мне дается читать действительно тяжело, и код мог писать человек уровнем знаний куда выше моих.
Кто-что может советовать, если на работе встречаешься с кодом какой действительно непонятен, как поступать с этим делом? И как прокачать скилл понимания чужого кода?
И что на собеседовании на такое отвечать собственно?
а что собственно на гитхабе искать? вписать в поиск "E-Shop" допустим, и смотреть структуру интернет-магазина? Мне по сути всё равно какие проекты смотреть, главное чтоб начинать разбирать. Как на гитхабе правильно хоть поискать всё это?
Stalker_RED: а, это то я видел давно, только вот мне фреймворки не особо надо) мне надо проекты людей, а вот все страницы на какие я попадаю, это в основном то ли фреймворки, то ли микрофреймворки
Александр Шаповал: это плохой пример кода. Там всё плохо. Из того что хорошо - только одно: Наличие PHP5+, а не 4ки.
1) Стандарты?
2) Автолоадинг?
3) Докблоки?
4) И прочее, вроде синглтонов там, где их использовать нельзя
В качестве "изучения с матюками" - пойдёт, в качестве самоцели "как надо писать" - это ад.
Александр Шаповал: зачем гуглить? Всё и так приведено и собрано давно: getjump.me/ru-php-the-right-way В 90% случаях всё описанное можно воспринимать не как рекомендацию, а как инструкцию к применению.
И это не какие-то там "понты", так нормальные люди пишут просто по-привычке, боюсь что даже черновики =)
Александр Шаповал: нет, только зачем? Под автолоадом я подразумевал Composer + PSR4 строчку, вместо самопального решения, которое по всем критериям (придумайте любое, я обосную почему это не так) хуже.
Кирилл Несмеянов: огромное спасибо за ссылку, я знаю что дело не в понтах, и почему нормальные люди так пишут, потому интересуюсь и прислушиваюсь к рекомендациям =)
Александр Шаповал: если под "не очень важным" подразумевается, что все можно подключить и без композера - да, это так. Но он настолько добавляет удобства, что стал уже почти стандартом.
Александр Шаповал: эта ссылка - только то, что можно исправить прям сразу двумя тычками. Остальное уже опыт и всякие SOLID, SRP, KISS и прочие страшные слова.
Александр Шаповал: кажется, что подключение одной строчкой (это не гипербола) почти что любой существующей php-библиотеки и конкретно нужной версии, включая все её зависимости (и не только, js и прочее там тоже есть) создание ещё одной строчкой (и это тоже не гипербола) полного автолоадинга (включая оптимизированный и с жадной загрузкой, опционально) и прочего - довольно важно. Не? +)
Например https://github.com/SerafimArts/gitter-api/blob/mas... содержит:
1) Никому не нужные лицензию, имя библотеки, кейворды, автора и описание
2) Требования к минимальной версии php, на которой библиотека заведётся
3) Требования к расширениям php, которые библиотека использует
4) Зависимости, около 10:
4.1) HTTP клиент
4.2) EventLoop
4.3) Логгирование
4.4) Повтор операций N-раз, в случае ошибок
5) Зависимости для разработки (тестирование, документация, драйвер логгирования и прочее), в сумме около 75 сторонних библиотек (ну там всякие парсеры кода, кодогенераторы, маркадаун генераторы и прочее)
6) Правила автолоада библиотеки
7) Правила автолоада тестов
Если исключить из списка ненужное, то остаётся примерно 20 строчек. Ровно 20ю строчками можно указать всё перечисленное выше.
Кирилл Несмеянов: а как это будет работать на хостинге? себе я например поставлю composer, а на хостинге его не будет.
Я просто не могу понять как оно должно работать.