软件工程

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

1
Oracle对Java的承诺是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我们正在Java上进行大量投资,但是根据最近的经验并阅读Joonas在该问题上的回答: 如果您在Java 6中使用了这些标志,则可能会由于从6u19到6u20的微小升级(大约)而不仅崩溃,而且循环执行不正确,即计算错误。 ...以及有关 Java 7显着问题的相关博客文章,使我们担心Java的质量不断提高。 Oracle是否正在解决这些问题?Oracle提供了哪些保证来确保Java在将来得到良好的支持?
15 java  oracle 

10
如何平衡代码质量与强大的开发人员个性
在工作中的代码审查中,我一直看到我认为“聪明”的代码和模式,尽管不一定会增加代码库的整体质量或可维护性。我在反馈中指出了这一点,并且对此反驳不服。这段代码在回购中并随后投入生产时,我有点担心。 我想保持一支团结一致的团队,所以我不想因过于保留我的意见而引起紧张。我也想为我们的客户创造一个很棒的产品,同时又不要太宽容。 传统上,谁对签入的内容和方式具有“否决权”? 如何在不踩踏脚趾的情况下将有效但又太复杂的代码删除?

4
当限于小屏幕空间时,如何在Visual Studio中最高效?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我是一名学生,我在课堂上随身携带的小型(12.5“,1366x768)笔记本电脑屏幕上进行大量代码编写。大多数编程环境的设计理念是有人可用大屏幕,因为大多数实际上,程序员确实可以使用大屏幕,但是大屏幕很难整天上课,而且我以前的笔记本电脑(15英寸,1920x1200)经常因为沉重的工作而留在宿舍里。 此时,我几乎已经锁定Visual Studio。我曾经使用过的程序无法像我使用的那种代码那样高效(当然,在安装了Whole Tomato的Visual Assist和Jared Par的VsVim之后:)) (我已经看到了其他有关小屏幕的问题,但是它们几乎都与“离开Visual Studio”一起使用-考虑到我一直在进行的某些开发工作,这很难。

17
当浏览器告诉网站时,为什么网站必须询问语言和国家/地区?
那么,为什么浏览器告诉网站时,网站必须问(说)语言和国家/地区? 编辑:具体来说,我的意思是为什么不使用http标题中的accept-language部分,该部分由浏览器中的语言设置设置,而不是基于IP地址。这个问题的重点是放在墙上的网站,迫使用户在使用网站之前选择一种语言,而应该提供一种易于访问的设置。 编辑:这是一个用户体验问题,重点在于用户在首次设置计算机时应在浏览器中设置语言设置(如果用户足够聪明,或者可以问足够聪明的人)。

4
完成个人项目的最佳方法
我有许多个人项目已经开始但似乎从未完成,因为我被其他想法所困扰。我想知道完成个人项目的最佳方法是什么?有任何技巧或提示吗? 问题是我从某些项目中获得灵感,我不想失去自己的想法,而现在我的“保存想法”的方法是在一个想法中尽可能多地完成工作晚上,然后存储一些有关dos的GitHub问题。我发现这使我再也回不去老项目了。

4
从开发人员转到编程老师[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我对在大专,教学学院或高中成为编程老师的软件开发人员的经验感兴趣。 我想知道是否有人进行了切换,是否坚持使用了该工具,或者他们是否已回到行业—以及原因。 在过去的7年中,我一直在想(可以断断续续)尝试一下,看看它是什么样子。我有一些朋友,都是老师,似乎很喜欢他们的工作。从我的朋友对我的了解以及对我自己的了解,我认为我很喜欢。 编辑:自从我写这篇文章以来,我搬到了西雅图去找一份新工作。我找到了一所本地大学,在那里我可以教授编程和数据库方面的夜间课程。这很有趣,但是对于要求苛刻的全职工作和家庭可能会感到压力。对我来说,我喜欢教书,但我更喜欢建立。我很高兴能够将我的大部分精力都集中在建筑上,并且我有一个很小的门路可以教别人。我已经决定不想成为全职的教学老师。 我注意到我不喜欢教学的一件事(也是我不会将其全职工作的主要原因)是,您在教书时没有向同龄人学习。我喜欢在日常工作中如何始终从同事那里学习新知识。我从中得到了很多能量,我不愿意放弃。
15 education 

6
如果我不了解C#,如何聘请优秀的C#开发人员?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我是C ++开发人员。我知道Windows如何在本机级别上工作,但是我不是C#和.NET的专家。现在,我需要在团队中使用C#开发人员(我所有的开发人员都是C ++)。如果我不熟悉C#,该如何聘请优秀的C#开发人员?如何提出问题,如何测试答案是好的还是愚蠢的错误?
15 c#  c++  hiring 

7
将错误修正注释保留在代码中是否很好?
我的团队正在使用透明脚本作为版本控制。我正在从事的项目还没有开始7-8年前。在项目的整个生命周期中,我们发布了多个bug修复服务包等。使用bug跟踪系统可以跟踪问题,并且大多数从事bug修复的人员都遵循将注释包含在START /中的例程。用日期,作者,错误ID等结束块 我觉得这无关紧要,并使代码混乱且难以维护,这些都是检入注释/标签等中必须包含的内容,我们可以在其中保留工作产品的其他生命周期信息。 最佳实践是什么? 该代码的某些审阅者坚持要删除有关该错误的注释,并进行修复以简化其寿命。以我的理解,他们必须通过将文件映射到视图来审阅文件,并获取分支的更改日志并进行审阅。如果我可以将一些最佳实践提交更新的代码进行审查,将很有帮助。

6
是不是SQLite有点被低估了?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 在提出问题之前,让我首先描述一下我对SQLite的看法。 我碰巧喜欢小型,快速且更重要的是仅具有真正必要功能的工具。这就是为什么我喜欢SQLite而不喜欢MS-SQL的原因。 例如:MS-SQL可能具有更多的功能,可伸缩性等,但是如果您不走运,安装它也会很麻烦。当然,我并不是说安装困难是不选择特定数据库的原因。 不能误解我的意思:MS-SQL是优质产品。我对MS-SQL很有经验;我非常了解产品。我只是不太喜欢它,而在某些情况下并不需要它(=没有多少用户,<10-15)。 您实际上使用了多少数据库功能?以我的经验,它通常只是普通的SQL(SELECT,INSERT和UPDATE)。 我喜欢SQLite。快速着迷。“安装”非常容易。我认为SQLite可以做的比声明的要多。为什么只将其用于单进程/单个用户应用程序?毕竟:没有多少应用程序会不断访问数据库。 例如:考虑一个有15个用户的ERP应用程序。为什么不能使用SQLite?让我们面对现实吧:以我的专业经验,大多数时间,此类应用程序的用户访问数据库的时间将占他们使用该应用程序的总时间的5-10%。在另外90-95%的区域中,他们只是看着屏幕上的信息,以表格/表格形式输入数据,并且保存输入的时间不超过数据库时间的1秒。铁:1.5分钟的输入时间与1秒的保存时间。 如果SQLite数据库文件在“节省时间”期间被锁定,则需要访问数据库的其他用户只会等待,但他们不会注意到,因为等待时间会非常短(不明显)。在代码中,您只需要处理数据库可能的“繁忙”时间,以避免出现异常,但这并不难做到。 有些人必须像我一样思考,甚至​​为SQLite构建了一个客户端-服务器解决方案:SQLitening。这使我更加相信自己可能不会自欺欺人。 当然,有些数据库密集型应用程序不适合使用SQLite。但是,正如我现在考虑的那样,许多多用户应用程序(如果它们不超过15个用户)应该可以很好地使用SQLite。 我们的许多客户在硬件上的花费并不多,因此我经常遇到一台服务器,上面有所有东西(Exchange,SQL,客户端等),因此几乎“气喘吁吁”。如果我可以提供对系统要求不高的产品,那么我的客户将很高兴。SQLite不会增加任何权重(至少不会增加多少),​​MS-SQL会增加。因此,我不会选择SQLite,因为它是免费,便宜或易于安装的。我出于实际/技术原因会选择它。 仅供参考:根据我的专业,我们向客户销售产品(自定义和标准产品,主要是与ERP相关的产品),平均而言,使用该产品的客户不超过5-6人。有一些例外,但用户数不能超过10-15。 问题是:我是否认为可以将SQLite用于某些多用户应用程序(如我所描述的示例)正确吗?我应该知道什么技术上的缺点吗?您有哪些经验(负面或正面)可以帮助我做出正确的选择? 更新:请不要将此视为对其他数据库的负面判断。它们大多都是优质产品。只是在这里分享我的想法并对您对此的看法感兴趣。


1
有没有实施和有效应对“混沌猴子”的例子?
杰夫·阿特伍德(Jeff Atwood)最近写了一篇关于Netflix实现“混沌猴子” 的博客文章。这是一篇非常高级的文章。我很好奇是否有人实际实施了该技术来测试系统。 我想我真正想问的是:您采用什么策略来确保您的体系结构能够在系统崩溃的一部分中生存下来?

11
为截止日期设定切合实际的期望
我是一个小型团队的技术主管。我的主要任务之一就是与客户沟通。我发现特别困难的一件事是处理截止日期,因为截止时间是客户委托的,而我却经常没有得到咨询。 通常,交互遵循以下模式。客户端提供了他们想要添加的功能,功能X。功能X在下周的应用程序发布中(大约6个工作日后)看起来不错。此时,功能请求需要经过批准,并且经常需要处理其他依赖项。最终,在N天后,功能请求被滴落到我的团队中。即使原始的最后期限(由非开发人员设置的期限)可以实现,也不再可行。我的团队受到责备,感到灰心,并且总体上有失败的气氛,我感到灰心和失败。 显然,整个过程被打破了。不幸的是,我无能为力,因为我在这里没有权力。我目前的做法是向客户温和地提醒我们开始日期,截止日期,功能的范围等。这感觉很像我在找借口。 你们遇到过类似情况吗?有什么/没有为您服务?

3
选择模拟框架的关键因素是什么?
我希望开始使用单元测试中的对象。似乎那里有很多好的模拟框架。 不同的框架有不同的目标受众吗? 在选择适合自己情况的框架时应考虑哪些因素?
15 mocking 

6
如何确定双重递归函数的运行时间?
给定任意双递归函数,将如何计算其运行时间? 例如(用伪代码): int a(int x){ if (x < = 0) return 1010; else return b(x-1) + a(x-1); } int b(int y){ if (y <= -5) return -2; else return b(a(y-1)); } 或类似的规定。 一个人可以或应该使用什么方法来确定类似的东西?


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.