编程是一门艺术吗
在一定程度上,一切都能感觉到“艺术”,编程也不例外。但在科技行业,人们往往认为“艺术”是随心所欲、难以管理的。如果程序员把编程当成“艺术”,他们会吓到公司的老板。
大多数人开发软件以满足客户的需要,而不是享受自己。标准化可以提高质量和效率,最实用的价值,虽然它在一定程度上抑制了“艺术”。编程艺术是一种创建高级程序的感觉,但它不是软件公司的指导方针。
你应该在编程中使用更多的技能吗
作者的观点:就软件开发而言,技术的优势在于它能以不同的方式解决一些问题。缺点是技术不熟悉。如果您在程序中使用了太多的技术,您可能会留下一个其他人无法理解的隐藏问题。本地优势对于整个系统来说是小的,而错误可能会对整个系统造成致命的影响。我建议用自然的方式编程,不要滥用你的技能。有时我们不知道我们自己骄傲的行为是锦上添花,还是锦上添花。就像蒸出一笼馒头,在上面插一朵鲜花,本想弄点诗情画意,却让人误以为那是一堆热气腾腾的牛粪。
更快的计算机或更快的算法
如果软件运行速度较慢,是更快的计算机还是更快的算法?
如果开发软件的目的是学习或研究,就应该设计一个更快的算法。如果该软件已经在商业上可用,应该慎重考虑。如果一台速度更快的电脑能解决这个问题,它是最快的解决方案。改进后的算法可以从根本上提高软件的速度,但可能会出现错误和延迟进度。
技术爱好者无疑会选择后者,因为他们觉得放弃任何可以优化的东西都是犯罪。类似的争论:购买现成的程序,还是自己开发?技术和商务人士经常做出不同的决定。
是否应该对错误进行评分
微软的一些开发团队将错误分为四个级别。
第1级:错误导致软件崩溃。
第2级:错误导致一个特性不运行,没有其他选择。
第3级:错误导致一个特性不运行,但有另一个选项。
第4级:错误是肤浅的或小的。
评级错误的好处在于统计分析,仅此而已。但上述分类具有较大的技术倾向,并不是普遍适用的。假设在一些财务软件中有两个错误:错误导致软件死亡,而错误B导致了工资错误。根据上述分类,错误A是严重的,错误B是严重的。但事实上B比a更严重,或多或少,它会让老板或员工经济损失。而错误A只是惹恼了操作员,没有经济损失。例如,航空软件操作手册是错误的,根据上述分类,是一个四级严重,但这种错误会导致机器去除死,它还小吗?
开发人员应该认识到所有的错误都是严重的,并且没有小错误。只有这样你才能少犯错误。
一些错误的思想
其中一个误解是:我们有一套关于如何开发软件的书,其中有很多标准和例子,可以帮助我们解决软件开发中遇到的任何问题。
一本好的参考书无疑会指导我们的工作。在书籍中使用方法、技术和技术可以有效地解决软件开发中大量的常见问题。但从业人员不能依赖书籍,原因有二。
(1)在现实世界中,由于工作条件的不同,即使是相当成熟的软件工程规范也往往不适用。
(2)软件技术正在迅速变化,没有一个标准可以茁壮成长。祖传秘方在某些领域很受欢迎,软件可能意味着落后。
迷思之二:我们有资源和资源去购买最好的设备,生产出优秀的软件产品。
大公司通常都有这种心态。良好的开发环境只是产生结果的必要条件,而不是充分条件。如果你有一个良好的环境,你就会有一群平庸的人或一群聪明的人,他们正试图从中大赚一笔。
误解3:如果你的进度落后了,你可以添加更多的程序员来解决这个问题。
软件开发与传统农业生产不同。如果您将一个新手添加到一个进度落后的项目中,您可能更有可能推迟项目,原因如下。
新手会犯很多新错误,使项目更困难。
(2)一个老手要花时间向新手解释他的工作和想法,使实际的开发时间变少。
因此,准确地规划你的项目是很重要的,而且不要在意时间表看起来有多快,并且要适当地计划。
误解4:只要你认真工作,你就可以提高软件的质量。
作者的观点是:软件开发是一种智力活动,世界上最细心和最实用的程序员不一定开发出高质量的软件。程序员必须了解软件质量的所有方面(称为质量属性),您必须首先了解如何提高质量,可以在需求开发、系统设计、编程、测试等方面都有高质量的内置。
软件质量属性不是完全独立的,而是相互交织、相互作用的。因此,同时考虑几个质量属性是很重要的,这样程序就能达到整体的最佳状态。请记住质量属性,这样在设计程序时,您就可以编写高质量、无错误的代码,并减轻检查和调试的负担。
经典的软件工程书籍就像砖块一样厚重,或者令人生畏,或者思维缜密。请原谅作者的天真,本章试图通过聊天和推理来解释软件工程的真相。软件工程的概念、方法和规范都是不矫揉造作的,普通人也能理解,但只有在实际使用的时候才能理解。我们不能把软件工程方法看成是诸葛亮的套筒——在问题出现后,要预先出现的问题,控制每一环节的练习,防患于未然。
研究软件工程永远不会像理论家那样聪明:这个定理证明了,而且已经结束了。
领取专属 10元无门槛券
私享最新 技术干货