线下开发时需要在一台机器上部署 MySQL,并创建不同权限的 user 给其他机器使用,操作通常很简单,在部署机上使用 root 用户登录,创建用户并授予访问权限,方式如下:
CREATE USER 'test'@'%' IDENTIFIED BY 'abcd1234';
GRANT ALL PRIVILEGES ON * . * TO 'test'@'%';
FLUSH PRIVILEGES;
这里 host 用通配符 %
表示该用户可以从任意主机访问数据库。操作执行之后从其他主机就可以访问当前数据库了,看起来没问题,直到我在本机使用 localhost 访问数据库报错:
ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)
先说点废话,已经三个多月没有更新博客了,原因是换了份工作,从准备、面试到最终入职也折腾了蛮久。结果还是理想的,拿到了几家一线厂的 offer,最终选择了百度(虽然在走下坡路,但怎么说也是国内一流大厂)。工作内容也终于逃离了业务,转为了中台赋能,平台开发,随之而来的是工作方式上的转变,也在慢慢适应。
说回正题,我所在的组定位是数据中台,服务于两百人的业务团队,有自己的数据平台,也承担一部分离线数据分析的职能,刚入职为了熟悉业务被安排两个 BI 相关的需求,这里谈谈这一个月数据开发的一些感悟。
在应对复杂项目设计时,分层几乎是必须用到的手段,那回想自己启动一个新项目时是如何确定分层的呢?是直接 copy 前人项目骨架,还是参照现有的理论模型(MVC
、DDD
、CQRS
等)进行实现呢?其实,分层作为偏方法论的一种设计,不同的人有不同的理解,即使采用相同的分层模型,对模型中一些概念的认知也存在偏差,这篇文章也是简单谈谈我对分层模型的初步探索。
写这篇文章的缘由是前几天刚补完刷爆盆友圈的《爱,死亡和机器人》,这部 Netflix 的新作由 18 个短片构成,除了个别剧集质量略显一般,其他大部分短片都兼具艺术性与故事性,表现出上乘的质量。于是,我随了一波大流,把这份现代影视工业的硕果分享给好友,当他问起我好看在哪里时,我却尬住了,它好像哪儿哪儿都好,只是要把这些好的地方说出来并不是件易事。我突然很佩服那些活跃在各个公众号里的影评人,第一时间就能把新片新剧的长处短处分析的头头是道,而我等普通群众呢,真的是「奈何本屌没文化,一句牛逼行天下」。我并不想成为很专业的影评人,一来影视相关的专业技能确实不够,二来文字能力也一般般,但我也不满足做个稀里糊涂的观众,以致于想分享好东西的时候都只能「这片子牛逼嗷,看就完事儿了铁汁」。我觉得每个人对于影视作品应该都是有自己的理解的,毕竟从小到大看了那么多,只是需要一些沉淀和积累。于是,我把自己看过的、喜欢的影视作品又重新捡了起来,发现想法还挺多的,有了这篇文章。
得空试了试 Mybatis 两个常用的插件,MyBatis Generator(MBG)和 Mybatis PageHelper(分页插件),效果确实是有的,解放了生产力,不用再对着表中的字段一行行手写 DO 类和 Mapper 了,处理重复的分页需求时也会优雅许多。但话又说回来,既然是工具,肯定会有蹩脚的地方,作为使用方,要么了解这些 point 并加以注意,要么想办法定制或者改造这些工具为自己所用,显然后者要高明一些,但需要额外的动手成本,需要一些权衡。本文对这两个插件的简单用法和使用过程中的一些问题做点笔记。
单例模式作为较为常用的设计模式,实现思路看似简单,但要写出一个在多线程环境中能正确运行的单例模式却并不容易。