从开发框架提高开发效率说起

在我们接触的很多项目中,如果有一些参考性的项目框架,那么做起开发来,事半功倍,一般来说搭建或者积累这些框架性的项目,非一日之功。一般我们可以把具体的项目分为Winfrom、Web、微信、或者Socket等方面,具体项目界面表现不同,但是界面层底下的应该都是差不多的结构,能够支持多种数据库的接入,提供更好的接口封装,以便重用,实现最优化代码的处理。

软件系统随着业务的发展,变得越来越复杂,不同领域的业务所涉及到的知识、内容、问题非常非常多。如果每次都从头开发,那都是一个很漫长的事情,且并不一定能将它做好。基于稳定成熟的框架,开发项目,技术和时间都有保障,同时可以利用前人高效的工具进行辅助开发,从而事半功倍。

1、框架的主要特点和要求

从一些资料来解读下开发框架的特点,如下所示:代码模板化、重用、高内聚(封装)、规范、可扩展、可维护、协作开发、通用性。

    1、代码模板化

  框架一般都有统一的代码风格,同一分层的不同类代码,都是大同小异的模板化结构,方便使用模板工具统一生成,减少大量重复代码的编写。在学习时通常只要理解某一层有代表性的一个类,就等于了解了同一层的其他大部分类结构和功能,容易上手。团队中不同的人员采用类同的调用风格进行编码,很大程度提高了代码的可读性,方便维护与管理。

  2、重用

  开发框架一般层次清晰,不同开发人员开发时都会根据具体功能放到相同的位置,加上配合相应的开发文档,代码重用会非常高,想要调用什么功能直接进对应的位置去查找相关函数,而不是每个开发人员各自编写一套相同的方法。

  3、高内聚(封装)

  框架中的功能会实现高内聚,开发人员将各种需要的功能封装在不同的层中,给大家调用,而大家在调用时不需要清楚这些方法里面是如果实现的,只需要关注输出的结果是否是自己想要的就可以了。

  4、规范

  框架开发时,必须根据严格执行代码开发规范要求,做好命名、注释、架构分层、编码、文档编写等规范要求。因为你开发出来的框架并不一定只有你自己在用,要让别人更加容易理解与掌握,这些内容是非常重要的。

  5、可扩展

   开发框架时必须要考虑可扩展性,当业务逻辑更加复杂、数量记录量爆增、并发量增大时,能否通过一些小的调整就能适应?还是需要将整个框架推倒重新开发?当然对于中小型项目框架,也不必考虑太多这些内容,当个人能力和经验足够时水到渠成,自然就会注意到很多开发细节。

  7、可维护

  成熟的框架,对于二次开发或现有功能的维护来说,操作上应该都是非常方便的。比如项目要添加、修改或删除一个字段或相关功能,只需要简单的操作,十来分钟或不用花太多的工夫就可以搞定。新增一个数据表和对应的功能,也可以快速的完成。功能的变动修改,不会对系统产生不利的影响。代码不存在硬编码等等,保证软件开发的生产效率和质量。

  8、协作开发

  有了开发框架,我们才能组织大大小小的团队更好的进行协作开发,成熟的框架将大大减轻项目开发的难度,加快开发速度,降低开发费用,减轻维护难度。

  9、通用性

  同一行业或领域的框架,功能都是大同小异的,不用做太大的改动就可以应用到类似的项目中。在框架中,我们一般都会实现一些同质化的基础功能,比如权限管理、角色管理、菜单管理、日志管理、异常处理......或该行业中所要使用到的通用功能,使框架能应用到某一行业或领域中,而不是只针对某公司某业务而设定(当然也肯定存在那些特定功能的应用框架,这只是非常少的特殊情况,不在我们的考虑范围)。

2、基于Winform混合式开发框架和Bootstrap开发框架的基础分析

在很多场合,一般如果是做Winform桌面的应用,我会推荐客户使用《Winform混合式开发框架》,如果是基于Web的项目开发,一般推荐客户采用《Bootstrap开发框架》。

1) 《混合式开发框架》混合了传统《Winform开发框架》、《WCF开发框架》和Web API接口框架的特点,可以在直接访问数据库、利用WCF服务获取数据、利用Web API服务获取数据三者之间自由切换,统一了系统界面层对业务服务的调用模式,所有组件模块均实现三种方式的调用,是一种弹性化非常好的框架应用,既可用于单机版软件或者基于局域网内的应用软件,也可以用于分布式技术的互联网环境应用,是一种成熟稳定、安全高效的技术框架。

由于混合型框架,既可以用于传统Winform系统开发,也可以用于WCF分布式系统开发,还可以用于轻型高效的Web API的分布式系统开发(目前广泛应用的接口方式),因此环境适应性强;而且由于模块具有这些特点,可重用性更高,特别对于通用性的模块,更是具有无可替代的优越性。

2) 基于Metronic的Bootstrap开发框架

该开发框架界面部分采用较新的Bootstrap技术,采用当前最新的Bootstrap3.x,集成了众多功能强大的Bootstrap插件。

Bootstrap是一个前端的技术框架,很多平台都可以采用,JAVA/PHP/.NET都可以用来做前端界面,整合JQuery可以实现非常丰富的界面效果,目前也有很多Bootstrap的插件能够提供给大家使用,本框架集合了众多最为优秀的插件,能给我们Web的用户体验提升到一个前所未有的水平。

Metronic是一个国外的基于HTML、JS等技术的Bootstrap开发框架整合,整合了很多Bootstrap的前端技术和插件的使用,是一个非常不错的技术框架。本框架以这个为基础,结合我对MVC的Web框架的研究,整合了基于MVC的Bootstrap开发框架,使之能够符合实际项目的结构需要。

框架后台采用基于C#的MVC技术,是目前.NET开发最为成熟流行的技术,框架后台数据库支持Oracle、SqlServer、MySql、Sqlite、Access等常规数据库,可通过配置进行自由切换,使用Enterprise Library模块进行数据访问的控制,使得数据访问更方便轻松。

3、框架的各个特点的说明

上面介绍了开发框架的一些共性,概括总结几点:代码模板化、重用、高内聚(封装)、规范、可扩展、可维护、协作开发、通用性。

1)代码模板化

我们的框架系列,无论是Winform开发框架,Web开发框架、Bootstrap开发框架等框架系列,都是一脉相承的特点,所有类代码都统一的代码风格,各个项目以及分层目录都是按照统一的命名方式进行构建,易读易理解,整个框架的代码,包括项目底层BLL、DAL、Entity等层的代码,以及Winform界面层、或者Web界面层,都可以利用工具统一生成(我们根据项目界面特点构建对应的模板文件),减少大量重复代码的编写。

这些结构利于使用代码生成工具(Database2Sharp,我们为框架快速开发量身定做的软件工具)进行项目代码的生成

2) 重用

由于我们在项目开发中,采用了一些模块化的方式来组装项目,可以简单的理解为积木组合的方式。如权限管理模块、字典管理模块、自动更新模块、人员管理模块、通讯录管理模块、分页控件、公用类库等方面,这些可以在项目中根据情况采用对应的模块,非常高效,整个主体框架也有对应接入这些模块的案例代码供参考,因此可以更加直观明了。

而另一方面,我们在对类的重用方面,也是精益求精,尽量做到精简重复代码,提高开发效率的目的。

界面类提供封装继承,减少界面的一些繁琐设置

基础业务类,我们同样也是采用重用基类方式,实现接口函数的封装处理。

以及业务类继承关系,当然还有其他更多的,基本上都提供一些基类来处理,简化代码。

 

3) 高内聚(封装)

从上面小节可以看出,整个框架宏观方面分为多个功能模块,可以自由搭配使用;微观方面都有一个继承关系的基类来对相关的代码进行封装处理,这样开发人员将各种需要的功能封装在不同的模块或者基类里面,从而实现高内聚的处理。

 

Web API的控制器设计对象继承关系,如下所示:

4) 规范

 我们的整个框架系列,严格执行代码开发规范要求,做好命名、注释、架构分层、编码、文档编写等规范要求,这样我们只需要了解一个项目的结构,其他项目依次类推,就可以明确各个分层的意义,一叶知秋,管中窥豹就是这个道理,我们可以通过这些知识积累,指导我们其他同事进行项目开发,大家在规范上统一一致就可以步调统一,从而在单位内部拥有更高的开发效率。

 

 

其他框架的特点,如可扩展、可维护、协作开发、通用性,也就不再赘述,基本上,整个框架就是为了方便构建项目而搭建,大的方面可以使用开发好的模块,小的方面可以继承封装好的类库,整个调用的逻辑过程也是经过实践的考验,在众多国内外公司的项目中使用过,同时也获得非常多的反馈,共同促进整个框架体系的发展。

本文转自博客园伍华聪的博客,原文链接:从开发框架提高开发效率说起,如需转载请自行联系原博主。

时间: 2024-09-28 03:54:05

从开发框架提高开发效率说起的相关文章

如何通过单元测试提高开发效率?

Kevlin Hnney是英国的一位独立顾问和培训师,其关注的范围主要包括软件架构.模式.开发过程和程序设计语言.在本文中他将谈谈如何通过单元测试提高开发效率. 单元测试只会浪费时间吗?某些软件专家们确实是这么想的.最近在Software Quality Insights上看到一篇文章--<单元测试真的有用吗?>.那些认为单元测试无用的开发人员给出了如下理由: 1. 他们不了解单元测试. 2. 很难写出优秀的单元测试. 3. 单元测试只会浪费时间.降低效率. 4. 写单元测试需要太多时间(特别

Android 如何用 Vim 提高开发效率

本文讲的是Android 如何用 Vim 提高开发效率,虽然笔者是Android开发工程师,但也接触过各种IDE(不限于Android开发).不同的IDE往往都有不同的快捷键,我们总不能对每种IDE都进行配置吧.实际上,现在大部分IDE都能通过插件的形式支持Vim了.所以,只需要掌握Vim的基本使用,在支持Vim的IDE都能很快上手,熟悉的操作,熟悉的手感. Vim模式 Vim可分为3种模式,分别是Normal模式.Visual模式和Insert模式.以下的基本操作都是在Normal模式进行.三

如何利用 Visual Studio 自带工具提高开发效率

原文:如何利用 Visual Studio 自带工具提高开发效率 Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢?   显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位.   如何显示 1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言 2. 勾选 "行号"       使用书签 和平常意义的书签类似,当我们希望在日后某一时刻快速定位到一处代码时使用.比如在项目例会上,你需要演示本周你所做的一些改

Xcode提高开发效率的代码块分享_IOS

前言 我们在开发的时候会用到很多常用的代码,比如UITableView的代理,一般情况下我们要么自己敲要么复制粘贴,但是Xcode有一个功能,可以用一行代码敲出你预设的一段代码.这就是Xcode的代码块功能,这篇文章跟大家分享一些常用的和自定义的代码块,有需要的下面来一起看看吧. 一.常用的: 1.strong: @property (nonatomic,strong) <#Class#> *<#object#>; 2.weak: @property (nonatomic,weak

Python利用IPython提高开发效率_python

一.IPython 简介 IPython 是一个交互式的 Python 解释器,而且它更加高效. 它和大多传统工作模式(编辑 -> 编译 -> 运行)不同的是, 它采用的工作模式是:执行 -> 探索 ,而大部分和数据分析相关的代 码都含有探索式操作(比如试误法和迭代法),所以 IPython 能大大提高编码效率. IPython 发展到现在,它不仅仅只是一个加强版的 Python shell 了, 它集成了 GUI 控制台,这可以让你直接进行绘图操作:它还有一个基于 Web 的交互式笔记

十款提高开发效率的Firefox插件

  Firefox浏览器能成为Web开发者和设计者最喜欢的浏览器,一个重要原因就是它有着丰富的插件可以用来辅助我们完成Web开发工作.下面给大家分享十款在Web开发工作中经常会用到的插件,利用好它们可以大大提高工作效率. 1. FireBug 在众多插件中Firebug无疑是大家最熟悉用的最多的了.Firebug集成在Firefox中,提供了一套开发辅助工具,诸如页面HTML.CSS.Javascript的浏览.编辑.调试.网络监控等等-- 2. FireShot FireShot是一款具有完备

SAP云服务平台干货攻略 | HTML5应用需要用到什么IDE提高开发效率?

http://mp.weixin.qq.com/s?__biz=MjM5OTI2MjgyMA==&mid=2651785507&idx=1&sn=e0f7e414097b22b2d4acb6bc3e9fa87e&chksm=bcc586288bb20f3ebaa0fb0d70dcb1fb803b92caff0e1c4dcc85aaf6e4545df645cd84887fbf&mpshare=1&scene=5&srcid=1114DbdSsJejli

Asp数据库访问代码自动产生工具-ASPRunner(适用初学者和为了提高开发效率的Developer)

初学|访问|数据|数据库 ASPRunner Professional - Web Developer's Nirvana 开发效率的Developer)-初学者适用什么数位板">ASPrunnerPro是一个数据管理管理管理,在网页中使用它可以很简单的访问和操作数据库.从初中者到经验非常的程序员都可以使用它, ASPRunnerPro 产生ASP(Active Server Pages ),产生的Asp允许用户搜索.编辑.删除和添加数据到Oracle,SQL Server,Ms Acce

使用Visual Studio自带工具提高开发效率

Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言 2. 勾选 "行号" 避免剪切或复制空白行 有些时候当我们复制了一行数据正打算粘贴到一个空白行的时候,手一抖,V变成了C,结果复制了一条空白行.这会让人很郁闷,当然你可以通过使用 Ctrl + Shift + V 从剪切版中找到之前复制