标签: coding-style

独立的Java代码格式化程序/美化/漂亮的打印机?

我有兴趣了解Java的高质量,独立源代码格式化程序的可用选择.

该格式必须独立的,也就是说,它必须支持"批量"模式从任何特定的开发环境脱钩.理想情况下,它也应该独立于任何特定的操作系统.因此,IDE du jour的内置格式化程序在这里没什么意义(除非该IDE支持批处理模式格式化程序调用,可能来自命令行).用封闭源C/C++编写的格式化程序只能在Windows上运行,这并不理想,但有点有趣.

需要说明的是,"格式化程序"(或"美化")与"样式检查程序"不同.格式化程序接受源代码作为输入,应用样式规则,并生成在语义上等效于原始源代码的样式化源代码.语法修改仅限于修改代码布局,如更改空格或组织import语句.如果有的话,很少进行其他重构.样式检查器还应用样式规则,但它只报告规则违规,而不会将修改后的源代码作为输出.所以图片看起来像这样:

Formatter(生成符合样式规则的修改后的源代码)

阅读源代码→应用样式规则→编写样式源代码

样式检查器(不生成修改后的源代码)

阅读源代码→应用样式规则→写入规则违规

进一步澄清

解决方案必须高度可配置.我希望能够指定自己的风格,而不是简单地从预设列表中选择.

另外,我不是在寻找一种用Java编写的通用漂亮打印机,它可以打印很多东西.我想设计Java代码的样式.

也不一定许多语言的统一格式化程序感兴趣.我认为对于支持除Java以外的语言的解决方案可能会很好,但这不是必需的.

此外,只有执行的代码高亮工具正确的 .

我对网络服务也不感兴趣.我想要一个可以在本地运行的工具.

最后,解决方案不必限于开源,公共领域,共享软件,自由软件,商业或其他任何东西.所有形式的许可均可接受.

java coding-style code-formatting

81
推荐指数
3
解决办法
6万
查看次数

Scala中两种卷曲方式; 每个用例是什么用的?

我正在讨论Scala样式指南中的多个参数列表.我已经认识到,有两种方式讨好,我想知道用例是什么:

def add(a:Int)(b:Int) = {a + b}
// Works
add(5)(6)
// Doesn't compile
val f = add(5)
// Works
val f = add(5)_
f(10) // yields 15

def add2(a:Int) = { b:Int => a + b }
// Works
add2(5)(6)
// Also works
val f = add2(5)
f(10) // Yields 15
// Doesn't compile
val f = add2(5)_
Run Code Online (Sandbox Code Playgroud)

风格指南错误地暗示这些是相同的,当它们显然不是时.该指南试图说明创建的curried函数,并且,虽然第二种形式不是"by-the-book"currying,但它仍然非常类似于第一种形式(尽管可以说更容易使用,因为你不需要的_)

从那些使用这些形式的人那里,对于何时使用一种形式而不是另一种形式的共识是什么?

coding-style scala currying

81
推荐指数
3
解决办法
1万
查看次数

在C/C++中声明指针变量的正确方法

我注意到有些人使用以下表示法来声明指针变量.

(a) char* p;
Run Code Online (Sandbox Code Playgroud)

代替

(b) char *p;
Run Code Online (Sandbox Code Playgroud)

我用(b).符号(a)背后的理性是什么?符号(b)对我来说更有意义,因为字符指针本身不是一种类型.相反,类型是字符,变量可以是指向字符的指针.

char* c;
Run Code Online (Sandbox Code Playgroud)

这看起来像char*类型,变量c是该类型.但实际上类型是char和*c(c指向的内存位置)是该类型(char).如果一次声明多个变量,这种区别就变得很明显了.

char* c, *d;
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪.c和d都是指向字符的同一种指针.因为下一个看起来更自然.

char *c, *d;
Run Code Online (Sandbox Code Playgroud)

谢谢.

c c++ pointers coding-style

80
推荐指数
4
解决办法
6万
查看次数

最佳实践:在类定义中对public/protected/private进行排序?

我从头开始一个新项目,希望它干净/具有良好的编码标准.经验丰富的开发人员会以什么样的顺序在课堂上做出贡献?

答:1)公共方法2)私人方法3)公共变量4)私有变量

B:1)公共变量2)私有变量3)公共方法4)私有方法

C:1)公共变量2)公共方法3)私有方法4)私有变量

我通常喜欢将公共静态变量放在顶部,但是然后会在构造函数之前列出公共静态方法,还是应该首先列出构造函数?诸如此类的事情...

我知道这很有点但我只是想知道:这是什么最好的做法?

PS:不,我不使用Cc#.我知道.我是个luddite.

oop coding-style class-design

78
推荐指数
5
解决办法
4万
查看次数

传递哈希值而不是方法参数

我看到在Ruby(和动态类型语言,通常)中,一种非常常见的做法是传递散列,而不是声明具体的方法参数.例如,不是使用参数声明一个方法,而是像这样调用它:

def my_method(width, height, show_border)
my_method(400, 50, false)
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

def my_method(options)
my_method({"width" => 400, "height" => 50, "show_border" => false})
Run Code Online (Sandbox Code Playgroud)

我想知道你对它的看法.这是好事还是坏事,我们应该这样做吗?在什么情况下使用这种做法是有效的,它有什么危险的情况?

ruby oop coding-style

78
推荐指数
3
解决办法
4万
查看次数

PowerShell的推荐编码风格是什么?

如何编写PowerShell脚本是否有任何推荐的编码风格?

不是关于如何构造代码(有多少函数,如果使用模块,......).它是关于" 如何编写代码以使其可读 ".

在编程语言中有一些推荐的编码样式(缩进的内容,如何缩进 - 空格/制表符,在哪里创建新行,在哪里放括号,...),但我还没有看到任何关于PowerShell的建议.

我特别感兴趣的是:


如何写参数

function New-XYZItem
  ( [string] $ItemName
  , [scriptblock] $definition
  ) { ...
Run Code Online (Sandbox Code Playgroud)

(我看到它更像'V1'语法)

要么

function New-PSClass  {
  param([string] $ClassName
       ,[scriptblock] $definition
  )...
Run Code Online (Sandbox Code Playgroud)

或(为什么要添加空属性?)

function New-PSClass  {
  param([Parameter()][string] $ClassName
       ,[Parameter()][scriptblock] $definition
  )...
Run Code Online (Sandbox Code Playgroud)

或(我在Jaykul的代码中看到的其他格式)

function New-PSClass {
  param(
        [Parameter()]
        [string]
        $ClassName
        ,
        [Parameter()]
        [scriptblock]
        $definition
  )...
Run Code Online (Sandbox Code Playgroud)

要么 ...?


如何编写复杂的管道

Get-SomeData -param1 abc -param2 xyz | % {
    $temp1 = $_
    1..100 | % { …
Run Code Online (Sandbox Code Playgroud)

powershell coding-style

78
推荐指数
3
解决办法
3万
查看次数

Netbeans 7.4每个方法规则引入"最多10行".这条规则来自哪里?

NetBeans 7.4 beta目前可供公众下载,默认情况下它引入了一个奇怪的警告规则:

方法长度为16行(允许10行)

我的问题是:这是一个公认的代码约定规则,可以在某个地方证明某种程度吗?NetBeans支持/开发人员说它不是一个bug,但是不要说明为什么它们只允许10行,以及这个规则究竟来自何处.

methods netbeans coding-style conventions

78
推荐指数
2
解决办法
3万
查看次数

Jquery - 如何获取样式显示属性"none/block"

有没有办法获得样式:显示属性哪个没有或阻止?

DIV:

<div id="ctl00_MainContentAreaPlaceHolder_cellPhone_input_msg_container" class="Error cellphone" style="display: block;">

     <p class="cellphone" style="display: block;">Text</p>

</div>
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以找出DIV是否隐藏但在我的情况下这个div是动态注入的,所以它总是显示为可见的假,因此我不能使用它:

$j('.Error .cellphone').is(':hidden')
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法获得结果"display:block":

$j('div.contextualError.ckgcellphone').attr('style')
Run Code Online (Sandbox Code Playgroud)

有没有办法获得"阻止"或"无"的值,还是有更好/更有效的方法来做到这一点?

jquery attributes coding-style

77
推荐指数
3
解决办法
38万
查看次数

如果我在Java中省略花括号,这样可以吗?

我已经搜索了这个,但无法找到答案,无论出于何种原因,我太羞于问教授,因为有数百人盯着你的感觉......

无论如何,我的问题是拥有括号的重要性是什么?如果我省略它们可以吗?例:

for (int i = 0; i < size; i++)  {
   a += b;
}
Run Code Online (Sandbox Code Playgroud)

VS

for (int i = 0; i < size; i++)
   a += b;
Run Code Online (Sandbox Code Playgroud)

我知道它们都可以工作,但是如果我省略括号(我倾向于做很多,由于可见性)会改变什么,什么都没有?正如我所说,我知道它有效,我测试了十几次,但现在我的一些单一任务变得越来越大,并且出于某种原因,我有非理性的恐惧,从长远来看,这是我的原因有些问题吗?有理由害怕吗?

java coding-style brackets

77
推荐指数
5
解决办法
5万
查看次数

Pylint无效的常量名称

我收到关于我的常量的Pylint错误:( MIN_SOIL_PARTICLE_DENS名称无效).任何想法为什么这个常数是错误的?这是我的全部功能:

def bulk_density(clay, sand, organic_matter):
    MIN_SOIL_PARTICLE_DENS = 2.65
    x1 = (0.078 + 0.278 * sand + 0.034 * clay + 0.022 * organic_matter - 0.018
          * sand * organic_matter - 0.027 * clay * organic_matter - 0.584 * sand
          * clay)
    x2 = -0.107 + 1.636 * x1
    field_capacity = vol_water_content_33_j_kg(clay, sand, organic_matter)#m3/m3
    sat_water_content = 0.043 + field_capacity + x2 - 0.097 * sand
    return (1 - sat_water_content) * MIN_SOIL_PARTICLE_DENS
Run Code Online (Sandbox Code Playgroud)

python coding-style pylint

77
推荐指数
1
解决办法
9万
查看次数