软件工程

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

4
您如何获得OOP设计的良好实践?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 2年前关闭。 我意识到我很难创建OOP设计。我花了很多时间来确定此属性是否正确设置为X类。 例如,这是一个有几天的帖子:https : //codereview.stackexchange.com/questions/8041/how-to-improve-my-factory-design 我不相信我的代码。因此,我想改善设计,减​​少设计时间。 您如何学习创建好的设计?您可以推荐我一些书吗?

7
编写代码后,为什么一段时间后我觉得“我会写得更好”?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我从事C ++的业余项目已有2年以上。每当我编写模块/函数时,我都会经过很多思考。现在看到问题了 do { --> write the code in module 'X' and test it --> ... forget for sometime ... --> revisit the same piece of code (due to some requirement) --> feel that "This isn't written nicely; could have been better" } while(true); 这'X'是任何模块(小/大/中)。我观察到,无论我在编码时付出了多少努力,这种情况都会发生。因此,大多数情况下,我不会看到有效的代码。:) 这是很多人的普遍感觉吗?这是语言的特定现象吗?(因为在C ++中,可以用不同的方式编写相同的东西)。 如果我对现实世界的生产代码有这种重构的感觉,该怎么办,在那儿更改工作代码不会赢得很多荣誉,但是如果失败,可能会带来麻烦。

7
给新员工一个与经验丰富的开发人员分开的子项目是否可以帮助新手更快地成长?
我们的团队有7个开发人员,需要在短时间内(大约一个月)将开发速度提高一倍。我知道有一个常识性规则,即“如果雇用更多开发人员,则只会在头几个月损失生产力”。该项目是一个电子商务Web服务,大约有27万行代码。 我现在的想法是将项目分为大约两个独立的子项目,让新团队在两个子项目中的较小者上工作,而当前团队在主项目上工作。即,新团队将致力于结帐功能,最终将成为独立的Web服务,以减少耦合。这样,新团队就可以在只有10万行代码的项目上工作。 我的问题是:这种方法是否可以帮助新手开发人员轻松适应新项目?还有什么其他方法可以快速扩展开发团队,而不必等两个月,直到新手开始生产更多的软件,然后再开发bug。 ======= 更新 这家企业完全失败了,但并不是因为你们提到的原因。首先,我对新团队的规模和能力不了解。我本应该对它们进行评估。其次,在该站点招聘人才是一项艰巨的工作。在总公司所在地,招聘要容易得多,但是在第二团队的城市中,显然缺少具有所需资格的开发商。结果,工作时间从原来的1.5个月延长到了4.5个月左右,并被高层管理人员取消。 我犯的另一个错误(Alex D曾警告过)是我试图将重构出售给高层管理人员。您从不出售重构,而仅出售功能。 事实证明该启动是成功的。从未发生过的重构变成了技术债务:系统变得更加单一且难以维护,开发人员的生产力逐渐下降。我现在不在团队中,但是我希望他们能在不久的将来完成它。否则,我不会为该项目的成败做出任何贡献。

8
团队内部冲突的Java样式
我是Java开发团队的一员,截止日期为6周。这需要非常非常快地编写大量代码。但是,我们的开发团队具有不同的编码风格。从名称约定到抽象方法的所有内容在我们的团队中都不同。有人知道任何指示Java“标准”的文件吗? 为了澄清,我想知道是否有一个组织会规定例如变量和函数的正确命名约定。这是至关重要的,因为在如此短的期限内,我们不能花时间尝试理解彼此的代码。

2
智能作为矢量量
我正在阅读彼得·塞贝尔(Peter Seibel)写的这本很棒的书,叫做《编码员在工作:对编程技巧的思考》,而我正在与约书亚·布洛赫(Joshua Bloch)进行对话,我找到了这个答案,这对程序员来说很重要。该段是这样的。 这里有一个问题,那就是编程是一种智力精英,而这些人往往是组织中最聪明的人。因此,他们认为应该允许他们做出所有决定。但是,仅仅是他们是组织中最聪明的人这一事实并不意味着他们应该做出所有决策,因为智能不是标量。这是一个向量数量。 在最后一句话,我没有得到他试图分享的见识。有人可以进一步解释它对向量量的含义,可能试图提供相同的见解。 再往下看,我要说的是,他并不是要建立一个非技术人员(有时很笨拙)可以成为技术人员的经理的组织,原因是他们可以花更多的时间写好电子邮件,因为下一个原因以上段落之后的声明是。 而且,如果您缺乏同理心或情感智慧,那么您就不应该设计API,GUI或语言。 我了解他说的是,在软件工程中,程序员应该知道用户如何看待他们的产品和设计。 我觉得上一段非常有趣。



1
通过语言概念评价您的编程语言专业知识
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我正在寻找一种评估特定编程语言专业知识的好方法。当我找到以下文章时,这个想法就产生了:错误地获得所有荣誉?你不懂JavaScript。它以全面的方式列出了JavaScript的语言功能和概念。我希望每种编程语言都有清单。我尤其会对以下内容感兴趣: 爪哇 C 蟒蛇 C#/。NET C ++ 的JavaScript 任何其他语言或技术也将很有趣。在一个类似的问题中,建议使用“ 程序员能力矩阵” 来评价您自己的代码技能的好方法。我认为这是一个好方法,但是我认为它太通用了。 您是否了解其他语言概念的摘要,可以帮助您评估编程语言的专业知识?


14
没有经验的程序员需要IDE吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 阅读这个问题让我怀疑我(作为一个绝对的初学者PHP程序员)应该坚持使用WAMP和Notepad ++还是切换到Eclipse之类的IDE。 可以理解,熟练的开发人员将从大型闪亮的IDE中受益。但是,为什么绝对的初学者应该使用IDE?在学习开发知识的基础上,收益是否超过学习IDE的额外挑战? 更新说明: 我的目标是获得一些基本的编程经验。通过选择PHP和WAMP(以及FogBugz和Kiln),我希望避免不得不浏览棘手的/混乱的OS细节并进行编译等,而只关注基本功能,例如在线用户注册表格。 十年前,我从大学获得了许多理论知识,但没有实践经验。我想通过一个类似于现实世界中可出售的Web应用程序的业余项目来对此进行补救。 有很多问题要问。我可能不得不陷入很多陷阱。这个问题只是那个难题的一部分(我的第一个!)。
12 ide 


2
人们为什么建议在Ruby on Rails中不对视图使用实例变量
为什么我听到在控制器和视图之间共享实例变量不好。我有点喜欢它,因为我可以立即通过@看到某些东西来自控制器。我在这里看到了一种在控制器中使用助手的好方法:http : //www.stephencelis.com/2008/09/06/rails-controllers-views-and-variables.html。但是我在这部分使用康康。

7
处理大量数据的排序算法
我正在寻找一种排序算法,该算法可以处理大量数据,即,即使整个数据集无法一次保存在主存储器中,也可以使用。 我到目前为止发现的唯一候选对象是合并排序:您可以以这种方式实现该算法,即它在每次合并时都扫描您的数据集,而无需一次将所有数据保存在主存储器中。在本文的“ 与磁带机一起使用”部分中介绍了我想到的合并排序方式。 我认为这是一个很好的解决方案(复杂度为O(nx log(n)),但是我很想知道是否还有其他(可能更快)的排序算法可以处理不适合主内存的大型数据集。 编辑 这是答案所要求的更多详细信息: 数据需要定期分类,例如每月一次。我不需要插入一些记录,也不需要对数据进行递增排序。 我的示例文本文件大约是1 GB UTF-8文本,但是我想总体上解决该问题,即使该文件是20 GB。 它不在数据库中,并且由于其他限制,它不能在数据库中。 数据被其他人作为文本文件转储,我有自己的代码读取此文本文件。 数据的格式是文本文件:换行符是记录分隔符。 我想到的一种可能的改进是将文件拆分为足够小的文件,以便可以在内存中排序,最后使用上面描述的算法合并所有这些文件。

2
如何使内部用户组成功?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我想为公司中的开发人员启动内部用户组/论坛,但是我不确定如何入门。 我们有几个开发人员团队,他们跨越许多技术和经验水平。我认为这是我们所有人聚在一起分享技术,最佳实践,经验教训,痛点,新技术或开发人员发现的其他有趣事物的机会。 对于新员工来说,这也可能是一种很好的方式,可以整合,学习我们的工作方式并分享他们带来的一些专业知识。 这是我对此类事情的第一次尝试,我想做正确的事。 我对诸如此类的东西感兴趣: 推动参与 让20岁的退伍军人和新鲜绿色的毕业生保持有趣 避免已知对用户群有毒的陷阱 有人成功做到了吗?如果是这样,您可以分享什么经验?

6
Python使自己作为自己的语言而具有哪些独特之处?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 Python使自己作为自己的语言独特的一些特征是什么?我正在寻找各种特性,从好到坏,对障碍有用,语法到实际使用情况,但是对于普通开发人员而言,无遮掩的观察将是最有用的。 我是新手,因此可能需要解释一些直观的内容。

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.