摘要:
函数式编程二 基础 函数式编程一 在java中用函数式的方式去做事情,Happy Path确实很好玩,但是编程中最不好玩的就是异常的情况。 通常函数式都是流式,然而通常不希望数据在流的过程中出现异常。 于是出现了这么三种处理方式: F#中提出了Railway Oriented Programming 阅读全文
摘要:
如何消除while(true) 背景 一个服务需要不停的在调用另一个服务,去抓取数据。 处理完了然后处理下一批。 实现方案 实现方案 优点 缺点 定时任务 简单 存在资源浪费 while(true) 资源不浪费 线程无法结束执行 Actor 模式 同上,且资源不浪费 两个Actor耦合优点高 Act 阅读全文
摘要:
TDD的好处 背景 首先我并不是TDD的狂热粉丝,虽然身边有很多 🤔。 最近进入了一个业务复杂度特别高的项目。 由于项目的特殊性,需求到开发这里,并没有整理的很清楚。 于是自己想用TDD来玩一把。 体验 TDD的基本功咱还是有的,先写测试,「红-绿-重构」。 收益 理清业务和数据结构及关系。 由于 阅读全文
摘要:
TK-Mybatis的Example的一些用法 背景 最近项目中使用tk-mybatis遇到了一些问题: 问题详情: (A=A1 and B=B1) or (A=A2 and B=B2) and C IN (C1,C2) 抽象一点: A or B and C 实际执行方式为: A or (B and 阅读全文
摘要:
怎样去构建一个可以维护的项目 前提 你要知道一个项目,当前存在什么问题,导致烂掉的。 小记录(前后端) this 传来传去 传大对象 底层和高层分离 拼写错误 长方法 没测试 可读性差 magic number mutable 静态方法过多 好项目 传大对象 很明显违反了最少知识原则。对于被调用方, 阅读全文
摘要:
如何在一个不优秀的项目里优秀成长 首先 名字是不是很绕。 最近上了我个人认为的一个不太优秀的项目。 如何在这种项目里成长? 这是我遇到的目前而言最大的挑战。 我总结了分为以下三个层次: 跑 忍 变 下边依次展开这几个方面 跑 顾名思义跑路。 跑路往往是最直接和简单的方式, 相当于及时止损。 明显的前 阅读全文
摘要:
前后端分离 今天聊一聊如何做好前后端分离的项目? 解决方案 两个字: 扯皮 如果只是「扯皮」就没必要去写博客记录了。 扯皮是必不可少的,但是在扯皮之下如何保证项目正常的交付呢? 前后端分离 通常会有两个场景 前后端都是一个人。这样最简单,工作效率也最高。 前后端分别是不同的人进行开发的。这样搞不好工 阅读全文
摘要:
坏代码长什么样 起因 最近上了一个项目,所在的一个组里,初级开发比较多。 加上项目的本身特殊性,于是就烂代码一堆。 最近做了新的小feature,从一个二十号的大组里分出了五六个开发来做。 我呢, 是另一个组里调过来的。 大组 刚进新组的第一天,问了做feature的几个人,组里都有哪些成员,发现没 阅读全文
摘要:
保序查询 背景 记录一下保证顺序的查询小技巧 实现 我从一个数据库表中查询出一个通过orderby的id list, 然后通过找个id list去另一张表中去查询数据, 查出来的数据顺序要和id list的顺序一样。 List<String> ids = childRepo.findParentId 阅读全文
摘要:
Mysql 5.7 distinct 小记 背景 项目的上用的ORM框架是tk-mybatis, 数据库连接层面用的是sharding-core和sharding-jdbc 版本都是3.0.0.M3 中间过程踩了一些坑,顺带了解了一下mysql的distinct和distinctrow的区别和dis 阅读全文