程序员需要知道的97件事情之 ------- 谨慎选择你的工具

本人英语抄过4级,奇烂无比,翻译这个实属蛋疼,错误是肯定有的,而且是翻不出出来就是随便猜,欢迎指出,谢谢啦。但愿我能够翻完我看的懂的....
   原链接:oreilly的程序员需要知道的97件事http://programmer.97things.oreilly.com/wiki /index.php/Contributions_Appearing_in_the_Book

现代应用很少是从从零开始搭建的。他们大都是由现有工具装配的----组件,库,以及框架。这样做有很多好处:
  
   1 随着时间的变化,应用在短时间内随着规模的增长,复杂度,混合度都会相应的增加。开发者最好能够将它们的时间和聪明才智专注在编写更多的业务领域代码,而不要浪费在更加基础性的代码

  2 广泛应用的组件和框架比一些闭门造车的框架相对来说BUG的可能性少一点。
  3 互联网上拥有大量高质量的免费软件,意味着更小的开发成本和更加容易招聘到相关技能的和兴趣的开发者。
   4 软件的开发和维护是人力密集型工作,所以购买产品将会比重新构建应用更加便宜。

   尽管如此,为你应用选择正确的工具集是一个棘手的商业需求,事实上当需要作出选择的时候,以下建议可以记住:
  1 不同的工具依赖于不同的假定的上下文环境,例如:环境的底层结构,控制模型,数据模型,通信协议等等。这些东西都可能导致应用和工具的架构不匹配。这样的不匹配导致工作区代码比必须的更加复杂
2 不同的工具有不同的生命周期,同时,如果新的功能,设计变化,或者是修复一些BUG,升级它们将会变得非常困难和浪费时间,也可能导致和你其他的工具之间不能共存。这样的工具越多,导致的问题就越严重。
3 有些工具需要大量的配置,常常以XML配置文件的方式呈现,它们以很快的速度增长…有些应用在结束的时候看起来好像完全是用XML编写仅仅插入某些编程代码。这些配置的复杂度也会导致应用难以扩展和维护。
  4 当代码严重依赖于厂商的特殊功能,就很容易被厂商所绑定:维护,性能,发展的能力,价格等等
  5 当你准备使用免费软件的时候,你将发现它其实并不是完全免费,你可能需要购买技术猴称子,而且很有可能还不便宜。
  6 许可证的问题,即使是免费软件,例如:一些公司并不适合去使用基于GNU许可证的软件,因为他的拟生病毒式传播, 软件利用它进行开发的必须公布它的源码。

   避免或者减轻这些问题,我个人的策略是首先小范围使用那些必须需要的工具。通常最初关注的是如果避免底层的框架或者基础架构问题。比如利用一些中间件代替自己的读写socket分布式应用。然后如果还有需求,再增加。我也倾向我的业务模型接口分层使用不同的工具。这样我能够花最小的代价来改变使用的工具。这种方法积极地一点就是在我应用开发结束的时候发现我使用的工具经常比原先预期的要少。

你可能感兴趣的:(编程,框架,互联网,招聘,领域模型)