LINUX.ORG.RU

Порекомендуйте фундаментальную книгу по PHP

 


5

2

Обстоятельства складываются так, что в ынтырпрайзе придется иметь непосредственное дело с php на протяжении следующих двух-трех лет. На данный момент какие-либо знания по нему у меня отсутствуют — до этого несолько лет .net на работе и python дома.

На ЛОРе был свидетелем множества негативных отзывов о php, еще встречал пару отрицательных заметок в блогах, и даже на луркмор сходил. Итог, который вынес — писать качественный код будет весьма и весьма сложно.

Итак, вопрос: есть ли фундаментальные книги по php, которые следовало бы изучить разработчику для того, что бы писать и поддерживать код на достойном уровне.

Цена роли не играет, язык — русский или английский, бумажная/электронная версия тоже не играет.

Сходу нагуглил:

http://www.amazon.com/Professional-PHP5-Programmer-Edward-Lecky-Thompson/dp/0...

http://www.rsdn.ru/res/book/web/php_5_prof.jpg

P.S. Касательно версии php - интересует 5 и выше, все, что до этого - не актуально.

Перемещено true_admin из development

Ответ на: комментарий от omegatype

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

Вызовы — факультативно, суть не в них.

Посмотри еще раз, как по шагам изменяется функция.

Вон, с каррингом тебе уже подсказали,

Ты правда думаешь, я не знал про def? Это не годится, см пример «# полный бред»

Ты бы пример с юзкейсом какой-нибудь подкинул, а то в вакууме сложно рассуждать.

На простых примерах действительно трудно объяснять сложные вещи. Ты же не поверишь, если тебе скажут, что плохо писать 10 IF A>0 THEN GOTO 100 ? И правильно не поверишь, потому что в _этом_ нет ничего плохого. Но если посмотришь шире, то увидешь, где примерно проходит граница между «дапох» и «нунах».

И потом, какого рода юзкейс ты хочешь?

linuxnewb
()
Ответ на: комментарий от linuxnewb

Ну ты хоть в одной статье видел слова «вот такой вот вызов делать очень неудобно, а вот еще если так написать, то вообще быдлокод, а какую задачу мы решаем? ну... э-э... Надо смотреть шире».

Для карринга def не нужен, тебе писали об этом в треде ранее - подходят лямбды python.

Какого рода? Да любого рода :) А то пока твои слова только подтверждают один из пунктов zen python «если идею сложно объяснить, это плохая идея» :3

omegatype ★★★
() автор топика
Ответ на: комментарий от omegatype

Для карринга def не нужен, тебе писали об этом в треде ранее - подходят лямбды python

Уже писали: только если ты можешь уместить логику в одну строчку

а какую задачу мы решаем?

Любую, где требуется максимально простое управление сложным поведением. Из вебдева самый простой пример — формы. 1. форма «рисуется» (надо сгенерить html); 2. форма реагирует на действия пользователя (надо сгенерить js); 3.форма отсылает данные, причем как методом POST так и GET, как обычным способом(a), так и через HTTPRequest(b), а еще через куки (c); 4. варианты a,b,c необходимо распознать и сформировать правильный ответ... Предлагаю продолжить самостоятельно в качестве домашней работы.

Так вот, использование методов ФП позволяет решить задачу, во первых, относительно просто, т.к. можно следовать естественной логике задачи, во-вторых ценой меньшего времени и кол-ва строк (меньшее кол-во багов + меньше обем отлаживаемого кода и проще читать, а отладка в вебдеве это самое проблемное), в-третьих, код получается очень гибким и переносимым.

Сам догадаешься, какое отношение лямбды имеют к ФП?

«если идею сложно объяснить, это плохая идея»

ЯП нужен для реализации алгоритма, а не объяснения «идей». Ты ведь понимаешь разницу?

Кстати, идею тебе уже давным-давно обяснили: сахар слаще морковки, осталось только понять это. С этим, как правило, и возникают основные проблемы. Кадры, вроде тебя, постоянно требуют каких-то непонятных вещей («приведи пару юзкейсов этого твоего сахара») или пытаются обяснить, что морковка, по крайней мере ничем не хуже («нужно просто больше морковки зохавать» или «сахар в супе вместо морковки-- говно»). Ну так это ваши проблемы.

linuxnewb
()
Ответ на: комментарий от linuxnewb

А кадры вроде тебя вместо ясных и простых примеров (см. статьи в треде) генерируют какие-то многостраничные высеры :3

omegatype ★★★
() автор топика

Писать качественный код на нем обычно сложно из-за того, что с тобой над одним приложением работают другие программисты и они писать качественный код не умеют или не хотят (не мой случай, это я сам себя вспоминаю).

Хороших книг именно по PHP не назову, т.к. сам не читал почти ничего. По части правильного кода скорее надо читать про ООП, паттерны проектирования. Можно все кусками в интернете найти, кроме того на php.net вполне приличный хелп.

vyazovoi ★★★
()
Ответ на: комментарий от vyazovoi

P.S. комменты не читал, срач на тему быдло-php не интересен.

vyazovoi ★★★
()
Ответ на: комментарий от vyazovoi

(не мой случай, это я сам себя вспоминаю)

Т.е. не мой случай в данный момент, вспоминаю себя в прошлом.

vyazovoi ★★★
()
Ответ на: комментарий от vyazovoi

Даже ещё немного переформулирую свою мысль - писать хороший код легко тогда, когда вся остальная команда пишет хороший код. Так и получаешь этот опыт. А команда из новичков без опыта в других языках, т.е. в программировании в целом, будет говнокодить полюбому, имхо.

vyazovoi ★★★
()
Ответ на: комментарий от omegatype

вместо ясных и простых примеров

Что тебе неясно и сложно?

Продолжая аналогию, «юзкейсы» сахара происходят из его свойств: он сладкий, он растворим в воде итд.

Применительно к методикам программирования все тоже самое. Естественно, их [свойства методик] надо знать (см. пример про goto)

linuxnewb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.