标签: coding-style

Visual Studio中的Alphabetizing方法

Visual Studio 2008是否有任何类型的插件或工具可用于按字母顺序排列方法?理想情况下,我想要一个工具,可以自动或按需按字母顺序排列选择或指定类型(即只有方法,而不是成员变量).

resharper coding-style organization visual-studio-2008 visual-studio

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

使用Haskell状态monad一个代码味?

上帝我讨厌"代码味"这个词,但我想不出更准确的东西.

我正在业余时间为Whitespace设计一个高级语言和编译器,以了解编译器构造,语言设计和函数编程(编译器是用Haskell编写的).

在编译器的代码生成阶段,我必须在遍历语法树时保持"状态" - 数据.例如,在编译流控制语句时,我需要为要跳转到的标签生成唯一的名称(从传入,更新和返回的计数器生成的标签,并且绝不能再次使用计数器的旧值).另一个例子是当我在语法树中遇到内联字符串文字时,它们需要永久转换为堆变量(在空白中,字符串最好存储在堆上).我目前正在处理状态monad中的整个代码生成模块来处理这个问题.

我被告知编写编译器是一个非常适合功能范例的问题,但我发现我的设计方式与我在C中设计它的方式大致相同(你真的可以用任何语言编写C语言 - 甚至Haskell w/state monads).

我想学习如何在Haskell中思考(而不是在函数范式中) - 而不是在C中使用Haskell语法.我真的应该尝试消除/最小化状态monad的使用,还是一个合法的功能"设计模式"?

monads haskell coding-style state-monad

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

命名约定:如何命名布尔变量?

我需要一个好的变量名称作为一个布尔值,当一个对象是列表中的最后一个对象时返回false.

我能想出的唯一合适的名字是"inFront",但我认为这不足以描述.

另一个选择是'isNotLast'.这不是一个好习惯(代码完成,第269页,使用正布尔变量名).

我知道我可以改变变量定义.当一个对象是最后一个并且调用变量'isLast'时返回true,但是,如果我有第一个解释,它将使这个任务更容易.

coding-style naming-conventions

57
推荐指数
4
解决办法
9万
查看次数

int vs const int&

我注意到我通常使用常量引用作为返回值或参数.我认为原因是它与在代码中使用非引用几乎相同.但它肯定需要更多的空间和功能声明变得更长.我很喜欢这样的代码,但我认为有些人发现它编程风格很糟糕.

你怎么看?是否值得编写const int& over int?我认为无论如何它都是由编译器优化的,所以也许我只是在浪费时间编码,一个?

c++ coding-style const reference

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

计算矩阵中大于值的所有值

我必须计算矩阵(2-d数组)中大于200的所有值.

我为此写下的代码是:

za=0   
p31 = numpy.asarray(o31)   
for i in range(o31.size[0]):   
    for j in range(o32.size[1]):   
        if p31[i,j]<200:   
            za=za+1   
print za
Run Code Online (Sandbox Code Playgroud)

o31 是一个图像,我将其转换为矩阵,然后找到值.

我的问题是,有更简单的方法吗?

python arrays coding-style numpy pixel

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

在__init__.py - Python/Pycharm中找不到引用'xxx'

我在Pycharm有一个项目组织如下:

-- Sources
   |--__init__.py
   |--Calculators
      |--__init__.py
      |--Filters.py
   |--Controllers
      |--__init__.py
      |--FiltersController.py
   |--Viewers
      |--__init__.py
      |--DataVisualization.py
   |--Models
      |--__init__.py
      |--Data
Run Code Online (Sandbox Code Playgroud)

我的所有__init__.py,除了Sources上面的那个都是空白文件.我收到了很多类似的警告:

在__init__.py中找不到引用'xxx'

例如,我的FiltersController .py有这段代码:

import numpy.random as npr

bootstrap = npr.choice(image_base.data[max(0, x-2):x+3, max(0, y-2):y+3].flatten(), size=(3, 3), replace=True)
Run Code Online (Sandbox Code Playgroud)

我收到这个警告:

在__init__.py中找不到引用'choice'

我在谷歌上搜索这是什么意思,我应该怎么做才能在Python中正确编码.

先感谢您.

python coding-style reference pycharm

57
推荐指数
4
解决办法
7万
查看次数

为什么表达式而不是常量,在C for循环的条件中?

在许多编程比赛中,我看到有人写这种类型的for-loop

for(i = 0; i < (1 << 7); i++)
Run Code Online (Sandbox Code Playgroud)

除非我遗漏了什么,否则就是这样

for(i = 0; i < 128; i++)
Run Code Online (Sandbox Code Playgroud)

为何使用该(1 << 7)版本?
每次不必要的开销是不是计算条件?

c expression for-loop coding-style constantfolding

57
推荐指数
5
解决办法
3909
查看次数

TypeScript编码风格指南?

我喜欢Airbnb JavaScript Style Guide.大多数规则也适用于TypeScript,但当然它不包括特定的TypeScript语言功能.

我还发现了Microsoft TypeScript编码指南,但它们适用于TypeScript项目本身,而不适用于使用 TypeScript的项目.

最后我找到了PlatypiTypeScript风格指南,但它没有我想要的那么详细.我错过了另一个(官方?)TypeScript风格指南吗?或者我列出的两个是唯一存在的?

coding-style typescript

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

Ruby Style:如何检查嵌套的哈希元素是否存在

考虑存储在哈希中的"人".两个例子是:

fred = {:person => {:name => "Fred", :spouse => "Wilma", :children => {:child => {:name => "Pebbles"}}}}
slate = {:person => {:name => "Mr. Slate", :spouse => "Mrs. Slate"}} 
Run Code Online (Sandbox Code Playgroud)

如果"人"没有任何子女,则"儿童"元素不存在.所以,对于Slate先生,我们可以检查他是否有父母:

slate_has_children = !slate[:person][:children].nil?
Run Code Online (Sandbox Code Playgroud)

那么,如果我们不知道"slate"是一个"人"哈希呢?考虑:

dino = {:pet => {:name => "Dino"}}
Run Code Online (Sandbox Code Playgroud)

我们不能再轻易检查孩子了:

dino_has_children = !dino[:person][:children].nil?
NoMethodError: undefined method `[]' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

那么,你如何检查哈希的结构,特别是如果它被深深嵌套(甚至比这里提供的例子更深)?也许更好的问题是:这样做的"红宝石方式"是什么?

ruby hash coding-style

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

JavaScript:扩展Array.prototype有什么危险?

谷歌JavaScript风格指南建议不要扩展Array.prototype.但是,我Array.prototype.filter = Array.prototype.filter || function(...) {...}在浏览器中使用它(和类似方法)的方式不存在.MDN实际上提供了类似的例子.

我知道Object.prototype问题,但Array不是哈希表.

扩展时会出现什么问题,这会让Array.prototypeGoogle提出反对意见?

javascript prototype coding-style

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