Questions tagged «coding-style»

**不使用!该标签指的是完全有思想的主题,因此不再是主题。**遵循编码风格和约定的问题。

5
什么是“无点”样式(在函数式编程中)?
我最近注意到的一句话是“无点”风格的概念。 首先,有一个问题,还有这个问题。 然后,我发现他们在这里提到“可能值得讨论的另一个主题是作者对点自由样式的厌恶”。 什么是“免积分”风格?有人可以给出一个简洁的解释吗?它与“自动”咖喱有关系吗? 为了了解我的水平-我一直在教自己Scheme,并且编写了一个简单的Scheme解释器...我了解“隐式”的currying是什么,但是我不知道任何Haskell或ML。

11
除了减少混乱之外,还有其他清理Java中未使用的导入的原因吗?
是否有充分的理由避免使用Java中未使用的import语句?据我了解,它们在编译器中,所以大量未使用的导入不会对编译后的代码产生任何影响。只是为了减少混乱并避免命名冲突吗? (我问是因为Eclipse发出了有关未使用导入的警告,这在我开发代码时有点烦人,因为在确定完成类设计之前,我不想删除导入。)

8
缩进#define
我知道#defines等通常从不缩进。为什么? 目前,我正在使用某些代码,其中包含#defines,#ifdefs,#elses,#endifs等的可怕混合。所有这些通常都与普通C代码混合在一起。#defines 的非缩进使得它们难以阅读。缩进代码与非缩进#defines的混合是一场噩梦。 不缩进有什么好处#define?如果我缩进他们,这会让我成为坏人吗?这不是更好吗? #ifdef SDCC #if DEBUGGING == 1 #if defined (pic18f2480) #define FLASH_MEMORY_END 0x3DC0 #elif defined (pic18f2580) #define FLASH_MEMORY_END 0x7DC0 #else #error "Can't set up flash memory end!" #endif #else #if defined (pic18f2480) #define FLASH_MEMORY_END 0x4000 #elif defined (pic18f2580) #define FLASH_MEMORY_END 0x8000 #else #error "Can't set up flash …

8
为什么一个功能应该只有一个出口点?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我一直都听说过单个出口点函数是一种不好的编码方式,因为这样会降低可读性和效率。我从未听说过有人在争论另一面。 我认为这与CS有关,但是这个问题在cstheory stackexchange上被否决了。

13
创建随机数矩阵的简单方法
我正在尝试创建一个随机数矩阵,但是我的解决方案太长且看起来很丑 random_matrix = [[random.random() for e in range(2)] for e in range(3)] 看起来不错,但是在我的实现中 weights_h = [[random.random() for e in range(len(inputs[0]))] for e in range(hiden_neurons)] 这是非常不可读的,并且不能放在一行上。

13
XML元素是否有标准的命名约定?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 是否存在XML文档的事实上的标准或其他标准?例如,哪种是编写标签的“最佳”方法? <MyTag /> <myTag /> <mytag /> <my-tag /> <my_tag /> 同样,如果我有一个更好的属性的枚举值 <myTag attribute="value one"/> <myTag attribute="ValueOne"/> <myTag attribute="value-one"/>

30
使用仅与大小写不同的变量名是否不道德?
例如,使用这段代码: var person = new Person(); 或适合您的Pythonista用户: person = Person() 经常有人告诉我这有多糟,但是还没有看到这两行代码不道德的例子。在我看来,人就是人,而尝试给它起另一个名字是浪费时间。我想在语法突出显示之前的日子里,这会是一件大事。但是如今,很容易分辨出类型名和变量名。哎呀,这很容易看出SO的区别。 还是我想念的东西?如果是这样,如果您可以提供一个导致问题的代码示例,将很有帮助。

6
我可以对代码执行哪种模式以使其更容易转换为另一种编程语言?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 我正着手做一个副项目,目标是将代码从一种编程语言转换为另一种编程语言。我开始使用的语言是PHP和Python(Python到PHP应该更容易入手),但理想情况下,我可以(相对)轻松地添加其他语言。该计划是: 这是针对Web开发的。原始代码和目标代码将位于框架的顶部(我也将不得不编写这些框架)。这些框架将包含MVC设计模式并遵循严格的编码约定。这应该使翻译更加容易。 我还在研究IOC和依赖项注入,因为它们可能使翻译过程更容易且更不易出错。 我将使用Python的解析器模块,该模块可让我摆弄抽象语法树。显然,我可以用PHP获得的最接近的是token_get_all(),这是一个开始。 从那时起,我可以构建AST,符号表和控制流程。 然后,我相信我可以开始输出代码了。我不需要完美的翻译。我仍然需要查看生成的代码并解决问题。理想情况下,翻译人员应标记有问题的翻译。 在您问“这到底是什么意思?”之前 答案是……这将是一次有趣的学习经历。如果您对如何减少这种麻烦有任何见解,请告诉我。 编辑: 我更想知道我可以对代码强制执行哪种类型的模式,而不是如何进行翻译,从而使代码的翻译(即:IoC,SOA?)更容易。

9
将方法声明为静态有什么好处
我最近一直在浏览Eclipse中的警告并遇到以下警告: 如果该方法可以声明为静态方法,则会向编译器发出警告。 [edit] Eclipse帮助中的确切引号,重点是私有和最终的: 启用后,编译器将为私有或最终方法(仅引用静态成员)发出错误或警告。 是的,我知道我可以将其关闭,但是我想知道打开它的原因吗? 为什么将每个方法都声明为静态是一件好事? 这会给性能带来任何好处吗?(在移动域中) 指出一种方法是静态的,我想表明您不使用任何实例变量,因此可以移至utils样式类吗? 在一天结束时,我应该只关闭“忽略”功能还是应该修复它给我的100多个警告? 您是否认为这只是多余的关键字,会使代码变得肮脏,因为编译器还是会内联这些方法?(有点像您没有声明每个变量都可以终止但可以声明)。

30
签入“注释过的”代码[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 好的,这是导致我目前工作出现摩擦的原因,我真的没想到会发生。内部软件开发的组织是这里的一个新概念,我已经草拟了一些编码准则的初稿。 我建议永远不要将“注释掉”的代码检入到存储库中。我之所以这样说是因为该存储库保留了文件的完整历史记录。如果要删除功能代码,则将其全部删除。存储库保留您的更改,因此很容易看到更改。 这引起了一些摩擦,因为另一位开发人员认为采用此方法过于严格。该开发人员希望能够注释掉他正在处理但不完整的一些代码。这样,该代码将永远不会被签入,然后再不保存在任何地方。我们将使用TFS,因此我建议搁置更改将是最正确的解决方案。但是,由于他希望能够检入可能部署或可能未部署的部分更改,因此不被接受。 我们希望最终达到一个可以充分利用持续集成优势并自动部署到开发Web服务器的地步。当前没有Web服务器或数据库服务器的开发版本,但是所有版本都将很快更改。 无论如何,您有什么想法?您是否认为“注释掉”的代码在存储库中有用吗? 我非常有兴趣听取其他人对此主题的意见。 编辑:为清楚起见,我们不使用私有分支。如果我们这样做了,那么我会说您想用您的私有分支做什么,但是永远不要将注释掉的代码与主干或任何共享分支合并。 编辑:没有正当理由,我们不使用私人或按用户分支。这不是我不同意的概念。我们只是还没有那样设置。也许那是最终的中间立场。目前,我们使用TFS搁板。

10
可选回调的JavaScript样式
我有一些函数,有时(并非总是)会收到回调并运行它。检查回调是否已定义/函数是一种好的样式还是有更好的方法? 例: function save (callback){ .....do stuff...... if(typeof callback !== 'undefined'){ callback(); }; };

8
斜杠前是否有空格?
我经常在XML和HTML标记的斜杠前看到一个空格。XHTML换行符可能是典型的示例: <br /> 代替: <br/> 这个空间似乎是多余的。实际上,我认为这是多余的。 写这个空间的原因是什么? 我读过,该空间解决了一些“向后兼容性问题”。哪些向后兼容性问题?这些问题是否仍然相关,还是为了例如IE3兼容性而增加额外的空间?是否存在一些对此有明确答案的规范? 如果不是向后兼容,那么这是可读性问题吗?与“大张开大括号”辩论相似吗? void it_goes_up_here() { int no_you_fool_it_goes_down_there() { 我当然可以尊重不同的文体观点,所以很高兴得知编写空间只是一个品味问题。
93 html  xml  xhtml  coding-style 

3
隐式转换与类型类
在Scala中,我们可以至少使用两种方法来改造现有或新类型。假设我们要表示可以使用来量化某些内容Int。我们可以定义以下特征。 隐式转换 trait Quantifiable{ def quantify: Int } 然后我们可以使用隐式转换来量化例如字符串和列表。 implicit def string2quant(s: String) = new Quantifiable{ def quantify = s.size } implicit def list2quantifiable[A](l: List[A]) = new Quantifiable{ val quantify = l.size } 导入这些之后,我们可以quantify在字符串和列表上调用该方法。请注意,可量化列表存储其长度,因此避免了后续调用时列表的昂贵遍历quantify。 类型类别 另一种方法是定义一个“见证” Quantified[A],声明A可以对某种类型进行量化。 trait Quantified[A] { def quantify(a: A): Int } 然后,我们提供这种类型的类的实例String和List地方。 implicit val stringQuantifiable = …

5
在C ++中使用assert()是不好的做法吗?
我倾向于在我的C ++代码中添加很多断言,以使调试更加容易,而又不影响发行版的性能。现在,assert是一个纯C语言宏,它没有考虑C ++机制。 另一方面std::logic_error,C ++定义了,它是在程序逻辑中有错误(因此而得名)的情况下抛出的。抛出一个实例可能是的完美,更C ++的替代方法assert。 问题是,assert与abort两者立即终止程序,而无需调用析构函数,因此跳过清理,而抛出异常手动增加了不必要的运行时成本。解决该问题的一种方法是创建一个自己的断言宏SAFE_ASSERT,该宏的工作原理与C语言的对等宏相同,但会在失败时引发异常。 对于这个问题,我可以想到三点意见: 坚持C的主张。由于该程序会立即终止,因此是否正确展开更改并不重要。同样,#define在C ++中使用s同样不好。 引发异常并将其捕获到main()中。允许代码在程序的任何状态下跳过析构函数都是一种不好的做法,必须不惜一切代价避免这样做,对终止()的调用也应避免。如果引发异常,则必须将其捕获。 引发异常并使其终止程序。 终止程序的异常是可以的,并且由于NDEBUG,这在发行版本中永远不会发生。捕获是不必要的,并且可以向公开内部代码的实现细节main()。 这个问题有明确的答案吗?有专业参考吗? 编辑:跳过析构函数当然不是不确定的行为。

10
最佳做法:在类定义中对公共/受保护/私有的排序?
我正在从头开始一个新项目,希望它是干净的/具有良好的编码标准。这里经验丰富的开发人员喜欢按什么顺序将内容布置在一个类中? A:1)公共方法2)私有方法3)公共变量4)私有变量 B:1)公共变量2)私有变量3)公共方法4)私有方法 C:1)公共变量2)公共方法3)私有方法4)私有变量 我通常喜欢将公共静态变量放在顶部,但是然后将公共静态方法列在构造函数之前,还是应该始终将构造函数列在最前面?诸如此类的事情... 我知道这很严格,但我只是想知道:什么是最佳做法? PS:不,我不使用Cc#。我知道。我很傻

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.