Я использую PHP 5.2 для создания веб-сайта
Мне нравится иметь явные имена для моих классов
У меня также есть соглашение, согласно которому "путь и имя файла" совпадают«имя класса»
Так что класс с именем:
ABCSiteCore_Ctrlrs_DataTransfer_ImportMergeController
будет находиться в моей рабочей копии SVN по адресу:
C:\_my\websrv\ABCCoUkHosting2\webserve\my_library\vendor\ABCSiteCore-6-2\ABCSiteCore\Ctrlrs\DataTransfer\ImportMergeController.php
Iсоглашение об именах дает мне лучшее представление о моей кодовой базе, что позволяет лучше понять и уменьшить чувство сложности.
К сожалению, на моем ПК с Windows XP максимальная длина пути.Кажется, это вызывает проблемы, когда я пытаюсь извлечь файлы Subversion в мою рабочую копию.
Если путь слишком длинный, я не могу его проверить - проверка не удалась.
Так что я беру целую вечность, чтобы придумать имя для концепции домена.
Я мог бы хотеть назвать класс «служба уведомлений», но в итоге я назвал его чем-то вроде «NtfctnSrvce».Это также вызывает проблемы, когда я пытаюсь создать класс спецификации.
скажем, например, я бы хотел, чтобы класс спецификации вызывался с явным именем, скажем:
$hasBeenNotifiedSpec = new ABCSiteCore_Model_MssgSys_Rules_Customers_HasCustomerBeenSentNotificationOfOnlineTransactionPaymentByEmail($notificationLog);
if($hasBeenNotifiedSpec->isSatisfiedBy($customer))
{
...do something
используя мое соглашение о присвоении имен файлам-классам, я могу просто использовать Windows Explorer, чтобы получить хорошее представление о том, что делает класс, его место / роль в шаблоне Модель / Представление / Контроллер и т. д.
ABCSiteCore\
Model\
MssgSys\
Rules\
Customer\
HasCustomerBeenSentNotificationOfOnlineTransactionPaymentByEmail.php
Всякий раз, когда я думаю об имени для концепции домена, у меня появляется привычка вставлять потенциальную длину пути в « средство проверки длины пути », чтобы посмотреть, смогу ли я его использовать - это просто кусочекпредварительно отформатированного текста в моей рабочей заметки-вики:
Как вы можете видеть.К сожалению, это имя класса приближается к пределам
C:\_my\websrv\ABCCoUkHosting2\webserve\my_library\vendor\ABCSiteCore-6-2\ABCSiteCore\Model\MssgSys\Rules\Customer\hasCustomerBeenSentNotificationOfOnlineTransactionPaymentByEmail.php
-------------------------------------------------------------------------------------------------------------------------------------------------------------------script path length danger zone------->|
----------------------------------------------------------------------------------------------------------------------------------------------------------------------max path length danger zone (inclusive .svn folder)------->|
C:\_my\websrv\ABCCoUkHosting2\webserve\my_library\vendor\ABCSiteCore-6-2\ABCSiteCore\Model\MssgSys\Rules\Customer\.svn\text-base\hasCustomerBeenSentNotificationOfOnlineTransactionPaymentByEmail.php.svn-base
Из-за этих ограничений длины пути я склонен выбирать имена для своих сущностей, которые не в наибольшей степени соответствуют вездесущему языку моей доменной модели.Это может иногда приводить к неправильным представлениям о том, как работает система, вызывать путаницу и усложнять процесс разработки.
так:
- Как решить эту проблему?
- это разрешимо или это только одно из тех практических ограничений, с которыми нам всем просто приходится иметь дело?
- это просто ПК?Возможно, пришло время переключиться на Mac или Linux.