введение
Сегодня г-н Ван сказал мне, что его код настолько плох, что выглядит как беспорядок. спроси меня как
Улучшите качество своего кода, сделайте его более приятным для глаз и более удобным, например
У длинноногого ММ так и блестят глаза.
Итак, я: Ты сначала делаешь это, потом это, потом это. . . . . .
Одноклассник Лао Ван: Не устраивай хлопот, что это?
Хорошо, я начну загружать 13. . .
Основные характеристики
Давайте сначала поговорим о самых основных вещах:
-
Имена переменных пишутся в верблюжьем регистре. Не используйте пиньинь для слов, которые вы не понимаете, а загляните в словарь, чтобы найти соответствующие слова.
-
Константы именуются с использованием прописных букв и символов подчеркивания. Такие как:
SYSTEM_EROOR = 50000
. -
Используйте клавишу Tab для отступа, не вводите кучу пробелов для отступа.
-
Первая буква имени класса пишется с заглавной буквы в верблюжьем регистре, вам нужно знать значение имени, а аннотации описывают функцию этого класса. Например:
- Имя метода названо верблюжьим регистром, а количество строк метода ограничено примерно 80 строками, насколько это возможно, а комментарии объясняют, для чего используется функция.
- Фигурные скобки находятся на отдельной строке, например:
- Foreach используйте ссылки с осторожностью, например, в следующем коде будут проблемы:
Ожидаемый результат - это вывод:2 4 6
, фактический результат2 4 4
, почему
Чтобы увидеть мою предыдущую статью:PHP中
Вы действительно понимаете символ &?。 可以使用
Метод array_walk` позволяет избежать этой проблемы, например:
- избегать
if
,elese
Вложенность слишком глубокая, и многие вложения можно устранить досрочным завершением, для простого примера:
Рекомендуется использовать второй способ, если условия не выполняются, возвращайтесь напрямую, а остальные являются символьными условиями, так вы избежите написания большого количества кода в if.
-
несколько
if/else
Вместо этого используйте переключатель, версия PHP8.0 может использоватьmatch
Более лаконично. -
phpstorm
установкаSonarLint
плагин. Если в написанном вами коде пунктирная линия, значит, он не идеален, то его можно модифицировать согласно подсказкам. Я верю, что студенты с обсессивно-компульсивным расстройством обязательно изменят его. Со временем код будет быть очень стандартизированным. Например:
Метод не используется, и название метода не стандартизировано Вам было сказано, что вы можете его быстро изменить, или вы можете изменить его самостоятельно.
Спецификация платформы
-
Вышеперечисленное — это основные вещи, а следующее — основное содержание.
-
Я полагаю, что многие студенты использовали общеупотребительные
thinkphp
,laravel
,yii
Один из других популярных фреймворков. -
Все эти фреймворки основаны на архитектуре MVC. Я видел код многих людей. Либо пишите бизнес-логику в контроллере, либо в модели. Писать в модели относительно лучше, чем писать в контроллере. На самом деле, он не очень дружелюбен к крупным проектам.
-
Ниже в качестве примера используется фреймворк Laravel.
проверка параметров
-
API требует проверки параметров, но где проверка параметров более элегантна? Многие люди могут определить правила в контроллере, а затем вызвать метод проверки, тогда код проверки появится в каждом API, например, написанном моим коллегой.
Этот код будет появляться один раз в каждом API, не слишком ли он многословен, так как же его решить?
- Создайте его в http-каталоге Laravel.
Requsts
Каталог, используемый для хранения класса проверки параметров запроса. СоздатьBaseRequest
Добрый:
Например, для входа требуется проверка параметров, а затем создание нового.LoginRequest
класс наследует этоBaseRequest
.
- При его использовании вам нужно только внедрить этот класс запроса в метод контроллера.
Когда здесь будут получены параметры запроса, форма будет проверена, в противном случае, если проверка параметров завершится неудачей, будет вызван метод, определенный накоплением запроса, чтобы создать исключение Json и вернуть информацию клиенту.
контроллер
Основная рабочая нагрузка контроллера получает данные запроса и возвращает контент, и не должна делать больше, тогда вы можете определить уровень службы для обработки бизнес-логики. Так что код моего контроллера состоит только из одной строки.
- Создайте папку Services в каталоге приложений Laravel для хранения классов Service и создайте класс BaseService:
Затем создайте UserService для обработки бизнес-логики, связанной с пользователем.
Внедрите этот UserService в UserController, используя:
Model
Модель не рекомендует писать бизнес-логику. Модель в основном используется для определения некоторого контента и не должна манипулировать данными.
Обработка данных модели должна быть помещена в репозиторий, а папка должна быть создана в каталоге приложения Laravel.Repositories
.
Определить базовый репозиторий:
Определите UserRepository для операций, связанных с пользовательскими данными, внедрите UserModel в конструктор:
постоянный
Как определить много констант в проекте?
Создайте каталог Constant в каталоге приложения, а затем создайте класс Constant для хранения этих пользовательских констант.
Преимущества этого:
- Пользовательскими константами можно управлять централизованно.
- При изменении постоянного значения вам нужно найти и изменить его только один раз в этом классе, а обновление кода и ремонтопригодность хороши.