轮还是要又发明的

“不要再次发明轮子”,很多开发者在新入行抢,就常会为这么叮嘱:这个世界上程序员已经尽多,遇到的题材已经够多,而解决方案层出不穷。你走过的程,跳下之坑,已经有很多的前驱在您前面由,跳了。

因此当召开技术选择的重重时光,你莫欲团结开始去贯彻一个物,就好以切实世界面临找到现成的趁手的利器,小至一个类库,工具,大至一个框架,平台,来满足自己之“需求”。你认为你看到了绝美之色,后面是同等马坪。

![Uploading logo_for_Gradle_950197.png . . .]

只要立,只是不愿意拒绝懒惰与引发之假说,背后很可能面临再也多的窘迫,陷入其中不可自拔。

开发者在技术选型的经过被,很易对就有些神往已久之之一技术还是工具情有独钟。

“什么都是成的,直接拿来之所以(一仿照)就哼了!”

万一频繁忽视了她当晚期定制化需求,或者弹性与扩充方面对好或许是的克。下面看片单例。

关于构建工具的例子

比如Maven当Java的世界里分外丰富时都是至关重要的自动化构建工具,它的插件化结构,提供的不少备的archetype和插件,以及命令行和插件化扩展的也许被很多程序员眼前一亮。

如果就手头的种转移得更加复杂的时候,你会发觉Maven的XML声明式结构以及插件化,恰恰是阻挠自身伴随项目复杂度进化的阻力,因为她缺少灵活性,以及对此自动化测试实践的支持,尤其在连交付方面。

而Ant产生同的问题,我们不停发现集体在不可维护的Ant同Nant构建脚论上淘了巨大的生气。由于工具自身与生俱来缺少的表现力与清的模块性,这些本子难以理解和壮大。

XML配置文件中极多受人口认为多余的尖括号,以及粗糙的插件架构。虽然语法问题可由此提升来缓解,但插件化架构严重限制了构建工具就项目转移得更复杂自我优雅进化之力。我们发现插件的抽象层次是不当的,相反我们又强调基于语言的家伙,比如Gradle和Rake,因为提供了细粒度的泛,以及重复多之八面玲珑。

Gradle大凡一个将理智带入企业级构建世界的尝尝,它将划时代之技术和特等工具组合相结合。Gradle好给你拜你已有些Maven仓库,但由此清晰的小圈子特定语言为你的构建添加脚本功能。

logo_for_Gradle.png

相对于像Ant与Maven这样因XML和插件的构建工具,像Gradle和Rake这种基于语言的构建工具,在不断提供细粒度的泛和还多的灵活性。这样它们就是能够陪项目转移得尤为复杂而随便优雅地答。

至于前端可视化框架的例证

除此以外一个例证是有关前端(可视化)框架的挑选上,一些供了丰富UI渲染样式的框架库很是夺取人眼球,漂亮的表格和图表样式,简单的Demo示例代码,让开发人员都看这是贯彻即棘手UI需求的匪次法宝,可以极大地提高开发之效率。

比如ExtJS,开发人员在更了最初的甜蜜之后,会发觉他们充分麻烦控制Ext渲染出底HTML和DOM,而编制功能测试代码看起为不太可能,尤其是当对UI的外观以及体裁有个性化的定制变化需要时,会展示一筹莫展。

Ext会拿您限制以它的UI实现思想界里,这样或许得于那些无欲投资UX的团组织中工作得格外好。

Highcharts凡只另外一个例子,丰富的图样类型,以及基于提供的图片类型的定制化功能,优异的JavaScript引擎,对HTML内嵌SVG文档的支撑,一度是咱当路面临摘前者图表展现库底不次挑选:

highcharts.png

但是随着对图纸渲染的秉性化UX定制需求的进入,我们会发觉Highcharts透过公开API提供的森世故,比如对于X轴、Y轴和渲染细节之定制,已经大为难满足我们本着还多图本身的修改,和长新的体。

一经此刻,如果不是为UX设计迁就Hightcharts既有的实现,也许更好的选择是D3,虽然她会于上马显示底层,需要组织再次多之活力来创造通用的免那么复杂的可视化元素,但迅即吗意味着又多的八面玲珑,加上她的插件模型,以及如Rickshaw和Crossfilter这样的仓库支持,会让D3比原先更有着亲和性。

最后

因而对技术的官方网站提供的所表现就所得之特点展示,简单的言传身教代码,和影响的令人满意,开发者需要以受诱惑的同时,多着想部分于技能入股后或者在的风险,以及是否出足够的支撑。

需要勘查的因素以及角度可能不过不制止:

  • 文档和社区支持的成熟度
  • 复杂的代码示例
  • 可能的功能性需求变动
  • UI呈现上也许的需要变化
  • 性,安全等非功能性需求
  • 团组织知识和上学能力
  • 后期的护资金

亟待对这些元素,做一一底评估和侦测,才能够尽酷限度地掩护资金的投入。

片时候,你真的需要更发明轮子。

相关文章