gpt4 book ai didi

php - 我对类名的选择受到 Windows XP 最大路径长度问题和 SVN/域驱动设计的阻碍——任何解决方案

转载 作者:可可西里 更新时间:2023-11-01 11:22:22 24 4
gpt4 key购买 nike

我正在使用 PHP 5.2 制作网站

我喜欢为我的类取明确的名字

我还有一个约定,说“文件的路径和名称”与“类的名称”匹配

所以一个类叫做:

ABCSiteCore_Ctrlrs_DataTransfer_ImportMergeController

将位于我的 svn 工作副本中:

C:\_my\websrv\ABCCoUkHosting2\webserve\my_library\vendor\ABCSiteCore-6-2\ABCSiteCore\Ctrlrs\DataTransfer\ImportMergeController.php

我发现命名约定让我可以更好地了解我的代码库,从而更好地理解并减少复杂性的感觉。

不幸的是,我的 Windows XP PC 上似乎有最大路径长度。当我尝试将 Subversion 文件 check out 到我的工作副本时,它似乎会导致问题。

如果路径太长,我无法 checkout - checkout 失败。

所以我发现自己花了很长时间才想出一个领域概念的名字。

我可能想将一个类命名为“通知服务”——但我最终将其命名为“NtfctnSrvce”之类的名称。当我尝试创建规范类时,它也会导致问题。

例如,我希望有一个用明确名称调用的规范类,例如:

$hasBeenNotifiedSpec = new ABCSiteCore_Model_MssgSys_Rules_Customers_HasCustomerBeenSentNotificationOfOnlineTransactionPaymentByEmail($notificationLog);

if($hasBeenNotifiedSpec->isSatisfiedBy($customer))
{
...do something

通过使用我的文件到类名的命名约定,我可以简单地使用 Windows 资源管理器来很好地了解该类的作用、它在模型/ View / Controller 模式中的位置/角色等。

        ABCSiteCore\
Model\
MssgSys\
Rules\
Customer\
HasCustomerBeenSentNotificationOfOnlineTransactionPaymentByEmail.php

每当我想到领域概念的名称时,我都养成了将潜在路径长度粘贴到“路径长度检查器”中的习惯,看看我是否可以使用它 - 它只是我的 working-notes-wiki 中的一段预先格式化的文本:

如您所见。不幸的是,类名已经接近极限

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 了。

最佳答案

这里有一些可能对您有所帮助的抽象建议;是的,切换操作系统,但不是您的想法-获取virtualbox并加载一个 linux 版本(ubuntu 的好和快速 + 得到很好的支持)然后使用该虚拟操作系统作为你的开发操作系统 - 这样你就可以两全其美,当你完成工作时你只需关闭虚拟机(如果你愿意,可以保存它的状态)并拥有一台漂亮干净的电脑来做你想做的事。

好处几乎是无限的,例如我有几个虚拟机,我可以随时加载,一些是测试设置,一些是镜像网络服务器设置,我什至有不同版本的 Windows(例如带有 IE6 的旧 XP)测试浏览器错误。

令人惊讶的是,我实际上发现我的机器使用 virtualbox 运行更快;请不要让设置和运行的时间让您担心,因为 virtualbox 非常快,您会发现您的虚拟机加载速度比您的主要操作系统快得多。

还有许多其他好处,但总的来说,这是一种非常自由的体验:)

关于php - 我对类名的选择受到 Windows XP 最大路径长度问题和 SVN/域驱动设计的阻碍——任何解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3282303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com