Как стать автором
Обновить

Комментарии 76

проскакивала эта штука уже год полтора назад точно
Эх, не силен я в поиске на Хабре. Но, думаю, ничего плохого тут нет. Share your knowledge!
На Хабре не такой уж хитрый поиск. А фраза «не силен я в поиске» звучит по детски. Я думаю, что вы даже не попробовали, т.к. введя «PHP The Right Way» выпадает всего 7 результатов.
Спасибо. Наверное, потому что я искал «PHP: правильный путь».
да, точно странный. как-то, я даже пытался найти статью по точному совпадению начала заголовка статьи… не нашёл (зато выдал несколько не относящихся к теме поиска статей)… пришлось лезть в историю на другом устройстве и вводить затем адрес вручную…
можно, например, вот так искать
Спасибо.
Есть такая же тема для javasript: jstherightway.org/ (но только не книга, собрано на сайте)
Ну как бы для php это так же не книга а подборка best-practice.
на Leanpup это именно книга. и думаю многим такие мануалы удобнее читать в каком-то электронном формате (pdf for example).
НЛО прилетело и опубликовало эту надпись здесь
да, моя любимая картинка :)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Да пишем мы на других языках помимо php, не волнуйтесь.
Как минимум, скорее всего переход с PHP на что-то другое выльется в понижении зарплаты, а то и должности. Вплоть до с сеньоров свалиться в джуниоры со всеми вытекающими.

А на других языках пишем для себя, ради фана, а не за деньги ради еды :)
НЛО прилетело и опубликовало эту надпись здесь
Одного обучения мало. И не в месте дело (место и так меняешь минимум раз в год-два). Никто не возьмёт, по-моему, на должность сеньора человека, который ни строчки реального кода не написал на основном языке.
НЛО прилетело и опубликовало эту надпись здесь
Что означает пойти джуниором в большинстве случаев :) Думаю, тут ещё многое зависит от психотипа — есть люди, которые активно (в плане коммуникаций с работодателем) пройдут все ступеньки до старой должности за год, а то и меньше, а есть которые будут пассивно ждать повышения от начальства и ориентироваться на рынок по вакансиям типа «требуется миддл — два года опыта работы на Python, сеньор — пять лет» и пока этот срок не отработают даже заикаться о повышении не будут.
Python намного более пригоден для веб-разработки

Спорно.
Понятно, что PHP подкупает новичков возможностью писать «Hello <?= $name ?>», что выглядит очень просто и интуитивно, но все вменяемые PHP-разработчики давно уже поняли, что это ошибочный путь, и стараются так не делать.

Я, значит, невменяемый. И чем это лучше {{name}} (хотя и такие шаблонизаторы для пхп есть)?
Все толковые менеджеры уже давно переходят на инструменты, дающие четкую организацию и структуру проекта и уменьшающие издержки на вхождение в проект, что становится возможным благодаря таким вещам как PEP-8 и Django.

Или PSR и Symfony :)
Это правильный путь только для людей, которые, к сожалению, не в состоянии осилить ООП

Я осиливал ООП на С++, потом использовал его ещё на паре языков, и только потом столкнулся с PHP (когда ООП в нём ещё не было). Неправильный путь? Или я только думаю, что осилил ООП?
— их доля делать простые странички.

Вот сейчас занимаюсь разработкой финансовой системы на PHP, причём о языке меня никто не спрашивал. Собственно система была в продакшене до меня. Вся бизнес-логика на стороне PHP, угрызений совести от этого не чувствую. Могу переписать на Python (но вряд ли выберу Django), могу на Ruby (RoR можно), могу вообще на плюсах, но смысл, если система работает нормально, а мне на замену будет сотрудника найти легче и дешевле? Уж лучше я потрачу время на переписывание системы на PostgreSQL с MySQL — это куда больше плюсов обещает, чем смена одного языка на другой со схожими парадигмами.
НЛО прилетело и опубликовало эту надпись здесь
О, а Ваш ник я уже запомнил!

Очень рад :)
Спорить можно о чем угодно. Был бы смысл.

В споре истина не рождается, она существует до спора. Смысл спора — понять точку зрения оппонента.
Тем что форсирует соглашение о разделении логики и представления.

Зачем его форсировать? Ну и положа руку на сердце, в ООП-мире так или иначе придётся контролировать разделение «ручками», поскольку написав что-то вроде {{object.property}} мы можем и не догадываться, что вызывается, например, запрос к БД, если используется lazy load
Я не призываю Вас переписывать свой проект на другом языке :)

Я к тому, что Python или Ruby не имеют сейчас значимых преимуществ перед PHP в веб-разработке. По возможностям языки плюс-минус одинаковы, что-то лучше в одном, что-то в другом, что-то в третьем. По скорости выполнения — тоже.
НЛО прилетело и опубликовало эту надпись здесь
Вы работали с Python больше года в проектах хотя бы среднего уровня сложности?

Нет, не работал. Но того с чем работал хватило понять, что главное придумать алгоритм, перевести бизнес-правила в термины модели, а уж на чём их описывать в коде большинстве случаев всё равно (в рамках схожих наборов парадигм, типа «императивная динамическая типизация с уборкой мусора»).
Зачем форсировать — большая тема, обсосаны все за и против

Так никто не мешает использовать шаблонизаторы и на пхп, если «за» перевешивают в конкретном проекте, с одной стороны, а с другой — это вопрос дисциплины скорее, чем языка. Я на любом из трех языков могу написать хоть лапшу, хоть в строгих канонах.
НЛО прилетело и опубликовало эту надпись здесь
Ну вы тоже не работали на PHP 5.3+ на проектах хотя бы среднего уровня сложности.
НЛО прилетело и опубликовало эту надпись здесь
А нововведения смотрели?
Visual C++, Visual Basic, PHP 3+.
Позвольте уточнить, если Python настолько идеален, зачем Google, в котором работает создатель Python, выпустил свой язык Go?
НЛО прилетело и опубликовало эту надпись здесь
Создатель питона там уже не работает =)
у вас название анкора не соответствует содержимому, поправьте пжлст
отнюдь!
Ввело в заблуждение «PHP: Правильный путь».
Да ладно, если уж выбирать в общем случае, так точно не Питон :)
Почему?
Ну с одной стороны это был ответный троллинг. Я не являюсь глобальным противником тех или иных языков просто потому что мне нравятся больше те или иные их особенности.

Но если уж серьезно, то в Питоне куча своих проблем и много субъективных нюансов. И не вижу я в нем перспективности особой. Это устоявщийся язык, занявший некоторые ниши. Программисты Python довольны своим языком, что влечет пониженный их интерес к его развитию. Инертность перехода на 3-ю версию это подтверждает.

С PHP сейчас наоборот соскакивать особого смысла не вижу, т.к. он реально начал развиваться и «зализывать раны» — решать проблемные места. Это приятно и интересно. Мне это нравится. А Питон скушен (субъектив!).

Мне кажется, что самый весомый плюс Питона в сравнении с PHP — попадание в определенные крупные *nix-ориентированные компании, как например Гугл. Или даже Wargaming.
НЛО прилетело и опубликовало эту надпись здесь
Лично я не борюсь с ограниченностью PHP, а успешно использую этот язык в работе. Если раньше действительно была масса реальных проблем, то с PHP 5.4 практически все они решены. И если говорить о языке для души, то опять же это будет не Питон, а Руби. Это общепризнанный факт.

Вообще, я долго пытался проникнуться вашими мыслями, сумбурно выраженными в комментариях в этой ветке, и как-то не получается. Вы говорите об ограниченности, но ее нет. Бардак с именованиями, который с опытом перестает быть помехой в практике (не для души, а для результата). Что еще вас не устраивает из того, что не исправлено в 5.5 включительно?
НЛО прилетело и опубликовало эту надпись здесь
Множественное наследование не является преимуществом или недостатком. Это подход, который в одних языках принят, а в других нет. Необходимости во множественном наследовании в PHP после внедрения трейтов нет. А само по себе оно на мой взгляд приводит к путанице в иерархии, выполнении множества обязанностей одним классом, ошибкам проектирования. Трейты — золотая середина в этом вопросе.

Классы генерировать на лету нельзя. Наверное, это действительно недостаток, т.к. задачи, где это нужно, есть. Изменение классов в динамеке — это тоже самое, что множественное наследование, лучше, когда такого нет (ИМХО).

Именованные параметры — это синтаксический сахар. Это все равно, что заявить, что проблема Питона — отсутствие скобок для блоков. Раскрывать из массива — добавлено в 5.5 или будет в 5.6 (не помню точно, т.к. пока работаю с 5.4). Свободный набор именованных параметров — это массив. Свободный набор НЕименнованых параметров — есть давно.

Короче, из всего, что вы перечислили, можно только генерацию классов отметить.

Ну и последнее, не хотите развивать холивары — не развивайте их сами.
НЛО прилетело и опубликовало эту надпись здесь
Я вам в конце могу сказать вот что: за свои 10+ лет опыта я делал реальные проекты помимо PHP и JS, на C#, Java и C++. Так же изучал Ruby. Так что хорошо знаю, что для чего придумано. И считаю PHP хорошим инструментом для своих задач в настоящее время. Заметьте разницу — не хорошим языком, а хорошим инструментом. А в работе инструменты важны.

И давайте эту дискуссию тики закроем. Во всяком случае, ваш следующий ответ я готов прочитать, но писать на него ответ уже не стану :)
НЛО прилетело и опубликовало эту надпись здесь
— Множественное наследование — а оно нужно? В java/c# как то и без него хороши живут. Да и в python множественного наследования как такового нету, так вообще довольно забавно реализованы классы. Это удобно, с одной стороны, но это все же не совсем стандартный подход.
— Генерировать классы в рантайме? Можете привести кейс когда это нужно, ибо сходу так и не смогу сказать. Сходу в голове только крутятся кейсы с моками интерфейсов/классов, но опять же эту проблему можно решить проксями, декораторами и т.д.
— именованные параметры увы пока нет, только обсуждают, а вот распаковка уже доступна с версии 5.6.
НЛО прилетело и опубликовало эту надпись здесь
Простите, но создается впечатление что вы если и были знакомы с php, то это было лет 5-6 назад. Я лично не могу придумать такого кейса, при котором разработка на php будет медленнее разработки на том же ruby (благо количество готовых решений растет, и последние пару лет качеством они уже вменяемы). Для 90% задач для web этот язык подходит, для оставшихся 10% можно взять другой.
НЛО прилетело и опубликовало эту надпись здесь
Ни фига себе для новичков!
$start = \DateTime::createFromFormat('d. m. Y', $raw);
А что здесь сложного? Что название метода в camelCase?
Перевести имя не сложно, просто я подумал, что там подробно разъяснят про классы и ООП. Оказывается, нет.
Объяснений про классы и ООП уже настолько выше крыши, а их всё пишут, и пишут…
Ну и вообще — есть некоторый джентльменский набор «для новичков», который кочует из книги в книгу, но почему-то практически никто не заботится писать для новичков нечто более актуальное, отсутствующее в других источниках. Топик — удивительно редкое исключение.
Вы про сайт вообще ничего не слышали?
www.phptherightway.com
Давным давно о нём рассказывают при любом удобном случае, а вы для себя только открыли)
Раз в конце статьи в блоке «Ссылки», есть этот сайт, то наверно слышали.
Забавно, проверил ещё 2 раза — нет там ссылки на этот сайт. А именно на него обычно дают линк.
Пользуясь случаем, задам вопрос:

Тут на хабре было упоминание библиотеки для PHP, которая унифицировала названия стандартных функций.
Приводила все названия то ли к under_score то ли к camelCase — главное чтобы было единообразно.

Не могу вспомнить название, гуглинг тоже как то не помо — может кто подскажет?
Сомневаюсь, что это то, о чем ты говоришь, но я недавно упоминал Антона Шевчука с оберткой для стандартных функций — anton.shevchuk.name/php/php-my-expirience/
названия стандартных функций

по описанию, всё же, больше похоже на anton.shevchuk.name/php/php-my-expirience/ жаль, что этот POC не заимел развития в чем-то имеющем поддержку и развитие, а так и остался забавным экспериментом.
Если бы это было иронией…
Неплохая идея — форкнуть на penflip.com репу с гитхаба и там прямо средствами сервиса можно из markdown в pdf / doc / html / txt можно скачивать.
Тогда дайте уж всем линк на pdf
Сам нашёл leanpub.com/ruphptherightway
plutov, предлагаю добавить линк в пост, там epub и mobi есть.
Самая первая ссылка в списке вообще-то.
Реквестую русский mobi.
Самая первая ссылка в списке.
Спасибо. Текст новости немного ввел в заблуждение. Думаю, автору стоило бы упомянуть, что русский вариант формата для электронных книг также доступен по ссылке.
Странно, не появился холливар «Tabs vs spaces» =)
Так там спорить не о чем. Всем ясно, что табы лучше.
Во всем вы правы, только в слове «табы» опечатались, правильно — «пробелы». :-)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории