软件工程

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


16
在上计算机工程大学之前,我应该学习一种编程语言吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我将脚趾浸入C ++编程中,但实际上并没有深入研究它。我想知道在进入计算机工程大学之前是否真的需要学习它或其他语言,还是我还是要在学校学习它?

3
Perl和Java之间有何相似之处?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我下定决心要学习Java作为第二语言(我是Perl开发人员)。但是仅仅阅读一些在线教程,我真的找不到两者之间的任何相似之处。学习Java时,我会很轻松地了解什么?
14 java  perl 

10
解决已知错误后,其他地方可能会出现新错误的原因是什么?
在讨论中,我的一位同事告诉他,在尝试解决错误时,他目前的项目有些困难。他说:“当我解决一个错误时,其他地方就会停止工作。” 我开始考虑如何发生,但无法弄清楚。 当我太累/困得无法正确执行工作并无法全面了解正在处理的代码部分时,有时会遇到类似的问题。在这里,问题似乎持续了几天或几周,与我同事的关注点无关。 我也可以想象这个问题是在一个非常大的项目,一个管理不善的项目中引起的,在这个项目中,队友不知道谁在做什么,而对其他人的工作有什么影响可以改变他们正在做的事情。这里也不是这样:这是一个只有一个开发人员的相当小的项目。 对于旧的,维护不善且从未记录过的代码库,这也可能是一个问题,只有真正能够想象变更后果的开发人员才在几年前离开了公司。在这里,该项目才刚刚开始,开发人员不使用任何人的代码库。 那么,由一个专注于自己的工作的开发人员编写的全新的,小型代码库中的此类问题可能是什么原因呢? 有什么帮助? 单元测试(没有)? 正确的体系结构(我很确定代码库根本没有体系结构,并且编写时没有任何初步思考),需要整个重构吗? 配对编程? 还有吗


10
面向对象真的会影响算法性能吗?
面向对象已经帮助我实现了许多算法。但是,面向对象的语言有时会引导您采用“直接”方法,并且我怀疑这种方法是否总是一件好事。 OO在快速轻松地编码算法方面确实很有帮助。但是对于基于性能的软件(即程序执行速度有多快),此OOP会对它不利吗? 例如,首先将图节点存储在数据结构中似乎“直截了当”,但是如果Node对象包含许多属性和方法,这会导致算法变慢吗? 换句话说,在许多不同对象之间的许多引用,或者使用许多类中的许多方法,是否可能导致“繁重的”实现?

10
将Fortran 77代码转换为C#
我正在尝试将Fortan77程序转换为C#。我有一个子程序,到处都有大约650行代码和可怕的GOTO语句。我什至开始可视化子例程的流程以弄清楚它的作用,这给我带来了很多麻烦。 有没有在这种事情上有经验的人可以给我任何有关如何大致了解此子程序的建议?是否有一些工具可以加快或促进这种转换?
14 c#  fortran 

2
jQuery在哪里适合JavaScriptMVC,BackboneJS,SproutCore和Knockout等框架?
在过去的两年中,我一直很愉快地使用JQuery,并且一直非常成功地使用它创建了一些非常酷的功能...所以我对此非常满意。我还相信,网络的未来将继续沿用当前的客户端路径。 然而... 下一个挑战似乎是以各种控制器框架的形式出现的:KnockoutJS,BackboneJS,SproutCore,JavaScriptMVC(清单不胜枚举)。 Additonally,有一些伟大的AMD装载机工具,像使用RequireJS或LabJS等。但是,jQuery的现在已经define和then能力烤项。 跟踪所有信息变得越来越难了... 现在,我的任务似乎是评估/确定使用某种形式的MVC或MVVM框架客户端的战略方向...但是我有很多问题。 JQuery 在哪里适合上述各种控制器框架? 是将JQuery 与每个对象一起使用,还是其中一些包含自己的“ JQuery风格的版本”? 如果实现上述各种控制器框架之一,是否仍需要诸如RequireJS之类的 工具? 现在,加入JQuery的define和then功能是否可以取代上面提到的AMD Loader? 哪一个看起来最模块化?(请参阅下面的注释) 注意: 在任何将来的框架中,我都不需要的一件事是必须接受大量我不使用的功能。意思是说,我宁愿使用真正模块化的框架。例如,要使用jQuery UI,您必须引入许多您可能未实际使用的其他核心库。 我将对每一个进行实验,但是一些真实的反馈会很棒。我已经看到了一些“类似”的问题,但是没有一个人能够真正回答上述问题。 提前致谢!


13
MVC中的M在哪里?
我试图将我的应用程序重构为MVC,但是我坚持使用M部分。 在数据库支持的应用程序中,该模型是在应用程序代码中实现的,对吗? 但是,数据库中有什么-模型也不是吗? (我没有将数据库用作简单的对象存储-数据库中的数据是企业资产)。


4
如何在C指针中确定优先级?
我遇到了两个难以理解的指针声明。我对优先规则的理解是这样的: Operator Precedence Associativity (), [ ] 1 Left to Right *, identifier 2 Right to Left Data type 3 但是即使这样,我似乎也无法弄清楚如何正确评估以下示例: 第一个例子 float * (* (*ptr)(int))(double **,char c) 我的评价: *(ptr) (int) *(*ptr)(int) *(*(*ptr)(int)) 然后, double ** char c 第二个例子 unsigned **( * (*ptr) [5] ) (char const *,int *) *(ptr) …
14 c  pointers 

5
单元测试-入门
我刚刚开始进行单元测试,但不确定我是否真的了解所有内容。我阅读了有关这方面的教程和书籍,但是我有两个快速问题: 我认为单元测试的目的是测试我们实际编写的代码。但是,在我看来,为了能够运行测试,我们必须更改原始代码,这时我们并不是在真正测试我们编写的代码,而是在测试我们编写的代码。 我们的大多数代码都依赖于外部资源。但是,在重构我们的代码后,即使它会破坏原始代码,我们的测试仍然可以正常运行,因为外部源只是我们测试用例内部的模型。它是否违反了单元测试的目的? 抱歉,我在这里听起来很蠢,但我认为有人可以启发我。 提前致谢。

5
Ant是否仍在Java构建的“主流”中?
我们一直在慢慢地用更全面的Ant构建(例如从CVS中获取,清理编译,jar,存档,电子邮件等)替换批处理命令文件(windows .bat),这些命令文件只是破坏了在开发人员IDE中编译的类。 我已经花了很多时间在Ant上学习(和调试问题),所以我最习惯将其用于这些任务。但是我不知道蚂蚁是否仍然像我刚开始学习时那样被广泛使用,还是“世界已经发展到”一种新的东西(也许更光滑了)。(例如,我开始看到分发了更多的Maven构建资料,例如,我从未使用过。) 这个问题的实际含义是,我是否要促使新开发人员学习Ant,还是应该为构建进行其他学习? 我从不总是掌握趋势,因此,很高兴听到其他Java开发人员的意见,他们认为这是最好的构建工具,以及他们认为新开发人员应该学习的知识。
14 java  training  maven  builds  ant 

8
什么时候应该消除复杂性?
通过在需要之前实施设计模式来过早引入复杂性不是一个好习惯。 但是,如果您遵循所有(或什至大部分)SOLID原则并使用通用的设计模式,那么随着功能或需求的添加或更改,以使您的设计保持所需的可维护性和灵活性,您将引入一些复杂性。 但是,一旦引入了这种复杂性并像冠军一样工作,何时将其删除? 例。我有一个为客户编写的应用程序。在最初创建时,那里有几种向员工加薪的方法。我使用了策略模式和工厂来使整个过程保持整洁。随着时间的流逝,应用程序所有者添加或删除了某些升高方法。 时间流逝,新主人接管了。这个新主人刻薄了鼻子,保持一切简单,只有一种加薪的方法。 不再需要策略模式所需的复杂性。如果我现在按照需求在哪里编写代码,那么我不会介绍这种额外的复杂性(但请确保在需要时我可以花很少的精力或根本不用做任何工作来引入它)。 那我现在要删除策略实施吗?我认为这个新主人不会改变加薪的方式。但是应用程序本身已经证明了这可能发生。 当然,这只是新所有者接管并简化了许多流程的应用程序中的一个示例。我可以删除数十个类,接口和工厂,并使整个应用程序更加简单。请注意,当前的实现确实可以很好地工作,并且所有者对此感到满意(由于所讨论的复杂性,我能够如此迅速地实现她的更改感到惊讶甚至高兴)。 我承认这一怀疑的一小部分是因为新所有者很可能不再使用我了。我真的不在乎其他人会接手这件事,因为它并不是一个巨大的收入来源。 但我确实关心2件(相关的)事情 我有点担心,新维护者在尝试理解代码时将不得不加倍努力。复杂性就是复杂性,我不想激怒追随我的心理狂。 但是,更令我担心的是竞争对手看到了这种复杂性,并认为我只是实施设计模式来增加工作时间。然后散布这个谣言来伤害我的其他生意。(我听说过此事。) 所以... 总的来说,即使以前需要的复杂性行之有效,并且历史上已经证明了对这种复杂性的需求,但是否应该删除它却没有迹象表明将来会需要它呢? 即使上面的问题通常被回答为“否”,如果将项目移交给竞争对手(或陌生人),消除这种“不必要的”复杂性是否明智?

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.