软件工程

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

4
是否有与“ FizzBu​​zz”类似的选择客户?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 这是给自由职业者的。 在过去的全职员工生涯中,我参与了招聘并采访了许多开发人员。我了解到,看到开发人员解决问题(无论多么小)要比谈论经验等有价值得多。 现在,我是一名自由职业者/顾问。更好的事情之一是可以自由选择我想从事的工作。但是现在,几年过去了,我已经(艰难地)了解到有些客户不值得花这笔钱。它们可能是善变的,不合理的,苛刻的,并且很难以令人沮丧的方式使用。 所以我一直在想:有没有更好的方法来“采访”客户?显然,任何方法都必须微妙,因为客户端可能不希望被测试。但是,是否有“ FizzBu​​zz ” 的类似物会告诉我应该登录还是慢慢退出?

6
数据库和单元/集成测试
我曾与某人讨论过Web应用程序的单元/集成测试,但我对1个核心思想存在分歧。问题是我正在谈论的人认为,单元测试工作所在的数据库应该在其中预先填充数据,并且我认为在执行测试之前和之后它应该完全为空。 我对数据库中预先填充的数据的担心是,无法确保数据保持良好状态。测试本身将要在数据库中创建,删除和修改数据,因此我真的看不到在开始测试之前在数据库中存储数据是一件好事。 似乎最好的测试数据库功能的方法是进行以下设置: 在测试实际运行之前的“设置”阶段,您首先要截断数据库中的所有表 然后,插入将要运行的测试用例所需的所有数据 然后运行并验证测试用例 然后在“拆卸”阶段,您再次截断数据库中的所有表 我没有其他更好的方法来确保要测试的数据是可以测试的好数据。 我在这里想念什么吗?这不是测试数据库相关功能的最佳方法吗?始终存在于数据库中的预填充数据库是否有好处(即使在开始测试之前或在测试完成之后)?对想法进行不同解释以更好地阐明我的观点的任何帮助也将是很棒的(也就是说,如果我的观点是有价值的)。

5
是否有科学严谨的编码风格原则研究?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 编码风格原则(例如单出口原则)真的是件好事吗?总是还是只是有时候?到底有什么不同? 无论您有什么意见,这些显然都是主观的问题。还是他们? 是否有人试图对编码样式原则进行客观,科学严谨的研究? 我无法想象有人会对可读性进行双盲研究,但也许可能是双重无知-将不了解所学原理的学生作为学科,并使用非程序员来管理这项研究。

8
Ruby on Rails的缺点和警告[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 这不是RoR打击的开端-老实! 我正在学习Ruby和Rails框架。从表面上看,它看上去很酷,与PHP相比,它是一种很棒的体验。(实际上,这让我想起了使用C#和.NET的美好时光。) 但是,进入这个过程,我对这种框架或语言没有任何经验,而且我很好奇-开始时希望知道哪些当前的缺点或事情? (也许这应该做成社区Wiki?)

1
雷迪斯vs Zookeeper
考虑到这两个服务器的用途完全不同,将它们进行比较似乎很愚蠢。但是,如果您考虑一下,他们可以做很多类似的事情:存储配置数据,分布式锁定,排队等。 我有一个Redis实例,该实例用于一些与生产相关的事情,但是想在服务器之间进行一些简单的同步(大多数配置更改不需要推升代码,也不需要在服务器之间进行简单锁定)。什么是动物园管理员给我的Redis不会?

4
为什么Prolog对AI编程有好处?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我正在研究用于AI编程的编程语言。我知道LISP在我的大学中是作为AI编程语言教授的,但Prolog很少教授。我有点喜欢Prolog,但是我不是AI程序员,所以我认为我没有资格自己判断为什么Prolog比LISP / Scheme更好。我想知道程序员是否对此主题有任何投入。 您如何辩称Prolog对AI编程会更有用? 我一直在研究它,而我一遍又一遍地看到的基本论据是,由于思想是用逻辑表达的,而Prolog是一种逻辑编程语言,因此Prolog可以轻松构建决策机器,或达到某种程度的效果。 AI中的Prolog还有什么可以说的吗?

11
为什么前缀列名称被认为是不好的做法?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 根据一个流行的SO帖子,给表名加上前缀被认为是不好的做法。在我公司,每列均以表名作为前缀。这对我来说很难读。我不确定原因,但这实际上是公司的标准。我不能忍受命名约定,但是我没有文档来支持我的推理。 我所知道的是,阅读AdventureWorks非常简单。在这个我们公司的数据库中,您将看到一个表Person,它可能具有列名: Person_First_Name 甚至 Person_Person_First_Name(不要问我为什么看到2x人) 为什么前缀列名被认为是不好的做法?下划线在SQL中也被认为是邪恶的吗? 注意:我拥有Pro SQL Server 2008-关系数据库的设计和实现。欢迎引用该书。
25 sql 

4
在MVC中,模型应处理验证吗?
我正在尝试重新构造为使用MVC模式开发的Web应用程序,但是我不确定是否应在模型中处理验证。例如,我正在建立一个这样的模型: class AM_Products extends AM_Object { public function save( $new_data = array() ) { // Save code } } 第一个问题:所以我想知道我的save方法是否应该在$ new_data上调用验证函数,或者假设数据已经被验证? 另外,如果要提供验证,我在想一些定义数据类型的模型代码看起来像这样: class AM_Products extends AM_Object { protected function init() // Called by __construct in AM_Object { // This would match up to the database column `age` register_property( 'age', 'Age', …
25 architecture  mvc 

11
自动化测试:解释其业务价值
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 要开始我不认为这是一个重复的其他问题上的单元测试。我正在寻求帮助的是将其价值表达给程序员,分析师,经理和测试人员团队。通过自动化测试,我认为不需要区分单元测试(例如JUnit),BDD(例如JBehave,Fitness)和UI(Selenium,W​​atir),因为我认为它们都提供相似的价值(但您可以随意写一个不同意的答案:)) 以下是我已确定的列表,正在寻找有助于扩展或完善的答案: 节省时间/成本:编写自动化测试比编写测试案例要花费更多时间。但是,考虑到测试要运行多次,执行自动化测试的边际工作(即成本/时间)要少几个数量级。自动化测试运行便宜,这有助于随着时间的推移更改系统。 文档:没有比测试更真实的方法知道系统如何工作了。其他任何文档通常在撰写时就已过时,但是测试(至少是通过的测试)揭示了事情的实际运行方式。最终用户和API文档均是如此。 代码质量:测试写作迫使您: 考虑客户,因为测试是客户 打破使代码可测试的依赖关系,这通常意味着弄清楚如何使代码不需要其他大型系统可用

17
是否应该要求高级程序员接任和指导初级开发人员?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在一家旨在紧密联系和支持的商店中,高级开发人员与初级开发人员作为导师配对是否应成为文化的一部分?还是应该使这种指导更加有机和自发,即不是必需的,而是在没有人为鼓励的情况下得以发展?

8
可以使用什么软件来创建架构图?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 当我需要能够将图保存在某处并稍后进行编辑时,我将MS Visio用于大部分设计/架构工作。我不是Visio的最大粉丝,但是它可以完成工作(而且工作是免费的)。 我想知道你们是否曾经使用过并且感到满意的相当昂贵的Visio软件的替代品,甚至更好的东西。我当然希望在我的工具箱中有该程序!

10
与开发人员打交道,不断忽略其工作中的极端情况
我猜想我团队中的一位开发人员有一个有趣的,相当普遍的问题。这个家伙是一个伟大的开发人员,工作迅速且富有成效,产生相当高质量的代码。好工程师 但是他有一个问题-他经常无法在代码中解决边缘情况。 我们多次和他谈过这件事,他正在努力,但我想他只是不这么认为。所以最终发生的事情是,QA会发现他的代码有很多问题,然后一次又一次地将其返回给开发人员,最终导致错过最后期限,并且团队中的每个人都不满意。 我不知道该如何对待他以及如何帮助他克服这个问题。也许有更多经验的人可以建议?

4
用户故事和功能之间有什么区别?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 在玩icescrum时,我意识到我不了解用户故事和用户功能之间的区别。 有人可以解释差异吗?
25 agile  scrum  features 

3
我正在尝试了解哈希表-有人可以向我解释清楚吗?
我想了解php中哈希表的正确用法和实现(对不起)。 我读过某个地方,没有经验的程序员创建了一个哈希表,然后对其进行遍历。现在,我明白了为什么这是错误的,但是我还没有完全了解我的理解是否正确(如果您知道我的意思)。 因此,有人可以向我解释如何在php中实现哈希表(大概是一个关联数组),也许更重要的是,如何“使用哈希”访问值以及这实际上意味着什么?
25 php  hashing 

11
您如何应对高级软件开发的动态性质?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我认为自己是高级软件开发人员。我喜欢阅读很多东西,这对我的职业生涯有很大帮助。我想我做得很好。 现在,我花了大量时间学习新事物。我现在不擅长编写代码,但是我即将开始一个家庭,而且我经常会看到许多有14-15年经验的老年人,因为他们减少了学习新事物的机会,现在很糟糕在编程时。他们在某个时候启发了人物,但现在已经不复存在了。 您可能会争辩说,基础知识永远不会改变,但是当您在Delphi上编码10年并且突然每个人都在使用.NET框架时,它的确会有所作为。这是真的,学习一门新的框架时,有经验的开发人员将花费更少的时间,但它仍然不需求的时间和精力。 软件开发人员如何在管理工作需求的同时仍然能够专注于某些可能使您失业的事情,例如建立家庭?

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.