软件工程

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

13
相关代码之前或之后的注释[关闭]
假设注释不适合(或不能加入)它所适用的行,应该在代码之前还是之后写注释? 好吧,将来的读者无论在哪里都能最好地理解该评论的范围。换句话说,无论大多数程序员/脚本编写者在何处发表此类评论。 那么,大多数程序员/脚本编写者在何处发表评论:在其代码之前或之后? 如果您的答案仅适用于特定语言,请指出。 而且,如果您可以引用支持您答案的公认规范或指南,那就更好了。
34 comments 

8
开发人员在夜间工作效率更高吗?[关闭]
我个人深夜保持清醒,编码并喜欢从事个人项目。我的其他同事也一样,喜欢在夜间编码。但是,这并不是要对个人爱好充满热情,相反,我真的觉得我晚上的工作效率更高。 我认为关于夜的某些事情,也许是黑暗,也许是寂静,也许是使开发人员变得更有生产力的另一个属性。 这有什么道理吗?为什么有些开发人员认为他们晚上的生产力更高?是否有任何科学证据证明这一主张?诸如“在夜间,监控灯的危害较小”或“夜间的自然空气中的氧气较多,因此更适合于思考过程”之类的东西。 主持人注意: 问题是要寻求科学证据,否则需要引用有关此主题的信息。不提供支持参考的答案将被删除。这不是一项民意测验,您应该在醒来时分享,以及一天中的哪些时段您的生产力较高。

4
微软是否有Visual Studio的免费版本?[关闭]
不是试用版,而是他们提供给用户下载的真正免费的版本。 我想知道万一我错过了他们网站上的选项。任何版本的Visual Studio都可以。 如果没有,是否存在Visual Studio的任何开源替代品(具有相似的功能,或者可能具有降级的等同功能)?如果这有任何区别,我将在Windows 7上运行...

5
Javascript是一种功能编程语言吗
Javascript是功能语言吗?我知道它有对象,您也可以用它进行OOP,但是它也是一种功能语言,可以这样使用吗? 您知道OOP如何/似乎像编程的下一个演变一样,是否意味着“功能性编程”是下一个发展(注意:这不是提意见的提示,而是基于事实证据的答案的提示,并且本说明是主持人比贡献者更多;))。 我通过示例学习得最好,也许有人可以展示以OOP方式执行相同的任务,然后以功能编程的方式让我自己理解和比较功能编程的作用。 老实说,我并不完全理解“函数式编程”:P因此,将Javascript与函数式编程进行比较可能完全不正确。 用外行人的话来描述函数式编程:仅仅是使用匿名函数进行摘要的好处吗? 还是这样简单?通过简单的方法,OOP是通过对象进行抽象的好处,但是我认为描述OOP有点过于简单。 这是函数式编程的一个很好的例子吗?... Javascript OOP示例: // sum some numbers function Number( v ) { this.val = v; } Number.prototype.add( /*Number*/ n2 ) { this.val += n2.val; } 函数式编程示例: function forEach(array, action) { for (var i = 0; i < array.length; i++) action(array[i]); } function add(array) { …

14
为什么这么多开发人员认为性能,可读性和可维护性不能共存?
在回答这个问题时,我开始怀疑为什么这么多的开发人员认为好的设计不应该考虑性能,因为这样做会影响可读性和/或可维护性。 我相信,一个好的设计在编写时也要考虑性能,并且一个好的设计的优秀开发人员可以编写一个高效的程序,而不会对可读性或可维护性产生不利影响。 尽管我承认存在极端情况,但为什么许多开发人员坚持认为高效的程序/设计将导致较差的可读性和/或较差的可维护性,因此,性能不应作为设计考虑因素?

4
Python“唯一的方法”的具体示例maxim [关闭]
我正在学习Python,并对PEP 20 The Zen of Python中的以下几点感兴趣: 应该有一种-最好只有一种-显而易见的方法。尽管除非您是荷兰人,否则一开始这种方式可能并不明显。 谁能提供这个格言的具体例子?我对与其他语言(例如Ruby)的对比特别感兴趣。Ruby设计哲学的一部分(我认为起源于Perl?)是实现它的多种方法。任何人都可以提供一些示例来说明每种方法的利弊。请注意,我不是在寻找哪个更好的答案(这可能是主观的,无法回答),而是两种风格的公正对比。

13
全面的程序员需要按位操作有多好?[关闭]
最近,我一直在浏览一些OpenJDK代码,并在其中找到了一些与按位操作有关的有趣代码。我什至在StackOverflow上问了一个问题。 另一个例子说明了这一点: 1141 public static int bitCount(int i) { 1142 // HD, Figure 5-2 1143 i = i - ((i >>> 1) & 0x55555555); 1144 i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); 1145 i = (i + (i >>> 4)) & 0x0f0f0f0f; 1146 i = i …

9
有算法百科全书吗?[关闭]
是否有与《数学手册》风格相似的算法百科全书?在一处拥有大量可用项似乎很有用。我知道计算机编程艺术被认为是很好的资料,但它似乎不像百科全书那样具有启发性。 主持人备注 我们正在寻找能提供一些解释和上下文的长答案。不要只列出一本书:请解释为什么您推荐一本书或资源。没有解释任何内容的答案将被删除。有关更多信息,请参见良好主观,不良主观。
34 algorithms 

15
源代码中毫无意义的代码
我从高级编码员那里听到了一些故事,而我自己也看到了一些。似乎有许多以上的程序员在编写无意义的代码。我会看到类似的东西: 没有价值的方法或函数调用。 在单独的类文件,对象或方法中进行的冗余检查。 if 始终为true的语句。 分离的线程不执行任何操作。 仅举几个。有人告诉我,这是因为程序员想要故意使代码混乱,以至于给组织增加自己的价值,或者确保在进行承包或外包工作时要重复业务。 我的问题是。其他人看到过这样的代码吗?您的结论是为什么存在该代码? 如果有人写过这样的代码,可以分享原因吗?

6
为什么在课堂上使用“最终”真的很糟糕?
我正在重构PHP OOP旧版网站。 我很想开始在“ make it explicit that the class is currently not extended by anything” 类上使用“最终”。如果我去上课,这可能会节省很多时间,我想知道是否可以重命名/删除/修改protected属性或方法。如果我真的想扩展一个类,我可以删除final关键字来解锁它以进行扩展。 即,如果我参加的班级没有子班,我可以通过将班级标记为最终班来记录该知识。下次访问它时,我不必重新搜索代码库以查看它是否具有子代。从而节省了重构期间的时间。 这似乎是一个明智的节省时间的主意。。。。但是我经常读到,只有在极少数/特殊的场合下才应该使类“最终化”。 也许它搞砸了模拟对象的创建,或者有其他我没有想到的副作用。 我想念什么?

8
在Java中实现接口时的默认vs Impl
阅读后包装名称应为单数还是复数?在我看来,我从未见过涉及我的宠儿之一的适当辩论:命名接口的实现。 假设您有一个Order旨在以各种方式实现的接口,但是在首次创建项目时只有初始实现。您是否选择DefaultOrder或OrderImpl或采取其他措施来避免错误的二分法?当出现更多实现时,您会怎么做? 最重要的是...为什么?

10
如何说服经理允许堆栈溢出
在我公司,我们对互联网使用有严格的限制。我经常必须仅将不良的移动界面用于堆栈溢出。但是,该网站对于工作非常有用。 我如何说服经理解除对堆栈溢出的阻止?经理们可以在线查看福利摘要吗?

14
使代码看起来“漂亮”有什么好处?
有时,我花费大量的时间(小时)来使代码“看起来很漂亮”。我的意思是使事情看起来对称。实际上,我将快速滚动浏览整个班级,以查看是否有任何东西因为看起来不“漂亮”或“干净”而跳出来。 我在浪费时间吗?这种行为有任何价值吗?有时,代码的功能或设计甚至都不会改变,我只是重新组织它,使其看起来更好。 我是完全被强迫症吗,还是隐藏着一些好处?
34 clean-code 

4
Model-View-Presenter实现思想
我试图很好地掌握如何在UI和模型之间实现良好的解耦,但是我在弄清楚究竟在哪里划分线时遇到了麻烦。 我一直在研究Model-View-Presenter,但不确定如何实现它。例如,我的视图有多个对话框。 是否应该有一个View类,其中包含每个对话框的实例?那么在这种情况下,对话框应如何与Presenter交互?即。如果单个对话框需要通过Presenter向模型请求数据,该对话框应如何获得对Presenter的引用?通过引用在施工期间提供给它的视图? 我在想也许视图应该是静态类?然后对话框GetView并从那里获取Presenter ... 我一直在考虑将其设置为具有View和Model所有权的Presenter(而不是具有拥有Presenter和Presenter具有Model的View的所有者),并且Presenter在View中注册事件的回调,但这似乎很多耦合性更高(或至少取决于语言)。 我试图: 使它尽可能地分离 理想情况下,可以将Presenter / Model与其他语言的视图结合起来(我还没有做过很多中间语言的工作,但是我知道void(void),至少可以将C#应用程序与C ++库... 保持代码干净简单 所以..有什么建议应该如何处理交互作用?

1
Apache HTTP Server和Apache Tomcat有什么关系?(如果有的话)
我目前在生产Ubuntu VPS服务器上运行Apache httpd。我写的PHP脚本。 我对学习Java感兴趣,并且想知道如何编写一些服务器端Java以在当前设置下工作。 如何的Apache Tomcat和Apache HTTP服务器的相互关系? Tomcat可以作为httpd的模块吗? 还是仅仅是由同一组织(Apache Software Foundation)指导的两个截然不同的项目?

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.