За последние 24 часа нас посетил 22821 программист и 1271 робот. Сейчас ищут 748 программистов ...

Вопрос к профессионалам PHP кодинга

Тема в разделе "Прочие вопросы по PHP", создана пользователем ProgerMan, 15 фев 2019.

  1. ProgerMan

    ProgerMan Новичок

    С нами с:
    15 фев 2019
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте!
    У меня вопрос к профессионалам, к тем кто серьезно работает с PHP и пишет "правильный" код.

    Я занимаюсь PHP достаточно давно, несколько лет уже, но я не считаю себя хорошим специалистом в этом деле. Я знаю ООП, я могу с нуля написать MVC. Но для хорошего кодинга я еще слабоват, думаю что даже на middle я не потяну.

    Подскажите пожалуйста что нужно изучать и в какую сторону нужно идти чтоб стать хорошим специалистов в PHP, а не просто продолжая писать код на фрилансе лишь бы он только работал.
    Я хочу делать свою работу качественно.

    Какие навыки нужно более хорошо проработать?
    Какие паттерны или другие свойства кодинга нужно знать идеально и чаще всего применять?
    Какими стандартами лучше пользоваться в своей работе?
    Что помимо PHP нужно идеально изучить, без чего качественное программирование на PHP будет невозможным?
    Какие рабочие инструменты желательно иметь всегда под рукой?

    Здесь есть мой код, можете посмотреть что я могу в данный момент: https://github.com/YakushinIlya

    Буду благодарен вам за внимание и за полезные советы!
     
  2. ElisDN

    ElisDN Активный пользователь

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Если хотите качественно в плане программной архитектуры, то учите не только вещи по PHP. Читайте и книги по архитектуре, которые обычно про Java и C#, так как в PHP это только появляется. Обратите внимание на эти книги и на другие похожие, которые найдёте.

    В проектах используйте Composer для автозагрузки. Да, своему мини-проекту хватит своего spl_autoload_register, но как только возникнет необходимость подключить любой чужой готовый пакет он сразу понадобится.

    Оформляйте код по стилям PSR-1 и PSR-2.

    Используйте полноценную IDE. В PhpStorm исправить формат можно просто нажатием Ctrl+Shift+L. И он подсвечивает многие недочёты, которые Вы можете упустить. И всё можно просмотреть вызвав инспекцию Inspect Code. Очень помогает.

    Из принципов ООП внедрите инкапсуляцию и полиморфизм, поменьше используйте наследование. Наследованием часто злоупотребляют без надобности и получают жёстко связанный код. Вместо этого учитесь переписывать код с extends классов на композицию/агрегацию с implements интерфейсов.

    В PHP не используйте трейты кроме как для дефолтной реализации интерфейса. Они лишь маскируют копипаст кода.

    Используйте свежий PHP 7.1 или 7.2. Не пишите array(...) и прочие устаревшие вещи.

    Максимально используйте типизацию и режим strict_types. Это избавит от кучи недочётов и сильно поможет редактору подсвечивать проблемы.

    Особый упор уделите практикам по SOLID и GRASP, чтобы получать слабосвязанный модульный тестируемый код с чётким разделением по ответственностям. Чтобы M не дёргала V в вашем MVC.

    Не используйте синглтоны, Service Locator (напрямую вроде Yii::$app в Yii или через фасады в Laravel) и глобальные переменные. Они подсаживают на себя своей лёгкостью, но в итоге Вы не научитесь работать без них. Изучите Dependency Injection Container.

    Используйте статические методы только для написания функций без побочных эффектов.

    По возможности делайте разделение на процедуры и функции по принципу CQS.

    Не используйте return false в процедурах как результат при ошибке. Для оповещений об ошибках используйте Exceptions.

    Не учите программирование по фреймворку Yii. Он отличается ото всех остальных фреймворков тем, что не заморачивается на архитектуре и ради упрощения и скорости осознанно нарушает перечисленные принципы.

    Не слушайте программистов на Yii, что их в нём всё устраивает. Они либо слишком опытны в архитектурном плане и знают, как обходить его недочёты, либо не так опытны и просто этих недочётов не знают и не видят.

    Изучайте тестирование с PHPUnit.

    Поковыряйте чужие пакеты из списков вроде Awesome PHP. Попробуйте их поподключать к своему коду.

    Поковыряйте компоненты из репозиториев Zend, Symfony и Illuminate.

    Почитайте "PHP-дайджесты" на habrahabr.

    Изучайте Linux. Пройдите полный путь создания и установки виртуалки в Digital Ocean или на VScale.

    Попробуйте поднимать локальное девелоперское Linux-окружение для своего проекта с помощью Vagrant или Docker Compose.

    Изучите PHP Right Way.

    Из смежного изучите MySQL, PostgreSQL, теорию реляционных БД: индексы, связи, нормальные формы.

    Изучите работу с JSON полями в БД.

    Почитайте про Redis, MongoDB, ElasticSearch.

    Посмотрите свежий JavaScript. Прочитайте про NodeJS, Webpack. Поковыряйте примеры на VueJS, React, Angular хотя бы примерно.
     
    mainprofilemail, twim32, user0k и 4 другим нравится это.
  3. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @ElisDN, если б можно было поставить 100 плюсов за такой ответ :) Ещё про REST тоже нужно почитать.
    А еще чем больше человек знает, тем больше он не знает. В этом и заключается парадокс.
     
  4. ProgerMan

    ProgerMan Новичок

    С нами с:
    15 фев 2019
    Сообщения:
    2
    Симпатии:
    0
    Благодарю за хороший ответ!