Минуты 1-5: Перестаньте бояться командной строки и вашего окружения. Эксперт знает свою среду как свои пять пальцев. Настройте локальное окружение не через готовые сборки типа OpenServer, а через Docker или хотя бы прямую установку PHP-FPM + Nginx. Поймите, как менять версии PHP через `update-alternatives` или `phpenv`. Научитесь пользоваться встроенным веб-сервером PHP: `php -S localhost:8000`. Это базовый контроль, который экономит часы в будущем.
Минуты 6-10: Освойте Composer не как установщик пакетов, а как инструмент управления проектом. Изучите файл `composer.json`: секции `autoload` (как настроить PSR-4 для своих библиотек), `scripts` (для автоматизации рутинных задач – запуска тестов, линтеров, деплоя). Используйте `composer require --dev` для инструментов разработки. Поймите разницу между `^`, `~` и точной версией в SemVer. Запускайте `composer outdated` регулярно, чтобы контролировать обновления.
Минуты 11-15: Декомпозируйте и именуйте правильно. Самый частый совет: функция или метод должны делать одну вещь и делать ее хорошо. Если вы не можете назвать метод без союзов "и" или "или" (`sendEmailAndLogToDatabase`), его нужно разбить. Именование – это 90% читаемости кода. Классы – существительные (`OrderProcessor`), методы – глаголы (`process`, `calculateTotal`). Избегайте абстракций вроде `Manager`, `Handler`. Будьте конкретны.
Минуты 16-20: Работайте с типами максимально строго. Используйте `declare(strict_types=1);` в начале каждого файла. Это не причуда, а защита от скрытых багов. Типизируйте все, что можно: аргументы, возвращаемые значения, свойства классов (начиная с PHP 7.4). Используйте Union Types (PHP 8.0+) и `mixed` (PHP 8.0) осознанно. Тип – это лучшее бесплатное документирование и статический анализ.
Минуты 21-25: Осознайте важность исключений (Exceptions). Прекратите использовать `die()` или возвращать `false` в случае ошибки. Выбрасывайте исключения. Создавайте свои иерархии исключений (например, `App\Exception\ValidationException` extends `InvalidArgumentException`). Ловите (`catch`) исключения только тогда, когда можете их осмысленно обработать (протоколировать и перебросить, показать пользователю дружеское сообщение). Не ловите `\Exception` просто так – это антипаттерн, скрывающий реальные проблемы.
Минуты 26-30: Автоматизируйте рутину. Эксперт не тратит время на однообразные действия. Внедрите в процесс:
- **Статический анализ:** PHPStan или Psalm. Запускайте на уровне не ниже 6 (хороший баланс). Они найдут ошибки, которые вы даже не предполагали.
- **Форматирование кода:** PHP-CS-Fixer или Laravel Pint. Единый стиль кода – это не прихоть, а экономия умственных ресурсов при code review.
- **Юнит-тестирование:** PHPUnit. Начните не с сложных тестов, а с простых – тестируйте отдельные функции-утилиты, сервисы без внешних зависимостей. Используйте Data Providers. Цель – не 100% покрытие, а тестирование сложной логики и предотвращение регрессий.
Эти 30 минут – не конец, а начало. Внедрите хотя бы два-три совета сегодня: настройте статический анализ и начните типизировать возвращаемые значения. Это тот фундамент, на котором строится профессиональный рост и качественный, предсказуемый код, который не стыдно показать коллегам и за который не страшно нести ответственность.
Комментарии (15)