这些年,这些事(技术整理)之一

        忙忙碌碌,忙忙碌碌接近十年的工作经验了,不知何时起开始有感慨的感觉了。从一个小白变成大白。最近一段时间处于“空窗期”,静下心看看书,写写东西,整理一下之前的笔记。发现原来我已经很长时间没有购买过书籍了,又开始翻出以前的书籍再次回味一下。

      看着满满的书架上面的书,发现自己是一个“万花筒”,什么书都有,技术,小说,销售,产品等等什么都有。人杂而不精,是我对自己的评价。(突然想起来,最后一次书籍来了新伙伴是拿一个蓝牙耳机和小夏童鞋换的二本书)。

      三年前也是九十月份的时候,跟着马波童鞋和老张童鞋一起做“火腿肠”项目(HTC项目)的时候,开始真正在公司里面进入项目组搞起应用框架(特别强调,只是应用框架)。三年的时间过去了,为什么突然强调应用框架呢?因为应用框架只是提供给开发人员开发的一个开发框架,将开发复杂度降低,而不是真正意义上的架构,一套真正的架构应该包含数据传输协议,网络服务,对接协议等等,而不是简单的Spring,Mybatis,JPA等这些成熟框架整合的一个框架。

        二年前,花一个星期干了一件“坏事”(如果是现在,如果我手下有人这么干的话,我会劈头盖脸的骂他),当时候还在客户现场驻场开发,应该说第一小阶段的东西已经做好了,但是我发现这么做的话,我的一个Project会变成非常“臃肿”,一时之气,妈妈的,使用Servlet 3.0新规范里面web-fragment的将每一个模块独立出来(可以参考我之前写的一篇文章),然后通过POM文件重新组建整个新的Project。幸运的是当时我还是技术可以,并没有惹出什么幺蛾子,完全将代码整体整合进去。想想当初也是胆大包天,如果有那么一点点业务流程问题不通的话,就白白浪费5个人日的投入并且对整个开发团队的进度影响也很大。其实现在想想还是满感谢波波的,虽然他只是简单的说“以后如果有这么大的变更,请提前通知他”。这件事也让我想明白一件事,就像朱曦说的技术可以由下而上的推进。但是有时候您还需要一群志同道合的人存在。

        一年半前,开始和朱曦组件架构组搞起微服务,这玩意大家搞得不亦乐乎,对于开发人员或者架构组里面的人员而言,这是一个全新的技术框架体系,每一个开发人员都想加入到架构组,因为对他们的吸引点很是明确,因为进入到架构组,他们可以学习到很多很多不同的技术。小伙伴们说,一年半前是我最爽的日子,因为我的工作就是安排小伙伴们写不同的组件,服务,感觉无聊的时候自己写写核心代码,想骂人的时候Review一下整个项目组的代码。时间也就这么一点点的过去,当我发现我已经对我的项目不在有那么多热情的时候,我发现我开始焦虑,心慌的时候,我才知道,原来这些不是我想要的,我想要什么,那段时间一直在困扰着我,想要一份清闲的工作,架构组的活对于我而言就是清闲的,想要一份高薪,出去也可以找到,那段时间每晚都睡不好觉,头发也开始脱离,白头发也开始一夜之间不知道冒出多少。不断的看书,寻找自己希望的答案。发现原来自己真正想成为一个真正的架构师,设计整体业务框架,各种数据交换方式等等真正架构意义上面的事情。

        半年前毅然决然的选择了离开工作快5年的公司。选择加入了新公司,一直我也是告诉自己,每一家公司都是一样,肯定不会有那么好的机会做自己那么喜欢的事,年轻的时候,老司机告诉我们,将自己不喜欢的事情做好,才是你能力的表现。这种心灵鸡汤已经对我没有任何的感悟的。我也不是那么年轻,没有那么任性,我只是想静静的将一个项目或者产品慢慢将它的开发模式,设计模式什么的慢慢改变。这段时间也和很多不同行业人员交流,了解真正行业里面专业做法。底层和上层交易使用什么协议,协力内容格式应该是什么类型,整体框架我们如何切分。其实慢慢发现不管是对于纯软件开发也好,软硬集合也好大家都想做成一个模块化。慢慢我又静下心来看书,不管是《领域驱动设计》或者《启示录》,如何设计好一个好的产品或者一个好的同系列框架。人需要协助,当你发现只有你一个人的时候,你会孤单,你会钻牛角尖(最近一段时间一直在设计思考如何使用Netty做TCP服务器和TCP集群这块。阿里对于物联网有一块独立的IoT解决方案其实一直想知道如何设计的)。

      心慢慢静下来,你会发现一个人也可以做很多事,开始慢慢整理自己之前学习的东西,重新翻开自己之前买的书,静下心来整理之前的框架,将一件件事情计划的出来,充实自己全部的时间。

以上是最近一段时间的感悟,接下来是将之前写的应用框架,微服务框架整理出来完全分享。

以下内容为一个星期内完成的应用框架组合(待完善)。


        先来一个目录截图,其实我很简单只是想将之前的东西重新封装整理增加。这是一个长而远的计划。

代码整理目录

应用开发框架已经开始整理了。截图说明一下把。

第一阶段整理的框架

core:基础使用的一些Utils类

datasource:动态数据源和单数据源封装

domain: 常用的一些类的基类

jpa:对于JPA进行的封装

logger:日志封装,默认提供一些操作日志

mongoDB:对于mongodb的一些列封装

swagger:在线API展现

validators:数据有效性校验框架,整体使用XML格式

test:测试共通架构里面的Junit测试

PS:为什么一开始不对Mybatis进行封装,没有什么特殊原因。因为最近半年做的产品,单表操作的更加多,发现很多人的SQL写的不是很规范,也花了很多时间,即使使用Mybatis自动生成也有一些列问题。所以是优先对JPA进行了封装。

简单贴出domain第一阶段的结构图。

Domain结构图

      后面一段时间会将每一个框架模块每一个UML图和设计想法全部分享出来。并且每一个模块都会在基础服务中使用到。

        第一个基础服务,对于微服务,第一个基础服务应该是配置中心,但是想来想去其实权限系统是每一个都必须使用的,所以也就开始做权限中心基础服务了。

技术框架:Spring Boot + thymeleaf

数据库:MongoDB

API文档:Swagger

JDK:JDK1.8

        并且也完全遵守阿里的数据对象传输规范,将POJO分为Param,Result,Entity不同层次的数据使用不同的类型。

来一个权限系统的整体页面效果。

权限中心首页

        最近一直在研究MongoDB,所以也就使用MongoDB作为权限中心数据存储。并且权限数据本来就是树形数据,所以也就使用了MongoDB。(PS:这个还真没有参考朱曦的权限数据结构)。

PS:本人不太喜欢写CSS,所以也就使用了现成的第三方后台框架。

在线Rest API文档

API文档
API在线测试

PS:对于Swagger,阅读源码以后,Swagger框架模块做了一个可以生成固定Excel的文档。其实我一直喜欢开发人员在一开始的时候设计好接口,返回假数据这种模式开发,但是对于开发人员又要写一份接口文档,其实是一个“蛋疼”的时间,并且对于很多开发人员,如果接口变更了,很少有人会主动去改接口文档的。

整体Project目录结构

整体结构

所有的Logic和Service都进行Junit测试。其实对于Junit后面也会进行二次封装,将Junit更加简单实用。

很少写注释,也不是不喜欢写注释,因为我信奉一个好的方法名称可以减少很多废话。但是这次我还是将注释写上,因为我想将一切完美一下。

代码片段1
代码片段2

以上。有点累了,未完成,待续。下次将分享具体一些。

人有时候就这样,当你真的认真起来的时候,其实还是可以静下心来。


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

推荐阅读更多精彩内容