一年工作经验总结

从 17 年开始到现在断断续续的写了一百多篇博客,每次看到以前写的博客都很感慨,浏览之前的博客其实能感受到这几年的变化与成长,但最近想了一下决定删除一些文章,从技术的关注向深度转变,方向可以从分类中看到,获取短期内不会再发生什么变化了,这是一次重要的选择,想要得到就要先放弃。 工作内容 技……

阅读全文

我与领域驱动之缘

缘起 正式接触到领域驱动还是耗子叔在易观峰会上的演讲,当时听的一知半解,现在回头来看一看真的很棒。 深入 领域驱动设计适用于复杂的业务系统,但对于那些简单的使用 DDD 反而会增加复杂度。 最近在读 Vaughn Vernon 《实现领域驱动设计》以及张逸写的领域驱动设计战略篇和战术篇, 收益良多。……

阅读全文

TDD 中使用的工具

Junit 常用单元测试工具 MockMvc Spring 提供的模拟 Controller 接口调用的工具 Mocktio 能够提供 Mock 方法 Cucumber 行为驱动开发,以用户故事为核心,算是 TDD 的升级版,能够结合其他工具生成报表……

阅读全文

tf-idf 算法

tf-idf (term frequence-inverse document frequence) 词频-逆文档频率,是搜索常用的一个权重相关算法,其作用是评估一个 document 在一整个 document list 中的重要程度,下面分开来讲。 term frequence tf 的意思就是一个词语在一个文件中出现的次数,对于一篇文章, tf 算法会将这篇文章进行分词并统计出现次数。这个词在这篇文章中出现的次数越多则说明越不重要,权重则越低。……

阅读全文

gitlab 添加代码规范检测

环境 gitlab 10.5.X + gitlab + ali p3c.pmd 好的代码能让人赏心悦目,方便 CodeReview 进行,为此,必须强制性的将代码规范起来。 如何做 git custom hooks client hooks 客户端钩子是存在本地的,按项目去配,这样能达到目的,但是起不到强制约束的效果,而且一个一个配很麻烦 server hooks 服务器端的钩子,每个项目中的 git hooks 全都是软连接到 gitlab 上的一个位置,默认是在 1 /opt/gitlab/embedded/service/gitlab-shell/hooks……

阅读全文

query 改写

什么是 query 改写 query 改写是搜索系统中最基础也是最重要的一个模块,简单来讲就是把用户输入的 keyword 转换成最贴近搜索系统内部的可识别的 keyword。 搜索引擎检索 keyword 的时候主要是匹配和排序,匹配也常常被称作“召回”,在搜索和推荐领域会有一个“召回率”的指标,在此不做展开。query 改写则会直接影响……

阅读全文

阶段性总结

博客断断续续的在更着,总是想写总是找不到合适的时间。 做了那些事情 搜索 用 solr 将公司的搜索系统重构了一遍,但是感觉很有成就感,但现在看来真的很 low ,当然好的架构是简单高效的,但是对于搜索用 job 的方式去同步真的很 low ,而且性能很差。搜索是商品展示的关键,为什么要用 job 的方式去同步,这是领导决定的……

阅读全文

操作系统作用

操作系统作用 1、资源管理者 都能管理什么? 自底向上 对于操作系统内部来讲 硬件资源 像 CPU 、内存、设备(输入输出设备、磁盘、时钟、网卡) 软件资源 磁盘上的文件,各类管理信息 如何管理 跟踪记录资源的使用情况 确定资源的分配策略 实施资源的分配与回收 提高资源利用率 保护资源的使用 协调多个进程对资源的请求……

阅读全文

Consideration make three pointers , pre,current,next; initial pre as null use tmp to save current’s next node info change current’s next to link pre node(first is null) move pre pointer to next node move current pointer to next node soultion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode reverseList(ListNode head) { ListNode pre = null; ListNode current = head; while (current != null){ ListNode next = current.next; current.next = pre; pre = current; current = next; } return pre; } }……

阅读全文

hamming-distance

The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note: 0 ≤ x, y < 231. Example: Input: x = 1, y = 4 Output: 2 Explanation: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ The above arrows point to positions where the corresponding bits are different. Consideration This problem is also have a relationship with ‘^’ , Think about it : 1(0001) and 4(0100) their Xor is 5(0101) . next we use & Operator to calculate the number of 1 , let the binary & 1 ,if result is 1 ,sum’s up , use » to move the postion. 5(0101) 0&1 = 0 pass 01&01 = 1 sum 010&001 = 0 pass 0101&0001 = 1 sum……

阅读全文