Questions tagged «specifications»

规范(通常缩写为spec)是材料,产品或服务要满足的一组明确的要求。

5
具有相同id属性的两个HTML元素:到底有多糟?
只需浏览google maps源代码。在标题中,他们有2个div,其中id =“ search”一个包含另一个,并且还具有jstrack =“ 1”属性。有一种形式将它们分开,如下所示: <div id="search" jstrack="1"> <form action="/maps" id="...rest isn't important"> ... <div id="search">... 由于这是google,我假设这不是一个错误。 那么违反此规则真的有多严重?只要您谨慎选择CSS和dom,为什么不重用id一样的类?有人故意这样做吗?如果是,为什么?



3
为什么异常规范不好?
大约10年前回到学校时,他们正在教您使用异常说明符。由于我的背景是其中的一位Torvaldish C程序员,他们顽固地避免使用C ++(除非被迫这么做),所以我只会偶尔散布C ++,并且当我这样做时,我仍然使用异常说明符,因为这就是我所教的。 但是,大多数C ++程序员似乎并不喜欢异常说明符。我已经阅读了各种C ++专家的辩论和论点,例如这些。据我了解,它可以归结为三点: 异常说明符使用与其余语言不一致的类型系统(“影子类型系统”)。 如果您的带有异常说明符的函数抛出了除您指定的内容以外的其他任何内容,则该程序将以不良的意外方式终止。 即将在即将发布的C ++标准中删除异常说明符。 我在这里错过什么还是所有这些原因吗? 我个人的意见: 关于1):那又如何。就语法而言,C ++可能是有史以来最不一致的编程语言。我们有宏,goto /标签,未定义/未指定/实现定义的行为的部落(ho?),定义欠佳的整数类型,所有隐式类型升级规则,特殊情况下的关键字,例如friend,auto ,注册,显式...等等。有人可能会写几本关于C / C ++怪异故事的厚书。那么,人们为什么要对这种特殊的矛盾做出反应呢?与语言的许多其他更危险的特征相比,这是一个较小的缺陷? 关于2):这不是我的责任吗?我可以用C ++编写致命错误的方法有很多,为什么这种特殊情况会更糟?除了编写throw(int)然后抛出Crash_t之外,我还可以声明我的函数返回一个指向int的指针,然后进行一个狂野的,显式的类型转换,然后返回一个指向Crash_t的指针。C / C ++的精神始终是将大部分责任留给程序员。 那优势呢?最明显的是,如果您的函数尝试显式抛出除指定类型之外的任何类型,则编译器将给您一个错误。我认为有关此标准很明确。仅当您的函数调用其他函数而又抛出错误的类型时,才会发生错误。 来自确定性的嵌入式C程序世界,我当然希望更确切地知道函数会给我带来什么。如果有某种语言支持该功能,为什么不使用它呢?替代方案似乎是: void func() throw(Egg_t); 和 void func(); // This function throws an Egg_t 我认为在第二种情况下,调用者有很大的机会忽略/忘记实现try-catch,而在第一种情况下则更少。 据我了解,如果这两种形式之一决定突然引发另一种异常,则程序将崩溃。在第一种情况下,因为不允许它抛出另一个异常,在第二种情况下,因为没有人期望它抛出SpanishInquisition_t,因此该表达式不会在应有的位置被捕获。 如果是后者,在程序的最高级别进行一些最后的捕获似乎并没有比程序崩溃更好的方法:“嘿,程序中的某处引发了一个奇怪的,未处理的异常”。一旦远离异常引发的地方,您将无法恢复程序,唯一可以做的就是退出程序。 从用户的角度来看,如果他们从操作系统中收到一个错误消息框,说“程序终止。地址为0x12345的Blablabla”,或者从您的程序中获得一个错误消息框,指出了“未处理的异常:myclass。 func.something”。该错误仍然存​​在。 随着即将到来的C ++标准,我将别无选择,只能放弃异常说明符。但是,我宁愿听到一些可靠的论据,说明它们为什么不好,而不是“圣洁已经说过了,事实就是如此”。也许对他们的争论比我列出的要多,或者对他们的争论比我所意识到的还要多?

3
使用Python的“ PEP-302新导入挂钩”的经验[关闭]
我是Ruby(CRuby)的开发人员之一。我们正在开发Ruby 2.0版本(计划于2012年2月发布)。 Python具有“ PEP302:新导入挂钩”(2003年): 该PEP建议添加一组新的导入挂钩,以更好地自定义Python导入机制。与当前的导入钩子相反,可以将一种新型的钩子注入到现有方案中,从而可以对如何找到模块以及如何加载模块进行更精细的控制。 我们正在考虑将类似于PEP302的功能引入Ruby 2.0(CRuby 2.0)。我想提出一个可以说服Matz的建议。当前,CRuby只能以标准方式从文件系统加载脚本。 如果您对PEP 302有任何经验或考虑,请分享。 例: 这是一个很棒的规格。无需更改。 差不多不错,但是有这个问题... 如果我可以回到2003年,那么我会将规范更改为...


1
如果规格有缺陷,是否仍应遵守?
我被指派为我的雇主的应用程序之一与客户开发的外部系统集成。我们客户的集成规范存在一些与安全性有关的明显缺陷。这些缺陷将允许未经授权的用户访问系统以查看受限制的数据。 我已经指出了缺陷及其潜在的安全风险(如果按设计实施它们),并提供了没有缺陷的替代方法,但是(总之)客户已经告诉他们“按照我们指定的方式进行操作”。 程序员是否有道德责任不实施具有已知安全风险的代码?在什么时候,客户的要求超过我们作为软件开发人员创建安全应用程序所承担的道德责任?

2
程序员在购买计算机时应寻求哪些规格?或者,我应该买什么计算机?[关闭]
我希望购买一台专为编程设计的新计算机。 我想自己为学习体验构建它,但也愿意购买它。 基本上,我已经下载了许多专用于编程的文件,它们太大了,以至于a)我的计算机容量已满,b)我4岁的计算机速度非常慢。 具体来说,我喜欢数据库(Oracle / PostGreSQL,Mongo,Hadoop)和Java,但是喜欢学习所有可能的语言。

7
非技术人员如何学习为小型项目编写规范?
非技术人员如何学习编写小型项目的规范? 我的一个朋友正在尝试将统计项目的某些开发外包。 特别是,他在excel中做了很多工作,并且希望将脚本的创建工作外包出去,以手工完成现在的工作。 但是,我的朋友是非技术性的。他不擅长编写技术规范。 当他确实编写规范时,将按照您描述在excel中做某事的方式编写(转到此单元格,然后将值复制到该单元格)。它也太冗长,并且多次进行示例。我不确定他是否恰当地描述了极端情况。 他外包的第一个项目失败了。我认为他过多地描述了一些细节,但未充分说明极端情况。他和/或他雇用的编码人员没有仔细考虑并提出适当的问题。我不确定。我与他进行即时通讯,花了半个小时才找到一个描述,该描述本该花了五分钟或更短的时间来描述。最后,我为他编写了脚本,但没有检查为什么他的编码器处理失败。 他已向我寻求帮助。但是,我拒绝参与,因为按照他的规范并将其转换为明确的要求比执行明确的规范要多十倍的工作量。 他学习的正确方法是什么?他有可用的资源吗?他有什么方法可以和编码员一起从小型低压实践项目中学习? 他的大部分脚本都是面向统计和数据处理的。例如,使用此列并对其求平均值。在这种情况下删除这些行。因此,挑战与指定网络应用程序不同。

5
我应该用什么语法时态写规范?
我们目前正在以两列格式编写功能和技术规范;摘要句子和技术细节。细节通常是指带有图表,布局设计等的附录。 但是我正在努力用什么时态来写它: 以过去的时态好像工作已经完成了,我努力地展示出现有工作的重点扩展。需要完成的将来时态X听起来很像一个待办事项列表或时态中立,因为它要么已经完成,要么已经完成。 更进一步的混淆是,英语不是第一语言的人们可能会阅读本规范。

9
如何将客户端从UI原型转移到一组实际需求?
假设您得到了一个由25个屏幕组成的应用程序视觉状态的模型。期望这足以使我们确信我们可以将其开发并作为最终应用程序移交给原始利益相关者或客户,他们将对此感到满意。自然,您最终将要再次向利益相关者询问很多用于UI的问题,这很浪费。 但是,我有很多次发现这还远远不够,在开发应用程序的过程中,由于我们正在复制一个接口,最终使客户不像他们最初看起来的那样满意,这一要求变得模糊不清当我们要求他们提供创建UI的所有信息时。 我只是不确定要提出什么要求,我试图做到具体,要求要求和对总体目标的理解,但是我不知道我应该提出什么要求。如果我现在才开始,那么重新散布导致进入UI的所有信息将浪费大量时间,在此阶段,客户最初失去的许多重要原因将丢失。 我如何让人们理解我们无法通过要求用户为我创建可操作的东西来锁定基于UI模型的需求? 为了正确执行为最终用户开发应用程序的任务,理想情况下从什么开始?

5
在开始开发项目之前要计划什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 假设我已经从客户那里收到了一个项目的规范,现在是时候开始开发它了。通常,我只是从第一个模块开始(通常是用户注册),然后从一个模块进入下一个模块。我只是在即将开始模块工作之前就在脑海中计划,但在此之前没有任何计划。 但是,我认为最好在编写代码之前仔细阅读规格并计划系统的工作方式,例如主要组件是什么,它们将如何交互等。我只是不确定我应该怎么计划。 为了更好地了解我的要求,我应该如何- a)将项目分为几个部分, b)计划他们的交互,例如我应该做类图,编写单元测试等吗? 有任何想法吗?

1
如何快速有效地编写功能说明
因此,我只是在这里阅读了Joel的一些精彩文章。(写于2000年!!)我阅读了全部4部分,但是我正在寻找一些系统的方法来编写我的规范。 我是唯一一个孤独的开发人员,他为一家非常著名的金融公司从事这个相当复杂的应用程序(或应用程序系列)。 我从来没有做过这么严重的事情,我开始写一些类似糟糕的规范之类的东西,这浪费了我很多时间。 我还为客户制作了3个样机样的东西,所以我对他们想要的东西有很好的了解。还发布了预览版(带有最基本工作流程的废弃应用程序),并且我仅编写和测试了一些非常核心/基本的系统。 我认为到目前为止,我一直犯的错误不是写详细的规范,所以我现在就开始做。 所以整个事情包括 MVC网站(用于管理员和数据查看) 2个Silverlight模块(用于2个特定任务) 1个桌面应用程序 我的时间,资源都非常短缺,需要快速完成此工作,还需要确保这些人同样快速,轻松地阅读。 那么如何做我去一下,我正在寻找任何提示,任何现实世界的东西,怎么做你们平时做呢? 您是否对每个对话框/表单/页面都进行了模拟筛选? 我正在考虑制作一个虚拟的ASP.NET Web窗体项目,然后在文件夹中填充HTML文件并使它看起来像我的MVC URL结构。 然后在网站的规范中列出一个部分,并为我与Screenie在一起的每个URL编写一个页面。 对于我赢窗体应用程序,我做了有些演示赢形式的项目,我会再放入一个对话框或结构的一切,我会在真正的应用程序,然后截屏呢? 对于这个问题有一些背景知识。我一直是一个疯狂的跳到代码的家伙,工作正常,但对于我正在开发的应用程序,它不仅复杂,而且对于一家非常知名的大型公司来说,我必须得到它对! (到目前为止进展顺利,今天我给出了很多人喜欢的预览版本的演示!= D) 如果我确实获得了最初的设计权利,那么我将对该公司也有一个不错的生意,已经有很多人在考虑新的“很棒的”功能,他们准备为此付费。

2
Joel考试的最新情况?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 我想说服我的合作伙伴,我们应该有一个规范,并且应该在编写新代码之前修复错误。我应该参考Joel考试吗?您是否认为Joel测试是最新的?我认为没有规范是不好的项目管理。您是否同意Joel测试?你能加些东西吗?它没有提到例如开源。

8
让用户自行收集需求还是指导他们?
我确信每个人都经历过这样的事情。您与有项目的客户开会。他们没有/很少有需求,对他们想要/需要的东西最模糊的理解。在这一点上,似乎有两个选择: 1)告诉用户,“好吧,如果您什至无法描述它,我也无法为您提供帮助。为什么您知道自己想要的东西后几个星期不回来呢”。 2)与用户会面几次,并通过良好的ole Socratic方法指导他们进行操作,帮助他们弄清他们想要的东西。“您需要跟踪X吗?”,“ Y怎么样?”,“是否需要功能Z?” 使用第一个选项,您不会被困于他人的工作或获得心理能力,但是,用户可能永远不会向您展示连贯的规范,或者随着期限的临近,他们可能会花很长时间。使用第二种方法时,您会浪费大量时间成为业务分析师,并且不得不将很多业务知识塞进脑海中,您可能永远不会再使用它,但是您更有可能提出一种规范,有道理。 对我来说,这是发展中最具挑战性的方面之一,我感到我并不孤单。根据您的经验,这些选项中的哪一个更有效?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.