10. 选择工具要慎重

来源:互联网 发布:淘宝描述不符监管 编辑:程序博客网 时间:2024/06/09 22:42

选择工具要慎重

        现代应用程序程序很少是完全地从无到有做出来的,它们汇集了很多已经存在的东西——组件、库和框架,理由如下:
随着应用程序大小、复杂度和精密度的增加,能够用来开发的时间变得越来越短。程序员把时间和精力专注于编写更多的业务代码、更少的基础架构会更好。
        · 广泛使用的组件和框架相比内部开发的,可能bug会更少一些。
        · 网上可以免费得到很多高质量的软件,这意味着可以降低开发成本,同时更可能找到有必需的兴趣和技能的开发人员。
        · 软件开发和维护是人力密集型工作,所以购买可能比自己构建更便宜。
        然尔,为应用程序选择正确的工具集是一门需要深思熟虑的学问。实际上在做选择时,有一些东西应该牢记于心:
        · 不同的工具可能依赖于它们对自己的工作环境的不同假设,比如周边基础架构、控制模型、数据模型、通信协议等,这可能会导致应用程序和工具之间存在架构上的不匹配。这种不匹配导致非常规的技巧和曲折迂回,给代码增加不必要的复杂度。
        · 不同的工具有不同的生命周期,升级其中一个可能是一项极困难和耗时的工作,因为新功能、设计变更、甚至是bug修正都可能导致与其它工具不兼容。工具数量越多,这个问题越严重。
        · 有些工具需要进行相当多的配置,通常是通过一个或者多个XML文件,可能很快就失去控制。最后应用程序可能看起来像是XML加上偶尔几行某种编程语言写出来的。复杂的配置会让应用程序很难维护和扩展。
        · 当严重依赖特定供应商的产品的代码在可维护性、性能、演进能力和价格等方面被约束了,厂商锁定就发生了。
        · 如果你计划使用免费软件,可能会发现它最后并不免费,可能需要购买商业支持,那可不一定便宜。
        · 许可条款很重要,即使是免费软件。例如,有些公司不能使用GNU许可下的软件,因为它的病毒传染天性,即使用它开发的软件必须在发布时公布源代码。
        我个人用于减轻这些问题的策略是从一开始只用绝对必需的工具。通常最初的关注点在于减少要从事底层架构编程(和问题)的需求,例如,为分布式应用程序使用一个中间件代替原始套接字。然后根据需要增加。我也倾向于通过使用接口和分层,将外部工具与业务领域对象隔离,这样我可能在只有一点点痛苦情况下更改工具。这样做的另一个好处是,我一般都能在最后得到一个比预期更小的、使用更少外部工具的应用程序。

原文:Choose Your Tools with Care byGiovanni Asproni

原创粉丝点击