jjzjj

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

coder 2024-06-18 原文

我正在使用 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/

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

  1. ruby-on-rails - unicode 字符串的长度 - 2

    在我的Rails(2.3,Ruby1.8.7)应用程序中,我需要将字符串截断到一定长度。该字符串是unicode,在控制台中运行测试时,例如'א'.length,我意识到返回了双倍长度。我想要一个与编码无关的长度,以便对unicode字符串或latin1编码字符串进行相同的截断。我已经了解了Ruby的大部分unicode资料,但仍然有些一头雾水。应该如何解决这个问题? 最佳答案 Rails有一个返回多字节字符的mb_chars方法。试试unicode_string.mb_chars.slice(0,50)

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  4. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  5. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  6. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  7. ruby - 匹配大写字母并用后续字母填充,直到一定的字符串长度 - 2

    我有一个驼峰式字符串,例如:JustAString。我想按照以下规则形成长度为4的字符串:抓取所有大写字母;如果超过4个大写字母,只保留前4个;如果少于4个大写字母,则将最后大写字母后的字母大写并添加字母,直到长度变为4。以下是可能发生的3种情况:ThisIsMyString将产生TIMS(大写字母);ThisIsOneVeryLongString将产生TIOV(前4个大写字母);MyString将生成MSTR(大写字母+tr大写)。我设法用这个片段解决了前两种情况:str.scan(/[A-Z]/).first(4).join但是,我不太确定如何最好地修改上面的代码片段以处理最后一种

  8. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  9. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  10. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

随机推荐