软件工程

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

14
软件公司对准时制的看法如何?[关闭]
按时离开软件公司会带来什么后果? 处理这个问题的专业方法是什么? [编辑添加] 问题是关于标准工作时间,而不是在没有明确要求的情况下加班。在软件公司中和/或对于软件开发人员而言,加班是正常的还是期望的工作态度?如果一个人只按照当地法律或合同规定的标准时间工作,怎么会被同事和同事感知?

9
领域知识与技术知识有多重要?
我正在开发一个交易和风险管理应用程序,尽管从C#的背景开始,我还是被要求从事SSIS软件包的开发。现在我可以忍受了。痛点是过于强调业务理解。贸易(准确地说是能源贸易)是一个巨大的领域,对它的每一点了解都令人难以理解。但是在过去的两个月中,我一直在努力理解业务术语-以市值计价,风险度量,头寸,盈亏,希腊语,工具,账簿结构...每一个小细节(您明白了)。现在恕我直言,这是广管局的工作。当然,对于开发人员而言,了解业务非常重要,但是您如何划清界限? 当我与经理交谈时,他几乎嘲笑我说任何人都可以在一周内学习技术。这是更难的事情。我的长期愿望是留在技术方面,可能成为一名架构师(如果可能的话)。如果我想非常专注于业务,那我将攻读MBA! 我想知道我在理解业务重要性上是错还是太天真,还是感到沮丧?

10
Scrum团队如何在计划会议中说明基础架构任务?
Scrum团队如何在计划会议中解决开发/基础架构任务? 乍一看,它们似乎不像用户故事,因为它们无法传递最终用户价值。 但是,将它们作为任务附加到特定用户故事有时也没有意义。例如,说任务是:“安装竹子”。不需要完成该任务即可完成任何用户案例,因为团队可以手动构建和部署。因此,将其附加到用户故事没有意义,因为不需要完成此任务即可完成用户故事。 因此,这表明这些任务成为了用户故事。但是,如果团队故事指向他们,那么这将改变速度,这是奇怪的,因为产品负责人想知道积压的速度,而不是积压了大量技术用户故事的积压速度。
33 scrum  planning 

7
谁应该为修复/错误付费?[关闭]
因此,我刚刚开始从事台式机/网站开发方面的自由职业,并且这位已经接受了我的工作的客户开始为我付费,每次他发现错误等时,都会付钱给我。自由。这样可以吗,还是应该开始收取抚养费? 哪种方法最好地处理可能已经接受并完成的修复程序?

21
真的需要软件测试吗?
我是正在研究BE(CS)的学生,我的问题如下: 是否需要在软件领域进行测试? 如果我们非常谨慎地创建软件,那么为什么要进行测试? 经过测试,我们是否可以确定已经实现了该目标(产品/软件按预期工作),因为我们已经对其进行了测试?可能吗? 我的问题:是否需要测试软件?

9
在编写单元测试之前编写代码有什么缺点?
我一直看到建议,我们应该首先编写单元测试,然后再开始编写代码。但是我觉得(对我来说)走另一条路要舒适得多-编写代码,然后进行单元测试,因为在编写实际代码后,我觉得我们更加清楚了。如果我先编写代码然后进行测试,那么即使我将精力集中在创建可测试的设计上,也可能需要稍稍更改一下代码以使其可测试。另一方面,如果我先编写测试,然后编写代码,则当代码成形时,测试将非常频繁地更改。 正如我看到的有关开始编写测试然后继续进行编码的大量建议一样,如果我以其他方式进行编写,然后编写单元测试,则有什么缺点呢?

9
可能写太多的断言吗?
我非常喜欢assert用C ++代码编写检查,以此来捕获开发过程中由于程序中的逻辑错误而无法发生但确实会发生的情况。通常,这是一个好习惯。 但是,我注意到,我编写的某些函数(属于复杂类的一部分)具有5个以上的断言,就可读性和可维护性而言,这似乎可能是一种不良的编程习惯。我认为它仍然很棒,因为每个人都需要我考虑函数的前置条件和后置条件,它们确实有助于捕获错误。但是,我只是想把它放在那儿,以问在需要进行大量检查的情况下,是否存在更好的范例来捕获逻辑错误。 Emacs注释:由于Emacs是我的首选IDE,因此我将它的assert语句略显灰色,这有助于减少它们可以提供的混乱感。这是我添加到.emacs文件中的内容: ; gray out the "assert(...)" wrapper (add-hook 'c-mode-common-hook (lambda () (font-lock-add-keywords nil '(("\\<\\(assert\(.*\);\\)" 1 '(:foreground "#444444") t))))) ; gray out the stuff inside parenthesis with a slightly lighter color (add-hook 'c-mode-common-hook (lambda () (font-lock-add-keywords nil '(("\\<assert\\(\(.*\);\\)" 1 '(:foreground "#666666") t)))))


6
您将如何练习并发和多线程?[关闭]
我一直在阅读有关并发,多线程以及“免费午餐已经结束”的信息。但是我还没有在工作中使用MT的可能性。 因此,我正在寻找有关如何通过练习或参加一些开源项目来获得CPU重度MT练习的建议。 谢谢。 编辑:我对使用MT来执行CPU约束任务的开源项目更感兴趣,或者对使用MT来实现有趣的算法感兴趣,而不是只描述线程,互斥锁和锁之类的工具的书籍或论文,或者MT如何用于具有响应式GUI ...

4
适用于C,C ++等的JIT编译器
是否有针对C和C ++等已编译语言的即时编译器?(想到的第一个名字是Clang和LLVM!但是我不认为它们目前支持它。) 说明: 我认为该软件可以受益于运行时性能分析反馈以及在运行时对热点进行积极优化的重新编译,即使对于C和C ++等编译为机器的语言也是如此。 概要文件引导的优化可以完成类似的工作,但是不同的是,JIT在不同的环境中会更加灵活。在PGO中,您在运行二进制文件之前先运行它。发行后,它将不会在运行时收集任何环境/输入反馈。因此,如果更改输入模式,则可能会降低性能。但是,即使在这种情况下,JIT也能很好地工作。 但是,我认为JIT编译性能的好处是否超过其自身的开销是有争议的。

11
当编码开始变得无聊时,该怎么办?[关闭]
我从6岁开始使用Commodore 64编程。现在我28岁,我必须完成计算机科学一级学位的4门课程。 这些年来,我开始对编写代码感到无聊。我已经学习了理论计算机语言的计算机科学课程,并且在网络安全领域学习了10年的C系统编码,但是编写代码并没有带来任何刺激。 我可以用C,C ++,Python或任何您想要的语言编写代码,但是我对自己的工作并不感到兴奋。我感觉不到任何挑战。我已经编写了多线程代码,HTTPS MITM代理和WSGI应用程序,而无需任何特定的算法技能。 我觉得所有这些新东西都是一样的,其中包含了更简单(或更多个)的抽象或自动化,但是对我来说,这些听起来都是一样的。一遍又一遍地。可计算语言都是图灵可计算的,因此编码仅是部分函数此子集中相似模式的复制。 在日常工作中,即使寻找错误,对代码进行基准测试或解决X,Y,Z库问题,也感到无聊。 我是一个很好奇的人。我总是被某些东西刺激。但是,即使我查看出色的代码,我也无法做到。我对事情的运作方式感到更自在。 现在是时候提高我的职业了吗?还是要获得更多具有挑战性的计算机科学知识?也许会获得CS的专业学位? 我已经开始阅读有关项目管理“ Peopleware”的第一本书,并且我对软件开发生命周期越来越感兴趣。您建议做什么? 也许像我的一些朋友一样试图进入Google或Microsoft或Apple。或者,也许是更具管理性的职业道路。我还试图找到一本有关沟通规则和“人格特征”的好书,以使我为进入管理领域做好准备。 有什么建议么? PS:我很感兴趣,我并不沮丧 :)我喜欢爬山,徒步旅行,照相和我是运动登山者,我喜欢游泳和运动,有时候我会跑步,实际上我读了一本关于我的国家(意大利)从AC到今天的故事的书,我很喜欢旅行(今年夏天,我赚了4000Km,看到西班牙有很多地方可以爬上去,仅用了3周的时间,这不是假期,而是马拉松,长达24公里的徒步旅行使我的疝气受伤),我热爱戏剧和生活。 多亏了所有人,思考所有答案为我提供了使自己的道路更加清晰的机会。 出于总结目的,我们可以概括投票最多的答案。 首先,所有的人的票了必要性,以使我们的工作支持你的生活,而不是唯一的理由留在生活中(这不是我的情况),所以,如果你唯一的理由生活,如果工作,你来的太快真的很沮丧 正如人们所说的那样,维也纳不等您:) 在此提醒之后,人们建议: 增加技术复杂性我实际上正在努力增加挑战并减少对此的无聊。 将专业领域更改为非技术领域,试图成为经理,或者在与您的工作相关的非技术领域取得一些进步。 在另一种技术挑战中改变专业领域,您是系统程序员吗?尝试减少对人的应用程序的开发,以便您可以使用有用的软件更轻松地查看人 在您的学术道路上提高计算机科学学位 出于我的目的,正确的答案是在计算机科学领域取得进步,就我的感觉而言,我认为编程不是获得计算机科学的唯一途径,而且我认为与计算机工程专业人士不同的是,获得计算机科学的其他道路会更好。

9
抽象:解决问题和一般解决方案之间的战争[关闭]
作为一名程序员,我感到自己陷入困境,希望使我的程序尽可能抽象和通用。 这样做通常可以让我重用我的代码,并为可能(或可能不会)再次出现的问题提供更通用的解决方案。 然后我脑海中的声音说,解决问题虚拟化就这么简单!为什么要花比您更多的时间? 我们所有人的确都遇到过这个问题,抽象在您的右肩上,而“解决问题的愚蠢”在左边。 听哪个,多久听一次?您对此有何策略?您应该抽象一切吗?


7
Haskell的类型系统是理解函数式编程的障碍吗?[关闭]
我正在研究Haskell,目的是理解函数式编程,并期望我将应用在其他语言(主要是Groovy,Python,JavaScript)中获得的见解。 我之所以选择Haskell,是因为我有一个印象,那就是它纯粹是功能性的,不会允许任何对状态的依赖。 我没有选择学习Haskell,因为我对导航一个非常严格的类型系统感兴趣。 我的问题是:强类型系统是否是一种极其纯净的功能语言的必要副产品,还是这与Haskell无关的设计选择?

2
求职面试中的选脑[关闭]
最近,我在一家硅谷大公司接受了一次高级软件开发/研发职位的工作面试。我有几个技术电话屏幕,一整天的现场采访以及以后要担任其他职位的更多技术电话屏幕。 面试非常顺利,我在申请领域拥有博士学位和工作经验,但没有提出任何报价。到目前为止,一切都很好。我受雇了,这是一次很有趣的经历,对此一点都不感到难过。 一些采访者提出了非常详细的问题,以至于怀疑我一直在研究的新技术。这些技术仍在开发中,尚未上市。我知道一些主要的硬件/软件公司也在从事此工作。根据以前的面试经验和一些面试官留下的印象,我之前曾进行过多次面试,现在我知道这家公司想要我做的就是提取一些有关我在该领域工作的想法。记住,我指的是研发职位,而不是标准的软件开发人员。 到目前为止,有人遇到过这种情况吗?您如何处理呢?我不是很在乎“窃取”想法,而是更多地在没有意图雇用的情况下被欺骗参加面试。我正在考虑将来拒绝进行技术面试,而是提出一个试用期,以便公司可以轻松地重新考虑其雇用决定。
33 interview 

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.