问题标签 [conventions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4143 浏览

refactoring - 任何类中的方法顺序

我对编程还是很陌生,我想编写尽可能干净的代码。

这听起来像是一个愚蠢的问题,但我应该按什么顺序排列我的方法?功能上当然没关系,但布局却有很大的不同。假设我们在一个类中有以下代码:

我是否按照调用顺序对方法进行了排序?如果从类中的两个地方调用方法怎么办?

这段代码片段在我看来完全是一团糟——为了弄清楚什么是一个非常简单的流程,不得不跳过这么多的内容非常令人困惑。

哪种方法顺序更有意义?

0 投票
6 回答
3688 浏览

assembly - 是否有汇编代码约定(主要是 PIC)?

是否有汇编代码约定(主要是 PIC)?

0 投票
0 回答
3220 浏览

fluent-nhibernate - Fluent NHibernate 有很多对很多约定问题

我是流利的 nhibernate 和 nhibernate 的新手。我想编写一个流畅的 nhibernate autopersistence 约定来处理为我的实体创建多对多映射。

这就是我现在所拥有的:

它似乎有效,但我觉得有更好的方法来做到这一点。

现在我的问题:

  1. 你有更好的方法来做到这一点吗?
  2. 你通常想要这里的级联行为吗?
  3. 除了确保此关联的双方最终使用相同的表名之外,我是否需要担心一些事情?
0 投票
12 回答
625 浏览

c# - 我应该使用哪种退货方式?

这与 C# 中使用的约定有关。

我有一个有两个参数(X 和 Y 坐标)的方法。这些坐标表示“图块”可能驻留的位置。如果瓦片位于这些坐标处,则该方法返回其编号。如果这些坐标处没有瓷砖,我想知道该方法应该如何表现。

我看到三个选项:

  1. 使用例外。每次 Method 没有找到 tile 时,我可能会引发异常。但是,由于这种情况并不罕见,因此此选项是最糟糕的选项。
  2. 用老式的 C++ 方式执行,如果没有 tile,则返回 -1。
  3. 将瓷砖编号作为参考参数并将方法的返回类型更改为布尔值以显示是否有瓷砖。但这对我来说似乎有点复杂。

所以我该怎么做?

0 投票
6 回答
221 浏览

c# - 接受 Object 作为参数是否可以接受?

假设我有一个文本框或任何其他形式的输入要求社会安全号码。我确实想指出,SSN 是我现在想到的一个纯粹的例子。此输入最初自然会存储为字符串。

假设我想要一个验证 SSN 的方法,它可以在我的代码中的所有地方使用。哎呀,我什至可以在尚未由用户输入确定的变量上调用该方法。

这可以接受吗?

或者你会坚持我要求一个特定的数据类型,例如

因此,我需要在调用方法之前将输入转换为正确的数据类型。

顺便说一句:我不是在问如何做一个正确的 IsValidSSN 代码 :) 我只是想举例说明我所说的意思:我可以接受 Object 数据类型作为参数还是应该尽量避免它?

0 投票
3 回答
749 浏览

language-agnostic - 函数/类注释格式约定

谁拥有最易读和最有用的函数/类注释约定?我不是在寻找可以生成文档的东西,但我正在考虑采用 JavaDoc 之类的东西,因为所有信息都在那里。

还是其他手工制作的东西?

单行注释优于多行注释有什么合理的论据吗?

我想对我使用的所有语言应用一个约定,所以请分享您拥有的任何特定于语言或与语言无关的约定!

0 投票
10 回答
59547 浏览

python - 导入内部函数是pythonic吗?

PEP 8说:

  • 导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,模块全局变量和常量之前。

有时,我违反了 PEP 8。有时我在函数中导入东西。作为一般规则,如果有一个只在单个函数中使用的导入,我会这样做。

有什么意见吗?

编辑(我觉得导入函数的原因可能是个好主意):

主要原因:它可以使代码更清晰。

  • 在查看函数代码时,我可能会问自己:“什么是函数/类 xxx?” (函数内部使用了xxx)。如果我在模块的顶部有我的所有导入,我必须去那里看看 xxx 是什么。这在使用from m import xxx. 看到m.xxx函数可能会告诉我更多。取决于是什么m:它是众所周知的顶级模块/包(import m)吗?或者它是一个子模块/包(from a.b.c import m)?
  • 在某些情况下,在使用 xxx 的位置附近拥有额外信息(“什么是 xxx?”)可以使函数更易于理解。
0 投票
5 回答
721 浏览

php - PHP 框架 URL 约定

很多框架都使用 URL 约定/controller/action/{id},这很好,但是如果您需要除此之外的任何配置,则由您自己编写路由。

您将如何处理/users/{id}/friends后端的 URL?(列出用户的所有朋友)

我认为在控制器中,这样的事情是合适的:

然后你会得到以下地图:

我想把 Friend 类放在 User 类中,但显然你不能在 PHP 中这样做,所以这是我能想到的最好的方法。想法?

什么 URL 将用于编辑您的朋友列表?/users/{id}/friends/edit可以工作,但它似乎不合适,因为你永远不应该编辑别人的朋友列表。会/account/friends/edit是更好的选择吗?你会把相应的代码放在哪里?在朋友控制器、用户控制器或专用帐户控制器中?

额外的问题:你更喜欢哪个?/photos/delete/{id}或者/photos/{id}/delete


答案:

所以,我从答案中收集到的是,如果“事物”很复杂(如“朋友”)但没有自己的控制器,你可以给它一个没有模型的控制器,或者如果不是,你应该将与它最密切相关的东西塞进去。您的 URL 不应影响您放置代码的位置。大多数人似乎认为你应该尽可能坚持/controller/action/{id},因为这是人们所熟悉的。

除了说它“尴尬”之外,没有人真正评论扩展课程。如果我真的想把它分开,也许 FriendList 在这种情况下会是一个更合适的类。

感谢所有的答案 :)

0 投票
1 回答
211 浏览

asp.net-mvc - MVC 中的目录文件夹约定

我想知道 ASP.NET MVC 项目中 /contents 文件夹约定背后的历史是什么;它起源于哪里;及其背后的原因。

我们的团队正在考虑将 /images 和 /styles 从 /contents 中移出,以降低项目中的文件夹级别。很高兴知道为什么首先要制定公约。

0 投票
6 回答
9721 浏览

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

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

其他语言也这样做。这是我所知道的唯一一个以 Y,X 顺序而不是 X,Y 顺序接受参数的函数,它经常把我搞砸,因为当我考虑坐标时,我认为是 (X,Y)。

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