摘要:
> 前言: 传统的前端项目打包基本都是将环境变量写在项目中再进行编译打包,当一些环境变量需要改变的时只能改动项目再进行打包,比如:三套测试环境,有不同的后端api调用,那么每个环境对应的前端环境变量是不同的,前端开发需要配置不同的环境参数,有没有什么办法像java项目一样,开发人员是不需要知道环境配 阅读全文
摘要:
前言:项目开发过程中,CodeReview 是一个很重要的步骤,站在个人角度,CodeReview过程中,每个程序员都会交流编码过程中的一些好的想法,都会暴露编码能力的缺点,所以CodeReview能很快提高一个程序员的编码能力,站在公司角度,CodeReview能很好的保证代码质量,提高程序的稳定 阅读全文
摘要:
前端开发过程中,通常会有很多自定义组建和公用的工具组建,随着项目增多,不同的项目中会用到同一的定制组建,通常情况下,都是在各个项目中copy代码,导致使用起来非常不方便,这个时候可以使用自建私服解决这个问题。 Nexus 服务搭建 直接使用docker-compose 搭建Nexus服务 1. 创建 阅读全文
摘要:
程序开发过程中,最重要的一步是数据交互,也就是服务之间的数据通信,涉及到通讯需要有通讯协议,数据的序列化与反序列化,从早期使用的xml,到现今流行的json,再到protobuf,这些都是为了解决通讯的效率问题。 Protobuf 简介 Protobuf 全称是Protocol buffers,是G 阅读全文
摘要:
前言 开发中遇到一个简单问题,一个接口对第三方api有依赖,而且是依赖三个,导致这个接口的响应速度完全依赖于第三方接口的响应速度,前期开发并未考虑性能问题,将三个依赖的API请求做成串行,导致的结果是接口总耗时是三个api接口耗时的总和,接口响应变得巨慢无比,前端经常说接口动不动就超时,通过性能分析 阅读全文
摘要:
前言 平常开发过程中总是会有数据映射转换,比如 DO转DTO,DTO转VO,通常的做法就是get/set方法,实体字段数量很大的时候就会写大量的转换,涉及到每个字段,重复的工作量大,并且很容易在赋值的过程中写错,于是会选择一些第三方的工具类来做对应的转换,如:Spring BeanUtils / C 阅读全文
摘要:
集合操作 guava对现有jdk 中集合进行了扩展并进行了一系列优化使集合使用起来更加方便。 不可变集合 在开发中很多时候是需要使用不可变集合,不可变集合顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。比如我们在购物场景中,用户选完商品最后生成购物清 阅读全文
摘要:
前言:Google Guava和Apache Commons具有相似的功能,Guava库提供了很多优秀的功能为了弥补Java中很多不足,Guava库与2007年开源,至今都为活跃的迭代状态,可见其生命力的顽强,所以Guava库很是值得学习。 Optional NPE终结者 作为java开发人员,无论 阅读全文
摘要:
简介 通常情况下我们可以通过xml方式定义Bean,但是很多时候有特殊的要求我们需要自定义bean,在Spring体系下我们如何自定义Bean? Spring 下的实体都是通过容器来管理其生命周期,实体的创建与销毁都与Spring容器管理有关,我们自定义实体的时候如何能够做到让我们的实体与Sprin 阅读全文
摘要:
前言 开发时遇到服务总是莫名其妙的停止,本地调试毫无异常,能够正常启动运行,在测试环境发布后也能正常调用,就是运行一段时间后服务完全无响应了,通过翻报错日志发现出现OOM导致服务异常,于是拉了dump文件进行分析,借此学习了JVM相关知识,以及自己总结的一些编码中的注意事项。 JVM运行时内存布局 阅读全文