好的,所以我有一个 .NET 控制台应用程序,它的 Main 方法包含在 Program 类中。你知道,通常的:
class Program
{
static void Main(string[] args)
{
// Do something spectactular
}
}
Run Code Online (Sandbox Code Playgroud)
自从我开始如此严格地使用 StyleCop 和 FxCop 以来,我对确保所有内容都正确记录变得有点挑剔。
然后它击中了我。我完全不知道如何正确记录 Program 和 Program.Main。
我想,从长远来看,您可以采用以下方法:
/// <summary>
/// Encapsulates the application's main entry point.
/// </summary>
class Program
{
/// <summary>
/// The application's main entry point.
/// </summary>
static void Main(string[] args)
{
// Do something spectactular
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎严重不足(尽管我的 Main 例程总是委托给其他类来完成这项工作)。
你们是如何记录这些事情的?有推荐或标准吗?
除了特定于语言的结构,对于使用 PHP、javascript、java 和 python 编程的人来说,前 10 名必须做的干净编码是什么?我想让我的代码尽可能干净和可读。例如,将函数体左括号与函数声明放在同一行与新行有什么关系?另外,例如 (x==10) 与 (x == 10) 之间的间距是什么?任何有关干净编码的有用提示将不胜感激!
我正在阅读Google C++ Style Guide以尝试模仿良好的编码实践。当我通读关于如何评论我的代码的部分时,它要求我用license boilerplate开始每个文件。我所能找到的关于这个术语的所有信息都来自Mozilla以及我认为是他们的评论标准。许可证样板注释究竟是什么,它需要采用什么格式?
注意:明确地说,我并不是说 Google C++ 风格指南是遵循良好编码实践的完美指南。我只是用它来获得关于如何改进我的编码风格的新想法。
我正在使用 Asp.net mvc Web 应用程序,但我的朋友说大部分时间使用干净的代码,说童子军规则适用于干净的代码
谁解释一下。最短和最合适的方式
谢谢你
编辑:我收到了关于重构三元操作的答案.虽然我知道下面所有语言都可以实现这一点,但这并不一定是关于风格的原始问题.我编辑了这些片段以反映这一点.
我很好奇,如果它是惯用的或者总是else在使用if/ else在方法中时使用.
例如,在JS中,这在风格上是可接受的(有时是首选的)
function jsFunc(x) {
if (x == 0) {
// do a bunch of stuff here
return answer;
}
// do something else
return differentAnswer;
}
Run Code Online (Sandbox Code Playgroud)
我也在Python中看到了类似的风格:
def py_func(x):
if x == 0:
# do a bunch of stuff here
return answer
# do something here
return differentAnswer
Run Code Online (Sandbox Code Playgroud)
但是从我见过的Ruby,它总是:
def ruby_method(x)
if x == 0
# do a bunch of stuff here
answer
else
# do something else
differentAnswer
end …Run Code Online (Sandbox Code Playgroud) 我最近开始在我的个人项目中学习/使用 Vue.js。然而,他们的默认 ESlint 规则强制要求每个语句结束时没有分号。后来我了解到 airbnb 的 javascript 风格强制使用分号,他们解释了原因:https : //github.com/airbnb/javascript
这需要一些工作。但如果需要,我可以切换到airbnb风格。
我的问题是,继续使用 Vue.js 的默认 ESlint 规则有多糟糕?如果真的很糟糕,Vue.js 不应该更改其默认的 ESlint 规则以强制使用分号吗?
最近,我发现了一段看起来像这样的代码.
switch(type)
{
case TYPE1:
doSomething1(type, arg1);
break;
case TYPE2:
doSomething2(type, arg1, arg2);
break;
}
Run Code Online (Sandbox Code Playgroud)
为什么不直接传递那些枚举(TYPE1,TYPE2)而不是传递类型变量?如下例所示.
switch(type)
{
case TYPE1:
doSomething1(TYPE1, arg1);
break;
case TYPE2:
doSomething2(TYPE2, arg1, arg2);
break;
}
Run Code Online (Sandbox Code Playgroud)
我知道当变量被重用时,这种重复是可以的:
switch(type)
{
case TYPE1:
case TYPE2:
case TYPE3:
someFunction(type, arg1, arg2);
break;
}
但在第一个例子中,它似乎毫无用处.
你觉得怎么样?这种惯例有什么好处吗?
例如
int offset = getOffset();
int count = getCount();
int limit = count + offset;
for (int i; i < limit; i++) {}
Run Code Online (Sandbox Code Playgroud)
更优选
int offset = getOffset();
int count = getCount();
for (int i; i < offset + count; i++) {}
Run Code Online (Sandbox Code Playgroud)
如果Java VM在每次迭代时都进行了添加,那听起来就像是一个很大的开销.但如果编译器足够聪明以限制单次添加,我想保持我的代码简短.
我想为项目设置代码样式,以便项目的所有开发人员以相同的方式格式化代码。整个团队都使用 IntelliJ。当我在文件中添加我的样式时
/myproject/.idea/codeStyleSettings.xml
IDE 创建文件
/myproject/.idea/codeStyles/codeStyleConfig.xml
与内容
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>
Run Code Online (Sandbox Code Playgroud)
默认设置会覆盖我的代码样式设置吗?我应该在我的设置文件中使用相同的组件名称来覆盖默认名称吗?
除此之外,我codeStyle.xml在一些知名java库的根目录下看到一个文件,比如https://github.com/qos-ch/slf4j,是其他IDE的还是对格式有影响在 IntelliJ 中?
顺便说一句,我认为通常代码样式配置即使不是混乱也会令人困惑,还有 IDE 级别的全局设置,我认为/希望在没有特定选项的规则时会应用它,对吧?
应该在将要异步执行的方法名称中添加一个 Async 前缀。与在 MS EF Core 中一样,所有运行 async 的方法都有 async 前缀。但它们也有同步方法,没有同步前缀。
在某些方法设计为并行运行的情况下有什么建议。
寻求建议。
coding-style ×10
c# ×2
c++ ×2
if-statement ×2
asp.net-mvc ×1
boilerplate ×1
c ×1
comments ×1
java ×1
javascript ×1
optimization ×1
ruby ×1