问题标签 [namespace-organisation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 解决命名空间之间类命名冲突的最佳方法
我正在使用一个帮助类来在两个同名的类之间进行翻译,我遇到了一个问题。这两个类都超出了我的控制范围,所以我不能简单地重命名它们。
我的基本选项都涉及为至少一种类型完整声明命名空间:
或相反的方法:
或者声明两个命名空间,以获得更明确的模式:
是否有另一种解决方案可以整理这些方法签名?我想知道某种 C++“typedef”风格的解决方案是否可能?
php - DDD:域模型命名空间约定
我正在使用 PHP 中的域模型编写应用程序,并且想知道我应该采用哪种命名约定。
假设我有一个Customer
,Address
在它的聚合根中有一个。
我也有一个Product
,Option
在它的聚合根中有一个。
我有两种选择:
将聚合根保持在域模型的根部:
Pro:我可以在同一个命名空间中同时 使用
Customer
和Con:必须引用它自己的Product
Customer
Address
Customer\Address
对同一命名空间中的所有聚合类进行分组,包括聚合根:
Pro :
Customer
可以将其地址引用为Address
Con : 从我的根域命名空间中,我必须引用:Customer
作为Customer\Customer
Product
作为Product\Product
f# - F# - 在文件中组织算法
我没有找到组织各种算法的好方法。今天的文件是这样的:
1/ 从 Excel 中提取值
2/ 基于这些值的第一个算法(从 Excel 中提取)以“let matriceAlgo1 =”开头
3/ 第二个算法从相同的值开始 "let matriceAlgo2 ="
4/ 综合算法,对 2/ 和 3/ 进行加权平均(取决于几个值)并选择要显示的结果。“让矩阵合成=”
我的问题如下:我应该在这个文件的不同部分之前放什么才能用那里的名字来称呼它们?我已经看到解释 Module 可能是一个答案的答案,但我不知道如何在我的案例中应用它(或者如果它不是好的答案,则为其他任何东西)。最后,我希望能够写出类似的东西这个 :
"启动提取
启动第一个算法
启动第二个算法
发射合成"
ruby-on-rails - 命名空间控制器和嵌套资源
同时使用名称间距和嵌套资源是一个糟糕的主意吗?
我想要一个管理区域,里面有一堆控制器。该区域的一些资源可以嵌套,例如:
虽然像这样命名空间:
在这样的命名空间中使用嵌套是否可能/一个好主意?我应该如何构建事物?
c# - 业务层拆解和业务对象类型
业务逻辑层包含包含业务逻辑的业务对象。其中一些是持久的,那些是实体。实体及其逻辑构成模型。其中一些是无状态的,并且包含一些不适合任何实体职责的额外逻辑。这些对象是服务(也是模型的一部分?)。
然后是一些帮助器/实用程序类,例如 Managers、Factories、Builders。现在这个反汇编正确吗?
还有一些不是实体或服务的对象,它们可以包含状态。有自己的线程的活动对象。可以长寿。那些物体是什么?只是业务对象还是业务组件?
在我的项目中,我有 Device 类。起初我把它当作实体对象,因为它存储在数据库中。它包含自己的线程,定期从真实设备获取一些数据,并对这些数据执行一些复杂的逻辑。所以它是一个活跃而长寿的物体。我意识到它不能是一个实体,因为它是重/复杂、活跃和长寿的对象(或者它可以???)。所以我把它分成不同的类:
- DeviceDescriptor,现在是 Entity 和
- DeviceAccess(或 Device),包含复杂的业务逻辑,寿命长且活跃。它也是基于 DeviceDescriptor 对象进行初始化的。
这个 DeviceAccess 对象是什么类型的业务对象?
如果我有这样结构的项目,Device/DeviceAccess 对象应该放在命名空间层次结构中的什么位置?
- ProjectName.Core——核心对象、业务对象
- ProjectName.Core.Entities – 持久化业务对象
- ProjectName.Core.Services – 服务接口
- ProjectName.Core.Services.Default——服务的真正实现
- ProjectName.Core.Repositories –(DAL 层)存储库接口
- ProjectName.Core.Repositories.SqlServer – 存储库的真正实现
首先我想我应该把这个对象放在 Core 命名空间下。但后来我认为将它视为单独的组件/模块或功能并将其放置在 Core 命名空间之外的 ProjectName.Devices (以及其他帮助对象、存储库和实体 - DeviceDescriptor)可能会更好。你怎么看?
你能告诉我我的命名空间组织是否正确吗?它不是由 DDD 指导的。它是一个从 DDD 借来的一些概念的 3 层架构。(存储库、聚合根、服务、模型)。
我将不胜感激任何建议。
c++ - 在命名空间'names'上:::std:: vs std::
我一直在查看 Stackoverflow 上的一些帖子,我注意到大多数人使用std::
但有些人使用::std::
我想我已经阅读了有关全局范围或名称空间中类似内容的内容作为使用的理由::std::
(但我现在找不到它,因为它是在对不相关问题的评论中)
有什么理由更喜欢一种方式而不是另一种方式吗?
php - PHP 全局命名空间别名
这是场景。
我在我的项目中实现命名空间。
我有自己的自定义桥接库,它调用 Zend 等其他库来完成繁重的工作。
我在自定义桥接库中使用完全限定的命名空间没有问题,但希望在我的控制器、模型和视图中保持代码尽可能简洁。
这是我想使用的一些别名的示例:
示例用法:
或者
是否有可能以任何方式创建一个可以全局访问且不会在每个文件末尾丢弃的别名或常量?
某种可以使这些别名保持不变的引导文件。
c - 干掉这个代码片段(不要过多地弄脏命名空间)
我有
在一个循环中,但随后需要在元素之间写入乘号(但不是第一个)。我不想
所以我写了一个快速的一次性函数
尽管弄脏了命名空间,但它很好地删除了重复项。但是现在我看到以下函数具有我的快速函数未涵盖的类似代码。我需要
和
和许多其他人。但是由于这些只会使用两次,相隔两行,这似乎很浪费(并且将代码与其自然位置分开,这很少是一件好事)。肯定有更好的办法!想法?
javascript - 如何从 Meteor 包导出到我的应用程序的命名空间?
我知道如何编写 Meteor 包,但我似乎无法弄清楚如何将所有导出都放在我的应用程序的命名空间中,如本演示文稿中所述。
这个特定的包是特定于我正在构建的应用程序的,它只导出一个可以被视为应用程序单例上的装饰器的方法。我试过api.export('MyApp.myMethod')
了,但这给出了一个错误native: Bad exported symbol: MyApp.myMethod
。
如果我只是api.export('myMethod')
,那么在我必须调用的应用程序代码中myMethod()
,这不是命名空间。
Meteor 是否有类似于 Node 的机制var http = require('http');
?或者如何打包导出符号到给定的命名空间?
repository - 无法将我的 Docker 的自动构建存储库切换到组织的私有存储库
当我尝试将我的自动构建存储库切换到私有存储库时,我收到一条消息,告诉我必须升级我的计划。我是一个免费计划(只有 1 个私人存储库)。事实是我在私有部分有一个以前的存储库,我删除了它。之后我收到消息“(使用 0 of 1)”。所以在这一点上一切似乎都是正确的。我的命名空间是“org4svcorp”,它是一个组织。
即使我尝试在命名空间字段中添加带有组织的存储库(不是自动构建),我也会收到消息:“已达到最大存储库数
此组织已达到允许的最大存储库数。请让其中一位组织所有者在组织计费页面上升级计划。”
私有存储库的状态再次为:“(使用 0 of 1)”
对组织有限制吗?
谢谢!