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

在我们接触的很多项目中,如果有一些参考性的项目框架,那么做起开发来,事半功倍,一般来说搭建或者积累这些框架性的项目,非一日之功。一般我们可以把具体的项目分为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) 规范
我们的整个框架系列,严格执行代码开发规范要求,做好命名、注释、架构分层、编码、文档编写等规范要求,这样我们只需要了解一个项目的结构,其他项目依次类推,就可以明确各个分层的意义,一叶知秋,管中窥豹就是这个道理,我们可以通过这些知识积累,指导我们其他同事进行项目开发,大家在规范上统一一致就可以步调统一,从而在单位内部拥有更高的开发效率。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容