自顶向下设计 当我们开发或者重构一个软件系统时,需要进行很多框架、中间件上的选型。这些选型的粒度有大有小,解决其中一种或几种系统问题。而我们正是通过将这些框架、中间件进行搭配...

自顶向下设计 当我们开发或者重构一个软件系统时,需要进行很多框架、中间件上的选型。这些选型的粒度有大有小,解决其中一种或几种系统问题。而我们正是通过将这些框架、中间件进行搭配...
REST是什么 REST从2000年被Roy Fielding提出距今已有20多年,其对Web技术产生了深远的影响。REST本身并没有产生新的技术或者中间件,REST传递的是...
背景问题 简单的需求 当我们系统中的数据模型层级较少时,数据模型足够简单时,模型与数据库可以直接进行映射。这种简单数据模型使我们不需要针对其相互关系进行复杂的建模设计,直接在...
工具现状 对于API调试工具来说近几年国内有不少整合的比较好的工具,比如Apifox、Apipost等。这些工具主打主打功能整合,多种功能集成一步到位,但目前对于协议的多样性...
混沌之初 在进行程序开发的过程中,我们有时会看到这样的Java类: 有上百个公共方法 单个方法好几百行 整个Java文件几千行 先下结论,这样的类显然是不好的。尽管他勉强能维...
总则:首先收集尽可能多的垃圾(Garbage First), 一定程度上,可以理解为 是CMS在全局不分区的一种改进。G1并不会等内存耗尽(串行、并行)或者快耗尽(CMS)的...
读写分离 当我们的数据库压力主键变大的时候,我们会尝试增加一些从节点来分摊主节点的查询压力。而一般来说,我们是用一主多从的结构来作为读写分离的基本结构。 而一般来说我们有两种...
序列化与反序列化 我们在进行网络通信调用的时候,总是需要将内存的数据块经过序列化,转换成为一种可以通过网络流进行传输的格式。而这种格式在经过了传输之后再经过序列化,能还原成我...
没有单元测试时的验证 在学习编程和业务开发的工程中,我们有一段时间总是在讨论:单元测试是否有用?而进行这种讨论的主要原因是,我们似乎在不使用单元测试的时候,项目也可以跑得很好...
UML统一建模语言的目的是在于提出一种独立于程序实现之外的描述方式,以可视化的方式对对象进行建模。可以用于对产品的描述、文档的编制等。同时因为其使用了严格的图形语意的规范,所...
从领域模型说起 回顾一下我们进行领域建模时候的流程: 进行需求分析 进行用例设计 针对用例进行领域建模 针对领域模型并行进行数据库设计和程序设计。 在经过了前面几步分析后,我...
“我不是一个好员工。”我走在路上自言自语道。从路面散发的水汽慢慢的浸湿了我的裤口,不是很舒服,但是我也已经习惯了。我总是在这种环境下工作,清晨,湿气最浓的时候,露水会滴落在不...
程序的健壮性 程序在运行的时候总是不可避免地遇到各种错误。这些错误有一些是包含在原有的逻辑判断中的。而有一些是被程序描述了,但是我们并不认为它是正常逻辑的一部分。不论是什么形...
为什么不得不进行会议 在一两年之前,我是十分讨厌开会的。我觉得开会所消耗的时间无法与得到的成果成为正比。但是随着工作时间的增长,我逐渐理解到了会议的必要性(尽管很多会议的必要...
最近在梳理项目,重新的认识到了原有项目整体的架构。发现当重新理解了很多方法论了之后,针对原有项目的设计架构有了新的认识。 主要针对:项目分层、领域划分、库表涉及、模型依赖。 ...
什么是JShell 从Java9开始,java中推出了JShell,他是一个交互式的脚本工具。在官方的说明上将其定义为REPL(Read-Eval-Print Loop,读取...
早期项目设计 在比较早期的软件程序设计中,或者说,当软件需求十分简单的时候。我们往往会按照如下的方式进行设计: 分析需求文档。 根据需求文档中设计到的数据进行库表设计。 根据...
你编写的是数据结构还是对象 写Java的人都会自豪的说我是面向对象编程(或许没有那么自豪)。但我们在实际大型网络项目中进行开发的时候,我们最经常编写的各种对象,他们设计的是否...
古老的背景 从JDK1.1开始,JDK中就有HttpURLConnection来提供了网络连接的能力,但是由于实现的比较古早,其有很多的局限性。比如HttpURLConnec...