软件工程

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

7
对于程序员来说,知道如何从内存中实现QuickSort / MergeSort算法有多重要?[关闭]
我正在查看笔记,偶然发现了各种排序算法的实现。 当我尝试理解QuickSort和MergeSort的实现时,我想到,尽管我以谋生为目的进行编程,并认为自己做得很好,但是我没有摄影记忆,也没有足够的脑力去实现这些算法而没有依靠我的笔记。我只记得其中一些算法是稳定的,而有些则不是。有些需要O(nlog(n))或O(n ^ 2)时间来完成。有些内存比其他内存更多... 如果不是这样的话,我会觉得我不应该得到这份工作,因为我的职位不需要我使用除标准API之外的任何排序算法。我的意思是,你们中有多少人具有编程职位,实际上您必须自己记住或想出这类东西很重要?
58 algorithms 

8
何时在API中使用HTTP状态代码404
我正在做一个项目,在与工作人员争论了一个多小时之后。我决定知道堆栈交换中的人会说些什么。 我们正在为系统编写API,有一个查询应返回组织树或目标树。 组织树是用户所在的组织,换句话说,该树应始终存在。在组织中,应该始终存在目标树。(这是参数开始的地方)。如果树不存在,我的同事决定以状态码200回答响应是正确的。然后开始要求我修复我的代码,因为没有树时应用程序就崩溃了。 我会尽力避免火焰和愤怒。 我建议在没有树的情况下引发404错误。这至少会让我知道出了点问题。使用200时,我必须在成功回调中的响应中添加特殊检查以处理错误。我期望收到一个对象,但实际上可能会收到一个空响应,因为未找到任何内容。将响应标记为404听起来很公平。然后战争爆发了,我收到一条消息,说我不理解HTTP状态代码架构。所以我在这里,问在这种情况下404有什么问题?我什至得到了“它什么也没发现,所以返回200是正确的”的说法。我相信这是错误的,因为树应该一直存在。如果我们什么也没找到,并且期望得到结果,则应该是404。 更多信息, 我忘记添加获取的网址。 组织机构 /OrgTree/Get 目标 /GoalTree/GetByDate?versionDate=... /GoalTree/GetById?versionId=... 我的错误,两个参数都是必需的。如果提供了可以解析为日期的任何versionDate,它将返回关闭修订。如果您输入过去的内容,它将返回第一个修订版。如果按ID标识的ID不存在,我怀疑它将返回200的空响应。 额外 另外,我认为,对这个问题的最佳答案是在创建组织时创建默认对象,没有树不应该是有效的情况,应视为未定义的行为。没有两棵树就无法使用一个帐户。因此,它们应该始终存在。 我也链接了这个(一个相似但我找不到) http://viswaug.files.wordpress.com/2008/11/http-headers-status1.png

10
如何解释样本量不影响项目长度
我们有大型企业项目,它们通常涉及将数据从源数据库复制到目标数据库,然后设置许多其他应用程序来同步此数据等。 最后一个项目包含250,000个项目(数据行)。下一个项目将仅包含4,000个项目。项目经理/业务人员认为,该项目应该是完成时间的1/10,因为它只是上一个项目规模的一小部分。 我可以用一个很好的类比来解释,编写代码以将数据从一个系统传输到另一个系统所花费的时间是相同的,而与项目的数量无关-写一个项目或一亿个代码将花费大致相同的时间。观点看法。
58 analogy 

11
如何在数据结构中表示魔方
如果我尝试模拟Rubik's Cube,您将如何创建一个数据结构以将多维数据集的状态存储在内存中,每边X个图块? 注意事项: 立方体可以是任何大小 它是魔方,因此可以旋转图层


16
为什么有些工作岗位说“高压环境”?[关闭]
如果每个人都知道自己在做什么并且对项目进行了准确的估算,为什么会有压力?如果有压力甚至是高压,这意味着他们当前正在做的事情没有用,为什么任何优秀的程序员都想加入这样的团队?这些职位发布是否试图炫耀失败,还是真的只是诚实?还是真的有一些很好的理由要承受压力?

3
如何在面试中测试PHP技能?[关闭]
我的公司需要聘用PHP开发人员,但是没有人在我公司中拥有PHP知识,因此我们很难测试PHP技能。如果是C / Java开发人员,我会请他编写《生命游戏》的快速实现,但是PHP是一种完全不同的语言。 我感兴趣地看到了这个测试: http://vladalexa.com/scripts/php/test/test_php_skill.html 还有其他建议吗?
58 php  interview 

4
类的命名:单数还是复数?[关闭]
对于类名,我总是很难在单数形式和复数形式之间进行选择: CustomerRepository vs. CustomersRepository CustomerService vs. CustomersService CustomerController vs. CustomersController 对于复合名称,则更加困难: OrderCustomerRepository vs.OrderCustomersRepository vs.OrdersCustomersRepository 您喜欢哪种方式,为什么?

11
有能力的程序员应该能够提出自己的最短路径算法吗?
我作为计算机程序员的能力正遭受信心危机。 昨天,我尝试提出自己的图形最短路径算法,几个小时后,我简单地投入毛巾,学习了Dijkstra的算法。 这是一个好的程序员应该能够在几个小时内“重新发明”的东西吗?还是我不切实际? 哦,好吧,至少我能够重塑气泡排序:D
58 algorithms 


8
什么是“默认”软件许可证?
如果我发布了一些代码和二进制文件,但没有附带任何许可证,则默认情况下(在美国,我在哪里)适用哪些法律条款。我知道我什么都不做就自动拥有版权,但是对此有什么限制? 如果我将代码上传到github并宣布免费下载/随意提供,那么人们是否可以修改和关闭我的工作?我没有说他们不能像GPL那样,但是我也不认为默认情况下窃取我的作品也是可以接受的。 那么人们可以和不能使用免费提供的但绝对没有许可条款的代码做什么呢?

11
Java的现代回顾
我从事编程已经有几年了,我从Java开始。在我那段时间里,我发现许多不同的来源声称Java在某种程度上是一种劣等语言。我很清楚每种语言都有其优点和缺点,但是我所读过的有关Java的很多东西似乎都是过时的。 Java劣势最常被引用的原因是它比其他本地编译语言(例如C ++)慢得多。许多人批评游戏设计师Notch(开发了Minecraft)使用Java,因为它显然缺乏性能部门。我知道Java的运行速度要慢得多,但是此后有了很多改进,尤其是JIT编译。 我今天想就Java作为一种语言获得一些客观的见解。所以我的问题分为四个部分。 性能。 一种。今天的Java速度与C ++相比如何? b。是否可以使用Java创建现代AAA标题? C。如果有的话,在哪些方面Java比C ++慢?(即数字运算,图形或周围所有图形) Java现在被视为编译语言还是解释语言? 自早期以来,已经解决了Java的一些主要缺点? Java有哪些主要缺点需要解决? 编辑: 只是为了澄清起见,我并没有制作Java vs C ++,显然平均而言,c ++的速度要比Java快一点。现在,我只需要比较一下Java作为语言的成熟度就可以了。由于c ++永远存在,我想我将是一个比较点。

22
如果您无法解决问题会怎样?[关闭]
我距离大学毕业已经一年了,我真的很期待解决实际问题。特别是非平凡的,需要一些研究和大量思考。 但是与此同时,这也是我最大的恐惧-无论我如何努力,都面临着我无法解决的问题。由于迫在眉睫的交付截止日期的代码迫在眉睫,在uni的安全操场上观看代码时,确实看起来有些吓人(最糟糕的事情是您必须重做课程或考试)。 因此,对于那些已经从事了较长时间的行业的人来说,如果告诉您解决无法解决的问题,将会发生什么?它发生了吗?如果是这样,发生了什么?他们只是放下它说:“哦,好吧,我们可以做点别的事情了”?有后果吗?您受到谴责,甚至被解雇了吗?

15
我不认识C。为什么我应该学习它?[关闭]
我的第一种编程语言是PHP(gasp)。之后,我开始使用JavaScript。我最近在C#中完成工作。 我从来没有看过像C这样的中低级语言。 大型编程社区的普遍共识是:“坦率地说,没有学习C之类的程序员,就无法处理诸如指针,数据类型,通过引用传递值等编程概念。” 我不同意。我认为: 由于高级语言易于访问,因此更多的“非程序员”陷入困境 为了真正用高级语言完成所有工作,需要理解大多数“学习低级优先”的拥护者都宣扬的相同概念。 有些人需要了解C。这些人的工作要求他们编写低至中级代码。我确定C很棒,而且我确定有一些懂C的坏程序员。 为什么会有偏见?作为一个优秀,诚实,饥饿的程序员,如果我不得不学习C(出于某些不可预见的原因),我将学习C。考虑到那里的多种语言,好的程序员是否应该专注于学习什么能促进我们的发展?我们不应该学习我们感兴趣的东西吗?我们不应该利用有限的时间前进吗?为什么有些程序员不同意这一点? 我相信在工作上追求卓越是优秀程序员和劣质程序员之间的基本确定性特征。 在现实世界中,有没有人举例说明过用高级语言(例如Java,Pascal,PHP或JavaScript)编写的东西如何真正受益于C的先验知识?实例将是最大的赞赏。

15
可以使用空的catch语句吗?
我考虑了一下,无法提出一个例子。为什么有人要捕获异常却什么也不做呢?能给我举个例子吗?也许这只是不应该做的事情。
58 exceptions 

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.