在Python中,您可能有一个函数定义:
def info(object, spacing=10, collapse=1)
Run Code Online (Sandbox Code Playgroud)
可以通过以下任何一种方式调用:
info(odbchelper)
info(odbchelper, 12)
info(odbchelper, collapse=0)
info(spacing=15, object=odbchelper)
Run Code Online (Sandbox Code Playgroud)
感谢Python允许任意顺序参数,只要它们被命名.
我们遇到的问题是我们的一些较大的功能增长,人们可能会之间添加参数spacing和collapse,这意味着错误的值可以将未命名的参数.此外,有时候我们并不总是清楚需要注意什么.我们正在采用一种方法强迫人们命名某些参数 - 不仅仅是编码标准,而且理想情况下是标志或pydev插件?
所以在上面的4个例子中,只有最后一个会通过检查,因为所有参数都被命名.
赔率是我们只会为某些功能打开它,但任何关于如何实现这一点的建议 - 或者如果它甚至可能会被赞赏.
我最近在Eclipse中查看了我的警告并遇到了这个问题:

如果方法可以声明为static,它将给出编译器警告.
[edit] Eclipse帮助中的确切引用,对私有和最终的压力:
启用后,编译器将对private或final方法发出错误或警告,并且仅引用静态成员.
是的我知道我可以关掉它,但我想知道打开它的原因?
为什么将每个方法声明为静态是一件好事?
这会带来任何性能优势吗?(在移动领域)
指出一个方法为静态,我想是显示你不使用任何实例变量因此可以移动到utils样式类?
在一天结束时,我应该关闭它"忽略"或者我应该修复它给我的100多个警告吗?
你认为这只是污染代码的额外关键字,因为编译器无论如何只会内联这些方法吗?(有点像你没有声明每个变量你可以最终但你可以).
在我的公司,我们有两个不同的java vs sql样式指南.在java中我有一个名为的字段historyOfPresentIllness,当我编写sql时,我想命名它history_of_present_illness.当我突出显示短语时,是否有键盘快捷键从一个切换到另一个?或者也许是一个可以做到这一点的插件?
当我问,我也不妨问,如果有办法把historyOfPresentIllness到history-of-present-illness.那是从java到clojure风格.
XML文档是否有任何标准,事实上或其他标准?例如哪个是编写标签的"最佳"方式?
<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />
Run Code Online (Sandbox Code Playgroud)
同样,如果我有一个更好的属性的枚举值
<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>
Run Code Online (Sandbox Code Playgroud) 在Scala中,我们可以使用至少两种方法来改进现有或新类型.假设我们想要表达某些东西可以使用a来量化Int.我们可以定义以下特征.
trait Quantifiable{ def quantify: Int }
Run Code Online (Sandbox Code Playgroud)
然后我们可以使用隐式转换来量化例如字符串和列表.
implicit def string2quant(s: String) = new Quantifiable{
def quantify = s.size
}
implicit def list2quantifiable[A](l: List[A]) = new Quantifiable{
val quantify = l.size
}
Run Code Online (Sandbox Code Playgroud)
导入这些后,我们可以quantify在字符串和列表上调用该方法.请注意,可量化列表存储其长度,因此它可以避免在后续调用时对列表进行昂贵的遍历quantify.
另一种方法是定义一个"证据" Quantified[A],表明某种类型A可以量化.
trait Quantified[A] { def quantify(a: A): Int }
Run Code Online (Sandbox Code Playgroud)
然后,我们提供这种类型的类的实例为String和List地方.
implicit val stringQuantifiable = new Quantified[String] {
def quantify(s: String) = s.size
}
Run Code Online (Sandbox Code Playgroud)
如果我们编写一个需要量化其参数的方法,我们写道:
def sumQuantities[A](as: List[A])(implicit ev: Quantified[A]) =
as.map(ev.quantify).sum …Run Code Online (Sandbox Code Playgroud) 在许多程序中,a #define用作与常量相同的目的.例如.
#define FIELD_WIDTH 10
const int fieldWidth = 10;
Run Code Online (Sandbox Code Playgroud)
我通常认为第一种形式优先于另一种,依靠预处理器来处理基本上是应用程序的决定.这个传统有原因吗?
我一直听说单个退出点功能是一种糟糕的代码方式,因为你失去了可读性和效率.我从来没有听到任何人争辩对方.
我认为这与CS有关,但这个问题在cstheory stackexchange中被击落.
有一条规则说:
表示常量(最终变量)的名称必须全部使用下划线来分隔单词(取自http://geosoft.no/development/javastyle.html)
这适用于原始类型,如int或字符串:
private static final int MAX_COUNT = 10;
Run Code Online (Sandbox Code Playgroud)
但是什么是非原始类型?在大多数情况下,我见过以下内容:
private static final Logger log = Logger.getLogger(MyClass.class);
Run Code Online (Sandbox Code Playgroud)
或者在单例中,实例变量不是大写的.
问题是声明这些类型的变量(如日志和实例)的正确方法是什么?
我最近阅读了雅虎宣言加速你的网站的最佳实践.他们建议我们尽可能将JavaScript包含在HTML代码的底部.
但究竟何时何地?
我们应该在收盘前</html>还是之后放?最重要的是,我们什么时候应该把它放在这个<head>部分?
我是一个业余爱好者程序员(开始使用VBA使excel更快)并且一直在使用VB.NET/C#.NET并且正在尝试学习ADO.NET.
编程总是让我感到沮丧的是"好"的样子?我不是专业人士所以没有什么可比的.是什么让一个更好的程序员?是吗:
换句话说,如果我要查看专业程序员的代码,我会注意到他们的代码相对于我的第一件事情是什么?例如,我读过Wrox出版社的"Professional ASP.NET"等书.该书中的代码示例是"世界级"吗?那是巅峰吗?任何一位高级程序员都会看看那段代码并认为它是好代码吗?
coding-style ×10
java ×3
optimization ×2
c ×1
function ×1
javascript ×1
performance ×1
python ×1
scala ×1
static ×1
xml ×1