软件工程

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

14
软件测试实际上是在专业项目上完成的吗?
我从事过多家公司的许多项目,因为我从事开发工作很长一段时间,而且还是承包商。 我估计只有不到20%的项目经过系统的测试。有条理的测试是指除临时无计划测试之外的所有测试。 我还估计,只有不到10%的项目得到了系统的,有条不紊的测试,他们有专门的测试人员作为团队的一部分,测试计划文档,开发人员在其中编写自动化测试,然后他们还跟踪测试范围并衡量结果。 两个问题 您对此问题的估计百分比是多少? 您在软件测试方面的专业经验是什么? 附加说明 由于有条不紊的测试问题可能会得到非常有偏见的答案(人们喜欢吹嘘自己要优于别人),我鼓励其他开发人员(那些没有受到有条理的测试的人)也提供他们的答案,因为否则,看起来测试就像是到处都可以完成...除了在您的公司。
25 testing  metrics 

12
敏捷是否会迫使开发人员花费更多的时间进行实际工作?
从常见的敏捷实践来看,在我看来,他们(有意还是无意?)迫使开发人员花更多的时间在实际工作上,而不是阅读博客/文章,聊天,喝咖啡休息时间和仅仅拖延时间。 特别是: 1)配对编程-最大的工作人员,只是因为当你们两个坐在一起时进行所有拖延操作很不方便。 2)短篇小说-当您必须在一个月之内完成大量工作时,通常很松懈的做法是在前三周松懈,然后在最后一周切换到OMG DEADLINE模式。 而只有很少的块(必须在一天或更短的时间内完成),情况恰恰相反-您觉得时间紧迫,没有机动的空间,您很快就要对任务负责,所以您开始立即工作。 3)团队沟通和凝聚力-当您在缓慢,遥远且安静的环境中表现不佳时,可能会感觉不错,但是当在Scrum会议结束时,每个人都夸耀了自己的成就,而您无话可说,您可能会真正感到自己羞愧。 4)测试和反馈-同样,它可以防止您保持任务“ 99%准备就绪”(实际上是20%左右),直到突然出现截止日期为止。 您是否觉得在敏捷下比在“常规”方法下工作更多?这种压力是否可以通过更舒适的环境和实际完成正确的事情的感觉来补偿?
25 agile 

17
如何在C#中命名私有变量?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 什么是C#中私有变量的最佳实践和最普遍接受的命名约定? private int myInteger; private int MyInteger; private int mMyInteger; private int _myInteger; private int _MyInteger; 神秘的其他选择 您使用哪个?为什么?(我的公司对C#来说还很陌生,我想选择一种最“行业认可”的方法来尝试进入我们的编码标准。)

18
杀手级半独特编程语言功能[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 当学习一种新的编程语言时,有时会遇到一种语言功能,这使您希望自己在其他已知的编程语言中拥有该功能。 在学习时对您来说还很新,您希望其他编程语言具有哪些语言功能。 一个示例是Python或C#中的生成器。其他示例可能包括Python中的列表推导,C ++中的模板或.NET中的LINQ或Haskell中的惰性评估。 您还遇到了哪些其他半独特的语言功能,这些功能是全新的并且对您有启发性?旧的编程语言是否还有其他独特且过时的功能?

4
登录到文本文件或数据库?
什么时候应该使用数据库记录日志,何时使用文本文件? 我看到默认情况下,Web服务器和Web框架(您的应用程序在内部使用)通常(总是?)将请求和错误记录到文本文件中。但是我看到围绕这些服务器和框架开发应用程序的人有时会登录数据库(甚至是应用程序的主数据库,而不是某些外部数据库)。 另外,调试日志和审核日志之间可能会有区别-我已经在此站点的某处阅读了此分类。
25 logging 

9
为什么使用可选的优先选择对变量进行空检查?
举两个代码示例: if(optional.isPresent()) { //do your thing } if(variable != null) { //do your thing } 据我所知,最明显的区别是Optional需要创建一个附加对象。 但是,许多人已经开始迅速采用Optionals。使用可选与空检查相比有什么优势?
25 java  java8 

6
我应该在MVC的哪里放置API请求?
我正在使用MVC模式构建Web应用程序。遵循这种架构,我们可以看到模型中使用了与数据库交互的所有方法。 但是,如果我必须打电话给其他人在网络上公开的服务会怎样?例如,我想访问Facebook API以获取页面的所有关注者,那么,将这些方法放在哪里? 显然,视图不是一个好主意,因为该模块专用于表示,不应使用控制器来检索数据,而模型通常仅用于与数据库的交互。 那么,您能给我一些提示吗?而且,请问我是否对MVC架构犯了一些错误?
25 mvc  api 

2
Github流程上的分叉项目
我最喜欢并想要使用Github上的一个项目。我想做一些不同的事情/删除对我想要/需要的东西没有意义。我也想添加一些东西。 据我了解,我应该分叉该项目,并且我可以进行所需的任何更改并返回到我的分叉。从那里,我还想偶尔将原始项目中的更改引入我的叉子,以便获得最新的错误修复/功能。 我是否认为它应该如何工作?如何从原始项目中引入更改?

5
是否有关于x86汇编的经典书籍?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 有很多关于汇编的书。但是,它们通常处理我不关心的ISA,例如MIPS或ARM。我不处理这些架构;我没有理由尝试学习它们。 但是x86汇编书籍似乎...不存在。 假设例如,我正在尝试构建一个玩具编译器,以生成Windows Portable可执行文件。 是否有一本书是事实上的标准,用于描述有关x86组装的最佳实践,设计方法和其他有用信息?那本书使它与众不同吗?
25 learning  books  assembly  x86 

4
阐明开放/封闭原则
正如我已经解释的那样,开放/封闭原则指出,一旦编写代码,就不应修改(除了错误修复)。但是,如果我的业务规则发生更改,我是否应该修改实现这些更改的代码?我怀疑我不了解该原理,因为这对我来说没有意义。

7
读这些书的正确顺序是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我是一名初级C#开发人员,我在家学习,现在我找到了第一份工作:) 我想买这些书。但是读这些书的正确顺序是什么? 代码完成:软件构建实用手册 干净的代码:敏捷软件工艺手册 实用程序员
25 c#  learning  books 

5
您如何识别算法的“边缘”情况?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 基本上,您如何找出最坏的情况或最好的情况,以及在遇到其他情况之前可能遇到的其他“边缘”情况,因此,如何为它们准备代码?


1
建议创建常数类的最佳实践
此问题已从Code Review Stack Exchange 迁移,因为可以在Software Engineering Stack Exchange上回答。 迁移 5年前。 我的团队成员之间有一个关于常量类声明的辩论。我们将常量变量移到一个单独的类中,如下所示。 public class Constants { public const string StateId = "ST"; public const string CountryId = "CI"; } 我的一些团队成员建议我们将类声明为密封的,以避免覆盖选项,还有一些建议我们将其标记为静态,以避免创建Constant类的实例。 但是,我更喜欢使用静态构造函数将其作为Sealed,因为它将帮助我们在将来需要时初始化只读变量。请给我们一些建议。
25 c#  class 

8
在API请求/响应中使用空字符串,null或删除空属性
通过API传输对象时(如无模式JSON格式),返回不存在的字符串属性的理想方法是什么?我知道这样做的方式有很多,如下面列出的链接中的示例所示。 避免为空 传回null 删除空属性 我确定我过去曾经使用过null,但是没有足够的理由这样做。在处理数据库时,直接使用null似乎很简单。但是数据库似乎是一个实现细节,不应与API另一方有关。例如,他们可能使用无模式数据存储,该模式仅存储具有值的属性(非null)。 从代码的角度来看,将字符串函数限制为仅适用于一种类型(即string(非null))可以使它们更易于证明;避免null也是拥有Option对象的原因。因此,如果产生请求/响应的代码不使用null,那么我猜想API另一侧的代码也不会被强制使用null。 我更喜欢使用空字符串作为避免使用null的简便方法的想法。我听说过使用null并针对空字符串的一个论点是,空字符串表示该属性存在。尽管我理解了区别,但我也想知道这是否只是实现细节,使用null或空字符串是否会在实际生活中带来任何区别。我也想知道空字符串是否类似于空数组。 那么,解决这些问题的最佳方法是什么?它是否取决于要传输的对象的格式(schema / schemaless)?

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.