软件工程

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

12
哪些技术有助于保留编程知识?[关闭]
您还记得编程相关的东西吗?您是否有几年前遇到过现在您遇到的错误的感觉,并且可以发誓知道当时的原因,但现在却已经忘记了? 您是否曾经使用过xsl的字符串解析功能,但是现在您已经不记得确切的xsl字符串功能了,您必须从头开始?或者,也许您忘记了Apache Commons的某些功能,例如您过去肯定使用过的“按谓词过滤集合”。 你是怎么做到的?我曾尝试过开设博客,但是在开发应用程序时,我从来没有时间更新博客或撰写自己的经历。同样,使用Wiki是一件好事,但是后来我发现很难保持它们之间的清晰分离,因为很多时候我都需要更改博客文章以添加有关该主题的新信息。这使我认为我实际上应该将该主题放在Wiki中而不是博客中。 您是否有任何系统可以帮助您记住编程经验?你的设置是什么?

17
将返回的变量命名为“结果”是一种好习惯吗?[关闭]
调用方法返回的变量名是一个好习惯result吗? 例如: public Zorglub calculate() { Zorglub result = [...] [...] return result; } 还是应该按类型命名? public Zorglub calculate() { Zorglub zorglub = [...] [...] return zorglub; } 我曾经在野外看到过这两种情况,如果我需要选择一种原因,是什么原因会使我偏爱前者或后者(或任何更好的名字)? 我主要是在考虑Java。


8
如何正确使用Google for C
尝试使用Google查找有关C编程语言的教程或答案的问题是C的表达力不足以缩小搜索范围。甚至与“ Programming”和/或“ Language”之类的关键字结合使用时,大多数情况下也会产生C ++,C#和Objective-C的结果。 有没有一种方法可以使用Google更有效地搜索特定的C资源?
44 c  google  search 

9
是否可以将时间花在Programmers.SE或Stack Overflow上代替初学者的优秀编程书籍?[关闭]
可以花时间(并积极参与)Programmers.SE和Stack Overflow来帮助我提高编程技能,几乎与花时间阅读诸如Code Complete 2这样的书(否则我的阅读清单中的第二本书)会有所帮助。 好的,也许是对于刚开始编程的人这个问题的答案可能是直接的否定,但是我想补充一点,我问的这个问题是在此人熟悉编程语言但想改善时他的编程技巧。我正在阅读有关SO的问题,并且这本书已经被许多其他人(包括Jeff和Joel)推荐。 更具体地说,我还要补充一点,即使我使用C,Java,Python等进行编程,但是我仍然对自己的编码技能不满意,并且阅读了CC2的评论后我意识到我仍然需要改进很多。 因此,基本上,我想知道提高我的编程技能的最佳方法是-在这里/ SO上花更多的时间,或者继续使用CC2,并在时间允许的情况下来到这里。

12
在面试中大声思考真的是最好的策略吗?[关闭]
在最近我问到的有关白板最佳实践的另一个问题中,人们普遍达成共识,即在提出答案时大声思考是最佳策略。 确实,长时间的沉默很尴尬。 但是,在最近的面试之后,我注意到,如果我的大声思考导致错误的解决方案或错误的道路,经过进一步的考虑,我会发现,面试官往往会迅速跳进并指出我的方法存在问题,特别是如果我停下脚步暂停一分钟。这不是一个孤立的案例,而是在与一位以上的采访者进行的一次以上的采访中发生的。 另一件事是,在面试后,我彻底轰炸了一个问题,当我坐下来在一张纸上默默地画出问题时,我能够很快地勾勒出解决方案。大声思考最终导致我花了很多时间思考我所说的必须如何向面试官注册,此外,我担心自己会走错路,并在写了一些东西之后重新开始浪费很多时间。一旦走上一条路,意识到自己写了很多垃圾,就无法撤消,但是如果您静静地思考,面试官将不会看到混乱,它会更快因为白板上的一个坏主意比单纯考虑一个坏主意要花费更多的时间。 我不希望自己保持沉默,但同时讲话会花费更多的时间,导致自我意识,并可能导致面试官对我可能只想多一点时间就能解决的问题进行干预。

4
为什么+对于连接这么不好?
每个人都在说JavaScript的问题之一是使用+[ example ]进行字符串连接。有人说问题不在使用+,而是强制类型[请参阅上一个示例的注释]。但是强类型语言将+用于连接和强制类型没有任何问题。例如,在C#中: int number = 1; MyObject obj = new MyObject(); var result = "Hello" + number + obj; // is equivalent to string result = "hello" + number.ToString() + obj.ToString(); 那么,为什么JavaScript中的字符串连接这么大的问题呢?
44 javascript 

9
为什么首选文件系统而不是RDBMS日志?
从标题可以清楚地看出问题。例如,无论使用何种规模,Apache都将其访问和错误日​​志保存在文件中而不是RDBMS中。 对于RDMS,我们只需要编写SQL查询,它将完成工作,而对于文件,我们必须确定特定的格式,然后编写正则表达式,或者可能是解析器来操纵它们。如果没有给予足够的照顾,在某些情况下甚至可能失败。 但是,每个人似乎都更喜欢使用文件系统来维护日志。我对这些方法都不抱有偏见,但我想知道为什么要这样进行。是速度还是可维护性或其他?

8
为什么不应该将类设计为“开放式”?
在阅读各种Stack Overflow问题和其他代码时,关于如何设计类的一般共识已经关闭。这意味着默认情况下,在Java和C#中,所有内容都是私有的,字段是final,某些方法是final,有时类甚至是final。 这背后的想法是隐藏实现细节,这是一个很好的理由。但是,由于protected大多数OOP语言和多态性的存在,这是行不通的。 每当我想为类添加或更改功能时,通常都会受到私有和最终放置在任何地方的阻碍。这里的实现细节很重要:您正在实施并扩展它,完全了解其后果。但是,由于无法访问私有字段和最终字段和方法,因此我有以下三种选择: 不要扩展类,只解决导致代码更复杂的问题 复制并粘贴整个类,杀死代码的可重用性 分叉项目 这些不是很好的选择。为什么protected在用支持它的语言编写的项目中不使用它?为什么某些项目明确禁止从类继承?
44 code-reuse 

2
在ASP.NET MVC 3中自定义错误处理的权威性准则是什么?
在ASP.NET MVC(本例中为3)中执行自定义错误处理的过程似乎被忽略了。我已经在网上阅读了各种问题和解答,在各种工具(例如Elmah)的帮助页面上都找到了答案,但是我感觉自己走了一个完整的圈子,但仍然没有最好的解决方案。在您的帮助下,也许我们可以为错误处理设定新的标准方法。我想保持简单,而不是过度设计。 这是我的目标: 对于服务器错误/异常: 在开发人员中显示调试信息 在生产中显示友好的错误页面 记录错误并将其通过电子邮件发送给生产中的管理员 返回500 HTTP状态代码 对于404 Not Found错误: 显示友好的错误页面 记录错误并将其通过电子邮件发送给生产中的管理员 返回404 HTTP状态代码 是否可以通过ASP.NET MVC实现这些目标?

6
算法可以申请专利吗?[关闭]
那么算法可以申请专利吗? 我看到了这句话,使我想到: 直到2021年,每个人都至少会放弃对轮廓点算法的改进申请专利,直到2021年。因此,Outliner项目的开发人员可以随意实现他们的想法。 取自此Codeplex项目。

16
您如何向非程序员解释“美丽的代码”?[关闭]
当与非程序员朋友交谈时,我碰巧提到了“美丽代码”的概念,她想理解这是什么意思,但是我对如何向一个没有语言的人解释它感到茫然上下文。 无论如何,当所有代码看起来对某人来说都是胡言乱语时,您怎么能解释是什么使一个代码比另一个代码更漂亮?类比也可能有用。
44 aesthetics 


19
如何处理“停车点综合症”?
我发现自己的行为被称为“停车点综合症”……这意味着我无法停止工作,直到达到“停车点”(否则我就会精疲力尽)。换句话说,如果我在致力于完成某项功能的区域中,那么直到完成它后我才会停止。如果这是我正在研究的错误,那么这种影响会更加明显……直到它被修复,或者至少是被理解后,我才会停止。即使我使用笔记本电脑工作并且拥有VPN,并且可以在当晚晚些时候轻松回家并继续工作,但这一事实并不能帮助我离开工作……这好像是我会在发现bug之前就死掉了。 我很难向家人解释这一点,他们无法弄清楚为什么我从不同时下班回家,有时有时是晚上11点回家。即使是经理,也对此感到迷惑不解,而且我注意到,大多数同事每天在同一时间工作没有任何麻烦。 还有其他人有这个问题吗?我应该为此担心或尝试更改它吗?如果可以,怎么办?


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.