标签: conventions

为什么atan2 Y,X而不是X,Y的参数?

在C中,atan2函数具有以下签名:

double atan2( double y, double x );
Run Code Online (Sandbox Code Playgroud)

其他语言也这样做.这是我所知道的唯一一个以Y,X顺序而不是X,Y顺序获取其参数的函数,它会使我经常搞砸,因为当我想到坐标时,我认为(X,Y).

有谁知道为什么atan2的参数顺序约定是这样的?

math arguments conventions

25
推荐指数
2
解决办法
7678
查看次数

大型Django应用程序布局

我是一个开发基于网络的大学门户网站的团队,该门户网站将基于Django.我们仍处于探索阶段,我正在努力寻找将项目/开发环境放在外面的最佳方法.

我最初的想法是将系统开发为Django"app",其中包含用于分离系统不同部分的子应用程序.我打算制作这些"子"应用程序的原因是它们在父应用程序之外没有任何用处,因此单独分发它们几乎没有意义.我们设想门户网站将安装在多个位置(例如,在不同的大学),因此可以将主应用程序放入许多Django项目中进行安装.因此,我们为每个位置的项目都有一个不同的存储库,它实际上只是一个settings.py定义已安装的门户应用程序的文件,以及一个urls.py路由到它的URL.

不过,我已经开始编写一些初始代码了,我遇到了一个问题.一些处理用户身份验证和配置文件的代码似乎没有家.它在概念上不属于门户应用程序,因为它与门户的功能无关.但是,它也不能进入项目存储库 - 因为我会在每个位置的存储库中复制代码.例如,如果我在此代码中发现了一个错误,我将不得不在所有位置的项目文件上手动复制修复程序.

我的修复想法是让所有项目repos成为"主"位置项目的分支,以便我可以从该主程序中提取任何更改.我认为这很麻烦,这意味着我还有一个存储库需要照顾.

我正在寻找一种更好的方法来实现这个项目.任何人都可以推荐一个解决方案或类似的例子,我可以看看?问题似乎是我正在开发一个Django 项目,而不仅仅是一个Django 应用程序.

python django conventions

25
推荐指数
2
解决办法
8463
查看次数

"避免在编译器热路径中进行分配"Roslyn编码约定

我一直在阅读.NET编译器平台的贡献代码部分("Roslyn"),我遇到了编码约定的指南.我理解大多数编码约定以及为什么要求它.但我不明白他们的意思是:

避免在编译器热路径中进行分配:

避免使用LINQ.

避免在没有结构枚举器的集合上使用foreach.

什么是"编译器热门路径"?为什么我应该避免使用LINQ并避免对没有结构枚举器的集合进行预测?

c# linq foreach conventions roslyn

25
推荐指数
2
解决办法
2890
查看次数

C++,私有函数真的需要在头文件中吗?

我一直认为头文件是一种描述类的"公共接口",在这种情况下,最好将私有字段和函数保存在cpp文件中.

我知道私有字段需要在头文件中,以便其他类可以告诉一个类的实例将消耗多少内存,但是当我要写一个私有帮助函数时,它就出现了,这个函数可以被创建静态,在这种情况下根本不需要它是"类的一部分",它可以很容易地成为类定义的.cpp文件中的常规函数​​.

然后我想到,通过接受指向类字段的指针/引用而不是期望在类中定义,所有私有函数都可能被重写为静态函数.

这将消除在头文件中声明任何私有函数的需要.

我喜欢遵循约定所以现在我想问一下,它是否被认为是C++中的既定约定,非静态私有函数应该在头文件中?静态函数或静态常量怎么样?

编辑:我将提供一些代码来解释我所得到的:

.h文件:

#ifndef SOME_CLASS_H
#define SOME_CLASS_H

class SomeClass
{
private:
    int x;
public:
    void combineWithX(int y);
};

#endif
Run Code Online (Sandbox Code Playgroud)

.cpp文件

#include "SomeClass.h"

void someHelper(int* x)
{
    *x = (*x) + 1;
}

void SomeClass::combineWithX(int y)
{
    someHelper(&x);
    x += y;
}
Run Code Online (Sandbox Code Playgroud)

请注意,someHelper(int* x)在cpp文件中引用私有成员x,但不是直接引用,因此不需要出现在标题中.我想知道这种事情是否被认为是"坏风格"

c++ standards conventions

25
推荐指数
2
解决办法
1万
查看次数

什么是黄金代码/评论比例?

是否有代码/注释比率,您认为是良好(坏)代码健康的标志?

您能举例说明被认为编码良好的开源项目及其各自的评论比例吗?

(我意识到每个项目的比例都不是"真实的",并且很可能是那些表现出理论黄金比例的糟糕项目.仍然......)

documentation comments conventions

23
推荐指数
6
解决办法
1万
查看次数

CSS约定/代码布局模型

有没有尝试和创建一个组织CSS代码的形式化方法?在我开始制定自己的保持可读性的策略之前,我想知道还有什么.谷歌并不是很有帮助,因为我不完全确定要搜索的条款.

我正在考虑缩进/间距,何时使用新行,命名约定等.

有任何想法吗?

css coding-style conventions

23
推荐指数
1
解决办法
6001
查看次数

Laravel 4控制器模板/刀片 - 正确的方法?

我一直在阅读Laravel 4文档,并且已经制作了一个演示应用程序来帮助学习.

我找不到很多关于使用刀片和控制器进行视图模板化的文档.哪种方法是正确的,还是归结为个人偏好?

例如1

控制器/ HomeController.php

protected $layout = 'layouts.main';

public function showWelcome()
{
    $this->layout->title = "Page Title";
    $this->layout->content = View::make('welcome');
}
Run Code Online (Sandbox Code Playgroud)

查看/布局/ main.blade.php

<html>
<head>
    <title>{{ $title }}</title>
</head>
<body>
    {{ $content }}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

查看/ welcome.blade.php

<p>Welcome.</p>
Run Code Online (Sandbox Code Playgroud)

例如2

控制器/ HomeController.php

protected $layout = 'layouts.main';

public function showWelcome()
{
    $this->layout->content = View::make('welcome');
}
Run Code Online (Sandbox Code Playgroud)

查看/布局/ main.blade.php

<html>
<head>
    <title>@yield('title')</title>
</head>
<body>
    @yield('content')
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

查看/ welcome.blade.php

@section('title', 'Welcome')
@section('content')
// content
@stop
Run Code Online (Sandbox Code Playgroud)

上述最佳惯例和/或优势是什么?

views conventions laravel blade laravel-4

23
推荐指数
1
解决办法
9352
查看次数

在Python中使用类对函数进行分组

我已经成为Python科学程序员已有几年了,随着程序越来越大,我发现自己遇到了一个特定的问题.我是自学成才,因此我从未接受过任何正式的培训,并且花了很多时间在"适当"的Python编码"惯例"上.

无论如何,到目前为止,我发现自己总是创建一个utils.py文件,我将所有已定义的函数存储在我的程序使用的文件中.然后我发现自己将这些功能分组到各自的目的中.我知道分组事物的一种方式当然是使用类,但我不确定我的策略是否违背实际应该使用的类.

假设我有一堆功能大致相同的事情:

def add(a,b):
    return a + b

def sub(a,b):
    return a -b

def cap(string):
    return string.title()

def lower(string):
    return string.lower()
Run Code Online (Sandbox Code Playgroud)

现在显然这4个函数可以看作是两个单独的目的,一个是计算,另一个是格式化.这就是逻辑告诉我要做的事情,但我必须解决它,因为我不想初始化对应于类evertime的变量.

class calc_funcs(object):

    def __init__(self):
        pass

    @staticmethod
    def add(a,b):
        return a + b

    @staticmethod
    def sub(a, b):
        return a - b

class format_funcs(object):
    def __init__(self):
        pass

    @staticmethod
    def cap(string):
        return string.title()

    @staticmethod
    def lower(string):
        return string.lower()
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我现在将这些方法"组合"成一个很好的包,可以根据它们在程序中的角色更快地找到所需的方法.

print calc_funcs.add(1,2)
print format_funcs.lower("Hello Bob")
Run Code Online (Sandbox Code Playgroud)

然而,话虽如此,我觉得这是一种非常'unpython-y'的做事方式,它只是感觉凌乱.我是想以正确的方式思考这个还是有另一种方法?

python class conventions

23
推荐指数
2
解决办法
6144
查看次数

如何在Caliburn Micro中捕获组合框选择?

我刚开始使用Caliburn Micro.我想要一个带有字符串列表的组合框,当用户选择一个项目时,我希望有一个名为的notify方法.应该很简单吧?我很不耐烦,5分钟的谷歌搜索还没有解决它,所以Stackers要救!

注意:我赞成一个答案,告诉我如何将它放入视图模型中.避免复杂的XAML是MVVM框架的全部要点,恕我直言.

silverlight conventions caliburn.micro

22
推荐指数
2
解决办法
7478
查看次数

Lua Semicolon公约

我想知道在Lua中是否存在使用分号的一般惯例,如果是,我应该在哪里/为什么使用它们?我来自编程背景,因此用分号结束语句似乎直观正确.然而,我担心为什么它们"optional"在其普遍接受的分号结束其他编程语言的语句时.也许有一些好处?

例如:从lua编程指南中,这些都是可接受的,等效的,语法准确的:

a = 1
b = a*2

a = 1;
b = a*2;

a = 1 ; b = a*2

a = 1   b = a*2    -- ugly, but valid
Run Code Online (Sandbox Code Playgroud)

作者还提到: Usually, I use semicolons only to separate two or more statements written in the same line, but this is just a convention.

这是否被Lua社区普遍接受,还是有其他方式被大多数人所青睐?或者它是否像我个人的偏好一样简单?

lua conventions

22
推荐指数
1
解决办法
2万
查看次数