从理论上讲,源代码不应包含超过0、1和空洞的硬编码值。 在实践中,我发现很难避免所有硬编码价值,而与此同时,交货时间十分紧凑,因此,我最后使用了其中一些价值,并感到有些有罪。
你们如何调和避免硬编码值与紧接交货时间?
从理论上讲,源代码不应包含超过0、1和空洞的硬编码值。 在实践中,我发现很难避免所有硬编码价值,而与此同时,交货时间十分紧凑,因此,我最后使用了其中一些价值,并感到有些有罪。
你们如何调和避免硬编码值与紧接交货时间?
在我看来,问题背后的假设似乎是无效的。
对大多数软件来说,配置文件很难改变这一来源代码。 对于广泛安装的软件来说,这很容易成为100万倍困难的一个因素:在用户设施上,许多文件可以轻而易举地对用户设施进行hang击,而你们对此了解甚少,没有控制。
在该软件中,数字字面与功能或算法字面没有区别:它只是源代码。 任何软件都有责任使这些价值正确。
否则,他们至少可以维持:姓名明确,组织良好。
如果你计划紧凑,那么你可能会被迫达成最后的妥协。
避免难以编码
当然,并非所有价值都有资格被移至集束手。 你们应使用方案拟定语言所提供的建筑,如(客户、论坛等)。
仅仅看到了使用“Constatn Interface”的答案。 充分尊重海报和选民,但不建议这样做。 你们可以更多地了解:
这与规划无关,在大多数情况下,与配置档案一样简单,或可能是储存关键组合项目的数据库表。 我并不认为,你“行事”有硬性编码价值的任何理由,它不应再占用更多的时间,把紧凑的时间线卸到一个组合机制,以作为有效的借口。
硬编码价值观的问题是,有时特定法典依赖这些价值观,这并不令人迷惑。 例如,在java,有可能将所有固定装置移入单独的接口,并将特定固定装置分成内部的子接口。 它非常方便和明显。 而且,通过利用民主选举学会的设施(“有限使用”功能)以及改变或改造这些设施,便容易找到经常使用。
例如:
public interface IConstants {
public interface URL {
String ALL = "/**";
}
public interface REST_URL {
String DEBUG = "/debug";
String SYSTEM = "/system";
String GENERATE = "/generate";
}
}
参照是人类可读的:IConstants.REST_URL.SYSTEM
。
大多数非母企业项目将具有某些核心概念或组合选择,这些概念已经考虑到从档案/数据库中排出选择。 在这些情况下,通常简单地(如工作不到5分钟)扩大这一范围,以支持你们所需要的新的适当机构。
如果你的项目没有,那么要么:
硬编码价值实际上没有任何借口——它只节省几分钟时间,如果你的项目期限用几分钟计算,那么你就会发现比如何规范可图性更大的问题。
诚然,在我目前的霍比项目中,我很难说出许多 st。 简编文件are<>/em>非常容易使用,但(至少是用强力和简单 par子座的Adhura),我只用两手来使用这些文件,因为我有99%相信,我永远不会改变这些档案——即使这一假设证明是假的,也很少能够以合理的努力加以重新评价。 然而,对于具有更大/更重要意义的分析,我从来不会打上<条码>if foo=“硬编码条”条码>,而是将<条码>if foo = cfg.bar(例如,用更有意义的名称表示)。 Cfg 是一个全球单一州(即,我知道......),在启动时将文件编成正本,以后,一些信标价值的变化,你改变了配置文件,而不是来源。
有了动态/反面性的语言,你甚至不需要改变装饰面的那部分,如果你给它增加另一个价值的话,那么它就能够用all在档案中(或为此使用一个散列图)的条目,并且要这样做。
2 suggestions here: First, if you are working on embedded system using language like C. Simply work out a coding convention to use a #define for any string or constant. All the #define should be categorized in a .h file. That should be enough - not too complex but enough for maintainability. You don t need to mangle all the constant between the code line.
第二,如果你在申请时能够接触到行文。 数据库中保持所有不变值是简单不过的。 你需要一个非常简单的界面,以便检索。
有了简单的手法,这两种方法都可以推广,以支持多语言特征。
I was looking at XML-RPC for a project. And correct me if I m wrong, but it seems like XML-RPC has no XML datatype. Are you supposed to pass as a string? or something else? Am I missing something? ...
Does a Polymorphic engine have any other uses besides writing viruses?
I have the following available: last reported lat,lon w/timestamp target lat,lon estimated time to target heading How can I interpolate an estimated position over time? I know that s enough to ...
I am creating a desktop app that will create some reports. I want to export these reports as RSS or ATOM feeds. I can easily create feeds with Rome lib for Java. But I have no idea how to spread them. ...
I am currently using Q-Learning to try to teach a bot how to move in a room filled with walls/obstacles. It must start in any place in the room and get to the goal state(this might be, to the tile ...
If you were planning on building a high-traffic, very secure site what language would you use? For example, if you were planning on say building an authorize.net-scale site, that had to handle tons ...
According to various sources, such as Wikipedia and various .edu websites found by Google, the most common ways for a hash table to resolve collisions are linear or quadratic probing and chaining. ...
Recently, I ve been learning different programming langages, and come across many different names to initalize a function construct. For instance, ruby and python use the def keyword, and php and ...