软件工程

针对在系统开发生命周期中工作的专业人士,学者和学生的问答


10
承包商-可接受的付款条款?
我想知道我作为承包商是否做了正确的事情。基本上我已经进入第三个月了,而我目前的客户在第一个月就把付款弄乱了,我才发现他们又迟到了第二个月的付款时间。 如果这不是我的第一次合同经验,那么我如果没有财务状况也不会太糟。但作为校长,我走了出去,并告诉他们在他们解决工资之前,我不会回去。 我的一部分感觉这并不是一件很专业的事情,但我也不觉得他们连续两次把我的付款弄乱是很专业的。 我做出了正确的决定吗?我仍然想为这些人工作并享受这份工作,但是我要毕生需要财政,而且我负担不起像这样的薪水。 我试图将问题表达为围绕承包商对错误对待客户的行为的关注,并且由于到目前为止已经发布了一些答案,这是一个很好的讨论。在不同的主观情况下,答案都很好。 更新: 为了回答某些答复,设置为我->伞公司->客户。我是Umbrella Company的一名员工,其条款是除非客户付款,否则我不会得到报酬。因此,当我发现客户要延迟支付Umbrella公司的款项时,我很不高兴。 另外,我确实相信在这种情况下,简单地走出去是一个不好的举动。解决该问题的最专业方法是让我的直属经理知道我的问题,然后让他解决。相反,他的老板和其他人发现他之前已经走了很远的路,而他却任由废话处理。在失去控制之前对其进行处理的机会。 如果我仍然对他们的解决方案不满意,那么我可以告诉伞公司我不高兴并且准备走出去,然后他们可以以更专业的方式向我建议我的选择。后来我发现,还有很多其他更专业的方法来处理此问题。但是,我没有待很久,对以前从未遇到过的情况产生了非常激动的反应。我坚信,要做出更专业,更成熟的反应,除了走出去外,什么都做不到,这给我的老板,公司和我自己的其他人造成了困难。 到目前为止,绝对是很好的答案。谢谢大家的有经验的建议。

6
使用EntityFramework反对什么参数?[关闭]
我当前正在构建的应用程序一直在使用存储过程和手工制作的类模型来表示数据库对象。有人建议使用Entity Framework,由于我对项目的了解并不多,因此我正在考虑切换到该框架。我的问题是,我觉得为EF争论的人只是在告诉我事情的好处,而不是坏的事情:) 我主要关心的是: 我们希望使用DataAnnotations进行客户端验证,这听起来好像我还是必须创建客户端模型,所以我不确定EF是否会节省那么多编码时间 我们希望通过网络时使类尽可能的小,并且我读到使用EF通常会包含不需要的额外数据 我们有一个跨多个数据库的复杂数据库层,我不确定EF是否可以处理此问题。我们有一个Common数据库,其中包含诸如Users,StatusCodes,Types等内容,以及针对应用程序不同实例的主数据库的多个实例。SELECT查询可以并且将在数据库的所有实例之间进行查询,但是用户只能修改当前正在使用的数据库中的对象。他们可以在不重新加载应用程序的情况下切换数据库。 对象模式非常复杂,通常涉及很多联接 EF的参数为: 并发。我不必在检查中编写代码以查看记录是否在每次保存之前都已更新 代码生成。EF可以为我生成部分类模型和POCO,但是我并不肯定这会为我节省很多时间,因为我认为我们仍然需要创建客户端模型进行验证和一些自定义解析方法。 由于我们不需要为每个数据库对象创建CRUD存储过程,因此可以加快开发速度 我们当前的体系结构由WPF服务和WPF桌面客户端组成,该WPF服务通过参数化的存储过程处理数据库调用,从WCF服务和WPF客户端传入/传出的POCO对象,以及将POCO转换为类模型以进行验证和验证的WPF桌面客户端本身。数据绑定。 所以我的问题是,EF是否适合这样做?我没有意识到关于EF的陷阱吗?

5
OpenID真的那么糟糕吗?
我在Quora上看到了这个问题,很多人似乎都同意OpenID不好,甚至可以说: OpenID是我一生中见过的最糟糕的“解决方案”,这个问题大多数人并没有 然后,我看到涉及该问题的文章和推文说OpenID丢失了,Facebook赢了。 这是可悲的阅读,因为我很喜欢的OpenID(或至少它的设计思想)。我真的讨厌再为页面输入另一个登录名/密码(无论如何我都会忘记的)-这对我来说是一个非常严重的问题,我知道很多人都遇到同样的问题。因此,我认为OpenId是一个很好的解决方案,但是我不确定。 所以问题是我还是应该去实施OpenID还是不值得?从用户角度来看,最可靠,最方便的方法是识别和认证用户?

11
一个程序员的Scrum?[关闭]
在我很小的公司中,我被誉为“ Windows专家”,其中包括我自己,担任销售和培训职位的机械工程师以及担任设计,开发和支持职位的公司总裁。 我的角色与一般情况相同,但主要是我设计和实现产品上需要完成的所有编程,以便我们的产品可以在任何最新版本的Windows上运行。 我刚刚看完了网络广播中对Scrum范例的高级概述。我的问题是:鉴于我的开发工作项目通常是在很高的层次上给出的,例如“产品国际化和本地化”,是否值得我花更多时间来学习这种产品开发方法。 如果是这样,您将如何建议改编Scrum以仅使用一名程序员?有哪些工具(基于云的工具或其他工具)对此有用? 如果不是,您会建议一个程序员每天采用哪种方法来组织他的工作?(也许问题简化为那个简单的问题。)

13
在担任职位之前,如何确定潜在雇主守则的质量?[关闭]
根据我的经验,在您开始为公司工作之前,您没有机会查看代码库(我已经问过,出于保密原因,每个人都一直拒绝,我认为这很公平),所以在面试过程中,您是否想问最重要的问题以找出代码处于哪种状态(毕竟,如果它是狗,那么您将成为每天不得不走路的可怜的不幸者)? 更新: 清单:询问; 什么他们认为代码库。而且当您这样做时,请密切注意面部表情及其反应所需的时间。[阿农] 公司的CMM级别[DPD]是多少(如果您听到第5级的运行情况,则以其他方式运行[Doug T]) 他们使用什么生命周期[DPD](如果您确实听到了“敏捷”,那就是当您开始问一些有穿透性的问题,试图通过“敏捷”来弄清楚它们是指“敏捷还是牛仔编码” [Carson63000]) 他们使用什么工具来评估代码质量?[DPD] 他们使用什么工具进行开发?[DPD](寻找重构工具和连续构建服务器) 他们使用哪种源代码(版本控制)系统,以及良好的后续措施是询问为什么要使用它。[Zachary K]。 他们的测试程序是怎样的?[Karl Bielefeldt](特别是对于使用模拟框架并通过已建立的框架(例如NUnit / JUnit)强调彻底的自动化单元测试的团队;不要被那些不使用测试驱动的开发TDD的团队所推迟,而是如果他们不认为测试是整体软件开发不可或缺的组成部分,请保持警惕。请寻找有专门测试人员的团队。) 给新开发者什么样的任务?对于经验丰富的开发人员?[Karl Bielefeldt] 有多少人从事一个项目?[Karl Bielefeldt] 是否允许重构?鼓励?[Karl Bielefeldt] 正在考虑或最近进行了哪些与质量相关的过程或体系结构更改?[Karl Bielefeldt] 个人在模块上有多少自治权?[Karl Bielefeldt] 您将要开发较新的项目(未开发的项目)还是旧项目(未开发的项目)?(绿地开发通常更有趣,并且问题更少,因为您无需清理别人的错误)。 组织或团队中员工离职率高吗?(这通常表示代码质量较低)[M.Sameer] 您自己的一些编程问题;但请避免看起来像个混蛋。[活泼的] 开发人员如何进行协作,团队之间如何共享知识?(这应该与您的个性相匹配;我想说,单人和双人工作的混合可能是最好的,比例要符合您的社交需求) 他们的数据库与第三范式(3NF)的距离有多近?如果偏离了何处?为什么?(如果他们说“ 3NF ???”,请离开。如果没有,并且可能有充分的理由不这样做,请找出它们是什么)。 注意: 我接受了Anon的答案,因为大约一周后,社区认为这是最好的答案-我认为这表明您只是需要以某种方式开发第六感。但是,我认为每个人都有话要说。

17
轮换首席开发人员是个好主意还是坏主意?
自从几个月前成立以来,我在一个团队中一直处于扁平状态的团队工作。我的经理是非技术人员,这意味着我们整个团队都要负责决策。 我的经理开始意识到,拥有一名首席开发人员有很多好处,无论是出于他的利益(一个任务的单一联系点和一个责任方),还是出于我们的利益(纠纷解决,有组织的技术指导等)。 因为团队很平淡,所以一个担心是选择一名主要开发人员可能会阻碍其他开发人员。一个非开发人员向我的经理建议,轮换首席开发人员是避免此问题的一种可能方法。一位开发人员将领导一个月,另一位领导下一个,依此类推。 这是一个好主意吗?为什么或者为什么不? 请记住,这意味着所有开发人员-所有开发人员都是好人,但不一定同样适合担任领导职务。 如果不是这样,我如何建议我们避免这种方法,而似乎仅仅是出于自私的原因?

4
新BSD许可证中“不认可条款”的目的是什么?
注意:此问题与“令人讨厌的BSD广告条款”无关。新BSD许可证不包含该条款,并且与GPL兼容。 我正在为自己的项目在New BSD许可证和MIT许可证之间进行选择。它们基本相同,只是BSD许可证包含以下子句: 未经明确的事先书面许可,<组织>的名称或其贡献者的名称均不得用于认可或促销从该软件派生的产品。 为什么有人要使用此子句?如果有人使用您的代码制作了著名的软件,那臭名昭著怎么办?此外,是否会决定用户可以使用或不能使用您给定的名称做哪些事情超出了知识产权的范围?

11
您是否将LISP(的方言)用于实际应用?在哪里,为什么?[关闭]
尽管LISP(以及方言,例如Scheme,Common LISP和Clojure)是相当不错的编程语言,但它们并没有获得太多的行业支持。(目前看来,他们正在获得一些吸引力)。 现在,这与问题没有直接关系,您将在生产程序中使用LISP方言吗?什么样的程序,为什么?还包括与其他代码(例如C)集成在一起的用法,但是请注意,这就是您在回答中所要表达的意思。广泛的概念是首选,但具体的应用也很不错。

4
您如何决定使用哪种数据库?
我真的不喜欢“ NoSQL”这个名字,因为它不是很具描述性。它告诉我数据库不是什么,我对数据库是什么更感兴趣。我真的认为该类别实际上包含数据库的几个类别。我只是想大致了解每个特定数据库最适合的工作。 我想做出的一些假设(并要求您做出): 假设您有能力雇用任何数量的优秀工程师,这些工程师对已经存在的每种数据库技术都具有同等的经验。 假设您具有支持任何给定数据库(包括可以支持该数据库的可用服务器和系统管理员)的技术基础架构。 假设每个数据库都免费提供最佳支持。 假设您有100%来自管理层的支持。 假设您有无数金钱可以解决这个问题。 现在,我意识到上述假设消除了选择数据库时涉及的许多有效考虑因素,但是我的重点是在纯粹的技术层面上确定哪​​种数据库最适合该工作。因此,考虑到上述假设,问题是:每个数据库(包括SQL和NoSQL)对哪些作业而言是最佳工具,为什么?
31 sql  database  nosql 

12
在哪里找到客户?[关闭]
我的主要领域:Web开发。 当然,我不希望有人放弃他们的“金矿”之类的东西,但是我正在努力寻找应该在哪里宣传我的服务。我还有另一位与我合作的开发人员,我们有很多快乐的客户-在自由网站上。 事实是,当您被荒谬的价格所吸引时,自由职业者的网站似乎只会使您丧生。我想吸引那些更关注质量和问责制而不是价格的客户。 有什么建议吗?我对此感到迷茫。 编辑:增加了200的赏金-我所有的“声誉”。编辑:增加了第二个赏金50 我确实听说过一个新主意。做一个开源项目,如果有的话,在他们的“受信任的开发人员”部分中成为特色。输入?

15
程序员可以从建筑业中学到什么?[关闭]
在与同事讨论软件设计和开发原理时,我注意到类比的最常见来源之一是建筑行业。我们构建软件,并将设计和结构视为体系结构。 学习(或教导)的最佳方法之一是通过分析类比- 从构造中还能得出哪些其他类比? (是否已经在软件中普遍使用)。 请提供有关编程概念与构造概念的相似之处的描述或您的个人经验。 [ 取材于艺术和人文科学的编程概念学分]

14
您观看过的开发人员中最鼓舞人心的演讲是什么?[关闭]
请直接链接到它。 必填: 仍在线可用(请直接链接到它) 必须是现任或前任开发人员的演讲 演讲者的受欢迎程度无关紧要 目标受众应该是其他开发人员 不需要主题是编程(任务)。我正在寻找的是一般在P.SE而不是SO中开发的主题。 解释它为什么令人鼓舞 (请以英语为母语的人,编辑我的问题)

5
软件通才的职业道路是什么?[关闭]
一个软件专业的问题激发了这个问题。 与专家相比,软件通才有多有价值? 当我说通才时,我指的是可以承担从需求到部署的项目,并且胜任软件开发生命周期的所有阶段的人员。可以将所有专业整合在一起的人。专家通才知道自己的弱点,并依靠专家来弥补缺陷,例如:Oracle专家或UX专家。 您认为软件通才的最终职业道路是什么?

8
是否应该弃用除UTF-8(也许还有UTF-16 / UTF-32)之外的字符编码?
我的烦恼正在研究如此众多的软件项目,这些项目具有大量的字符集支持代码。不要误会我的意思,我全都出于兼容性的考虑,并且我很高兴文本编辑器允许您打开并保存多个字符集的文件。令我烦恼的是,如何将非通用字符编码的泛滥称为“适当的Unicode支持”而不是“问题”。 例如,让我选择PostgreSQL及其字符集支持。PostgreSQL处理两种类型的编码: 客户端编码:用于客户端和服务器之间的通信。 服务器编码:用于将文本内部存储在数据库中。 我可以理解为什么支持很多客户端编码是一件好事。它使不在UTF-8中运行的客户端无需进行转换即可与PostgreSQL通信。我不明白的是:为什么PostgreSQL支持多种服务器编码?数据库文件(几乎总是)从一个PostgreSQL版本到另一个版本不兼容,因此,跨版本兼容性不是这里的问题。 UTF-8是唯一可以对所有Unicode代码点进行编码的标准,兼容ASCII的字符集(如果我记错了,请告诉我)。我在阵营中认为UTF-8是最好的字符集,但我愿意忍受其他通用字符集,例如UTF-16和UTF-32。 我认为所有不通用的字符集都应弃用。他们不应该有任何令人信服的理由吗?

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.