Questions tagged «programming-practices»

编程实践是软件开发中常用或不常用的实践。这些可以包括敏捷开发,看板,编码快捷方式等。

6
用字符串字面量来初始化char []是不好的做法吗?
我在CodeGuru上读了一个标题为“ strlen vs sizeof”的线程,其中一个答复指出“ char用字符串文字初始化数组仍然是[sic]不好的做法”。 这是真的吗?还是他的观点(尽管是“精英成员”)? 这是原始问题: #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } 对。大小应为长度加1是? 这是输出 the size of september is 8 and the length is 9 大小一定是10。就像在计算strcpy改变字符串长度之前计算它的sizeof字符串一样。 我的语法有问题吗? …

10
在没有要求的情况下编写软件是应该具备的技能还是应该避免的情况?
我发现一些软件开发人员非常擅长此事,并且经常以其提供具有抽象要求的有效概念的能力而倍受赞誉。坦白说,这让我发疯,而且我不喜欢随便“弥补”。我曾经以为这是有问题的,但是我已经开始感觉到了转变,而且我想知道在很少给与指导的情况下是否需要调整我的思想(和编程)过程。我应该开始学习这种技能吗?还是坚持将需求的收集和业务规则放在首位的想法?

12
哪些技术有助于保留编程知识?[关闭]
您还记得编程相关的东西吗?您是否有几年前遇到过现在您遇到的错误的感觉,并且可以发誓知道当时的原因,但现在却已经忘记了? 您是否曾经使用过xsl的字符串解析功能,但是现在您已经不记得确切的xsl字符串功能了,您必须从头开始?或者,也许您忘记了Apache Commons的某些功能,例如您过去肯定使用过的“按谓词过滤集合”。 你是怎么做到的?我曾尝试过开设博客,但是在开发应用程序时,我从来没有时间更新博客或撰写自己的经历。同样,使用Wiki是一件好事,但是后来我发现很难保持它们之间的清晰分离,因为很多时候我都需要更改博客文章以添加有关该主题的新信息。这使我认为我实际上应该将该主题放在Wiki中而不是博客中。 您是否有任何系统可以帮助您记住编程经验?你的设置是什么?

17
将返回的变量命名为“结果”是一种好习惯吗?[关闭]
调用方法返回的变量名是一个好习惯result吗? 例如: public Zorglub calculate() { Zorglub result = [...] [...] return result; } 还是应该按类型命名? public Zorglub calculate() { Zorglub zorglub = [...] [...] return zorglub; } 我曾经在野外看到过这两种情况,如果我需要选择一种原因,是什么原因会使我偏爱前者或后者(或任何更好的名字)? 我主要是在考虑Java。

1
程序员为什么要使用Acme作为包,名称空间或目录名称
这可能不是愚蠢的问题,但我真的很想知道困扰我一段时间的事情的答案。 我经常看到编程示例/约定,程序员在其中创建了一个目录,acme用于放置内容。 什么Acme意思 为什么选择Acme而不选择Emca或其他? Acme是否像用于将其他OOP类分组的通用文件夹名称? 根据编程约定,该术语从何而来。据我所知,它与程序员的用户界面无关http://plan9.bell-labs.com/sys/doc/acme.html


11
关于无符号整数的最佳实践是什么?
我到处都使用unsigned int,但不确定是否应该这样做。可以是从数据库主键ID列到计数器等。如果数字永远不能为负,那么我将始终使用无符号整数。 但是我从其他人的代码中注意到,似乎没有其他人可以这样做。我忽略了一些关键的事情吗? 编辑:由于这个问题,我也注意到在C语言中,返回错误的负值是司空见惯的,而不是像C ++中那样引发异常。


10
可以接受依赖于唯一的随机整数吗?
我一直在执行网络协议,并且我要求数据包具有唯一的标识符。到目前为止,我只是生成随机的32位整数,并假设从天文学角度来看,在程序/连接的生命周期内不会发生冲突是不太可能的。这是生产代码中通常被认为可以接受的做法,还是应该设计一种更复杂的系统来防止冲突?

5
如何避免典型的“动态语言错误”?
我最近在JavaScript中投入了几个小时,因为我想从庞大的用户群中受益。这样做时,我注意到大多数人都将其归因于动态语言。您可以使事情真正快速地工作,但是一旦代码达到一定的大小,通常会浪费大量时间进行类型,拼写和重构错误。错误通常会使我免于编译器的困扰。当我在另一个模块中输入错字时,不必让我寻找逻辑错误。 考虑到以下令人难以置信的JavaScript和其他动态类型语言使我相信我的方法有问题。还是这仅仅是您必须支付的价格? 简而言之: 您如何使用〜2000 LOC处理JavaScript(或其他动态语言)项目? 有没有工具可以防止我犯这些错误?我已经尝试了Facebook和JSHint的流程,这对您有所帮助,但请不要输入错字。


16
是否有具体原因不大量使用库和代码片段?[关闭]
总的来说,我从事编程工作已有大约8年的时间,在我看来,我越来越依赖开放源代码库和代码片段(该死的GitHub!)来“完成工作”。我知道我可以及时编写自己的实现,但我希望专注于总体设计。 这是正常情况(非公司环境)吗?如果我的“编程”仅是将不同的库粘合在一起,那会出什么问题? 我知道“不要重新发明轮子”,但是当您不再发明一个轮子时会发生什么呢?

30
您应该在学校学过的东西,但当时没有注意[关闭]
这个问题使我认为还有一个更好的问题要问。 您在学校学到了什么,您当时并不在意,但是后来发现有用,或者您因为在学校学习而不得不在工作场所重新学习,但没有保留信息,而是需要它?(我的意思是与软件相关的工作。) 我认为这可能会帮助大学生确定在学校期间应该真正注意的一些内容。

9
具有自定义属性的JS布尔运算是否不好?
在JS中,您可以返回具有自定义属性的布尔值。例如。当Modernizr测试视频支持时,它返回true,false但是返回的布尔值(布尔是JS中的第一类对象)具有指定支持哪种格式的属性。起初它使我感到有些惊讶,但后来我开始喜欢这个主意,并开始怀疑为什么它似乎很少使用? 它看起来像是一种优雅的方式来处理所有这些情况,在这些情况下,您基本上想知道某件事是对还是错,但是您可能对无需定义自定义返回对象或不准备使用回调函数就可以定义的一些其他信息感兴趣。接受更多参数。这样,您可以保留非常通用的功能签名,而不会影响返回更复杂数据的能力。 我可以想象有3种反对的说法: 当最好使任何界面清晰明了而不棘手时,这是不常见/意外的。 这可能是一个稻草人的论点,但由于它有点极端,我可以想象它在某些JS优化器,uglifier,VM中或在稍作清理语言规范更改后悄然适得其反。 有更好的方法-简洁,清晰和通用-完全相同。 所以我的问题是,有什么充分的理由要避免将布尔值与其他属性一起使用?他们是把戏还是款待? 绘制扭曲警告。 以上是最初的问题。正如Matthew Crumley和senevoldsen都指出,这是基于错误的(虚假的?)前提。按照优良的JS传统,Modernizr所做的只是一种语言技巧而又是一种肮脏的手段。归结为具有原始bool的JS,如果将其设置为false,即使在尝试添加道具后(它会默默失败),布尔对象仍将为false;而布尔对象可以具有自定义道具,但成为对象始终是真实的。Modernizr返回布尔布尔值false或真实布尔值对象。 我最初的问题是假设技巧不一样,因此最流行的答案涉及(完全有效的)编码标准方面。但是,我发现揭穿整个窍门的答案最有帮助(以及反对使用该方法的最终论点),因此我接受其中一个。感谢所有参与者!

8
私有变量与财产?
在大多数情况下,在类内部为变量设置值时,我们会看到两种选择: private string myValue; public string MyValue { get { return myValue; } set { myValue = value; } } 是否有一个约定可以确定如何为类内部的变量赋值?例如,如果我在同一个类中有一个方法,我应该使用属性还是使用私有变量来分配它。我已经看过这两种方法,所以我想知道这是一个选择还是性能是一个因素(可能很小)。

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.