软件工程

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

1
胶水或管理课程什么时候做得太多?
我倾向于建立集中的类来管理设计中的其他类。它本身并不存储所有内容,但是大多数数据请求将首先发送给“经理”。在寻找这个问题的答案时,我注意到术语“上帝对象”。可以理解,维基百科将其列为反模式。 合法的胶水类或模块之间的界限在哪里,该胶水类或模块从各处传递数据和消息,而该胶粘类或模块做得太多呢?

5
您严格遵守“无依赖性周期”规则(NDepend)
背景知识:作为团队负责人,我每周大约使用一次NDepend来检查代码的质量。尤其是测试覆盖率,代码行和循环复杂性指标对我来说非常宝贵。但是,当涉及到平均化和依赖周期时,我有点……非常担心。Patrick Smacchia有一篇不错的博客文章,描述了分级的目标。 需要明确的是:在“依赖周期”下,我了解两个命名空间之间的循环引用。 目前,我正在为嵌入式仪器开发基于Windows CE的GUI框架-仅考虑Android图形平台,但针对非常低端的仪器。该框架是具有约50.000行代码的单个程序集(不包括测试)。该框架分为以下名称空间: 核心导航和菜单子系统 屏幕子系统(呈现器/视图/ ...) 控件/小部件层 今天,我花了半天的时间试图将代码提高到适当的水平(由于Resharper总体上没有问题),但是在所有情况下都存在一些依赖周期。 所以我的问题是:您严格遵守“无依赖周期”规则吗?平整真的那么重要吗?


6
新项目的规划和编程的正确组合
我将要开始一个新项目(一个游戏,但这并不重要)。基本想法在我脑海中,但并非所有细节。 我不想在没有计划的情况下开始编程,但是我正在认真地奋斗去做到这一点。我想在防止重构整个应用程序之前进行一些计划,仅因为我想到的一项新功能就需要它。另一方面,我不想计划多个月(业余时间)并重新开始,因为我担心这次我会失去动力。 我正在寻找的是一种将两者结合而又不占主导地位的方法。我应该以Scrum方式实现项目吗?我应该创建用户故事然后实现它们吗?我应该工作功能驱动吗?(我在scrum和经典的“代码规范”方面有一定的经验。) 更新:如何从“单击虚拟对象”开始并在以后实现功能?

6
程序员的思维导图[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 如何是心灵映射为组织他们的工作方式程序员有用吗?

1
在自由项目中使用我自己的代码
我从事自由职业超过2年。在为其他人做项目时,我编译了一些我在项目中实现的常见任务,并将其放入代码中。这是一个具有某些功能的库,我可以重复使用这些功能,而不必多次重写同一件事。我正在谈论访问Access数据库,从FTP和类似内容下载信息。 从法律角度来看这可以接受吗?重用旧代码并从头开始重写它有什么区别(再次使用您自己的大脑,因此逻辑完全相同)? 我当然不拥有任何版权,并且向我的客户提供这些类的源代码。
10 legal  code-reuse 

12
为什么在学习面向对象编程之前,我们必须学习过程编程[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我现在是一所IT大学的四年级学生,当我和我的教授谈论这个话题时,他拒绝了我的意见,并给了我很大的批评(在我的大学里,我们被教导C(ANSI)(在程序编程课-大学一年级(C ++之前)(第二年OOP班)及其他... 但是在我13岁那年,我的兄弟首先接受了Java的培训,而没有别的。现在,他几乎可以完成普通的二年级学生使用Java可以完成的所有工作。 对于您的专业人士,我想知道您为什么认为我们应该首先学习过程编程。

6
我应该选择一种功能编程语言吗?
最近,我更加关注编写代码的方式。在阅读了几本关于设计模式的书(我敢肯定它们的过分执行)之后,我已经将思想大大地转向了封装那些改变的东西。我倾向于注意到我写的接口更少,而代码则更多地面向方法,在这里我喜欢用谓词,动作和其他委托任务将生活融入旧的类中。我倾向于认为通常是更改的动作,因此我将其封装。我什至经常(尽管不总是如此)将接口分解为单个方法,然后我更喜欢使用委托来完成任务,而不是强制客户端代码创建新类。 所以我想它然后打我。我应该进行函数式编程吗? 编辑: 我可能对函数式编程有一个误解。 目前,我选择的语言是C#,并且来自C ++背景。我是一名游戏开发人员,但目前没有工作。 我对建筑充满热情。我的优点是干净,灵活,可重用和可维护的代码。我不知道这些方法是否使我中毒,或者是否更好。我是发烧还是应该继续发烧?我了解这可能是关于“使用正确的工具完成工作”的问题,但是我想听听您的想法。 我应该选择一种功能语言吗?我担心的因素之一是离开Visual Studio的舒适感。

10
每年少吸?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 每年吸吮更少-杰夫·阿特伍德 我看过这篇有见地的文章,直接从帖子中引用 我经常认为,每年吸吮更少是程序员谦虚的进步。您应该对一年前编写的代码不满意。如果不是,则意味着A)一年没有学到任何东西,B)您的代码无法改进,或C)您从不重访旧代码。所有这些对于软件开发人员来说都是垂死的吻。 这种情况多久发生一次或不发生在您身上? 您需要多长时间才能看到编码方面的实际改进?月,年? 您是否曾经浏览过您的旧代码? 您的旧代码多久困扰您一次?或者您必须多久处理一次技术债务。 修复旧的错误和肮脏的代码(这可能是很痛苦的),我们可能会为了快速地按时完成任务而执行这些快速修复,在某些情况下,我们可能不得不重写大多数应用程序/代码。没有争论。 我遇到的一些开发人员争辩说,他们已经处在进化阶段,他们的编码不需要改进或无法得到改进。 这会发生吗? 如果是这样,那么人们期望这种情况会发生多少年? 有关: 是否曾经回头看过您的某些旧代码和痛苦中的鬼脸? 代码中的 “ 星球大战时刻”:“卢克!我是你的代码!” “不!不可能!不可能!”

2
您如何对JavaScript进行单元测试
我花了很多时间来研究JavaScript。我还没有找到一种似乎可以很好地测试javascript的方法。过去,这对我来说不是问题,因为我工作的大多数网站都包含很少的JavaScript。我现在有一个新网站,该网站广泛使用jQuery,我想为大多数系统构建单元测试。 我的问题是这个。 大多数功能都会以某种方式更改DOM。 大多数功能也需要从Web服务器请求数据,并且需要在服务上进行会话以获取结果。 我想从命令行或测试运行工具而不是浏览器中运行测试。 我应该阅读的任何帮助或文章将对您有所帮助。

10
在客户眼中,软件速度多久能体现一次?
从理论上讲,客户应该能够从第一手经验中感受到软件性能的提高。 在实践中,有时改进不够明显,因此为了从改进中获利,有必要在营销中使用可引用的绩效指标以吸引客户。 我们已经知道感知性能(GUI延迟等)和服务器端性能(机器,网络,基础结构等)之间的区别。 程序员多长时间需要一次额外的工作来“编写”性能分析,而受众不是程序员,而是经理和客户?


4
OCaml对数值分析有好处吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我目前正在使用C和一些FORTRAN来求解微分方程的数值系统。 我对这两种语言都有点受够了,但是我需要一些(相当)高效的代码...我正在考虑切换到OCaml。 这值得么?

6
您如何在面试中处理基于知识的问题?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 在对经验丰富的程序员进行面试的技术面试中,面试官会问很多基于知识的问题。[例如。像如何在xml中配置它和那个。这些问题只有一个答案,一个好的程序员很可能不知道答案(因此被拒绝)。有什么好的方法可以回答这些问题?[就像礼貌地告诉面试官答案只是谷歌搜索]。
10 interview 

4
哪些软件开发方法可以视为基础
我正在写一份涉及软件开发方法论的小型研究论文。我一直在研究所有可用的方法论,并且想知道在所有方法论中,是否有任何方法为其他方法论奠定了基础? 例如,查看以下方法: 敏捷,原型设计,洁净室,迭代,RAD,RUP,螺旋,瀑布,XP,精益,Scrum,V模型,TDD。 我们可以说: 原型,迭代,螺旋和瀑布是其他的“基础”吗? 还是没有“基础”之类的东西,每种方法都有自己独特的历史吗? 我当然想在我的研究论文中描述所有方法论,但是我根本没有时间这样做,这就是为什么我想知道哪些方法论可以看作代表。

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.