例如,在Java中,@Override注释不仅提供了覆盖的编译时检查,而且还提供了出色的自我记录代码.
我只是在寻找文件(尽管如果它是一些像pylint这样的检查器的指示器,那就是奖金).我可以在某处添加注释或docstring,但是在Python中指示覆盖的惯用方法是什么?
是值得学习惯例还是可读性和可维护性的祸害?
我正在开发nodejs + Express中的REST API,我一直在README文件中记录我的API,我想知道是否可以自动化它.例如:
app.get('/path/to', dosomething);
app.post('/path/to/:somethingelse', scream);
Run Code Online (Sandbox Code Playgroud)
我想让它自动生成这个
GET: /path/to dosomething
POST: /path/to/:somethingelse scream
Run Code Online (Sandbox Code Playgroud) rest self-documenting-code literate-programming node.js express
我创建了一个小类,允许我使用强类型枚举的枚举器作为标志(组合).我正在使用type_traits进行底层类型检测,因此它应该是稍微类型安全的,并且主要在编译时处理.但是,我想知道它是否真的值得.
我现在可以写一些像
void Foo(Flags<Mode> Value);
Run Code Online (Sandbox Code Playgroud)
并且程序员将看到他只能使用Mode中的枚举器(例如Mode :: Read),并且他也不能将任何其他枚举与Mode结合使用.你觉得它比...更好吗?
void Foo(int Mode);
Run Code Online (Sandbox Code Playgroud)
,我不确定人们是否能欣赏它?
我正从Swift搬到Kotlin,到目前为止一直很喜欢它.但是,我习惯于声明这样的方法(假装引用的方法存在并且工作):
// Swift method declaration
func drawCircle(inRect rect: CGRect, antialiased: Bool) {
super.antialiased = antialiased
super.drawCircle(inRect: rect)
}
Run Code Online (Sandbox Code Playgroud)
并称他们为:
drawCircle(inRect:myRect, antialiased: false)
Run Code Online (Sandbox Code Playgroud)
这是一个精美的自我记录,读起来像英语.但是,在Kotlin中,类似的方法如下:
fun drawCircle(inRect: Rectangle, antialiased: Boolean) {
super.antialiased = antialiased
super.drawCircle(inRect)
}
Run Code Online (Sandbox Code Playgroud)
使用名为的变量已经开始听起来很奇怪inRect.但是当我打电话时它会变得更糟:
drawCircle(myRect, false)
Run Code Online (Sandbox Code Playgroud)
在这里,我们看到了最大的问题:人们可以通过单独阅读这条线来猜测,这myRect是一个将绘制圆的矩形.但是,是什么true?它可能是抗锯齿,是的,但它也可能是不透明地绘制它,还是一些关于是否要绘制它的切换!无论如何,我可以举出更多理由说明为什么Swift和Objective-C程序员喜欢用方法调用他们的标签,但我已经说明了我的观点.
有没有办法在Kotlin中启用方法调用标签?
c++ ×1
conventions ×1
enum-class ×1
enums ×1
express ×1
inheritance ×1
kotlin ×1
node.js ×1
overriding ×1
python ×1
rest ×1
templates ×1