Tag: 规范

Java中variables或方法的最大名称长度

Java中是否有类/方法/variables名称的最大长度? JLS似乎没有提到这一点。 我知道从代码可读性和可维护性angular度来说,很长的名字是有问题的,但出于好奇,有一个限制(我猜可能是文件系统的最大文件名限制类名的限制)。

最大方法名称长度

有没有人碰巧知道在你select的编程语言中方法名的最大长度是多less? 我打算把这个问题作为一个C#的具体问题,但我认为这将是很好的知道各个方面。 还有什么因素: 语言规范是否限制了这一点? 编译器限制它到什么地步? 在32位和64位机器上有区别吗?

HTTP规范:代理授权和授权标头

所以我试图实现以下scheme: 应用程序受基本身份validation保护。 假设它在app.com上app.com 应用程序前面的HTTP代理也需要身份validation。 它在proxy.com上proxy.com 因此,用户必须为同一请求中的代理和应用程序提供凭证,因此他具有不同的用户名/密码对:一对用于对该应用程序进行身份validation,另一个用户名/密码对以对代理进行身份validation。 在阅读规范后,我不太确定我应该如何实现这一点。 我想要做的是: 用户在没有任何authentication的情况下向代理发出HTTP请求。 代理服务器应答“ 407 Proxy Authentication Required并以"Proxy-Authenticate: Basic realm="proxy.com"的格式返回Proxy-Authenticate标头。 问题 :这个Proxy-Authenticate头是否正确设置? 客户端然后使用Proxy-Authorization标头重试请求,即代理username:password的Base64表示。 这次代理validation请求,但是应用程序回答401 Unauthorized头。 用户由代理进行了身份validation,但不是由应用程序进行身份validation。 该应用程序将WWW-Authenticate头添加到响应中,如WWW-Authenticate: Basic realm="app.com" 。 问题 :这个头值是正确的吗? 客户端再次重试该请求,同时使用Proxy-Authorization标头和Authorization标头,该应用程序的username:password使用Base64表示。 此时,代理成功validation请求,并将请求转发给validation用户的应用程序。 客户终于得到回应。 整个工作stream程是否正确?

有没有一种有效的方法来包装一个HTML元素的DT和DD?

我希望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> 但是,由于距离我最近的东西,我不是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> 我想知道如果有人有什么其他的想法可以做到这一点? 此外,项目将被分组的原因是因为它们在被标记的内容中被可视化地分组。 设想一个字典页面,带有一个单一的定义列表,其中每个定义位于左侧浮动框内。 我一直遇到这种情况。

分块WebSocket传输

因为我在更经常的基础上使用WebSocket连接,所以我对引擎盖下的工作感兴趣。 所以我在一段时间内深入了解无尽的规格说明文档,但到目前为止,我还是无法find有关分stream传输stream本身的东西 。 WebSocket协议将其称为dataframe (它描述纯数据stream,因此也称为非控制帧 )。 就我所了解的规范而言,没有定义的最大长度和没有定义的MTU(最大传输单元)值,这又意味着单个WebSocketdataframe可能按规范(!)包含无限数量的数据(如果我错了,请纠正我,我仍然是这个学生)。 读完之后,我立即安装了我的小型节点 WebSocket服务器。 由于我有很强的Ajax历史(也是在stream媒体和Comet上),我的期望本来就是“ 在数据传输时必须有一种交互式的读取方式 ”。 但是我错了,不是吗? 我从小的4kb的数据开始。 服务器 testSocket.emit( 'data', new Array( 4096 ).join( 'X' ) ); 并像预期的那样,作为一个数据块到达客户端 客户 wsInstance.onmessage = function( data ) { console.log( data.length ); // 4095 }; 所以我增加了有效负载,而且我实际上又在onmessage ,在某个时候,客户端的onmessage处理程序将重复发射,从而有效地传输数据。 但令我震惊的是,它从来没有发生( 节点服务器 ,在Firefox , Chrome和Safari客户端testing)。 我最大的有效载荷是80 MB testSocket.emit( 'data', new Array( 1024*1024*80 ).join( 'X' ) […]

编写爱好项目的规范是他们完成的唯一途径吗?

这是我想知道的。 我们3个月大的婴儿每天晚上都让我们睡觉,然后跳到我的电脑,开始编写我的爱好项目。 我有大约20个不同types的项目,从C ++游戏到Web应用程序,还有一些对开源项目的贡献。 这是一个真正的激情,已经很多年了。 然而,当我回头看时,我发现我没能完全完成我的一个爱好项目。 我一直在做原型和设置最重要的function,但随着时间的推移,而不是完成我的项目,我最终转向另一个似乎“如此之冷”的项目。 因此,我通常最终得到的是没有结局和故事的错误游戏和不完整的游戏,具有最快的PolygonDraw例程的3D引擎,但是没有实现其他任何东西等等。列表很长。 我觉得我必须写出未完成的乒乓球超过一百倍! 我被告知,补救措施是为我的爱好项目编写规范。 一方面,我写了很多规范在工作。 我知道他们是如何定义产品的路线图,并保持在计划中。 另一方面,规格和爱好项目似乎不太合适! 在我看来,构build游戏的学习曲线实际上是让游戏变得有趣的。 不是游戏本身。 因此,失去重构整个引擎的乐趣,创造最无用function的乐趣,等等… 所以问题来了:你有没有为你的爱好项目编写规范? 那么他们和那些下class的人有什么不同呢? 你如何设法完成你的爱好项目? 我会很高兴知道,当我在我的新项目上工作:钢琴奏鸣曲发电机:)

mongodb中的数据重复太多了?

我是新来的整个NOSQL的东西,最近一直对mongoDB感兴趣。 我从头开始创build一个新的网站,并决定将MONGODB / NORM(用于C#)作为我唯一的数据库。 我一直在阅读很多关于如何正确devise你的文档模型数据库的问题,而且我认为我的devise在很大程度上是相当成功的。 我在我的新网站大约6个月,我开始看到数据重复/同步的问题,我需要处理一遍又一遍。 从我所读到的,这在文档模型中是可以预料的,而对于性能来说它是有意义的。 IE浏览器将embedded式对象粘贴到文档中,因此读取速度快 – 无需连接; 但是当然你不能总是embedded,所以mongodb有这个DbReference的概念,它基本上和关系DB中的外键类似。 所以这里有一个例子:我有用户和事件; 既获得自己的文件,用户参加活动,活动有用户与会者。 我决定将有限数据的事件列表embedded到用户对象中。 我也将用户列表embeddedEvent对象中作为他们的“参与者”。 现在的问题是我必须保持用户与同样embedded在Event对象中的用户列表同步。 正如我所读到的,这似乎是首选方法,而NOSQL方式是做事情的。 检索速度很快,但后退是当我更新主要的用户文档,我需要也进入事件对象,可能find所有引用到该用户,并更新。 所以我的问题是,这是一个很普遍的问题,人们需要处理? 在开始说“也许NOSQL策略不符合我在这里要做的事情”之前,这个问题要发生多less? 什么时候不需要做连接的性能优势变成了一个劣势,因为你很难在embedded对象中保持数据同步并对数据库执行多次读取操作?

Java中参数执行顺序的保证?

在C给出以下函数调用: fooFunc( barFunc(), bazFunc() ); 没有指定barFunc和BazFunc的执行顺序,因此可以在C barFunc()之前的bazFunc()或bazFunc()之前barFunc() 。 Java是否指定了函数参数expression式的执行顺序,还是像C那样未指定?

enum.values() – 是确定性返回枚举的顺序

我有一个枚举SOME_ENUM : public enum SOME_ENUM { EN_ONE, EN_TWO, EN_THREE; } SOME_ENUM.values()总是按照枚举声明的顺序返回枚举: EN_ONE, EN_TWO, EN_THREE ? 这是一个规则还是不能保证在下一个JDK版本中不会更改?

任何理由写在C#中的“私人”关键字?

据我所知, private是C#中的默认设置(这意味着如果我不写public , protected , internal等,默认情况下它是private的)。 (如果我错了,请纠正我) 那么,写这个关键字的原因是什么,或者为什么成员存在呢? 例如,当一个事件处理程序是自动生成的,它看起来像这样: private void RatTrap_MouseEnter(object sender, CheeseEventArgs e) { } 但为什么它甚至写私人,如果这是暗示和默认? 只是让新手开发人员(谁不知道这是C#默认)知道它是私人的? 或者编译器有什么不同? 此外,有没有写“私人”(单独) 会改变会员的可及性?