所以基本上我正在寻找用于在项目或工作请求上编写技术和功能规范的良好模板.
你用什么?在编写规范时你有多深?您可以提供的任何其他一般提示将不胜感激.
我的公司非常需要这些.我为承包商工作,现在我们根本不使用这些文件.
编辑:我已经阅读了Joel对无痛规范的看法,我真的很喜欢它,但还有其他意见:)
我正在使用rSpec来测试我的应用程序.在我的应用程序控制器中,我有一个这样的方法:
def set_current_account
@current_account ||= Account.find_by_subdomain(request.subdomains.first)
end
Run Code Online (Sandbox Code Playgroud)
是否可以在我的规范中设置request.subdomain?也许在之前的街区?我是rSpec的新手所以对此有任何建议都非常感谢.
EEF
我最近阅读(我不记得在哪里,或者我回到那个来源),规范中HTTP头字段名称Referer的拼写是故意的.那是准确的吗?如果是这样,为什么?
我希望HTML可以在语义上做同样的事情;
<dl class="main-list">
<definitionitem>
<dt>Some Thing</dt>
<dd>You know it!</dd>
<dt>Another Thing</dt>
<dd>Word.</dd>
</definitionitem>
<definitionitem>
<dt>Stuff</dt>
<dd>Alright!</dd>
</definitionitem>
</dl>
Run Code Online (Sandbox Code Playgroud)
然而,因为我最接近的是我对语义不是100%满意的东西;
<div class="redundant-wrapper">
<dl class="main-list">
<dt>Some Thing</dt>
<dd>You know it!</dd>
<dt>Another Thing</dt>
<dd>Word.</dd>
</dl>
<dl class="another-main-list">
<dt>Stuff!</dt>
<dd>Alright!</dd>
</dl>
</div>
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人对你如何做到这一点有任何其他想法?
此外,项目将被分组的原因是因为它们在视觉上分组在正在标记的内容中.想象一下一个字典页面,它有一个单一的定义列表,其中每个定义都在一个左侧浮动的插入框中.我一直遇到这种情况.
我想编写一个可以读取和解码pdf文档的应用程序; 现在我应该得到这个文件格式的规格?PDF格式是从ISO组标准化的,但我不清楚哪里是获得此类信息的最可靠来源.
从这种文件格式开始有什么好的来源?
在http://php.net/manual/en/language.operators.precedence.php网页上,第二个最高优先级包含一个名为的左关联运算符[.
我不明白.是否[用于访问/修改数组条目,如$myArray[23]?我无法想象任何代码片段,我们需要知道其他运算符的"优先级",或者"关联性" [有用的代码片段.
<form enctype=multipart/form-data>将文件上传到Web服务器时为什么需要?
这就是我想知道的.每天晚上,我们3个月大的宝宝让我们睡觉,我跳到我的电脑,开始编写我的爱好项目.我正在处理大约20个不同的项目:不同类型的项目,从C++游戏到Web应用程序,以及对开源项目的一些贡献.这真的是一种激情,并且已经存在了很多年.
然而,当我回头看时,我发现我无法完全完成我的一个爱好项目.我总是完成原型并设置最重要的功能,但是随着时间的推移而不是完成我的项目,我最终切换到另一个看起来"更酷"的项目.因此,我通常最终得到没有结束或故事的错误和不完整的游戏,3D引擎拥有最快的PolygonDraw例程,但缺乏实现其他任何东西等......列表很长.我想我必须写完一百遍不同的未完成的Pong!
我被告知,补救措施是为我的爱好项目编写规范.
一方面,我在工作中写了很多规范.我知道他们对于定义产品的路线图并保持在计划中的重要性.另一方面,规格和爱好项目似乎并不相同!在我看来,构建游戏的学习曲线实际上是让它变得有趣的原因; 不是游戏本身.因此,失去时间重组整个引擎的乐趣,创建最无用的功能的乐趣,等等......
所以问题就出现了:你有没有为你的爱好项目编写规范?他们与工作中的人有什么不同?你如何设法完成你的爱好项目?
在我开展新项目时,我很高兴知道:钢琴奏鸣曲发生器:)
因为我在更常规的基础上使用WebSocket连接,所以我对如何在幕后工作感兴趣.所以我在一段时间内深入研究了无穷无尽的规范文档,但到目前为止,我还无法找到任何有关分块传输流本身的信息.
WebSocket协议将其称为数据帧(描述纯数据流,因此也称为非控制帧).据我了解规范,没有定义的最大长度和没有定义的MTU(最大传输单位)值,这反过来意味着单个WebSocket数据框可能包含spec(!),无限量的数据(如果我在这里错了,请纠正我,我仍然是这方面的学生).
阅读完之后,我立即设置了我的小Node WebSocket服务器.由于我有一个强大的Ajax历史(也在流媒体和Comet上),我的期望原来就像是," 在传输数据时必须有某种交互模式来读取数据 ".但那里我错了,不是吗?
我开始时很小,有4kb的数据.
服务器
testSocket.emit( 'data', new Array( 4096 ).join( 'X' ) );
Run Code Online (Sandbox Code Playgroud)
并且像预期的那样,它作为一个数据块到达客户端
客户
wsInstance.onmessage = function( data ) {
console.log( data.length ); // 4095
};
Run Code Online (Sandbox Code Playgroud)
所以我增加了有效载荷,我实际上再次期待,在某些时候,客户端onmessage处理程序将重复发射,effectivley分组传输.但令我震惊的是,它从未发生过(节点服务器,在firefox,chrome和safari客户端测试).我最大的有效载荷是80 MB
testSocket.emit( 'data', new Array( 1024*1024*80 ).join( 'X' ) );
Run Code Online (Sandbox Code Playgroud)
它仍然存在于客户端的一个大数据块中.当然,即使你有一个非常好的连接,这需要一段时间.这里的问题是
我可能仍然从WebSockets的错误角度看,可能是发送大量数据的需要不存在,你应该在发送之前自己逻辑地分块/拆分任何数据?
所以我试图实现以下场景:
app.comproxy.com因此,用户必须在同一请求中为代理和应用程序提供凭证,因此他具有不同的用户名/密码对:一对用于对应用程序进行身份验证,另一对用户/密码对用于对代理进行身份验证.
阅读规范后,我不确定我应该如何实现这一点.我想要做的是:
407 Proxy Authentication Required并返回Proxy-Authenticate以下格式的标头:"Proxy-Authenticate: Basic realm="proxy.com".Proxy-Authenticate标题是否正确设置?Proxy-Authorization标头重试请求,该标头是代理的Base64表示username:password.401 Unauthorized标头进行应答.用户由代理进行身份验证,但不是由应用程序进行身份验证.应用程序WWW-Authenticate为响应添加标题WWW-Authenticate: Basic realm="app.com".问题:这个标题值是对的吗?Proxy-Authorization标头和使用Authorization应用程序的Base64表示值的标头重试请求username:password.整个工作流程是否正确?
authentication specifications http basic-authentication proxy-authentication
specifications ×10
http ×3
html ×2
c ×1
c++ ×1
file-upload ×1
javascript ×1
misspelling ×1
node.js ×1
pdf ×1
php ×1
rfc ×1
rspec ×1
semantics ×1
specs ×1
subdomain ×1
validation ×1
w3c ×1
websocket ×1