软件工程

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

8
一个班级的真正责任是什么?
我一直想知道在OOP中使用基于名词的动词是否合法。 我遇到了这篇精彩的文章,尽管我仍然不同意它的观点。 为了进一步解释该问题,文章指出,例如,不应有一个FileWriter类,但是由于编写是一种动作,因此它应该是该类的方法File。您将认识到它通常与语言相关,因为Ruby程序员可能会反对使用FileWriter类(Ruby使用方法File.open来访问文件),而Java程序员则不会。 我个人的观点(是的,非常谦虚)是,这样做会违反“单一责任”原则。当我用PHP编程时(因为PHP显然是OOP的最佳语言,对吗?),我经常会使用这种框架: <?php // This is just an example that I just made on the fly, may contain errors class User extends Record { protected $name; public function __construct($name) { $this->name = $name; } } class UserDataHandler extends DataHandler /* knows the pdo object */ { public function …



6
Facebook为什么将PHP代码转换为C ++?[关闭]
我读到Facebook是从PHP开始的,然后为了提​​高速度,他们现在将PHP编译为C ++代码。如果是这样,他们为什么不这样做: 只是用C ++编程?按下将PHP移植到c ++代码的魔术编译器按钮时,肯定会出现一些错误/错误,对吗? 如果这个令人印象深刻的转换器运行得很好,为什么还要坚持使用PHP?为什么不使用Ruby或Python之类的东西呢?注意-我随机选择了这两个,但是主要是因为几乎每个人都说用这些语言进行编码是一种“乐趣”。那么,为什么不开发一种超级出色的语言,然后点击神奇的c ++编译按钮呢?
42 c++  php  compiler  facebook 

9
代码维护:要在代码中添加注释还是仅将其留给版本控制?
我们被要求在我们对代码进行的每个更改中添加带有开始标签,结束标签,描述,解决方案等的注释,作为修复错误/实现CR的一部分。 我担心的是,这会带来任何附加值吗?实际上,我们具有版本控制历史记录中的所有详细信息,这将有助于我们跟踪每个更改? 但是我的领导者坚持将注释作为一种“好的”编程习惯。他们的论据之一是,当必须对CR进行范围界定/更改时,如果没有评论,那将很麻烦。 考虑到这些更改将主要在代码之间进行,是否真的有助于为我们所做的每一个更改添加注释?我们不应该把它留给版本控制吗?

4
什么是“群居”?
我听说过在敏捷或极限编程中提到的蜂拥而至。它似乎是配对的补充。 到底是什么 什么时候应该使用?你怎么做得好?

14
我该怎么办才能不使用GPL许可证窃取“ Hello World”代码?
在项目中,我找到了一个文件math.c,其中包含一个很大的GPL标头,并且... //------------------------------------------------------------------------------ /// Returns the minimum value between two integers. /// \param a First integer to compare. /// \param b Second integer to compare. //------------------------------------------------------------------------------ unsigned int min(unsigned int a, unsigned int b) { if (a < b) { return a; } else { return b; } } 好吧,很酷,所以我需要获取最小值并... 这个文件!因此,我需要为此打开整个项目吗?还是我需要重新发明数学? …
42 licensing  c  gpl 

3
DOM有什么不好的地方?
我一直在听到人们(尤其是Crockford)说DOM是一个糟糕的API,但并没有真正证明这一说法的合理性。除了跨浏览器不一致之外,为什么认为DOM如此糟糕还有哪些原因?

6
如何使复杂的SQL查询更易于编写?[关闭]
我发现编写涉及多个(至少3-4个)表之间的联接并涉及多个嵌套条件的复杂SQL查询非常困难。我被要求编写的查询很容易用几句话来描述,但是可能需要大量的欺骗性代码才能完成。我发现自己经常使用临时视图来编写这些查询,这似乎有些曲折。您可以提供哪些提示以使这些复杂查询更容易?更具体地说,如何将这些查询分解为实际编写SQL代码所需的步骤? 请注意,我是被要求编写的SQL,是数据库课程家庭作业的一部分,因此,我不希望有能够为我完成工作的软件。我想真正理解我正在编写的代码。 更多技术细节: 该数据库托管在本地计算机上运行的PostgreSQL服务器上。 数据库非常小:最多有七个表,最大的表少于50行。 SQL查询将通过LibreOffice Base不变地传递到服务器。
42 sql  tips  query 

8
基本数据类型是什么意思?
我对原始数据类型的理解是 它是语言隐式提供的数据类型(其他是用户定义的类) 因此,不同的语言具有不同的数据类型集,这些数据类型被认为是该特定语言的原始数据类型。那正确吗? “基本数据类型”和“内置数据类型”之间有什么区别?维基百科说原始数据类型是这两者之一。 PS-为什么在SNOBOL4中而不是Java中将“字符串”类型视为原始类型?
42 data-types 

7
引用外部JavaScript与托管我自己的副本
假设我有一个使用jQuery的网络应用。更好的做法是将必要的javascript文件与网站文件一起托管在我自己的服务器上,还是在jQuery的CDN上引用它们(例如:http : //code.jquery.com/jquery-1.7.1.min.js) ? 我可以看到双方的优点: 如果是在我的服务器上,那就少了一个外部依赖性。如果jQuery崩溃或更改了其托管结构或类似的东西,那么我的应用程序就会崩溃。但是我觉得这种情况不会经常发生。必须有许多小型站点这样做,并且jQuery团队将希望避免破坏它们。 如果是在我的服务器上,那是一个比别人少的外部参考,有人可以称之为安全问题 如果它是从外部引用的,那么我不必担心为文件提供服务的带宽(尽管我知道不是很多)。 如果从外部引用它,而我正在将该网站部署到许多需要拥有所有文件副本的服务器上,那么我要记住要复制/更新的文件要少一个。

6
如何从软件开发人员发展为软件经理或团队负责人?[关闭]
我已经从事软件开发工作(无论是兼职还是全职)近3年了。我一直是那种领导事物并提供组织完成任务的诀窍的人。自从我在大学担任高级设计项目的负责人以来,我一直以为这是我的真正使命,而不是坐在办公桌前。现在,我知道我需要了解如何为其他开发人员编写代码,以真正尊重我。另外,我真的很喜欢编码。我在工作之余在家中从事许多辅助项目,与最佳编码实践保持一致,并尝试并不断加深我对该领域的了解。 我的主要问题是,我应该寻找哪种类型的事物或机会,这将有助于我的职业发展成为更高的管理角色,而不是编码角色。就像我说的那样,我喜欢编码,但是我更希望能够进行高水平的设计,并以这样的方式组织团队以完成工作并监控进度,同时提供技术支持在这里和那里的决定。这些类型的事情真正使我感到高兴,而不是整日坐在办公桌旁。 显然,我的主要梦想之一是自行开发某种软件,这些软件最终会爆炸并变大,然后开始聘请团队并自己完成所有工作,但是我觉得这种情况发生的可能性要大得多而不是仅仅改变我的职业道路就可以到达我想去的地方。我觉得我可以为雇主而不是我自己获得同样的满足感。即使我以前从未有过这样的感觉,但我感觉主要是因为我没有做我真正想做的事情。 有什么技巧,指示或要记住的事情吗?任何已经做到这一点的人,如果是的话,您是如何做到的?

7
Zend Framework为什么如此复杂?
我是Web开发人员,并且具有使用PHP开发多个Web应用程序的经验。我有为自己开发产品的想法,并决定使用基于MVC的框架,因为我真的很喜欢MVC的想法,以及如何轻松地管理和修改应用程序而没有任何困难。 我选择了Zend Framework,这似乎比学习一种新的编程语言更加困难。即使运行一个小型应用程序,一次有很多事情要做。 同样,路由的想法非常复杂,因为它对于核心程序员来说是新的。我知道这里的人读过成千上万个这样的问题,就像我问的那样,但我不想在一夜之间学习Zend Framework。我愿意根据需要提供尽可能多的时间,但是直到现在,这对我来说还是没有意义的。Zend库中有成千上万个类,但是菜鸟怎么会知道在哪里使用特定类以及如何使用它?我仍然很难理解Zend Framework的引导程序及其映射。我阅读了该手册,按照手册进行操作后,事情就开始起作用了,但是我确实并不完全了解它们的实际情况。 我仍然不知道模型,视图和控制器如何协同工作以及如何在Zend Framework中计划应用程序。当涉及到核心php时,我心中确切知道该怎么做,而不是轻松地将它们转换为代码,但是在Zend Framework中,我不知道如何转换我的想法。


2
“红/黑树”一词从何而来?
一个红/黑树是实现平衡的二叉搜索树的一种方式。它的工作原理对我来说很有意义,但选择的颜色没有意义。为什么选择红色和黑色,而不是一般的其他任何颜色或属性?当我听到“红色和黑色”时,首先想到的是棋盘和LesMisérables,这两种东西似乎都不特别适用。

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.