Этим летом я собираюсь запустить довольно большое приложение для PHP, на котором я буду единственным разработчиком (поэтому у меня нет каких-либо соглашений о кодировании, чтобы они соответствовали моим собственным).
PHP 5.3 является достойным языком ИМО, несмотря на глупый токен пространства имен. Но одна вещь, которая всегда беспокоила меня об этом, – это стандартная библиотека и ее отсутствие соглашения об именах.
Поэтому мне любопытно, было бы серьезно плохой практикой обернуть некоторые из наиболее распространенных стандартных функций библиотеки в моих собственных функциях / классах, чтобы сделать имена немного лучше? Я полагаю, что в некоторых случаях это может также добавить или изменить некоторые функции, хотя на данный момент у меня нет примеров (я полагаю, что найду способы сделать их OO или заставить их работать немного по-другому, пока я работаю).
Если вы заметили, что разработчик PHP сделал это, вы бы подумали: «Человек, это один дрянной разработчик?»
Кроме того, я не знаю много (или что-то еще) о том, как и как оптимизируется PHP, и я знаю, что обычно PHP performace не имеет значения. Но что-то вроде этого заметно повлияло на производительность моего приложения?
Возможно, вы единственный разработчик, но кто-нибудь еще заберет этот код? Если это так, вы действительно должны придерживаться главным образом стандартных имен библиотек, если не делаете ничего, кроме просто обертывания вызова.
Я работал с кодом, где автор обернул такие вызовы, и это действительно вредит способности быстро понять код
Если вы заметили, что разработчик PHP сделал это, вы бы подумали: «Человек, это один дрянной разработчик?»
Ну нет … но я бы подумал: «Черт … Я должен учить этого парня новому стандарту именования, который, хотя благими намерениями меня проведет»
Я предполагаю, что вы имеете в виду не только соглашения об именах, но и веселую смесь function (needle, haystack)
и function(haystack, needle)
.
Я могу полностью понять стремление строить здравомыслящие обертки вокруг них в целях самозащиты. Я все же предпочел бы не делать этого, просто потому, что добавляет к вашему проекту проприетарный слой, который затруднит понимание для других. Все знают, что делает array_push
, но MyArrayFunctions::push
возможно, придется искать или даже смотреть, чтобы узнать, что он делает.
Я склонен придерживаться стандартов, хотя в этом случае они, по общему признанию, дрянные. Кроме того, с достойной IDE, которая может искать функции и параметры по мере ввода, проблема уже значительно уменьшена.
С другой стороны, я действительно не вижу никакого вреда, скажем, в статическом классе Array
который приносит все push()
, pop()
, array_this()
и array_that()
в одну стандартную форму. Я бы сказал, что это зависит от вас.
Простые обертки не поражают вашу производительность, но это может запутать будущих разработчиков в проекте. Будучи программистом PHP, вы медленно ожидаете странных соглашений об именах.
Если вы добавляете какие-либо функциональные возможности, то очень важно иметь согласованные соглашения. Я работал со статическим классом PHP, который обертывал собственные функции массива (и добавлял новые). Было довольно удобно всегда иметь одинаковые места размещения.
На мой взгляд, реализация OOP, например, массива, в порядке, вы будете обертывать их и частично изменять функциональность, однако просто переименование функций и перетасовка аргументов мне не нравится.
Если вам действительно нужно это сделать, убедитесь, что вы прокомментируете его с помощью phpdoc, чтобы люди могли видеть правильный синтаксис в автозаполнении своей IDE.