软件工程

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

7
对于什么问题,面向对象编程不是一个好的选择?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 这个问题有点启发:对于什么常见的问题,函数式编程不太适合?-但是我一直想问这个问题,但是太害怕问了。 我一直都在...好吧,实际上我们一生都可以称之为工程软件开发,而且在所有时间里,尽管OO一直都存在(嗯,大部分时间),但我从未使用过“它的方式”,也不学习这种范式。我们一直使用相当简单的程序结构,例程/函数/模块,尽管它与当今管理这些程序的最佳实践(程序的最大LOC约为300k,没有太大的问题)相反,但从未证明是困难的,更不用说不可能了。 因此,我想问你,对于哪种面向对象范例不是一个好的选择会有什么问题?与程序编程相比?
19 paradigms 

6
与不知道自己想要什么的客户合作
我最近开始从事一项可以在现有系统上工作的工作。它需要调整和更新以及新代码。我现在已经完成了几个维护/功能添加项目,其中一些最终与实际要求的结果有很大不同。因此,我不得不对该项目进行多次编程,以使其到达请求者想要的位置。 现在,如果需要这样做,我不介意重新编程功能。但是,我想减少项目的周转时间。瓶颈似乎在于请求者对需要完成的事情的理解。您对我可以做什么以更快地了解请求者的需求有任何想法吗?

8
忘记我以前做过的事情,以及如何解决这个问题
我不确定这只是我还是在我们的领域中很常见。 过去的一年对我来说有点紧张。我一直在学习一些不同的技术来完成一些任务,有时我不得不完全专注于我正在学习的一项新技术。 当我回到整个项目中一起使用所有东西时,我注意到的是,在我开始专注于学习其他新技术之前,我忘记了如何做已经知道会做的事情。有时我发现我忘记了一些简单的事情,例如在jquery中选择div的语法,我不得不回到旧文件以快速浏览。 有时,我可能会编写一些我以前在另一个项目中曾经做过的事情,但是却不太记得它是为哪个项目编写的,因此我必须遍历多个项目并仔细检查代码,以尝试记住执行该操作的地方。 您发明了什么方法来防止自己忘记以前做过的事情,或者轻松访问过去编写的代码?

4
将DVCS用于单独开发人员是否有优势?
现在,我在服务器上使用visual svn,并在个人计算机上安装了ankhsvn / totoise。它可以正常工作,我不需要更改,但是如果我看到使用DVCS的一些好处,那么我可以尝试一下。 但是,如果在没有其他人的情况下使用它没有意义或不同,那么我不会打扰。 我再问一遍,当您是唯一的开发人员时,使用DVCS有什么好处吗?

9
硬拷贝的时间跟踪方法
我有一个问题:我很想在编码时跟踪特定功能/缺陷/等的任务时间。我倾向于在任务之间跳转(部分是由于专业软件开发需要继承继承,部分是由于我个人倾向于关注代码本身而不是围绕代码的业务流程)。 我个人比较喜欢硬拷贝系统。即使在屏幕上有数十亿像素的房地产,我也发现要保持跟踪窗口的便捷性是令人分心的。我要么忘记它,要么就以我的方式陷入困境。 因此,寻找有关时间跟踪的建议。我唯一的要求是一个简单的系统来跟踪每个任务的开始/停止时间。我考虑过要买一个时钟,并给每张票一张专用的时间卡。当我开始工作时,请打孔;完成工作后,打孔。

18
您要优化什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 一般来说,在设计软件时,您通常倾向于哪种类型的优化? 您是喜欢优化设计的人吗? 开发时间(即快速编写和/或易于维护)? 处理时间 存储空间(RAM,DB,光盘等) 当然,这很大程度上取决于要解决的问题的类型以及所涉及的期限,因此,我想听听导致您选择一种优化形式而不是另一种优化形式的原因。

4
在劳动合同中要注意什么
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 在同事们仔细阅读了他们几年前签署的合同后,我今天想到了这一点,并感到非常震惊。 签订合同之前应该注意什么,因为大多数雇主都会让您签署合同。请分开发表想法,以便可以单独投票。
19 contract 

1
如何在Visual Studio 2010中设置单元测试?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 我正在做我的第一个大型项目,在专业编程环境中没有很多经验。在研究与编程相关的任何东西时,我经常会看到有关单元测试的参考,但是对于如何设置这些参数甚至对我来说还是有益的,我仍然不清楚。 有人可以向我解释单元测试,以及如何在具有多个项目的Visual Studio 2010解决方案中进行设置吗?是项目解决方案中发生的事情,还是单独的解决方案?您会为小型开发团队推荐它吗,还是只是在浪费时间设置? 现在,我只是运行整个程序以测试当前正在处理的内容,但是偶尔我会遇到不容易调试的问题,在其他地方运行代码的子集很有用...有时我会设置另一个项目中引用了一些库来测试程序的一小部分,但由于涉及到所有相关性,我觉得浪费了更多的时间进行设置,然后仅运行整个程序

7
业务对象-容器还是功能?
这是我在SO上问过的一个问题,但在这里可能会得到更好的讨论... 在我工作的地方,我们已经在这个问题上来回多次,正在寻找健全性检查。问题是:业务对象应该是数据容器(更像DTO),还是应该包含可以对该对象执行某些功能的逻辑。 示例-以一个客户对象为例,它可能包含一些通用属性(名称,ID等),该客户对象是否还应包含函数(保存,计算等)? 一条推理路线说将对象与功能(单一责任主体)分开,并将功能放在业务逻辑层或对象中。 另一道理说,不,如果我有一个客户对象,我只想调用Customer.Save并完成它。如果使用该对象,为什么需要了解另一个类来节省客户? 我们的最后两个项目已将对象与功能分开,但是关于新项目的争论再次出现。 哪个更有意义,为什么?

11
推荐的.NET / C#编码标准?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您认为什么编码标准对.NET / C#项目很重要?可以这样处理花括号,间距和装饰。或者可能是一些更基本的问题,例如应避免在.NET Framework中使用哪些命名空间,配置文件的最佳做法等。 尽量避免创建简单的推论。例如,有一篇文章集中在花括号上会很好。我们不需要两种就可以支持一种样式。这个想法不是投票支持您的宠物标准,而是充实制定标准时应考虑的内容。

7
您如何回答:客户提出的“自更新以来……”问题?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 自从更新以来,人们一直在喊着说:“自从更新X,Y和Z变慢,变差并崩溃后” 自从更新开始以来就发生了这种情况。 人们期望什么?伽玛版是beta版本之后的版本,伽玛测试始终使我们的用户成为“不可思议的绿巨人” ... 也许您从未听说过来自客户的消息,也许您是在大学或FLOSS开发人员中,可以将责任推卸到5个或6个以上的家伙上,也许您要对代码进行单元测试,也许您并没有遇到这种有趣的情况客户实际上打电话给您,要求您提供一天中的确切时间(今天我想向M​​icrosoft发布),或者您是像我这样对不起的饼干儿子,他刚发布了新补丁更新并回家,令人恐惧的是明天要恢复工作。 无论如何,你们比我还要聪明。您如何对“您必须是一个糟糕的程序员,因为您会使软件变得更糟”提出批评?

3
查找可执行文件传播病毒的自由软件项目时,正确的做法是什么
今天,我在SourceForge上找到了一个GPLed项目,其可执行文件正在传播病毒。在项目审查中已经多次指出了这一事实,并且受感染的可执行文件仍然可以下载。显然,较旧的可执行文件不会被感染,因此该项目本身似乎并不是出于恶意目的而设计的。没有首选的联系开发人员的方法,并且该项目的论坛已死。我该怎么办?

8
版本控制中的代码应如何存储?
版本控制中的代码应如何存储? 开发人员友好?这样程序员就可以快速获取最新的代码,并可以在不做许多更改的情况下从其编辑器运行它?(例如指向dev DB..etc的配置文件) 要么 它应该对生产友好吗?源代码应采用易于在生产环境上部署的方式,并且当开发人员采用最新版本时,他应根据开发需求进行更改。

11
在代码库的不同部分上工作时修复错误
这至少发生在我身上一次。我在代码库的某些部分上工作,而在不同部分中发现了一个小错误,该错误使我无法完成当前正在尝试做的事情。修复该错误可能就像更改单个语句一样简单。 在那种情况下你会做什么? 修复错误并将其与您当前的工作一起提交 将当前工作保存到其他位置,在单独的提交中修复错误,然后继续工作[1] 继续您应该做的事情,提交代码(即使代码已完成) 破坏构建 无法通过某些测试),然后修复错误(和 构建 使测试通过)在单独的提交中 [1]实际上,这意味着:将原始存储库克隆到其他位置,修复错误,提交/推送更改,将提交拖到您正在使用的存储库中,合并更改,然后继续工作。 编辑:我改变了第三,以反映我的真正意思。

3
软件工程和计算机科学专业应该分开吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 几十年来,成为计算机开发人员的公认程度是“计算机科学”。关于该学位是否真的为学生开发软件做好了准备, 我们已经有几个 问题。 在过去的八年左右的时间里,一些学校开始提供编程方面的多个不同专业。使用我学校的课程: 计算机科学,从第一年的一些入门编程课程开始,然后侧重于理论计算机科学,算法和一些OS知识。大多数班级都涉及几个较小的项目和作业,这些作业和作业都是单独或成对完成的。 软件工程从相同的入门编程课程开始,进行了几类理论,然后涉及软件开发实践(测试,过程方法,软件度量,需求收集)和软件设计(分布式系统设计,信息系统设计) ,实时/嵌入式设计,子系统设计等) 不同的学校做的方式不同,因此以上只是我所熟悉的真实示例。我要问的是:是否需要编程方面的专业?

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.