在工作中,我们将括号放在下一行,但在家里,我做相反的事情.你更倾向哪个?(K&R vs OTBS)
function something() {
// ...
}
function something()
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
很多JavaScript库似乎都使用OTBS(一种真正的支撑样式).我想跟随它们以便在其他JavaScript项目中保持一致,但K&R风格看起来不是更具可读性吗?
注意:我们知道JavaScript中的return和braces的问题,这将始终是一个例外.但是,这只是一个案例.
我最近在高调代码中已经看过几次,其中常量值被定义为变量,以值命名,然后仅使用一次.我想知道它为什么要完成?
例如Linux Source(resize.c)
unsigned five = 5;
unsigned seven = 7;
Run Code Online (Sandbox Code Playgroud)
例如C#.NET Source(Quaternion.cs)
double zero = 0;
double one = 1;
Run Code Online (Sandbox Code Playgroud) 我正在将构建在Rails应用程序中的一些逻辑重构为中间件,而我遇到的一个烦恼似乎是缺乏将它们放在何处的约定.
目前我已经确定了,app/middleware但我可以轻松地将其移至vendor/middleware或者vendor/plugins/middleware......
最大的问题是必须要求顶部的单个文件 config/environment.rb
require "app/middleware/system_message"
require "app/middleware/rack_backstage"
Run Code Online (Sandbox Code Playgroud)
或者我在线上得到未初始化的常量错误config.middleware.use.这可能会很快变得混乱.我宁愿将它隐藏在某个地方的初始化器中.
这个东西有传统的地方吗?
我正在寻找的具体答案是:我可以在哪里放置需求行,以便它们不会混乱environment.rb文件,但仍然在config.middleware.use调用之前加载?我尝试过的所有内容都会导致未初始化的常量错误.
更新:现在我们正在使用Rails 3.0,我像任何其他Rack应用程序一样对待Rails应用程序; 中间件的代码文件进入lib(或列出的宝石Gemfile)并且是必需的和加载的config.ru.
我想知道是否有一个标准或"正常"的方法来解释时间间隔数据终点相对于定义终点的值的包容性/排他性.但是请注意,我问的是标准(或最常见)约定是什么(如果有的话),而不是关于个人偏好的论文.如果您确实想要提供论文,请将其附加到某人发布的标准或有关该事项的标准文本的参考文献中.开放标准(我不需要付费阅读)是非常优选的,除非它们有根本缺陷:).
当然,从A到B的时间间隔有4种可能性:
每个都有不同的特点(我看到它,随意指出更多)
[A,B]惯例具有看似不方便的特性,即B包含在[A,B]和[B,C]中.如果B表示午夜边界并且您正试图确定它落在哪一天,这尤其不方便.此外,这意味着间隔的持续时间有点刺激,因为[A,B]其中A = B的长度应为1,因此[A,B]的持续时间为(B - A)+ 1
类似地,(A,B)惯例将难以使B既不属于(A,B)也不属于(B,C)......继续与日界的类比,午夜将是两天的一部分.这在逻辑上也是不方便的,因为[A,B]其中A = B是持续时间小于零的无感区间,但是反转A和B不会使其成为有效区间.
所以我想我想要[A,B]或(A,B),我无法弄清楚如何在它们之间做出决定.
因此,如果某人有标准文档的链接,请参考标准文本或类似内容,以澄清会很好的惯例.或者,如果您可以链接各种标准文档和/或或多或少完全不同意的参考文献,那么我可以选择一个似乎对CMA具有足够权限的文档和完成它:).
最后,我将使用Java,因此我特别容易得到在Java中运行良好的答案.
我无法在SO上找到回答我确切问题的Q/A ,所以我想我会发布它并看看会有什么回复.
就Java包的命名约定而言,我理解它应该是反向域名:com.whatever.stuff我得到的规则没有混合大小写,连字符,关键字等.
我还阅读了Java语言规范的7.7节(Unique-Package-Names).据我所知,Java的规则是使用反向域来确保唯一性......如果你没有,请去获取一个:
You form a unique package name by first having (or belonging to an organization that has) an Internet domainname, such as sun.com. - 第7.7节
因此,如果我对为域名支付费用不感兴趣,我不属于我可以背负的名称的公司,是否存在我应该遵循的命名约定的任何部分?我想我可以直接命名它,无论我在这一点上感觉到什么独特的名字,但我只是想知道我是否遗漏了任何东西.
注意:我想发布我的软件包供其他开发人员使用,所以我不想只做一些在我的系统上工作的东西,但如果可能的话就更标准.
我添加了android标签,因为我要编写的java包将用于Android应用程序,不确定Android开发人员是否有不同的意见.
我不明白php的PSR-2惯例的这一部分:
线长的软限制必须是120个字符; 自动样式检查器必须警告但不得在软限制上出错.
线条不应超过80个字符; 超过的行应该被分成多个后续行,每行不超过80个字符.
我认为"软限制"意味着"试图坚持这个限制,但额外的几个字符不是问题".但后来我读了第二行,现在我没理解.
Java中无限循环的约定是什么?我应该写while(true)还是for(;;)?我个人会使用,while(true)因为我经常使用while循环.
嗨,当我开始进行Web开发时,我意识到javascript事件名称都是小写的,没有分隔符,即"mousedown","mouseup"等.当使用jQuery UI库时,我注意到它们也使用相同的约定; 即"dropdeactivate",如下例所示
javascript
$( ".selector" ).on( "dropdeactivate", function( event, ui ) {} )
虽然这对于只有2或3个单词的名称很有效,但对于包含更多单词的名称来说真的很糟糕.
尽管如此,当我必须触发我创建的自定义(合成)事件时,我也遵循了这个惯例,直到最近我决定最好开始使用某种形式的分隔符.现在我使用"drop:deactivate"或"app:ready"之类的东西.
在iOS上苹果最近为HTML 5 Airplay API添加了这个事件,我同意这篇文章的主题http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review,他说:
我认为"webkitcurrentplaybacktargetiswirelesschanged"赢得了记录:有史以来最长的JavaScript事件名称.
这个奇怪的惯例背后的原因是什么?为什么不使用任何形式的分隔符或camelCase约定以更易读的方式命名事件?
我认为有一个原因,很多聪明的人都在努力......但过了一段时间我还在想为什么?
据我所知,如果字体包含空格,则需要使用双引号或单引号,例如:
font-family: "Times New Roman", Times;
font-family: 'Times New Roman', Times;
Run Code Online (Sandbox Code Playgroud)
但在Google字体(http://www.google.com/webfont)上,我也看到了
font-family: 'Margarine', cursive;
Run Code Online (Sandbox Code Playgroud)
有些甚至像这样使用它:
font-family: 'Margarine', 'Helvetica', arial;
Run Code Online (Sandbox Code Playgroud)
我发现这很奇怪,因为以下工作原理:
font-family: Arial, Helvetica, sans-serif;
font-family: Cambria, serif;
Run Code Online (Sandbox Code Playgroud)
那么CSS中字体名称的引用的正确用法是什么?
作为Rails的新手,我很难找到一个网站或参考资料,给出了Ruby on Rails的简要总结.我理解MVC,ActiveRecord以及基本级别的那些东西,但我很难理解一些关系和基础知识.例如:
:content_for或render部分)呈现信息的最佳方法是什么?我不应该使用哪些方法?lib文件夹的用途吗?我已经在StackOverflow上阅读了关于这个问题的一些回复,但是所有这些回复只是指向我需要阅读的300多页的书,而我只想简要概述什么是重要的.
我已经了解的一些资源,但没有为新用户提供基本概念的简明摘要:
感谢您提供的任何帮助,参考或指导!
P.S. I would like this wiki to become a living document, so please add to it, edit it, etc. as you feel necessary.
conventions ×10
java ×3
coding-style ×2
javascript ×2
android ×1
c# ×1
c++ ×1
css ×1
date ×1
dom ×1
fonts ×1
middleware ×1
package ×1
php ×1
rack ×1
reference ×1
summary ×1
time ×1