![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
敏捷开发
设计之下
曾经做过4年的智能家庭项目,熟悉设备发现、互联互通等技术。后做了2年的敏捷实施与项目管理,目前与朋友一起经营一个创业,从事将于项目的移动互联网项目。
展开
-
H2 Database 实战(1):简介
H2 是一个使用 Java 编写的数据库,支持内存、文件等多种模式,经常用于项目的测试环境。除此之外,通过 H2 的官网了解到,H2 还提供了丰富的特性。1 关于 H2 的简介H2 提供了丰富的特性,这里罗列了一些引入注意的特性:性能:与 SQLit 相比较,读操作更快,但是在连接、写操作性能都不如 SQLite。功能:支持全文检索,提供了内置全文检索和使用 Apache Luncene 的全文索引对数据类型和SQL有很好的支持,兼容性好,便于移植支持嵌入式数据库、内原创 2020-05-22 16:04:34 · 406 阅读 · 0 评论 -
将H2应用在测试环境中
上面篇文章中介绍了 H2 的一些特性。H2 因其提供了内存数据库的模式,经常应用在测试当中,快速验证某些SQL 操作的结果。本文将 H2 应用于测试中的原因,并使用一个简单的实例说明 H2 在测试中的使用。对 H2 提供的全文索引感兴趣可参考:《H2 提供全文索引功能》1, 为什么将 H2 适合应用在测环境中?代码中的测试需要满足 FIRST 原则: Fast 快的 Independent 独立的 Repeatable 可重复的 Self-validating 自验证的原创 2020-05-22 16:03:46 · 346 阅读 · 0 评论 -
H2 的全文检索功能
在前面的文章中,我们介绍了 H2 的一些特性以及 为什么H2 适合应用在测试环境中。H2 不但可以作为嵌入式数据库、内存数据库使用。在适当的场景下可以选择使用 H2 替换掉 SQLite,还可利用 H2 内存数据库的特点,将它还提供了全文检索的功能。H2 内置了两个全文检索(FullText Search)的实现:**Native FullText Search。**使用 H2 中内置的全文检索,将索引存储在数据库指定的表中。Apache Lucene FullText Search。 H2 使用原创 2020-05-22 16:02:49 · 864 阅读 · 0 评论 -
识别代码的坏味道(四)
要想重构就需要先识别代码中存在的问题,然而问题有多种也分轻重缓急,所以Code Smell(代码坏味道)可以看作是应该首先动手解决的问题,因此重构过程可以抽象成如下简单的过程。在之前的文章中介绍了常见的 22 种代码坏味道:《识别代码中的坏味道(一)》《识别代码中的坏味道(二)》《识别代码中的坏味道(三)》本本将介绍其他 3 个代码坏味道:反复使用单个临时变量无业务意义的临时变量方法结果返回 null多层条件嵌套有副作用的查询方法假设条件符合01 反复使用单个临时变量使用单.原创 2020-05-20 16:18:36 · 328 阅读 · 0 评论 -
识别代码中的坏味道(三)
前两篇文章 《识别代码中的坏味道(一)》 和 《识别代码中的坏味道(二)》 中已经介绍了 18 个代码坏味道。《重构》中还涉及到另外 4 个代码坏味道,本文将将详细介绍剩余的 4 个代码坏味道。这四个代码坏味道是:中间人(Middle Man)狎昵关系不完美的库类被拒绝的遗赠01 中间人(Middle Man)在上一篇文章中 《识别代码中的坏味道(二)》 中在“过度耦合的消息链”这种代码坏味道曾经提及过中间人(Middle Man)这种代码坏味道,那么中间人到底是一类什么代码呢?中间人原创 2020-05-19 11:45:59 · 385 阅读 · 0 评论 -
识别代码中的坏味道(二)
在上一篇文章中,介绍了通过名字就能理解的 8 个坏味道,感兴趣可以查看识别代码中的坏味道(一)。本篇文章将识别代码中的另外 10 个代码坏味道:10个晦涩但是通过简单的即可识别的坏味道。如上图,这 10 个代码坏味道是:发散式变化霰弹式修改依恋情结数据泥球基本类型偏执平行继承体系冗赘类过度耦合信息链异曲同工的类纯数据类01 发散式变化简而言之就是一个类总是因为不同类型的原因发生变化。例如:需要修改数据源时要修改该类,需要修改缓存时还需要修改这个类,甚至当修改某个策略的计算公.原创 2020-05-18 16:41:25 · 602 阅读 · 0 评论 -
识别代码中的坏味道(一)
在前面的文章中,我们介绍了 《提升编程效率:重构》 以及 《何时开始重构?》。了解了那些能够更好的辅助团队或者个人进行重构,但是要让重构真正产生作用是需要能够代码中的坏味道,并消除代码中的坏味道。如下图是工作中常见的代码的坏味道:上图中的坏味道出自《重构》这本书,虽然并不是全部,但是涵盖了日常中最常见的一些代码坏味道。接触这些坏代码可以分为三类:见名知意的代码坏味道:稍微解释即可掌握的代码坏味道;通过一些例子即可掌握的代码的坏味道;本文主要聚焦在“见名知意的代码坏味道”,后.原创 2020-05-16 18:55:29 · 966 阅读 · 0 评论 -
何时开始重构?
“任何时候都可以重构”,如果这样回答太过于宽泛,因为总有那么一些时候重构的 ROI (投入产出比)并不高,设置与对重构还不那么熟悉的开发者相当于什么都没有说。所以整理了下日常开发中进行重构的时间点,从而来帮助提升开发效率和重构效率。如上图:日常重构的时间点可以分为上述三个时间点。Tasking 之后,开发之前进行重构;开发过程中,进行小步重构;修复 Bug 时进行重构;01 Tasking 之后,开发之前进行重构Tasking 指的是任务拆解(如果不熟悉,可以看这个视频 或者 看这篇文章原创 2020-05-15 17:15:05 · 282 阅读 · 0 评论 -
提升编程效率:重构
提升编程效率的大致可以分三类:任务拆解(Tasking To Action)、使用高效的开发工具/框架、关注高效的工程实践。其中任务拆解,我们在【实战TDD(2):Tasking To Action】(视频版) 中介绍了过了。开发效率的工具/框架也才不但涌现,例如:Spring Boot、Spring Cloud、Elasticsearch 、Intellij IDEA 等为开发提供了不同领域的高效工具。工程实践的也涉及到很多,比如:TDD、重构、Clean Code 等。在过往的工作经历中,发现.原创 2020-05-15 15:09:52 · 417 阅读 · 0 评论 -
善用技术债
01 技术债是什么?白话的解释就是技术上的债务。比如:(1)功能已经实现,但是需要手动做很多配置的事情,不可复用;(2)某个功能为热点功能业务上更重要,因此单位时间内对该功能的技术支持更完善,其他功能凑合能用。(3)由于思路不严谨,导致某个功能状态为开发完成,但是其中功能并不完整。以上 3 个是常见的技术债,类似的技术债还有很多。技术债具有两面性:(1)技术债带来的好处: 技术有杠杆,加杠杆,有可能带来高的ROI(投资回报率); 有限时间内将精力用到最关注的地方;(2)技术债.原创 2020-05-14 23:27:54 · 211 阅读 · 0 评论 -
实战 TDD (2): Tasking to Action
如果给我一个小时来砍树,我会先花 20 分钟来磨刀。 ---- 林肯在上一篇内容 TDD 实战(1) 通过一个案例来展现了 TDD coding 的过程,编码之前首先要做的事情就是确保已经准确理解了需求。TDD 也不例外如果需求不能获取准确后续用什么实践都无法完全交付想要的。工作中有 BA 人员来挖去需求,DEV 将业务需求转化为软件功能,其中 Tas...原创 2020-04-01 11:02:29 · 546 阅读 · 1 评论 -
实战 Git 分支策略
项目上总有那么多不尽人意的地方,导致各方面出现问题。分支管理策略就是其中一个经常遇到的问题。例如:(1) 主干开发,发现代码质量不强,导致代码提交后阻塞,等待修复问题。(2)QA 进入了在 Dev 环境对应 Master 分支,由于 Dev 环境一直在合并代码,QA不得不停下来,因为服务有一段时间可能持续在部署。上述问题就会让我们思考应该如何让我们的分支管理对团队更加有效。在常见的分...原创 2020-02-16 21:52:47 · 310 阅读 · 0 评论 -
价值观和落地之间的距离
经常听到周边的同事是“敏捷是价值观”,“敏捷是价值观”,自己也说“敏捷是价值观”,今天偶然间看到群中又有人指出是对方价值观的问题。那么到底价值观是什么?价值观能给我什么?又是怎么影响我们的呢?01 什么是价值观 ?价值观就指导自己思考方式的一种思考方式。例如:小A的价值观是追求技术卓越,那么当小A做事时,不管遇到有利条件,还是不利的条件都会想到技术卓越。小B的价值观是追求商业价...原创 2020-01-08 18:47:32 · 195 阅读 · 0 评论