问题标签 [prefix]
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.
database-design - 数据库列类型前缀
我已经用数据库开发解决方案超过 11 年了,似乎我已经“开发”了一个关于命名我的表中的列的相当有争议的观点:我总是给它们一个 3 或 4 个字符类型的前缀,即 intGroupID, nvcTitle、dtmCreated、bitPlayerHater 等。我曾与其他几个完全鄙视老式前缀约定的开发人员一起工作。
(是的,我知道,我没有在这里发明任何东西,我只是拒绝放弃它:)
我的主要理由是在我的开发人员尝试理解数据结构时向他们提供尽可能多的信息。立即了解列的类型可以让您(或至少我)更好地了解您正在处理的内容。与使用 C# 或 VB.NET 相比,当您编写查询时,通常不会从 IDE 获得相同的智能感知支持。
到目前为止,没有人能够提出可以改变我对这个特定主题的想法的杀手锏。我还有其他一些同样有争议的命名约定,可以提高清晰度,但列前缀似乎惹恼了更多人。
为什么为数据库列添加前缀被认为是一种不好的做法?
architecture - 在命名空间中分组与为类添加前缀
想象这样一种情况,您有一个需要从不同来源导入数据的应用程序。对于这些来源中的每一个都存在一个单独的模型(通常与其他来源无关)。
所以假设我有我的软件组件 X,它负责所有的导入,命名空间相应地是 X。在 X 中,我有所有不同的解析器和导入器,所以可能一个用于 txt 文件,另一个用于 xls 文件等。
你更喜欢哪种风格:
对比
还是我应该将相应源的模型(2-4 个实体)放入子命名空间?
我不想用所有那些不相关的类将单个命名空间弄乱,但是我也不想遇到诸如弄清楚我的代码正在引用哪个解析器之类的问题(必须查看 usings)。
你有什么想法
某种双倍的工作。
您遵守哪些命名约定?
eclipse - 成员变量前缀错误地添加到方法名称
我正在使用 Eclipse 编写一些 Java 代码,并且我遵循的命名约定使用“m”作为类的任何成员变量的前缀。写完成员变量后,我喜欢转到 Source -> Generate Getters and Setters。这会生成我需要的方法。但是,方法和参数名称也都包含这个'm'前缀。我希望 Eclipse 在命名我的方法及其参数时忽略前缀。我怎样才能做到这一点?
更新:我已经在下面尝试了 Rich 的建议,但没有成功。目前该选项已设置,我已在字段部分输入“m”。但是 Eclipse 似乎没有考虑到这一点。单击同一窗口上的帮助图标会显示一条通知,说明在使用“代码辅助”和“重构”时将考虑到这一点。“生成 getter/setter”是否在代码辅助下?
c++ - i++ 比 ++i 效率低,如何显示?
我试图通过示例说明前缀增量比后缀增量更有效。
理论上这是有道理的:i++ 需要能够返回未递增的原始值并因此存储它,而 ++i 可以返回递增的值而不存储先前的值。
但是在实践中是否有一个很好的例子来证明这一点?
我尝试了以下代码:
我使用 gcc 4.4.0 编译它,如下所示:
我再次这样做了,后缀增量更改为前缀增量:
结果在两种情况下都是相同的汇编代码。
这有些出乎意料。似乎通过关闭优化(使用-O0),我应该看到展示概念的不同之处。我错过了什么?有更好的例子来说明这一点吗?
php - PHP - extract() 类型
PHP 的extract()
功能可以是几个之一extract_types
。extr_prefix_same
但是和有什么区别extr_prefix_if_exists
?该手册听起来像是在任何一种情况下,如果变量名称已经存在,则新变量将作为前缀。
谢谢!
xml - 具有多个具有不同前缀的命名空间的 XSL 元素
我想在我的 XSL 1.0 中创建一个带有一些命名空间的元素就像这样:
由于某种原因,我不能使用带有<xsl:namespace>
扩展名的 XSL 2.0,在 XSL 1.0 中为每个元素声明了一个允许的命名空间,我该怎么办?
问候,
bash - bash:如何仅更改文件列表的基本名称
可能重复:
makefile:如何为基本名称添加前缀?
我有很多文件(我从中获得find bla -name "*.so"
),例如:
/bla/a1.so
/bla/a2.so
/bla/blo/a3.so
/bla/blo/a4.so
/bla/blo/bli/a5.so
我想将它们重命名为:
/bla/liba1.so
/bla/liba2.so
/bla/blo/liba3.so
/bla/blo/liba4.so
/bla/blo/bli/liba5.so
...即将前缀“lib”添加到基本名称
关于如何在 bash 中做到这一点的任何想法?
makefile - makefile:如何为基本名称添加前缀?
我有一个这样的文件路径列表:
我需要在基本名称中添加前缀才能获得:
任何的想法?
c# - 用于支持前缀搜索的排序文本的节省空间的内存结构
我有一个问题:我需要基于文件路径前缀的文件系统数据的节省空间的查找。换句话说,排序文本的前缀搜索。你说用特里,我也这么想。麻烦的是,尝试不够节省空间,并非没有其他技巧。
我有相当多的数据:
- 磁盘上的纯文本 Unix 格式列表中大约 450M
- 约800万行
- gzip 默认压缩到 31M
- bzip2 默认压缩到 21M
我不想在内存中接近 450M 的地方吃东西。在这一点上,我很乐意使用大约 100M 的速度,因为前缀形式有很多冗余。
我正在使用 C# 来完成这项工作,并且 trie 的直接实现仍然需要文件中的每一行都有一个叶节点。假设每个叶节点都需要对最终文本块的某种引用(32 位,例如字符串数据数组的索引以最小化字符串重复),并且 CLR 对象开销为 8 个字节(使用 windbg / SOS 验证) ,我将在结构开销上花费 >96,000,000 字节,而根本没有文本存储。
让我们看一下数据的一些统计属性。当塞进一个特里时:
- 大约 110 万个独特的文本“块”
- 文本文件中磁盘上大约 16M 的唯一块总数
- 平均块长度为 5.5 个字符,最大 136
- 如果不考虑重复,大约有 5200 万个字符块
- 内部 trie 节点平均约 6.5 个子节点,最多 44 个
- 大约 180 万个内部节点。
叶创建的超额率约为 15%,超额内部节点创建率为 22% - 超额创建是指在树构造期间创建的叶和内部节点,但不是在最终树中创建的,占每种类型的最终节点数的比例.
这是来自 SOS 的堆分析,指示使用最多内存的位置:
Dictionary<string,int>
用于将字符串块映射到索引到 a中List<string>
,并且可以在构建 trie 后丢弃,尽管 GC 似乎没有删除它(在此转储之前完成了几个显式收集) -!gcroot
在 SOS 中并不表示任何根,但我预计以后的 GC 会释放它。
MiniList<T>
是List<T>
使用精确尺寸(即线性增长、O(n^2)
加法性能)T[]
来避免空间浪费的替代品;它是一个值类型,用于InteriorNode
跟踪孩子。这T[]
被添加到System.Object[]
堆中。
所以,如果我把“有趣”的项目(用 标记*
)加起来,我会得到大约 270M,这比磁盘上的原始文本要好,但仍然不够接近我的目标。我认为 .NET 对象开销太大,并创建了一个新的“slim”trie,仅使用值类型数组来存储数据:
这种结构已经将数据量降低到了 139M,对于只读操作来说仍然是一种高效的可遍历 trie。而且因为它非常简单,我可以轻松地将它保存到磁盘并恢复它,以避免每次都重新创建 trie 的成本。
那么,对于前缀搜索比 trie 更有效的结构有什么建议吗?我应该考虑的替代方法?
mingw - 在 MinGW/MSYS 上进行安装不喜欢 --prefix=/mingw
我已经开始使用 MinGW/MSYS 来尝试在 Windows 上使用一些 Linux 库。使用
到目前为止运行良好,但我有两个不同的库在 'make install' 和 'ln -s' 调用上失败。它是这样的:
首先,makefile 的用意是什么?/mingw/lib/libvamp-sdk.so.2.0.0 存在,因此将上面的“ln -s”调用替换为
会起作用,但我不确定这是否是作者的意图。
更重要的是,为什么会发生这种情况(我猜它在本机 Linux 系统上运行良好)以及解决它的最简单方法是什么?我可以手动编辑makefile,但我想知道是否有更好的解决方案。
非常感谢您的意见!