[PHP, Совершенный код] Мнение о PSR-1: Базовый стандарт написания кода

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
07-Дек-2020 18:32

После прочтения PSR-1 возникли некоторые мысли, о которых хотелось бы поведать сообществу программистов с целью получения рассказов о вашем опыте.PSR-1: Базовый стандарт написания кода – стандарт, которые рекомендует правила оформления и написания кода. Оформление – как писать код, а написание – что писать.Подтекст PSR-1 говорит о том, что не надо использовать смешивание кода и логических заключений кода. Немного не понятно выразился, но далее вы поймете, что PSR-1 не рекомендует писать класс, выводить на экран и заниматься инициализацией свойств в одном файле.Все PHP файлы должны использовать либо <?php, либо <?=. Тут все очевидно и понятно, первый тег говорит об объявлении секции php кода, а второй – краткая запись echo, то есть вывода.Файлы также должны быть в кодировки UTF-8 без BOM, что вполне логично. Были как-то случае в проекте, где было несколько программистов. Так вот, там один как-то умудрялся вставлять BOM символ и из-за этого парсинг файлов ломался.Тут же говорится, что не рекомендуется использовать несколько побочных эффектов (side effects). С переводом у меня не всегда все ладно... То есть мы не можем взять и написать в файле:
<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);
// side effect: loads a file
include "file.php";
// side effect: generates output
echo "<html>\n";
// declaration
function foo()
{
    // function body
}
Ну тут момент крайне спорный. Хотя стандарт рекомендует использовать автозагрузчик по своим стандартам PSR-0 и PSR-4. С одной стороны да, но может же быть инициализация приложения в единой точке входа. Короче, момент сомнительный. В том же самом Yii2 не соблюдается этот подход... Я бы не обращал внимания именно на эту рекомендацию.Переходим в раздел имения классов и пространств имен (namespace). Тут я согласен, что файл класса должен содержать только этот класс, что класс должен находится в пространстве имен. Именование классов должно быть в формате StudlyCaps. Мы не будем рассматривать варианты написания кода для версий PHP < 7.0, так как там есть свои нюансы, а востребованность версий ниже достаточно мала.Константы мы именуем в верхнем регистре, разделяя слова нижним подчеркиванием DATE_APPROVED. Тут все логично и понятно, смысла именовать их похоже на свойства или переменные – нет. Надо четко различать константы от свойств.А вот с именованием свойств я не согласен с рекомендаций. PSR-1 рекомендует использовать один из форматов: $StudlyCaps$camelCase, или $under_score. Я не очень люблю разношерстность кода и полагаться на мнение каждого программиста. Лично я, наверное как и многие программисты, считаю, что использовать надо лишь один стиль, и он должен быть $camelCase. Причем стандарт хитрый, он говорит о том, что эти правила могут идти от поставщиков кода разного уровня... Вот если бы приняли стандарт именования конкретно, то не было бы разногласий. Хотя я уже давно не встречал написания кода в отличном формате от camelCase.С именование методов в формате camelCase() я полностью согласен и поддерживанию. Логично же, что классы именуем с большой буквы, константы с маленькой, методы с маленькой. И, в принципе, можно отличить одно от другого просто по написанию.Спасибо за внимание, надеюсь, что материал был полезен, хотя и является изложением мыслей о прочтенном PSR-1.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_php, #_sovershennyj_kod (Совершенный код), #_psr, #_php, #_code_review, #_php, #_sovershennyj_kod (
Совершенный код
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 21-Сен 08:01
Часовой пояс: UTC + 5