热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

浅谈系统框架与开发模式

在博客中我也看到了好多关于系统框架的文章,就象有些朋友说的,这些系统框架大同小异,一般是分为数据访问层、实体层、业务逻辑层、业务外观层、表示层。然后就是这些层与层之间的调用,这些我想对于做过稍大一点
 在博客中我也看到了好多关于系统框架的文章,就象有些朋友说的,这些系统框架大同小异,一般是分为数据访问层、实体层、业务逻辑层、业务外观层、表示层。然后就是这些层与层之间的调用,这些我想对于做过稍大一点的项目、或者小型以上团队开发的项目,都是会考虑到这些分层模式带来的系统扩展性优势。
 有些朋友都建议加一个common层,把一些共公的类与方法集中在一起,让大家一起调用,可以减少重复代码,这个我也是很支持的,也是这样做的。
 我相信目前摆在我们面前的,已经不是这些系统框架的问题了,而就是这些结构中体现出来的开发模式的问题。
 大家所说的要把公共的代码放在一起,这就是“重构”所要体现的思想,重构就是为了让代码更具的扩展性、维护性,能减少重复代码,这可以从根本上提高代码的效率并减少修改导致的BUG恶性循环。
 重构一般发生在什么时候?
 代码设计期:这要求设计人员把公用的方法总结出来,放在公用的模块中,生成文档或是通过其他方式,反正就是通知大家这些公用方法,而这是非常有限的,设计人员无法思考出所有的公用模块与方法,相反,这些只是极小的一部分,因为更多的重构应该发生在下面。
 代码开发时:当我们第一次写一段代码时不会注意,写第二遍时我们会想:算了再写一遍吧。准备写第三遍时,我们必须要醒悟过来,这些相同的代码可以放在一个公用的方法中调用,对,在第三次时我想我们最好是这样做,因为你现在这样做,不仅仅是为了现在,而是为了将来。我们就会写成公用方法,并一定要把原来的两个方法采用“调用”的方式,可千万不要偷懒,谁也无法保证今后不会修改这个函数,而如果真的修改了,你没有能力找出最先的那两段代码了,恶梦从此开始。
 代码修改时:项目已经开发完成,在后期的维护中,一次次的修改会使每一位程序员痛不欲生,没有了当初的热情、有几位已经退出了团队、对原系统遗忘的很多、修改变的越来越没有道理了,就这样,曾经热情高涨的代码编写变的应付了事了,重构再也没有勇气了,就这样的,没有了重构,死循环的恶梦真正的开始了,后面的修改与维护变的越来越困难了。然后,在这个时间进行重构仍然是非常重要的,在进行修改时,我们要仍然保持这种心情,我们只要相信,每一次修改是为了减少修改,而不是相反,那么,我们还是要相信重构。

 重构的过程就是这样,在慢慢的过程中,系统会变的越来越精简,修改也会变得变来越少,而且越来越容易,当我们在修改时发现:我只要修改这一个地方就可以了。这仍然是可能让我们保持热情的理由。

 可是问题呢:问题就是在这些重构过程中,如何及时的通知其他的队友,重构不是针对开发人员的,重构是针对系统的,当一个人进行了代码重构后,如何通知其他的队友:朋友们,我添加了XXX方法了,参考请看YYY,请大家进行一下相关的修改或注意以后的调用。
 其实我也是不知道如何维护整个系统的信息交流,我想首先想到的就是mail了吧,一封邮件的通知,可以完成一个重构人员的信息发布,可是接受者呢,在一封封的邮件中进行着一次次的修改,而且这些零散的邮件会让人找不到方向。
 那么好吧,放在一个集中的地方,大家把重构都放在一个公共的地方我想是比较好的方法,不过,大家得经常注意这些信息,而且要由项目经理,下令大家严格按照重构机制做系统。这样也好,系统完成后,也会形成一份统一的重构方法集合,可以作为系统开发文档的一部分,而且这部分是相当重要的。

 我其实找不到一种好的项目开发模式,从而有很多重构思想,在现实中没有充分的发挥,希望大家也讨论讨论,能让我们更多的进行实践,而不是纯粹理论。
  关于重构的细节,我想网上已经有很多资料了,我相信,那对我们是非常重要的,当然我也是只懂一点点,这需要慢慢体会与研究的。
推荐阅读
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了2019年上半年内蒙古计算机软考考试的报名通知和考试时间。考试报名时间为3月1日至3月23日,考试时间为2019年5月25日。考试分为高级、中级和初级三个级别,涵盖了多个专业资格。报名采取网上报名和网上缴费的方式进行,报考人员可登录内蒙古人事考试信息网进行报名。详细内容请点击查看。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了程序员最美的情人节礼物,即使用JS渲染的3D玫瑰,通过在QQ空间和人人网上分享这个特殊的礼物,可以给情人带来惊喜和喜悦。 ... [详细]
author-avatar
最傻的傻瓜z1998
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有