加入收藏 | 设为首页 | 会员中心 | 我要投稿 阳江站长网 (https://www.0662zz.cn/)- 办公协同、云通信、区块链、物联平台、高性能计算!
当前位置: 首页 > 站长资讯 > 评论 > 正文

懒人都在用的7款chrome插件!

发布时间:2021-01-27 13:00:33 所属栏目:评论 来源:互联网
导读:Redis hash 字典 Redis 整体就是一个 哈希表来保存所有的键值对,无论数据类型是 5 种的任意一种。哈希表,本质就是一个数组,每个元素被叫做哈希桶,不管什么数据类型,每个桶里面的 entry 保存着实际具体值的指针。 我们解释一些我们都写了什么 (1)第一行

Redis hash 字典

Redis 整体就是一个 哈希表来保存所有的键值对,无论数据类型是 5 种的任意一种。哈希表,本质就是一个数组,每个元素被叫做哈希桶,不管什么数据类型,每个桶里面的 entry 保存着实际具体值的指针。
 

我们解释一些我们都写了什么

(1)第一行有一个proto3,他表示的是protobuf的语法版本,就类似于jdk1.7和jdk1.8的概念。需要在第一行指定。默认使用的是proto2。

(2)java_package:表示的是java包,不指定就使用 package.生成的类会放到该package下。这里表示把生成的类存放在com.fdd.protobuf包下面。

(3)java_outer_classname:我们说过.proto文件,要生成对应的类,这个参数就指定输出什么类名。这里表示生成的类名是PersonProto。

(4)message 是用于数据格式定义.

  • 一个 .proto 文件中可以定义多个 message
  • message 中定义的字段支持 string、byte、bool、map、enum、数字类型和用户自定义的 message
  • 定义字段后面需要指定唯一的标识数字,这些数字用于识别二进制格式 message 中的字段,一旦开始使用这个 message,那么标识数字就不能改变
  • 如果需要定义 List,则在字段前加repeated即可.
  • 如果已经使用过该 message 生成的类后,想要增加字段直接新增即可.当新增字段的类解析老数据时,会将新字段置为默认值.当旧的类解析新数据时会忽视掉新增字段.

比如说这里我们就定义一个复杂的proto文件:
 

我们再来看一下每个模块之内的结构。

  1. 和传统的MVC类似。不过,为了屏蔽变化,兼顾扩展性,我们增加了更多的内容。
  2. persitence,持久层,具体使用JPA还是Mybatis,这个是无关紧要的。我们的目标,就是尽量的弱化持久层的实现,将变化封装在Domain层中
  3. persitence/dao,具体的持久层接口,比如MyBatis的Mapper文件,或者JPA的Repository
  4. domain层,具体的业务层,你可以认为是一堆Getter、Setter的Bean。我们尽量会把大多数验证类和变化封装在这里(可以大体认为是DDD中的充血模型)
  5. controller,具体的Rest接口层。但不同的是,有很多不同的请求和返回,我们封装成了Request和Response,用来接受提交的数据,对返回数据进行瘦身等
  6. application,应对传统的service层,除了在application能够调用Dao,其他层是没有权利调用Dao的
  7. api,和application的功能是相同的。只不过,api的接口,指的是模块之间可以相互调用的接口。除了api暴露的这些接口,bc之间的类和接口,默认彼此是不可见的
  8. util,不通用的util,会放在模块内部,而不是抽离出公共的util

除了要解决目录方面的问题,我们还要把数据的流向给规划清楚。

一个上层的应用,是可以通过API接口直接调用下层服务的。比如,订单系统访问商品基础信息的数据;反之却不可以,比如商品基础信息模块访问订单系统的接口。

低层想要对高层的数据产生变化,就只能通过消息模块,将变更发布出去,其他的模块就可以订阅这些变化。

小结

综上所述,xjjdog认为,如果你的项目,可能会比较大,单纯的使用分层的package,并不是一个好的习惯。

你可能对这种后台管理类的项目驾轻就熟,有很多有用的模版,它们都是简单的MVC分层。这应付一些外包项目,干一些一锤子买卖的时活,或许没什么问题,但一旦是比较大的长期项目,这种分层的目录接口就显现出它的弊端。

这是因为:项目的短期风险,是工期问题;而长期风险,是扩展问题。随着访问量的增加,还有低耦合高内聚的需求增加,如何快速的应对需求,减少BUG,将会是制约项目发展的最主要因素。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

(编辑:阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读