使用、扩展、改进与推广,用实例讲述如何在工作中提高自己的技术水平

#使用、扩展、改进与推广,用实例讲述如何在工作中提高自己的技术水平

## 
前面发了不少关于easyui的博文,这是本人2012-2013年关于技术方面的一个总结。当我们遇到一个现在的库、或者框架或者笼统地说,一份源代码,我们能从中学习提升的途径也是这样的:**使用、扩展、改进与推广**

本博文对此进行系统整理,以`easyui`为例

##使用
我一般看到一份新的工具,会大概扫一下介绍,然后会立刻看DEMO,没有DEMO说实在话印象大减,也不太愿意下载安装什么的再试用(当然,有一些不能有DEMO的例外,像NodeJS),戳一下[easyui主页](http://www.jeasyui.com/),发会现它都有。

觉得好之后,就是下载,安装,再有就是API手册。

我会把它的组件应用到实际项目中,这部分参考着API,就会逐渐熟悉起来,就不多提了。

##扩展
在使用了一段时间后,我们会不满足于easyui原有的功能,就会进行扩展,[例如:基于easyui的验证扩展
](http://www.cnblogs.com/p2227/p/3537537.html),在这一步里,我们还是只需要API,也就是说只限于API提供的扩展,当然有很多平台式的应用,光API就能做出很多东西。

##改进
改进是指通过改源代码去使得工具更加好用,主要分两小步

###读源代码
我们读源代码的动机一般有如下三种

1. 源代码中有BUG或者不理想的功能
2. 查看源代码有没有API中遗漏的功能
3. 从中学习一些技巧、规范和其他用文字也没法表达的技能

我们读源代码时,只需要**从自己熟悉的功能开始着手即可**, **一打开源代码文件从第一行开始读起是完全不科学的**,项目实践经验也告诉我前者是快速上手而且容易获得知识提高自我的方法,后者容易晕头晕脑,降低效率。

###改源代码
你可以针对目前的BUG,读懂那一部分源代码,再进行改进,例如

* [把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)
](http://www.cnblogs.com/p2227/p/3537708.html)
* [对easyui datagrid组件的一个小改进](http://www.cnblogs.com/p2227/p/3541387.html)
* [本人为项目组制定的一份页面优化指南(easyui页面优化方案)
](http://www.cnblogs.com/p2227/p/3541162.html)

本人认为这是比较重要的一步,因为**源代码是最好的课本**,不去读源代码,一个程序员再提高技术水平也是有限的。不了解原理而在上层瞎搅和,哪怕功能有了,也是那种“拖拖组件,写写事件,画画界面”级别的程序员。


##推广
意思是把这份源代码中值得学习的地方应用到其他实际中,这一点要做起来并不难,难在当你遇到那么一个实际情景时,如何能想到可以这么去把模式A推广模式B,例如
[为operamasks增加HTML扩展方式的组件调用](http://www.cnblogs.com/p2227/p/3541824.html)

以上也是本人这几年来接触实际项目之后一个技术方法上总结。当积累到一定程度时,自己也会去编写出自己熟悉领域的源代码,然后就是其他同行的**使用、扩展、改进与推广**的过程了。
原文地址:https://www.cnblogs.com/p2227/p/summary-2013.html