对工程开发的一些心得

来源:互联网 发布:欧陆风云4 dlc mac 编辑:程序博客网 时间:2024/05/15 19:28

工作也有一年多了。
还是从一件事情说起。
第一次设计权限管理用的shiro,感觉人家就是提供几个入口,自己得写很多代码才能使其投入使用,包括但不限于:

  • 与spring集成
  • 登陆具体逻辑
  • 密码校验规则(salt+2次md5)
  • 获取用户权限
  • 权限校验逻辑

开发完觉得好麻烦,自己写的话也是要写这么多东西,还少了与spring集成的过程,所以另一个系统的权限模块就自己来了,没有用任何框架,然后发现了几个问题:

1、 没有抽象出接口,耦合度太高,无法个性化开发
这一套只能这一个系统使用,别的系统要用就无法走自己的登陆逻辑,自己管理自己的session,无法管理自己的权限。
2、 代码逻辑混乱
用shiro,他给你划分好了区域,这里干什么那里干什么,自己写的时候就发现不够清晰,debug的时候调试都找不到代码位置。

痛定思痛,决定好好学习写代码。
看了一些书有点感触,总结了以下几点对自己的要求

功能划分
接到需求要完全想清楚该怎么做,才能开始写代码,功能划分清楚了也有利于分工合作。
接口职责单一
职责单一这个事情挺重要的,一山不容二虎,一个类不能干两件事,往上提一层,一个模块也不能干两个业务。这样的话,出了问题也知道是哪里出了问题
方法长度越短越好
简单来说其实也是职责单一,一个方法不干两件事。一个方法负责从数据库查数据,第二个方法负责校验数据有效性,第三个方法执行具体方法逻辑,第四个方法负责封装返回数据。这四个方法写在一个大方法中,大方法就4行,方法名规范,这个方法干了些啥一目了然,还能提高代码复用性。
慎重命名
当你看各种开源框架代码的时候,都会发现一件事,就是看方法名就知道这个方法是干啥用的。这样才能有效减少维护成本。

这时候才了解到那些设计模式的意义,其实大家都是为了让代码高内聚,低耦合,所以总结出这么多设计模式。

原创粉丝点击