Visual Studio 2008是否有任何类型的插件或工具可用于按字母顺序排列方法?理想情况下,我想要一个工具,可以自动或按需按字母顺序排列选择或指定类型(即只有方法,而不是成员变量).
resharper coding-style organization visual-studio-2008 visual-studio
上帝我讨厌"代码味"这个词,但我想不出更准确的东西.
我正在业余时间为Whitespace设计一个高级语言和编译器,以了解编译器构造,语言设计和函数编程(编译器是用Haskell编写的).
在编译器的代码生成阶段,我必须在遍历语法树时保持"状态" - 数据.例如,在编译流控制语句时,我需要为要跳转到的标签生成唯一的名称(从传入,更新和返回的计数器生成的标签,并且绝不能再次使用计数器的旧值).另一个例子是当我在语法树中遇到内联字符串文字时,它们需要永久转换为堆变量(在空白中,字符串最好存储在堆上).我目前正在处理状态monad中的整个代码生成模块来处理这个问题.
我被告知编写编译器是一个非常适合功能范例的问题,但我发现我的设计方式与我在C中设计它的方式大致相同(你真的可以用任何语言编写C语言 - 甚至Haskell w/state monads).
我想学习如何在Haskell中思考(而不是在函数范式中) - 而不是在C中使用Haskell语法.我真的应该尝试消除/最小化状态monad的使用,还是一个合法的功能"设计模式"?
我需要一个好的变量名称作为一个布尔值,当一个对象是列表中的最后一个对象时返回false.
我能想出的唯一合适的名字是"inFront",但我认为这不足以描述.
另一个选择是'isNotLast'.这不是一个好习惯(代码完成,第269页,使用正布尔变量名).
我知道我可以改变变量定义.当一个对象是最后一个并且调用变量'isLast'时返回true,但是,如果我有第一个解释,它将使这个任务更容易.
我注意到我通常使用常量引用作为返回值或参数.我认为原因是它与在代码中使用非引用几乎相同.但它肯定需要更多的空间和功能声明变得更长.我很喜欢这样的代码,但我认为有些人发现它编程风格很糟糕.
你怎么看?是否值得编写const int& over int?我认为无论如何它都是由编译器优化的,所以也许我只是在浪费时间编码,一个?
我必须计算矩阵(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 是一个图像,我将其转换为矩阵,然后找到值.
我的问题是,有更简单的方法吗?
我在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中正确编码.
先感谢您.
在许多编程比赛中,我看到有人写这种类型的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)版本?
每次不必要的开销是不是计算条件?
我喜欢Airbnb JavaScript Style Guide.大多数规则也适用于TypeScript,但当然它不包括特定的TypeScript语言功能.
我还发现了Microsoft TypeScript编码指南,但它们适用于TypeScript项目本身,而不适用于使用 TypeScript的项目.
最后我找到了Platypi的TypeScript风格指南,但它没有我想要的那么详细.我错过了另一个(官方?)TypeScript风格指南吗?或者我列出的两个是唯一存在的?
考虑存储在哈希中的"人".两个例子是:
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)
那么,你如何检查哈希的结构,特别是如果它被深深嵌套(甚至比这里提供的例子更深)?也许更好的问题是:这样做的"红宝石方式"是什么?
谷歌JavaScript风格指南建议不要扩展Array.prototype.但是,我Array.prototype.filter = Array.prototype.filter || function(...) {...}在浏览器中使用它(和类似方法)的方式不存在.MDN实际上提供了类似的例子.
我知道Object.prototype问题,但Array不是哈希表.
扩展时会出现什么问题,这会让Array.prototypeGoogle提出反对意见?
coding-style ×10
python ×2
reference ×2
arrays ×1
c ×1
c++ ×1
const ×1
expression ×1
for-loop ×1
hash ×1
haskell ×1
javascript ×1
monads ×1
numpy ×1
organization ×1
pixel ×1
prototype ×1
pycharm ×1
resharper ×1
ruby ×1
state-monad ×1
typescript ×1