2019-07-29 to 2019-08-04 周记

1、springboot开启声明式事务的方法

  之前一直在用传统的ssm框架,近期因为做风电项目的需求,传统的ssm框架中的spring换成了springboot,个人觉得springboot是非常好用的,胜过spring,并且嵌入了好多内容,使用什么只需将对应的模块导入即可,但是中途突然想到了一个问题,如何开启一个事务呢,并且实现事务的自动管理呢,难道是在application.yml或者application.properties中配置吗,然后查了一下,特别简单,只需在springboot的引导类上加上@EnableTransactionManagement以及在对应的service上加上@Transactional这两个注解即可。也不需要在配置文件中多加入什么。一些具体的使用细节我会记在自己的笔记上。

 

2、动态编译(在线编译器)

  也是由于风电项目的需求,需要能动态的编译代码,所以学习了一下,如何将代码上传到服务器并且将代码再动态的执行了,其实这个原理非常简单,就是我们刚开始学习java时候的方法,使用控制台编译,代码上传之后,调用控制台去编译,并且将编译信息返回,最后通过反射获取到方法,在通过反射去执行方法,从而完成这么一套流程。

 

3、git分支的详细用法

  之前用git一直是使用主分支,没有理清其它分支的作用,开发这个风电项目,因为是多人协作开发,并非之前的单人开发一个小的web练练手,这就需要用到版本控制和代码共享,于是决定好好去研究一下git的分支的用法,参考的这篇博客,这篇博客讲述的非常清楚,讲述了正常的项目开发应该有那些分支,各个分支都应该有哪些作用,例如主分支只能来做发布的版本,中间发现小bug会找到对应的tag进行单独分支出来一个release,大bug会移到hotfix进行修复,修复完成之后再合到主分支和开发分支(dev分支),感觉看了这篇博客收获的还是蛮多的,现在正在开发风电项目,就使用了这种分支管理模式。对开发实在是太有帮助了。这是我看的博客的url:https://blog.csdn.net/shusheng0007/article/details/80791849

 

4、mybatis-generator插件的使用

  由于数据库中的表实在是太多了,并且每张表都对应一个实体,手写实在是太影响效率了,于是我就在风电项目中集成了一个自动生成pojo和mapper的插件,这个插件需要一个配置文件,在里面配置一些具体的路径还有配置一些数据库的信息,配置想要生成数据库中的表名称。就可以自动生成,之前听说过这种类似功能的插件,但是真实的情况是没有用过,这次实际项目中就使用到了。对程序猿还是挺友好的。附上一篇博客:https://blog.csdn.net/Nancy50/article/details/79354783

 

5、扇区(sector)、块(block)、簇(cluster)

  最近在逛博客的时候,发现了一篇关于硬盘的讲解,之前对硬盘了解过一点,但是有很多概念没有搞清楚,看完这么详细的讲解之后也算是恍然大悟了,就拿磁道和盘面来说吧,之前听过磁道和盘面,可是就是不知道磁道和盘面的关系,磁道和盘面有什么关系呢?磁道数等于盘面数,就是这种关系,还有,当我们的电脑使用硬盘的时候,为什么会指定一个系统盘进行挂载呢,其实这个系统盘是位于最外侧磁道,读取速度最快,why?想一下,同心圆,相等时间,可能最外侧转动的距离最长啊,也就是速度最快呀。还有就是块和簇的概念,之前听说过块,没有听说过簇,其实硬盘的最小存储单位是扇区(sector),但是操作系统为了便于管理存储空间,就有了块和簇的概念,块和簇都是2的整数倍个扇区,这样便于操作系统给应用程序分配内存,也便于管理,之前一直说block,没有明确什么是block,其实在window下,他的管理方式是簇,或者说是FAT、FAT32、NTFS文件系统下叫簇,在liunux下叫块,或者是ext4文件系统下叫簇,这回就理清了块和簇的概念,咱们之前总是统称为块,这种是不严谨的。博客url:https://blog.csdn.net/william_munch/article/details/84347788

 

6、alibaba开发规约IDEA插件

  自己写代码总是觉的规范程度还不够,于是就想着能不能有一种开发规约,就是在IDE下的规约,在码代码的时候就能提醒出来。试着找了一下,确实还找到了,还算是比较好用吧,代码中存在的不规范的地方都会飘红,能起到一个提醒的作用。我把这个插件是集成到了IDEA中,因为我开发web都是在IDEA中进行开发,还可能进行整合项目扫描,扫描出不规范的地方,就可以试用IDEA的万能键atl+enter进行修正。插件的使用方法:https://www.cnblogs.com/cnndevelop/p/7697920.html

 

7、twitter的id自增算法snowflake

  使用这个算法的初衷还是风电项目,因为要有无意义的id,刚开始想使用uuid,结果uuid生成的序列串我觉得有点太长了,整整32位,就想着能不能有另一种方法去实现这个。查到了twitter的snowflake算法,该算法比较适合分布式系统,但是我还是决定拿来使用了,生成的字符串最长19位,每一位都有自己的含义,0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000大致的结构是这个样子的,第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点) ,最后12位是毫秒内的计数(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号)。这样就很方便,也减少了数据库的压力。也方便了开发。url:https://www.cnblogs.com/relucent/p/4955340.html

 

总结

  我推荐了这么多博客,有机会一定要看一下,没事的时候多逛一逛博客,见识一下技术大牛的思路,了解一下新技术,都是好的,我的学习思路大致是这样的,刚接触某个知识点的时候会看视频,视频会教会我怎么用这个知识,然后练一遍手,过一段时间之后,对这个知识点就淡忘了,但是脑子里还是会有一些关于怎么使用的记忆的,这时候,就需要再复习一遍当时做的笔记,但是,还有但是,光看当时的笔记是不够的,记住,视频里教的只是大致的用法,里面的好多细节视频里不会详细讲解的,那怎么办,看博客呀,看完笔记之后一定要看博客,拓展一下对这个知识点的理解程度。然后再动手操作一下这个知识点,如此反复,这个知识点就永久是你的了。一定反复这么去看,要不然还是会忘得,看的次数越多,看的博客越多,理解的越透彻。

  最近趁着休息的时间看了看大数据和分布式计算,理解了大数据中的部分概念和分布式计算中的部分概念,我有一个规划,就是大三开学周后,把大数据这块学了,以后找工作也算是一个筹码,不能仅仅局限在web这块,就像分布式计算一样,并行吧,未来的路还很长,没有理由不加油,我现在的感觉就是学到啥也不会了,计算机这块可真是学海无涯,一环套一环。加油吧,少年,一路学习,一路总结。

 

转载于:https://www.cnblogs.com/Lighting-Sui/p/11260880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值