在C中,atan2函数具有以下签名:
double atan2( double y, double x );
Run Code Online (Sandbox Code Playgroud)
其他语言也这样做.这是我所知道的唯一一个以Y,X顺序而不是X,Y顺序获取其参数的函数,它会使我经常搞砸,因为当我想到坐标时,我认为(X,Y).
有谁知道为什么atan2的参数顺序约定是这样的?
我是一个开发基于网络的大学门户网站的团队,该门户网站将基于Django.我们仍处于探索阶段,我正在努力寻找将项目/开发环境放在外面的最佳方法.
我最初的想法是将系统开发为Django"app",其中包含用于分离系统不同部分的子应用程序.我打算制作这些"子"应用程序的原因是它们在父应用程序之外没有任何用处,因此单独分发它们几乎没有意义.我们设想门户网站将安装在多个位置(例如,在不同的大学),因此可以将主应用程序放入许多Django项目中进行安装.因此,我们为每个位置的项目都有一个不同的存储库,它实际上只是一个settings.py定义已安装的门户应用程序的文件,以及一个urls.py路由到它的URL.
不过,我已经开始编写一些初始代码了,我遇到了一个问题.一些处理用户身份验证和配置文件的代码似乎没有家.它在概念上不属于门户应用程序,因为它与门户的功能无关.但是,它也不能进入项目存储库 - 因为我会在每个位置的存储库中复制代码.例如,如果我在此代码中发现了一个错误,我将不得不在所有位置的项目文件上手动复制修复程序.
我的修复想法是让所有项目repos成为"主"位置项目的分支,以便我可以从该主程序中提取任何更改.我认为这很麻烦,这意味着我还有一个存储库需要照顾.
我正在寻找一种更好的方法来实现这个项目.任何人都可以推荐一个解决方案或类似的例子,我可以看看?问题似乎是我正在开发一个Django 项目,而不仅仅是一个Django 应用程序.
我一直在阅读.NET编译器平台的贡献代码部分("Roslyn"),我遇到了编码约定的指南.我理解大多数编码约定以及为什么要求它.但我不明白他们的意思是:
避免在编译器热路径中进行分配:
避免使用LINQ.
避免在没有结构枚举器的集合上使用foreach.
什么是"编译器热门路径"?为什么我应该避免使用LINQ并避免对没有结构枚举器的集合进行预测?
我一直认为头文件是一种描述类的"公共接口",在这种情况下,最好将私有字段和函数保存在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,但不是直接引用,因此不需要出现在标题中.我想知道这种事情是否被认为是"坏风格"
是否有代码/注释比率,您认为是良好(坏)代码健康的标志?
您能举例说明被认为编码良好的开源项目及其各自的评论比例吗?
(我意识到每个项目的比例都不是"真实的",并且很可能是那些表现出理论黄金比例的糟糕项目.仍然......)
有没有尝试和创建一个组织CSS代码的形式化方法?在我开始制定自己的保持可读性的策略之前,我想知道还有什么.谷歌并不是很有帮助,因为我不完全确定要搜索的条款.
我正在考虑缩进/间距,何时使用新行,命名约定等.
有任何想法吗?
我一直在阅读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)
上述最佳惯例和/或优势是什么?
我已经成为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'的做事方式,它只是感觉凌乱.我是想以正确的方式思考这个还是有另一种方法?
我刚开始使用Caliburn Micro.我想要一个带有字符串列表的组合框,当用户选择一个项目时,我希望有一个名为的notify方法.应该很简单吧?我很不耐烦,5分钟的谷歌搜索还没有解决它,所以Stackers要救!
注意:我赞成一个答案,告诉我如何将它放入视图模型中.避免复杂的XAML是MVVM框架的全部要点,恕我直言.
我想知道在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社区普遍接受,还是有其他方式被大多数人所青睐?或者它是否像我个人的偏好一样简单?