问题标签 [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.
php - 如何在单独的命名空间中包含几乎相同的文件(用于调试目的)
我面临以下PHP代码问题:
目前我的 PHP 代码没有使用任何命名空间。我对包含文件进行了修改,foobarinc.php
因此我现在拥有两个版本foobarinc-v1.php
(旧版本)和foobarinc-v2.php
(新版本)。包含文件具有两个文件中都存在的一些功能(例如foo()
)。目前foobarinc-v2.php
有一些错误,所以我需要使用foo()
from调试我的代码fooinc-v1.php
(因为至少我知道它有效)但我还需要foo()
从foobarinc-v2.php
其他地方调用。我不想更改 `foobarinc-v1.php 文件中的任何内容,因为我将需要它,但如有必要,我愿意为文件添加命名空间。我可以使用 PHP 命名空间来实现我的目的吗?
例如我想做:
主.php:
如何修复上述代码以实现我的目的?
c# - 在 .Net 解决方案中放置代表的位置
我有一个 C# .Net 解决方案集合,最初是作为概念证明,已经发展到近 15 个不同的项目。我目前正在重写整个产品系列,并尝试通过面向未来的组织,尽我所能保持最佳实践。
我已经进行了一些研究,但我仍然不清楚在多项目产品中保留代表的最佳位置,以最大程度地减少未来需要重构的可能性。
我假设普遍的共识是您将它们放置在对用例有意义的任何地方,但总的来说,我认为有一种最佳方法可以在解决方案中构建所有内容,以最大限度地减少问题、促进积极的模块化并简化维护。
在许多情况下,建议他们在使用他们的地方旅行;大概在类文件上方的命名空间中声明,在我的情况下,它将转换为我的公共库,其中包含强制事件的公共接口。我目前在他们自己的文件中有代表,在“代表”命名空间中。我这样做是否存在疏忽,或者我是否使代表的用例过于复杂 - 或者这是否符合当前的使用预期?
我已经完成了典型的搜索,但没有找到任何可信或实质性的东西;然而,这可能是关键字选择不当的结果。
php - 在 PHP 上使用命名空间编译器 PSR-4 找不到类
我对 php (>5.4.*) 和 composer 上的命名空间感到非常困惑
设想
代码 CpPanelBackTest.php
文件 test.php
在 vendor/abkrim/cputils 上文件 composer.json
得到错误->
如果更改 CpPanelBackTest.php 的代码
和文件 test.php
现在工作正常。
我迷路了。我对此一无所知 echo 'Date today is: ' 。CpPanelBackTest::getDate();
c# - 项目代码分离和文件夹命名习惯
在我们的项目中,有一些 C# 类可以做一些事情(引擎代码),还有一些数据传输(DTO)类来参数化引擎功能。项目成员之一喜欢将类分成文件夹:
其他项目成员对此文件夹分离感到困扰,他喜欢在同一个文件夹中,因为这些代码是问题的一部分:
第一种方法将有价值的类与“无价值”的类分开,并加快解决方案资源管理器中的搜索速度——但 DTO 名称不是一个好名字。我很感兴趣你们如何在(更大的)项目中将代码分成文件夹(以及如何命名它们)?
c++ - 查找期间将外部命名空间拖入 std 命名空间
我目前正在重构一些旧代码以满足 C++14 的正确性标准,并且正在发生一些奇怪的事情。
到目前为止,此错误是唯一的,不会出现在其余代码中。我混淆了实际类型,因为它们并不重要。
在重构之前,以下代码运行良好:
我将任何必要的基于所有权的指针更改为各自的智能指针:
这不再有效。Intellisense 报错:
"Error: namespace "N::std" has no member unique_ptr"
在构造函数声明中。(但不是 的声明m_blah
)
....什么?为什么标准库命名空间被拉入 N?!
版本信息:
- VS2015 社区版 (RTM) 版本 14.0.23107.0 D14REL
- 开发人员命令提示符报告 cl 版本:编译器版本 19.00.23026
javascript - IIFE 如何保护命名空间?
我正在阅读一篇关于 IIFE 的文章,但觉得它带来的主要价值是它为变量创建了隐私,因为在下面的代码中,如果将“i”放在 IIFE 中,则无法更改。但是命名空间呢?鉴于它们都在“计数器”范围内包含它们的变量,这两者之间有什么区别?
python-2.7 - 为什么代码中的“失落的天堂”在 py2.7 中运行了好几个月,现在在命名空间中找不到 np.ndarray(),而 [import numpy as np] 被执行了?
2.7.9 和 2.7.11 之间是否有任何命名空间处理更改?
TL;DR:在 Stack Overflow 上提供 450 多个答案后。我确实知道堆栈溢出规则并努力缩小/隔离问题,但由于以下所有原因,实际上不可能发布一个公平的 MCVE。
下面发布的体内诊断证明,np.ndarray 调用没有命名空间问题,直到第一行尝试访问/使用 numpy ( np )符号第 14644 行(原始编号为 14630)
在哪里工作的 numpy 调用突然引发异常:
UnboundLocalError:分配前引用的局部变量“np”
简介:
出于定量建模的目的,相当广泛的python
模块代码正在用于技术分析和预测的分布式处理框架中重新使用。由于一个事实,即量化模型(用于预测)是以数十个 CPU 核心小时的显着成本生成的,因此部署了一些允许有状态模块reload( QuantFX )
-s 的额外措施,以便这些保护已经详细说明的量化模型实例,但允许即时更新、调整和重新测试模块功能。
事实:
import QuantFX
停止工作并在numpy
未修改的调用上引发异常:
- 模块代码使用了大约 12 个月,仅更新 [QUANT-TOOLS],[MODEL] 部分
- 该代码是多方分布式处理的 Python 2.7 部分,因此尝试 MCVE 永远不会反映/复制生态系统行为
问题开始时:
在为主机加载最近的 Anaconda ( miniconda
4.0.0 / 4.0.5 ) 包管理器VM02/wXP
后,也python
被重新装扮成 2.7.11 和一个名为 的模块QuantFX.py
,直到此更新在其他 Anaconda 中运行没有任何问题python 中的 2.2.0(32 位)安装2.7.9
停止工作,出现一个奇怪的异常
什么表明运行状态不佳:
十来个月,一周一周,一切
都很import QuantFX
顺利。对 now 的调用会QuantFX.aMiniRESPONDER()
导致异常/产生 a Traceback
,就好像numpy
根本没有import
-ed (参考第 221 行),但假定它是某个局部变量。
numpy
(虽然在解释器命令行提示符下手动调用相同的函数,
但考虑namespace
到模块(下面的第 221 行)所进入的numpy
位置很顺利import
)。
第 14630 行的上下文Traceback
和详细信息:
第 221 行import numpy as np
+ State-Full 重载的概念:
虽然模块编码可能会引起 PEP* 等人的反对意见,但语法构造函数的决定是为了允许通过/QuantFX
实现上下文完整的操作方式,以及在极简 RAM/CPU 中快速安全的无上下文轻量级操作通过选择/复制/粘贴仅用于诊断或控制 CLI 目的(如or )的单个组件代码来使用远程终端,但不需要整个模块(提供后期导入,包括上述(第 14426 行)对于这种无上下文的作案手法)。import
reload()
aRemoteKEYBOARD()
aMiniRESPONDER()
import
QuantFX
numpy
QuantFX
寻求什么:
上周五刚刚介绍的关于 2.7.9 和 2.7.11 之间变化的任何解释,可能与观察到的np.ndarray()
碰撞有关。
reload( QuantFX )
如果这样的提议在期间保持状态完整并允许上下文完整和无上下文代码库组件使用,那么任何关于替代模块语法构造器布局的建议也具有很高的价值。
更新:
与其可能的外观相比,这篇文章之前进行了适当的审查和调试工作,以添加体内自我诊断,以便隔离问题
体内 numpy-nd.array-symbol-checker
来自@viraptor的体内检查器创意提案
在启动时提供了详细的逐行确认,直到Line 14644
崩溃之前没有 np.ndarray 符号屏蔽aDSegFLOAT = np.ndarray( ... )
:
asp.net - 为什么这个清晰可见的符号无法解析?
根据 Resharper 的说法,我收到 ASP 错误,“解决方案 MembersOrderEntry.sln Project MembersOrderEntry MembersOrderEntry\segovias-abq\Default.aspx:1 无法解析符号 'segovias-abq'”
在同一个 Default.aspx 文件中,有一个类似的错误,“<em>Solution MembersOrderEntry.sln Project MembersOrderEntry MembersOrderEntry\segovias-abq\Default.aspx:1 Cannot resolve symbol '_Default'”
为什么这些符号(“segovias-abq”和“_Default”)无法解析?该项目包含许多名为 Default.aspx 的文件,其下方是 Default.aspx.vb;他们中的大多数都没有错误。但是在让 Resharper “修复”时髦的命名空间(它认为它们是错误的)之后,我得到了其中四个错误。
为什么大部分 Default.aspx 文件能够解析其父文件,而这个不是?正如您在此处看到的,失败的文件夹和其他文件夹之间的关系是相同的(文件夹名称,其下为 Default.aspx,其下为 Default.aspx.vb):
Seashore、SimonLeeman、Stern、Weyand 和许多其他人都可以正常工作。
失败的 Default.aspx 的全部内容是:
...它的 Default.aspx.vb 是:
OTOH,非失败 Default.aspx 之一的全部内容是:
...其 Default.aspx.vb 是:
IOW,除了名称空间之外,它们似乎是相同的。但即使我添加了似乎是预期的内容:
……什么都没改变;我仍然得到,“无法解析符号'segovias-abq' ”
php - 使用 composer/PSR 加载命名空间函数
我知道如何使用 composer 正确加载我的类,以及如何为 PSR-4 命名和组织文件夹/文件/类
但是,我遇到了一个我以前从未遇到过的用例,并且似乎无法在这里或任何地方找到关于(或至少其中一种)正确方法的正确答案
我的作曲家库中有命名空间函数,没有任何类,我想让它们可以访问
我应该如何在磁盘上组织它,以及如何在 composer 中配置/加载它?以一种不会尖叫的方式“我一直在努力,直到出于某种原因做了我想要的事情”
编辑:
我知道我可能会在一个类中使用静态函数,如果我找不到更好的方法,那可能就是我要去的地方,但这真的就像回避这个问题一样。它们是函数,而不是类的静态函数。
关于评论中给出的可能重复:我知道我可以强制要求文件以使该功能可用,问题是我如何以不总是需要文件的方式执行此操作,但仅在用户想要的地方用它。