问题标签 [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 投票
9 回答
4322 浏览

php - 有哪些有用的 PHP 习语?

我希望改进我的 PHP 编码,并且想知道其他程序员使用哪些特定于 PHP 的技术来提高生产力或解决 PHP 限制。

一些例子:

  1. 处理命名空间的类命名约定:Part1_Part2_ClassName映射到文件Part1/Part2/ClassName.php

  2. if ( count($arrayName) ) // handles $arrayName being unset or empty

  3. 变量函数名称,例如$func = 'foo'; $func($bar); // calls foo($bar);

0 投票
16 回答
33918 浏览

c# - 我如何发音.Net中的lambda表达式中使用的“=>”

我很少遇到其他程序员!

当我第一次看到这个标记时,我的想法是“暗示”,因为这就是它在数学证明中的理解,但这显然不是它的意义。

那么我该如何说或读“=>”,如下所示:-

还是有一种约定俗成的说法?

0 投票
4 回答
2446 浏览

windows - Windows 应用程序事实上的标准键盘快捷键列表?

假设我正在为 Windows 开发一个新的桌面应用程序。是否有我可以咨询(来自 Microsoft 或第 3 方)所有 Windows 应用程序都应支持的键盘快捷键的列表?

(注意:当我在这里说“所有 Windows 应用程序”时,我的真正意思是“特定键盘快捷键有意义的所有 Windows 应用程序。”例如,标准的“开始调试会话”快捷键可能在 IDE 应用程序(如 Visual Studio)中有意义和 Eclipse,但不适用于记事本或 Firefox 等其他类型的应用程序。此外,对于具有自己完整的自定义键盘快捷键集的某些专业应用程序(例如 vi)遵循遵循的一些标准约定可能没有意义由其他应用程序。)

例如,我认为在有意义的情况下,Windows 应用程序应该支持以下键盘快捷键,因为它们是大多数其他应用程序支持的事实上的标准(只是部分列表):

从任何地方:

  • F1- 显示帮助
  • Alt+ F4- 关闭应用程序

编辑文本时:

  • Ctrl+ A- 选择所有文本(在当前字段中,如果适用)
  • Ctrl+ Home/ End- 将插入符号移动到当前字段的开始/结束
  • Shift+ [any navigation]- 在前一个插入符号位置和新插入符号位置之间选择文本

选择可以编辑或重命名的项目时:

  • F2- 重命名或编辑当前项目

当子窗口或选项卡在多窗口/多选项卡应用程序中具有焦点时:

  • Ctrl+ F4- 关闭当前窗口/标签
  • Ctrl+ W- 关闭当前窗口/标签
  • Ctrl+ Tab/ Ctrl+ Shift+ Tab- 激活下一个/上一个窗口/选项卡

等等。(同样,这些只是部分列表——我认为存在更多事实上的标准快捷方式。)

那么:对于这些类型的 Windows 应用程序事实上的标准键盘快捷键,是否有更完整的列表,开发人员可以将其用作确定正在开发的新应用程序应支持的键盘快捷键的起点?

如果也有类似的鼠标行为约定列表,那将是理想的。(例如双击左键=选择单词)

0 投票
5 回答
6345 浏览

css - CSS 约定/代码布局模型

是否有任何尝试并创建了一种形式化的方法来组织 CSS 代码?在我去制定我自己的保持可读性的策略之前,我想知道还有什么。谷歌并不是很有帮助,因为我不完全确定要搜索哪些术语。

我更多地考虑缩进/间距,何时使用新行,命名约定等。

有任何想法吗?

0 投票
2 回答
2977 浏览

c# - Visual Studio C#-settings 和 StyleCop(MS 源代码分析)

是否有人在 XML 或 .vssettings 文件中具有与StyleCop兼容的 Visual Studio 设置?

我使用《框架设计指南:可重用 .NET 库的约定、惯用语和模式》一书来指导 Microsoft 发现什么是格式化 C# 并相应地设置我的 Visual Studio 设置的正确方法。

但是当我在 Visual Studio 中使用“格式化文档”时,StyleCop 会在所有气缸上开火并抱怨各种事情。

有些错误甚至似乎无法在设置中设置。就像花括号应该在新行上一样,如果某些内容跨越多行。

0 投票
4 回答
1256 浏览

python - 使用共享包部署 python 应用程序

我正在考虑如何安排一个已部署的 python 应用程序,该应用程序将具有

  1. 位于 /usr/bin/ 中的可执行脚本,它将为实现的功能提供 CLI
  2. 安装到当前站点包目录所在位置的库。

现在,目前,我的源代码中有以下目录结构:

我想这不是做事的最佳方式。在开发过程中,一切都按预期工作,但是在部署时,foo.py 中的“from foo import FooObject”代码似乎试图导入 foo.py 本身,这不是我正在寻找的行为。

所以问题是编排这种情况的标准做法是什么?我能想到的一件事是,在安装时,将 foo.py 重命名为 foo,这会阻止它自行导入,但这似乎很尴尬......

我想,问题的另一部分是命名挑战。也许调用可执行脚本 foo-bin.py?

0 投票
4 回答
1783 浏览

c# - 您如何解决“StyleCop C# 风格”和“框架设计指南 C# 风格”之间的差异?

在浏览了伟大的书“框架设计指南”(2008 年 11 月第 2 版)的附录 A“C# 编码风格约定”之后,我对微软内部使用/推荐的编码风格感到很困惑。

博客文章A Brief History Of C# Style声称:

事实上,“StyleCop 风格”和“Framework Design Guidelines 风格”的区别相对较小

在我看来,差异非常明显。StyleCop 说开口大括号应该在单独的一行,框架设计指南说它应该在开始语句之后。StyleCop 说所有关键字后面都要跟一个空格,框架设计指南说“摆脱所有空格”(甚至围绕二元运算符)。

我发现框架设计指南书中的这条规则特别具有讽刺意味(第 366 页,从顶部开始的第 6 条规则):

不要在流控制语句前使用空格

这明确说明 StyleCop 样式是错误的(while 关键字后有空格,等式二元运算符前后有空格)。

最后,使用 StyleCop 样式格式化的代码与使用 Framework Design Guidelines 样式格式化的代码有完全不同的“感觉”。通过遵循框架设计指南样式,您将不得不禁用一堆规则(并且没有检查是否遵守框架设计指南样式的规则......)。

有人(或许是 MSFT 内部人士?)能否阐明这种分歧?

你的团队是如何处理这个问题的?关注 StyleCop?框架设计指南?完全忽略风格?烘焙自己的风格?

0 投票
1 回答
303 浏览

asp.net-mvc - 操作和视图约定的命名(重新访问)

我是 MVC 的新手,作为学习练习,我正在尝试将旧应用程序重写为 ASP.NET MVC 应用程序。我有点不清楚动作命名约定问题仅部分涵盖的一些约定。

假设我有两个控制器:JobController 和 ClientController。两个控制器将具有相同的操作:列表、详细信息、新建、更新和删除。

这些动作的视图是否应该与动作同名?在这种情况下,JobController 的 List 操作应该有一个名为“List.aspx”的视图,而不是类似于“JobList.aspx”的视图。

我想到这个问题的原因是我不确定是否适合拥有多个具有相同名称的视图(例如“List.aspx”)。随着我继续添加控制器,这将变得越来越相关,因为我系统中的几乎每个业务对象都需要某种“List.aspx”。

0 投票
2 回答
88 浏览

database - 重命名引用表中的 DB 列(违规?)

假设我有这张桌子:

其中 PersonAddressId 是 PersonId 和外键。重命名外键是否存在任何类型的数据库违规?当它们具有不同的名称时,使用起来会变得非常混乱。

0 投票
2 回答
1667 浏览

java - Maven 项目有哪些额外的目录约定?

Maven 2 使用标准的项目目录布局,记录在这里:

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

我想知道的是:除了普通的 Java 库、Java EE 和 WebApp 项目之外,还有其他项目的推荐约定吗?具体来说,在哪里放置ant文件、启动脚本、配置文件、示例应用等。

此外,将文件放在 src/ 目录树之外的约定是什么?例如,将文档放在 doc/ 下(作为 src 的兄弟)是否很常见?

是否有编译这些约定的页面?如果没有,其他读者能否提供他们自己项目中的示例?