<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA['昨天']]></title><description><![CDATA[技术交流   AND 追求理想的人…  不为失败找借口，只为成功想办法…]]></description><link>https://blog.youkuaiyun.com/libo2158</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; libo2158]]></copyright><item><title><![CDATA[【最佳实践】 - Maven]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/88063091</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/88063091</guid><author>libo2158</author><pubDate>Fri, 01 Mar 2019 16:55:09 +0800</pubDate><description><![CDATA[概述
本文介绍如何玩转 Maven, 可以说是 Maven 库的使用规范
一、release库（发布库）使用规则及场景

release库是存放稳定版本包的仓库，线上发布的程序都应从release库中引用正确版本进行使用

私服中release库使用规则如下：

release库不允许删除jar；
release库不允许同版本更新jar包（即同一个版本jar包只存在一个）；
release库上传的...]]></description><category></category></item><item><title><![CDATA[【最佳实践】 - RPC]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86715338</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86715338</guid><author>libo2158</author><pubDate>Thu, 31 Jan 2019 15:17:47 +0800</pubDate><description><![CDATA[概述
本文介绍如何玩转 RPC, 可以说是 RPC 开发规范, 也可以理解为 RPC 最佳实战.
一、接口设计

写入的服务保证幂等性，不幂等则要求有排重处理。
方法上面要求显式的抛出可能出现的异常，即使是自定义Runtime异常（不使用抛出 Dubbo 的异常，可能引起特殊处理例如重试）。
方法名要求含义明确且唯一，不能使用重载方法。
自定义对象数据结构要求尽量简洁，尽量不要多层循环嵌套。
尽量...]]></description><category></category></item><item><title><![CDATA[【最佳实践】 - Restful API]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86714792</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86714792</guid><author>libo2158</author><pubDate>Thu, 31 Jan 2019 14:47:29 +0800</pubDate><description><![CDATA[概述
本文介绍 如何设计 出 易于理解 和 使用的 API,  Restful API 最佳实战 .
一、URL 设计
1. 动词 + 宾语
RESTful 的核心思想就是，客户端发出的数据操作指令都是 “动词 + 宾语” 的结构。比如，GET /articles 这个命令，GET是动词，/articles是宾语。
动词通常就是五种 HTTP 方法，对应 CRUD 操作:

GET：读取（Read...]]></description><category></category></item><item><title><![CDATA[【最佳实践】 - 接口规范]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86712921</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86712921</guid><author>libo2158</author><pubDate>Thu, 31 Jan 2019 11:46:40 +0800</pubDate><description><![CDATA[概述
本文介绍如何玩转 MySQL, 可以说是 MySQL 开发规范, 也可以理解为 MySQL 最佳实战.
一、基础规范




规范点
说明
推荐方式
等级




文档唯一性
文档出处来源（人员和设备）必须统一，建议文档服务器，统一发布人。

重要


接口环境
要明确给出各个环境的调用地址。

重要


接口文档版本
必须有版本编号，名称+版本，版本必须能区分历史版本。 Pegasus f...]]></description><category></category></item><item><title><![CDATA[【最佳实践】 - MySQL]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86707966</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86707966</guid><author>libo2158</author><pubDate>Wed, 30 Jan 2019 20:07:16 +0800</pubDate><description><![CDATA[概述
本文介绍如何玩转 MySQL, 可以说是 MySQL 开发规范, 也可以理解为 MySQL 最佳实战.
一、基础规范

使用 InnoDB 存储引擎
数据库字符集使用 UTF8，校对字符集使用 utf8_general_ci
所有 表 、字段 都尽量 添加注释
库名、表名、字段名 使用 小写字母，禁止 超过32个字符 ，须见名知意
非唯一索引 以 “idx_字段1_字段2” 命名，唯一索引 ...]]></description><category></category></item><item><title><![CDATA[【最佳实践】 - Redis]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86707283</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86707283</guid><author>libo2158</author><pubDate>Wed, 30 Jan 2019 18:41:33 +0800</pubDate><description><![CDATA[概述
本文介绍如何玩转 Redis, 可以说是 Redis 开发规范, 也可以理解为 Redis 最佳实战.
一、键值设计
1. key名 设计
(1). 【强制】: 可读性和可管理性
以业务名(或数据库名)为前缀(防止key冲突), 用冒号(句号)分隔, 比如: 业务名:表名:id

 csdn:user:1

(2). 【建议】: 简洁性
保证语义的前提下, 控制 key 的长度, 当 key...]]></description><category></category></item><item><title><![CDATA[【最佳实践】 - Netty]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86704096</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86704096</guid><author>libo2158</author><pubDate>Wed, 30 Jan 2019 15:38:47 +0800</pubDate><description><![CDATA[概述
本文介绍如何玩转 Netty.
一、服务端启动流程

通过 bind 方法添加监听器, 用以自动绑定递增端口.
attr 方法, 为每条连接增加属性, 能够实现全单例模式. 类似于 request.attr 属性
childOption 方法, 关于 TCP 连接的优化:

 SO_KEEPALIVE 底层心跳
 TCP_NODELAY 延迟发送
 SO_BACKLOG 等待队列



二、...]]></description><category></category></item><item><title><![CDATA[【2019第三弹】IDEA JVM优化配置]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86620349</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86620349</guid><author>libo2158</author><pubDate>Thu, 24 Jan 2019 09:12:30 +0800</pubDate><description><![CDATA[大于等于 4核 8G 推荐配置
idea64.exe.vmoptions
-server
-Xms2g
-Xmx2g
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=512m
-XX:SoftRefLRUPolicyMSPerMB=64
-XX:MetaspaceSize=1g
-XX:SurvivorRatio=6
-ea
-Dconsole.enc...]]></description><category></category></item><item><title><![CDATA[【2019第二弹】本地服务快速搭建]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/86439260</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/86439260</guid><author>libo2158</author><pubDate>Sun, 13 Jan 2019 22:01:02 +0800</pubDate><description><![CDATA[概述
本文介绍如何使用Docker快速搭建本地服务.
用到的工具或软件

服务器或PC
Docker
小编推荐一个国内镜像源 https://www.daocloud.io

一、安装 Docker
首先, 可以用yum直接安装, 建议安装倒数第二个正式版, 因为刚发布的版本可能还会有人踩坑, 所以建议不要安装最新稳定版,可能还会有坑的噢, 上次小编就遇到一个坑(宿主主机关了不机了, 最后安装前一...]]></description><category></category></item><item><title><![CDATA[分布式事务下的交易一致性解决方案(逻辑代码结构)]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372273</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372273</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:39:12 +0800</pubDate><description><![CDATA[分布式事务下的交易一致性解决方案


银行很强势，我们什么都不管(1. 调一次，我出款一次; 2. 不提交任何冥等操作)
我们什么都没有(没有分布式事务)
用户只提交一次
我们只能成功一次


一、远程调用与本地事务区分开(别人挂, 我们不挂)

事务方法里面不能创建远程调用

悲观锁
select * from xxx where id = xxx for update;

乐观锁
select...]]></description><category></category></item><item><title><![CDATA[Shell 调试方法]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372223</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372223</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:32:32 +0800</pubDate><description><![CDATA[一、列出代码和查询代码类：


l  列出当前行以下的10行
-  列出正在执行的代码行的前面10行
.  回到正在执行的代码行
w  列出正在执行的代码行前后的代码
/pat/ 向后搜索pat
？pat？向前搜索pat


二、Debug控制类：


h     帮助
help  命令 得到命令的具体信息
q     退出bashdb
x     算数表达式 计算算数表达式的值，并显示出来
!!...]]></description><category></category></item><item><title><![CDATA[redis 配置文件示例]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372214</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372214</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:31:23 +0800</pubDate><description><![CDATA[redis 配置文件示例



当你需要为某个配置项指定内存大小的时候，必须要带上单位，



通常的格式就是 1k 5gb 4m 等酱紫：

#



1k  =&amp;gt; 1000 bytes



1kb =&amp;gt; 1024 bytes



1m  =&amp;gt; 1000000 bytes



1mb =&amp;gt; 1024*1024 bytes



1g  =&amp;gt; 100000000...]]></description><category></category></item><item><title><![CDATA[Mybatis 学习笔记]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372203</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372203</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:29:34 +0800</pubDate><description><![CDATA[Mybatis 学习笔记



ResultType与ResultMap


ResultType返回一个List
ResultMap返回一个加强的Pojo(Plan old java object)

可以满足一些特殊要求，嵌套的Pojo

association(一对一), collection(一对多) ，多对多(利用嵌套association,collection)




缓存


一级...]]></description><category></category></item><item><title><![CDATA[Linux服务器分区的方案]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372183</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372183</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:26:15 +0800</pubDate><description><![CDATA[Linux服务器分区的方案



1. Linux服务器分区的方案：

分区类型     分区的实际大小
/           1G-2G (最少要150–250MB)
/boot       32M-100M (启动分区，最多只要100M左右)
/opt        100M-1G (附加应用程序)
/tmp        40M-1000M (最大可以设为1G左右，如果加载ISO镜像文件就...]]></description><category></category></item><item><title><![CDATA[JVM学习笔记]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372168</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372168</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:24:22 +0800</pubDate><description><![CDATA[JVM调优

Trace 跟踪参数

打印简要GC

verbose:gc 
-XX:+printGC 
打印详细GC

-XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps 打印GC发生的时间 
重定向GC.log

Xloggc:log/gc.log – 默认以当前目录为基础 
每次GC后，都打印堆信息

-XX:+PrintHeapAtGC 
监控类的加载
...]]></description><category></category></item><item><title><![CDATA[单元测试]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372127</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372127</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:19:18 +0800</pubDate><description><![CDATA[关于BUG指标


代码覆盖率(30%)–(60%)(80%)
圈复杂度
每千行代码bug数(60)–(10-20)




质量相关的指标


120(完全不写单元测试)
30(有经验的，写点单元测试的)




单元测试


最简单的 main 方法
Junit/TestNG 工具




单元测试的原则


单元测试可以无限次重跑
一定要有Assert
单元测试一定不要依赖外部环境




...]]></description><category></category></item><item><title><![CDATA[文件上传包含( 断点续传)]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372089</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372089</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:12:47 +0800</pubDate><description><![CDATA[文件上传



WebUploader上传组件



WebUpload 组件

异步上传文件，拖拽式上传，粘贴上传，上传进度监控，文件缩略图，甚至是大文件断点续传，大文件秒传。

下载地址: http://fex.baidu.com/webuploader/

&amp;lt;script type=&quot;text/javascript&amp;gt;

  var uniueFileFlag;

  WebUpl...]]></description><category></category></item><item><title><![CDATA[JAVA 注释格式]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372073</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372073</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:10:32 +0800</pubDate><description><![CDATA[JAVA 注释格式



1. 文件注释: (文件注释写入文件头部，包名之前的位置)



说明: 注意以 /* 开始 避免补JavaDoc收集

/*
 * 注释内容
 */
package com.fsdn.msg;




2. 文件注释内容: 版权说明、描述信息、生成日期、修改历史



说明: 文件名可选

/*
 * 文件名: [文件名]
 * 版权: &amp;lt;版权&amp;gt;
 * 描述...]]></description><category></category></item><item><title><![CDATA[ActiveMQ 学习笔记]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79372056</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79372056</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 22:08:10 +0800</pubDate><description><![CDATA[ActiveMQ 学习笔记



activemq的特性


多种语言和协议编写客户端。

语言: Java, C, C++, C#, Ruby, Perl, Python, PHP

应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
对Spring的支持,ActiveMQ...]]></description><category></category></item><item><title><![CDATA[Docker install]]></title><link>https://blog.youkuaiyun.com/libo2158/article/details/79371917</link><guid>https://blog.youkuaiyun.com/libo2158/article/details/79371917</guid><author>libo2158</author><pubDate>Sun, 25 Feb 2018 21:50:57 +0800</pubDate><description><![CDATA[Docker install



一、 Docker 安装要求


64位操作系统
最好是3.8以上内核




二、 Cent OS 6.5 默认内核为 2.6



1. 升级内核



a) 先执行以下命令

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -ivh http://www.elrepo.org/e...]]></description><category></category></item></channel></rss>