论现代软件开发

介绍

今天的软件开发与20年前不同。 为了使软件开发人员跟上技术进步,需要不断学习。 这不是真的。

在本文中,我想表明现代主流软件开发,尤其是Web应用程序,需要完全不同类型的开发人员。 您必须学习并应用完全不同的技能。 仅提高您的核心编码技能是不够的。

现代软件开发是关于了解工具和库以及使用它们的情况。 不再需要知道如何创建最佳算法。

编程已从90年代的传统编码(需要正确的数据结构和算法的复杂应用)过渡到当今的库,框架编排。 编程人才对于阅读和理解外来代码仍然是必不可少的,但已经不足以成为有效的开发人员。

正如“有一个应用程序”一样,您会发现这里有一个满足所有需求的库。

经典软件开发:算法和知识

在过去,情况非常清楚。 Windows是操作系统,计算机是台式机。 没有智能手机,没有平板电脑,没有云。 主流软件开发意味着要使用Visual Studio,Delphi或Oracle Forms等IDE开发桌面应用程序。 您购买了它们,并且不得不使用它们的功能。 如果您需要一些缺少的功能,则必须自行开发。

您必须依靠自己的技能和书架上的书。 如果您在可以访问Internet的特权环境中工作,则至少可以从新闻组获得帮助。 即使那样,您也必须自己实现图书馆今天提供的许多功能。

我只能推测原因。 我肯定知道的一件事是,在Internet的早期,获取软件仍然意味着将其物理地存储在您必须首先找到的供应商的软盘或CD-ROM上。 这意味着从印刷目录或技术杂志的广告中选择产品。 开源才刚刚开始,因此您实际上必须为该软件付费。

可以理解,这个耗时的过程除了自己实现许多功能外没有其他选择。

通过创建自己的库,您降低了一层抽象层,发现自己处在必须确保性能良好,没有内存泄漏并且可以在许多用例中工作的情况下。 这需要对如何实现在库之上运行的通用数据结构和操作有一个深刻的理解,换句话说,就是编写算法。

正式课程符合这些要求。 您学习了数据结构和算法。 您介绍了二叉树,链接列表,各种排序算法的实现,以及使用Big O表示法来计算算法的最佳/最差/平均情况的性能。 Knuth的纲要“计算机编程的艺术”是经典软件开发人员的圣经。

最后但并非最不重要的一点是,您必须在数学方面保持智慧。

现代软件开发:管理和合并库

随着万维网的兴起,主流软件开发已从桌面应用程序转移到Web应用程序。 全新的复杂程度会影响项目基础结构,编程语言,数据库设计等。 这样的规模意味着一个开发人员甚至一个团队都无法拥有使用经典技术完成项目所需的知识。

随着开发人员通过互联网将自己开发的库传播给公众,开放源代码领域得到了极大的推动。 结果,库的数量和种类繁多。 例如,用于浏览器的库范围从Angular之类的巨型框架,到moment.js或lodash之类的小型专用工具。

继续上面的示例,应该非常清楚,您永远不要花时间编写用于时间操作的JavaScript实用程序函数。 避免开发,错误修复和重构的恐怖时光! 只需使用moment.js并继续前进即可。

除非您必须为一个独特的目标而开发一个库,否则,没有一个团队会比一个熟练于该特定领域的技术开发人员做得更好,这些团队具有多年的经验并得到积极贡献的开源社区的支持。

同样,对于最原始的操作(如遍历集合),最好使用存在的库。

例如,最好将lodash之类的库用于原始操作,例如在Javascript中执行循环,而原生的forEach在某些浏览器中则较慢。

当今程序员面临的主要挑战不是制定最合适的算法,而是找到合适的库并知道如何组合它们。 在最佳情况下,您仅编写所谓的粘合代码来管理库之间的相互作用。

当然,您的应用程序具有独特的销售主张,使其与众不同。 该核心代码应该并且可能必须由您的内部团队开发。 对于不属于核心的代码,您应该花一些时间检查现有的库。 您应该找到一种可以为您提供所有必需功能并得到积极维护的功能。

结论

在引言中,我大胆地声明,与时俱进的技术进步足以“满足需求”。

通过区分经典软件开发人员和现代软件开发人员,我希望我已经证明这是另一种类型的工作。 从经典开发人员的角度来看,它需要彻底改变观念。

尝试避免主动编程,而切换到被动编程。 这意味着要阅读其他人的代码并确定它是否适合您正在使用的当前应用程序。 如果您的主要编程任务是编写将所有这些库绑定在一起的粘合代码,您应该会很高兴。

这就是一个优秀的开发人员的原因:找到正确的库组合,保持库的最新状态,并将自行编写的代码减少到最低限度。 理想情况下,您编写的唯一代码应该是使您的应用程序与众不同的部分。

我绝对不想抹黑编码。 毕竟,您必须了解并评估外部代码。 如果您没有良好的编程技能,那是不可能的。

相关文章:

最初于 2017年8月20日 发布在 www.rainerhahnekamp.com 上。

From: https://hackernoon.com/on-modern-software-development-13ed8c2c75d8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值