开发框架的学习方法

框架是一种复用程度很高的应用体系结构实现,掌握框架的使用,一方面可以快速构建应用程序,适应现代快速复杂软件开发的需求, 另一方面也可作为学习某种技术的入口点。 那么, 能够快速学习和掌握框架就成为软件开发人员的必备技能之一。 那么, 如何更快更好地掌握一门开发框架呢?  能否建立一套行之有效的学习模式呢 ?

开发框架是对应用中不可变部分的抽象, 首先,就要弄清楚这个框架究竟做什么,提供了怎样的抽象, 又提供了哪些实用的编程设施(常用级,可定制级)。 总之, 先观大略, 后入细节。

 适宜场合:

1.  需要在项目中大量地反复地应用某一个功能和模式, 对组件的要求稳定可靠, 经过仔细严格的测试, 而没有充足时间去研究和探索,重新创造;

2.  使用框架免去了大量的探索和走弯路时间, 但学习时间仍然是不可避免的; 框架的设计和实现者也应该考虑所开发的框架对于开发人员的易用性和学习曲线。

 三个问题: 

1. 此框架的核心用途是什么? 它提供了哪些设施? 要求开发者以怎样的方式去使用? 【基本】

2. 它如何完成自己的工作? 【进阶】

3. 有哪些类似的框架可用? 各自的优缺点 ? 【扩展】

两个阶段:

1.   使用阶段:  侧重于使用该框架来实现开发需求,在必要的情况下会深入源码查探部分实现,有时是为了调试;

2.   深入阶段:  侧重于探索该框架的内部实现,汲取其精髓所在,以便在其它项目中能够使用。

在使用阶段主要是体会其 API 的设计 以及如何适应业务需求,而不要太注重阅读源码,

在深入阶段则更注重阅读源码, 将 API 设计与内部实现联系起来体会其精妙之处;

各个阶段有各个阶段的关注点。

学习方法:

1.  了解该框架究竟做什么,解决什么问题, 提供了哪些特色, 有什么独特之处;

2.  找到官方入门文档及一个完整而简单的 DEMO ,了解基本使用及重要概念、工作原理;

3.  下载源码及API 文档, 便于随时参考和阅读; 大致浏览下 API 文档,了解提供了哪些编程设施;

4.   找一个真实项目的源码,体会如何在真实项目中使用该框架;先读后写,可以减少很多不必要的初期摸索过程;

5.   阅读关于该开发框架的技术书籍或网络文章,参考真实项目源码,尝试自己来做;

6.   多次迭代: 更深入地使用、理解 + 阅读源码理解内部实现。

配置编程:

现代应用程序一般都会使用各种的开发框架,而开发框架为了达到编译时或运行时的更大的灵活性或可移植性,常常借助配置文件来定制其具体的行为。 由此产生了配置编程。 比如, 在真实项目中, ibatis 的配置与代码部分比重相当, 反而是配置文件似乎更加复杂一些。

时间: 2024-10-06 09:33:29

开发框架的学习方法的相关文章

为什么偏偏是你学不好Python呢?论学习方法

首先我给大家讲下初学者学习Python的一个整体规划. 首先定位:知道如今的市场行情,需要掌握什么技能才能找到一份Python开发的工作,现在公司需要什么人才,这个就是你学习的一个方向. 系统的学习规划:你要知道自己每天学习什么,因为接触过的新手比较多,很多人学着学着就放弃,或者他们不知道自己在学习什么,这样非常迷茫一点计划没有,肯定是学不会Python的,所以学习Python要知道每天学习什么,做什么案例.创一个小群,供大家学习交流聊天如果有对学python方面有什么疑惑问题的,或者有什么想说

分享Python2019年最强系统学习方法及学习路线!

Python是一种完全开放源码的语言,代码可以随意读取给任何人.这种方法可以帮助人们找到更好.简洁和简洁的代码,并在许多方面节省不必要的时间,因为它适合直接应用或简化.经常看的好源码,不仅能让你学习别人的编程方法,还能大大帮助你更好的学习另一方面. 创一个小群,供大家学习交流聊天如果有对学python方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学python能够持之以恒python爱好群,如果你想要学好python最好加入一个组织,这样大家学习的话就比

深度学习方法(十):卷积神经网络结构变化——Maxout Networks,Network In Network,Global Average Pooling

技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 最近接下来几篇博文会回到神经网络结构的讨论上来,前面我在"深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning"一文中介绍了经典的CNN网络结构模型,这些可以说已经是家喻户晓的网络结构,在那一文结尾,我提到"是时候动一动卷积计算的形式了",原因是很多工作证明了,在基本的CNN卷积计算模式之外,很多简

基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计

自从上篇<基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍>总体性的概括,得到很多同行的关注和支持,不过上一篇主要是介绍一个总体的界面效果和思路,本系列的文章将逐步介绍其中的细节,本文主要介绍整个Web开发框架中的MVC控制器的设计.在设计之初,我就希望尽可能的减少代码,提高编程模型的统一性.因此希望能够以基类继承的方式,和我Winform开发框架一样,尽可能通过基类,而不是子类的重复代码来实现各种通用的操作. 1.登录控制的控制器基类设计 我们知道,一般我们创建一个MVC的控制

基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控件有:单行文本框.多行文本框.密码文本框.下拉列表Combobox.日期输入控件.数值输入控件.单项选择.复选框.表格控件DataGrid.树形控件.布局控件.弹出式对话框.提示信息.列表控件等,这些界面控件的操作都有哪些不同,下面我们来逐一进行介绍. <input class="easyui

基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用

很久之前,当我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随笔<Web开发中的文件上传组件uploadify的使用>中可以看到,Asp.NET中如何使用这个组件进行文件上传的,当时上传文件的处理主要也是使用ashx一般处理程序来进行处理的.本文主要介绍我的Web开发框架中,在MVC4的环境中如何集成这个非常棒的文件上传组件的. 1.上传组件uploadify的说明及脚本引用 Uploadify 是 JQuery 一个著名的上传插件,利用 Flash

基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍

在前面介绍了一些关于最新基于MVC4+EasyUI的Web开发框架文章,虽然Web开发框架的相关技术文章会随着技术的探讨一直写下去,不过这个系列的文章,到这里做一个总结,展示一下整体基于MVC4+EasyUI的界面效果,让大家对这款Web开发框架有一个形象的了解,界面设计以及相关思路可以借鉴提高,也可以对相关的内容进行相互探讨,共同提高. 技术特点:整个Web开发框架,界面部分采用较新的技术,包括MVC4,最新版本的EasyUI,以及zTree树形控件.Uploadify文件上传组件等模块,另外

基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作

在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思路和特点,对Controller进行了封装.使得控制器能够获得很好的继承关系,并能以更少的代码,更高效的开发效率,实现Web项目的开发工作,整个控制器的设计思路如下所示. 从上图的设计里面可以看到,我把主要能通过抽象封装的CRUD方法都放到了BusinessController<B, T>类里面,

基于MVC4+EasyUI的Web开发框架形成之旅--权限控制

我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大概介绍了基于MVC的Web开发框架的权限控制总体思路.其中的权限控制就是分为"用户登录身份验证"."控制器方法权限控制"."界面元素权限控制"三种控制方式,可以为Web开发框架本身提供了很好用户访问控制和权限控制,使得用户界面呈现菜单.Web界面的按钮和内容.Action的提交控制,均能在总体权限功能分配和控制之下. 本篇文章主要细化这三个方面