软件工程

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

11
如何与执行所有技术决策但几乎没有技术知识的首席执行官打交道?
匿名张贴问题的原因很明显。我在一家由5-6名开发人员组成的开发团队的公司中工作,我处在难以应付的情况下。 每个技术选择(语言,框架,数据库,数据库方案,配置方案等)均由首席执行官决定,通常没有太多理由。修改这些选择非常困难,尽管我们提出了几种详细的利弊方案,但他的主要论点是“我不喜欢这样”。他还将决定在没有给出任何理由的情况下从头重写我们的核心产品,并且他从不参加开发会议,因为他认为这样做会使事情变慢。我们(开发人员)可以做些改善情况。 两个使我震惊的例子: 他会要求我们实施类似于配置管理的内容,但是他拒绝任何现有框架,因为它们不是用他喜欢的语言编写的(即使实现语言无关紧要)。他还希望我们能够在几天之内编写这些系统,“因为它非常简单”。 因为当前的代码库太糟糕了(他的设计是他自己设计的代码库),所以他总是用自己的核心产品从头开始重写。我们正在进行一年中的第三次重写,每次重写都比前一年更糟。 到目前为止,我尝试过的事情是对我们的产品进行详尽的基准测试(他一直抱怨我们的软件太慢,并且有理由进行重写以使其更快),使用现有产品实施解决方案作为工作证明,而不仅仅是制作优缺点图表,等等...但是这些努力中的90%还是丢到了垃圾箱(再也没有背后的任何理由,他再也不喜欢),并且经常受到谴责,因为我没有完全按照他的意愿去做(没有意识到他想要的是不可能的)。


10
我们可以假定今天所有用户都可以访问互联网吗?
由于Internet几乎无处不在,我们作为开发人员是否可以假设所有用户都可以访问Internet?现在,我并不是说代码的编写方式是:如果没有连接,则由于缺少错误代码,整个程序将崩溃。我的意思是,今天的程序是否可以在假设其用户将始终可以访问Internet的情况下进行开发? 您可能会问:“假设这一点会获得什么?” 我问的原因是因为在uni我们使用了很多程序,这些程序由于检查许可证的方式而需要Internet访问(它检查您的IP地址-如果它不是校园地址,那么您就是不允许使用)。请注意,程序本身在没有Internet访问的情况下应该可以正常运行;仅用于许可证检查。 编辑: 我在这里谈论桌面应用程序。 EDIT2: 从一些答案中,我有一种被指控以不道德的方式利用用户的感觉。我不同意我在这个问题中描述的内容-我只是在问这个问题,因为我们在uni上使用的某些程序的开发人员已经做到了。我个人认为这样做显然是愚蠢和错误的。

7
静态代码分析的真正好处是什么?
诸如pc-lint或QAC之类的工具可用于在代码库上执行静态代码分析。 以我的经验,静态分析通常会产生大量的噪音,例如,警告不是真正的错误,但却以某种方式违反给定规则集中的规则之一。关闭某些规则(无论是完善规则集还是通过代码中的特殊注释)可能都是一个麻烦的过程。 静态代码分析的真正好处是什么?

24
在没有图形IDE的情况下编写程序
我不确定这是否可能,但是我看了一些带有编程示例的视频,其中似乎是在某种命令提示符下而不是在漂亮的图形化IDE中编写程序。我只是对这些视频中可能发生的事情感到好奇。是否可以在没有IDE的情况下编写程序? 这是两个示例:http : //www.youtube.com/watch?v= hFSY9cWjO8o (@ 6分钟) http://www.youtube.com/watch?v=tKTZoB2Vjuk(@ 5分钟) 谁能解释这是怎么做的? 谢谢大家的宝贵意见!
18 ide 

13
使用ELSE编程不好吗?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我经常遇到由于使用该ELSE构造而导致的错误。一个典型的例子是: If (passwordCheck() == false){ displayMessage(); }else{ letThemIn(); } 对我来说,这是安全问题。我知道passwordCheck可能是布尔值,但是我不会将应用程序的安全性放在上面。如果它是字符串,int等会怎样? 我通常会尝试避免使用ELSE,而是选择两个完全独立的IF语句来测试我的期望。然后,其他任何东西都将被忽略,或者将被专门处理。 当然,这是防止错误/安全问题进入您的应用程序的更好方法。 你们是如何做到的?

6
您如何训练替代品?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 我最近问过要离开一个职位,并得到了很多很好的答案。共同的思路之一是,可以训练新人,并且可以走很长一段路。 现在考虑到(我认为)大多数人在接到通知后不会在公司呆很长时间,而且公司面试/雇用一个人会花费一些时间-剩下的时间很短加快步伐。 我也从未训练过任何人。我曾在大学和学院里做过很多补习,但是教授语言/技术与培训某人以代替您代替您的工作有很大不同。 因此,问题是:您将如何训练某人在短时间内替换您?

8
您将如何考虑用于Web应用程序(PHP)开发的最佳实践工作流工具?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 我真的希望有更多经验的人可以按照我的答案示例来编辑问题: 使用版本控制 测试驱动开发 调试代码(适用于php的xdebug) 使用UML图 将OOP用于可维护,可重用的代码 使用框架(例如Zend Framework for php)进行快速的应用程序开发 还有什么或我上面提到的阐述? 基本上,我正在组建一个开发人员团队(我自己是开发人员),并且我想就专业的程序员/设计师等应如何协同工作以及应该使用哪些标准/范例提出一些建议。 另外,如果有人在该主题上有任何书籍或链接,我也欢迎! 我确实找到了我想满足的条件,或者至少满足了一部分条件: http://www.ibm.com/developerworks/websphere/library/techarticles/0306_perks/perks2.html

16
您今天是否将C用于软件项目?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 如果是,您将在何处以及为何使用它? 如果否,请说明为什么您不接受C。

5
持续集成工具在一个单独项目中提供什么优势?
如果您正在做一个单独的项目-您是否会使用CI工具从存储库中进行构建?我在团队环境中使用了Hudson和Cruise Control,在该环境中,任何人只要签入任何东西就必须立即构建。 我认为版本控制的价值仍然显而易见,但是我是否需要在每次提交后进行构建,就像我只是在本地计算机上进行构建一样,没有人提交?

8
不可变对象和DDD是否在一起?
考虑使用DDD的系统(同样:使用ORM的任何系统)。实际上,在几乎每个用例中,任何系统的重点都是操纵这些域对象。否则,就没有真正的效果或目的。 修改一个不可变的对象会导致该对象持久化后生成新记录,这会在数据源中造成巨大的膨胀(除非您在修改后删除了以前的记录)。 我可以看到使用不可变对象的好处,但是从这个意义上讲,我从来没有看到使用不可变对象的有用案例。这是错的吗?

9
掌握JavaScript的途径是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我知道我们是如何从JavaScript开始的,我们剪切并粘贴了代码片段以获取一些客户端功能或验证。 但是,如果您遵循这种方式尝试实现丰富的交互行为,那么不久之后您就会意识到自己正在创建一个“大泥浆球”。 那么,在交互层编程中寻求专业知识的途径是什么?哪些书籍,教程,练习和过程有助于编程强大,可维护的JavaScript? 我们都知道练习对任何努力都很重要,但我正在寻找与此处答案类似的路径:https : //stackoverflow.com/questions/2573135/

7
仍然值得学习台式机GUI开发吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 在过去的几年中,我从事的所有重要项目都是基于Web的,或者具有非图形用户界面(服务,命令行脚本等)。我可以将WinForms应用程序放在一起,也可以在需要时执行一些简单的WPF,但是我从来没有真正研究过一些较低级别的API,例如MFC或QT。 我了解这取决于情况,但总的来说,还是值得花一些时间来更好地学习桌面开发,还是应用程序以使该知识不那么相关的步伐迁移到Web和移动设备上?另外,您希望与您合作的开发人员具有桌面GUI专业知识吗?

9
当技术天才还不足以成为成功的开发人员吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 关于“ Stack Overflow的良好声誉是否有助于找到一份好工作? ” 这一极好的问题,已经进行了很多讨论。我立即同意JoshK,基本上说“ 不 ”(我会解释为什么),但乔尔 插话与很多说服这让我给予好评他以及事实的。 我的问题是,开发人员还需要什么其他技能(不是技术天才)?得到这份工作,或保留它。 我相信,成为一个天才远远不够。我在我工作过的各种公司中遇到了许多技术天才,这给我留下了深刻的印象,但可悲的是,在许多情况下,它们只是在几个月后被开除或放入象牙塔中(主要是由于其他开发商的内部mu变)。据我了解,由于这种情况,我已经看到许多人身困扰。 这就是为什么我非常热衷于非技术性问题。我想知道应聘者将如何与他人(包括非技术性员工)进行互动,对企业有多大考虑,如果他愿意为预期的结果而工作,等等。 我想知道您对开发人员的要求,为什么这很重要(毕竟,您雇用了某人来编写代码,对吗?您为什么要让他保持自信?)。理想情况下,我希望您提出一个示例性的问题,以便在面试时提出以支持您的答案。
18 skills 

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.