标签: coding-style

什么时候,如果有的话,使用Ruby关键字"for"

我个人喜欢for在Ruby中使用关键字进行迭代,因为它从我的眼睛看起来很干净.我通常认为for可能是别名Enumerable#each,但我不知道是否正确.在最基本的例子中:

for i in (1..10)
  puts i
end
Run Code Online (Sandbox Code Playgroud)

行为与...相同

(1..10).each do |i|
  puts i
end
Run Code Online (Sandbox Code Playgroud)

只是没有创建一个新的变量范围.此外,ruby-doc

for循环在现代Ruby程序很少使用.

这让我觉得有一个特定的,技术上的原因反对使用.没有新的变量范围是否重要?以什么方式?

ruby each for-loop coding-style keyword

0
推荐指数
1
解决办法
201
查看次数

"retval"是不是很好的蟒蛇风格?

是否有充分理由使用retval变量而不仅仅返回计算?

def add(self, x, y):
    return x + y
Run Code Online (Sandbox Code Playgroud)

def add(self, x, y):
    retval = x + y
    return retval
Run Code Online (Sandbox Code Playgroud)

我觉得我通常会在代码示例中看到retval(或其他一些命名变量),但对我来说这似乎是一种(小)浪费.

python coding-style

0
推荐指数
1
解决办法
3570
查看次数

打破foreach vs条件检查

在更好的编码实践方面,这是一个更好的决策?

  1. break在foreach中使用a 跳出循环
  2. 在for循环中使用条件检查来结束循环

例如,使用foreach:

foreach(string bean in stringArray)
{
    if(bean == "green")
    {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

以及for循环的示例:

bool found = false;
for (int i = 0; i < stringArray.Length && !found; i++)
{
    if (stringArray[i] == "green")
    {
        found = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# loops coding-style

0
推荐指数
1
解决办法
61
查看次数

应该在多大程度上采用#ifdef语句来获得硬件灵活性

据我了解,在嵌入式系统程序中包含不同硬件的不同选项的最佳方法之一是#ifdef语句.在风格上,这应该走多远?我想具体一点,如果有人使用#ifdef功能减速,你会摇头吗?

对我来说这感觉很傻,但是一个硬件选项需要不同类型的函数参数而不是另一个选项.有没有更简洁的方法来实现这种效果,还是更好地使用次优代码来实现某些硬件选项?

如果要阅读太多文本而您更喜欢代码:

#ifdef internaldac
    int dacWrite(int level) {
#else 
    int dacWrite(byte highbyte, byte lowbyte) {
#endif  
Run Code Online (Sandbox Code Playgroud)

我认为这是写这个的最有效方式,但我应该采用另一种方式(风格)吗?

c embedded coding-style arduino

0
推荐指数
1
解决办法
115
查看次数

内联函数命名约定

我想知道在使用内联函数时是否存在某种命名约定.

假设我正在实现一个API,并希望让用户决定是否要使用普通函数或内联函数(两者都做同样的事情),是否有一个命名约定如何让外部世界看到一个函数是潜在的内联?我知道我可以查看.h或.inl文件

编辑: 我觉得有必要澄清一些观点,因为看起来我一开始并不够清楚.

假设我有一个接受三个值的函数.就像是:

bool MyClass::AddTwoNumbersAndCheckIfBigger(int summandOne, int summandTwo, int biggerNr)
{
    bool isBigger = false;
    int sum = summandOne+summandTwo;
    if(sum > biggerNr)
    {
        isBigger = true;
    }
    return isBigger;
}
Run Code Online (Sandbox Code Playgroud)

这个函数可以调用一次,最多x> 1000000.如果我调用它一次,我希望它只是被正常调用,但如果在for循环中调用1000000次,我可能更喜欢内联选项.

我想让开发人员可以在这两个选项之间进行选择.我知道编译器负责决定它是否会被用作内联函数,但我想如果开发人员可以自己决定它会很好.

命名约定的问题源于这样一个事实:我有用户\开发人员不查看头文件但只使用intellisense作为指导.

c++ naming coding-style

0
推荐指数
1
解决办法
277
查看次数

List <T>或集合的编码样式"ref"

我有改变List类型的参数的函数(改变内部对象状态).例如:

    public void ChangeList<T>(List<T> source, T value)
    {
        //Actions
        source.Add(value);
        //Actions
    }
Run Code Online (Sandbox Code Playgroud)

什么是功能签名更好?为什么?

第一: public void ChangeList<T>(List<T> source, T value)

要么

第二: public void ChangeList<T>(ref List<T> source, T value)

编辑:问题可以改变.如何明确指定函数更改列表的状态?(函数名称或ReadonlyCollection除外)

c# coding-style

0
推荐指数
1
解决办法
126
查看次数

明确私人方法的编码标准

最近我已经改变了我的公司和我的新公司,遵循编码标准是必须的.在我的技术主管审核期间,我收到了评论评论"我们不应该在私人方法中调用私有方法".

这是一个随处可见的通用做法吗?如果我的私有方法代码大小正在增加(例如,超过50或60行),那么在这种情况下我们如何减少方法大小和复杂性呢.

在不同方法中定义不同的功能也使事情更容易理解,但如果遵循上面提到的私有方法标准,那么在这种情况下处理方法复杂性的可能方法是什么.

java coding-style private-methods

0
推荐指数
1
解决办法
44
查看次数

选择指南:MISRA 1998或MISRA 2004或MISRA 2012?

我总是想知道一个项目/团队/公司如何选择或有资格选择像MISRA 1998/2004/2012这样的特定指南?如何确定和确定哪个指南足以满足项目要求(成本与时间对质量)?

(我知道他的问题有点生硬,但任何答案都会受到赞赏)

coding-style misra

0
推荐指数
1
解决办法
1372
查看次数

在foreach()之后是否有一种优雅的方式来连接join()?

我想写这样的东西:

DOMElement
 .innerHTML
 .toLowerCase()
 .split(' ')
 .forEach(function(word) {
   return word.charAt(0).toUpperCase() + word.slice(1);
 })
 .join(' ')
Run Code Online (Sandbox Code Playgroud)

既然join需要接收array,是否有一种优雅的方式来提供它?

javascript functional-programming coding-style

0
推荐指数
1
解决办法
563
查看次数