
胡言乱语
nicewuranran
这个作者很懒,什么都没留下…
展开
-
接口返回值设计
接口返回值设计(对外接口)接口返回值概述接口设计的合理与否是非常重要的,因为对外接口是供前端使用的,一定要和前端沟通好之后达成共同约定,才能放心的设计返回值,否则设计出来前端不认同就作废了。针对返回JSON的设计Result返回对象设计public class Result<T> {// 返回状态码(最好三位数方便扩展,和http状态码类似)private int code;// 返回描述信息(原创 2016-04-06 17:54:44 · 4690 阅读 · 0 评论 -
fluent 接口(链式调用的接口)
fluent 接口(链式调用的接口)原创 2016-12-04 14:13:35 · 2524 阅读 · 0 评论 -
版本号闲谈
版本号闲谈不管是对于后端还是前段版本兼容始终是个无法避免的难题,而其中的版本号命令也应该符合一定的规则,否则比较版本时就比较麻烦.版本号的格式:V<主版本号>.<副版本号>.<发布号>版本号的初始值:V1.0.0版本号管理规则:1、产品的主体构件进行重大修改,主版本号加12、产品升级增加特性副版本号加13、主版本号加1时,副版本号和发布号置为04、副版本号加1时,发布号置为0Java代原创 2016-12-03 15:32:07 · 487 阅读 · 0 评论 -
正向代理与反向代理的理解
正向代理与反向代理的理解介绍刚开始听到反向代理,不清楚是怎么回事,后来查阅资料之后和实践开发中慢慢明白了知识整理正向代理:即我们平时说的代理,最典型的就是上网的网络代理.反向代理:是指以代理服务器来接受Client的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Client,此时代理服务器对外就表现为一个服务器。 A reverse proxy taking原创 2016-09-05 23:20:39 · 713 阅读 · 0 评论 -
RESTful 架构初识
RESTful 架构初识介绍REST(Representational State Transfer)表现层状态转移,是基于命名资源松耦合应用程序的一种架构风格(通常用来架构web应用服务),REST是一种思维方式,而非协议或标准。解释说明Representational State Transfer:这个其实少了主语Resource,加上主语就容易理解很多了。Resource:资源,即数据(txt原创 2016-07-06 00:01:36 · 632 阅读 · 0 评论 -
数据库事物ACID特性和分布式系统CAP理论
ACID特性和分布式系统CAP理论事物的介绍和认识事务通常指的是数据库事务,不要把它太概念化,就是一些列操作要么都执行要么都不执行,把这些操作封装在一个不可分割的单元体里这么理解就可以。//备注最常见用来举例说明事务的例子应该就是银行账户转账的场景了吧。在mysql中只有部分数据库引擎才支持事务,推荐尽量都使用支持事务的引擎,不然给后面开发带来很多麻烦(切身体会,曾经在一家公司做支付系统和订单业务原创 2016-07-06 21:43:12 · 2246 阅读 · 0 评论 -
字符编码
字符编码介绍计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果。它们是根据指定的编码映射表查找出对应的字符来显示的。最早的编码表示美国制定的ASCII码,由于英文字符比较少,用一个字节就完全可以表示出来了,所以ASCII编码中,一个字符是占一个字节的。字节一个字节为8位(为什么是8位和当时硬件处理器发展有关,不是重点)0101 1010常用的编码原创 2016-07-05 23:30:25 · 439 阅读 · 0 评论 -
无线循环的两种方式
for(;;)和while(true)的区别for(;;)和while(true)都是无限循环,今天搜了下原理while VS. for 在编程中,我们常常需要用到无限循环,常用的两种方法是while (1) 和 for (;;)。这两种方法效果完全一样,但那一种更好呢?让我们看看它们编译后的代码: 编译前 编译后 while (1); mov ea原创 2016-07-15 11:02:20 · 905 阅读 · 0 评论 -
Memcached CAS协议
Memcached CAS协议介绍CAS(Check And Set)检查后再赋值,是为了解决多线程并发问题而设计的一种解决方案。Memcached于1.2.4版本新增CAS(Check and Set)协议类似于Java并发的CAS(Compare and Swap)原子操作,处理同一key被多个线程更改过程的并发问题。在Memcached中,每个key关联有一个64-bit长度的long型惟一原创 2016-07-01 14:23:40 · 584 阅读 · 0 评论 -
地理坐标定位和计算距离
地理坐标定位和计算距离场景介绍在SNS应用中通常会有"附近的人"、或者地图应用中搜寻目的地距离当前路程等场景。此时我们就需要根据两点地理位置的经度和纬度计算出距离。备注:通常智能手机只要用户同意软件使用定位功能,就都可以轻松的获取到用户当前所在地理坐标,因此前段可以轻松的将地理坐标传给后端,后端将其存储起来然后计算。可以存在redis缓存也可以存在mysql中。实现方法基于java自己实现jav原创 2016-06-30 23:59:29 · 9466 阅读 · 0 评论 -
随笔
随笔分布式与集群分布式:分布式的侧重点在于去中心化, 通常是一个复杂业务可能会拆分成多个子业务,每个子业务部署在不同的物理服务器上集群:集群强调的是任务同一性,只是物理服务器上的重复以便抗压和负载均衡。 通常是同一个业务部署在多个服务器上。备注通常分布式和集群是会一起使用的原创 2016-06-28 22:05:55 · 381 阅读 · 0 评论 -
数据库事务介绍
数据库事务介绍数据库事务主要类型 本地事务(JDBC):单数据源 全局事务(JTA):全局事务的实现通常是采用二次提交方式。多数据源数据库事务概念:所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态事务的ACID属性:1. 原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 2. 一致性(Consistency)事务必须使数据原创 2016-06-12 16:23:57 · 518 阅读 · 0 评论 -
如何理解索引
如何理解索引问题场景假如有1000多万条学生成绩单记录,如何查询某个学生的成绩单信息(提供学生学号)?1、最常见的思路就是我们从头到尾一条一条比对学号,但是这样效率比较低。2、插入表之前先按学号排序,当我们要查询的时候就可以缩小范围更快速的查询了。在第二种思路中使用二分法查找是最快的,先查中间,然后看学号是大还是小然后继续重复上面的查询。hash索引备注hash索引不属于有序索引,直接定位,效原创 2016-06-04 14:34:49 · 1234 阅读 · 0 评论 -
字节、字符、ASCII码、UTF-8编码
字节、字符、ASCII码、UTF-8编码介绍计算机只能识别01二进制数字,为了使计算机能够读懂我们人类自然语言,美国科学家就定义了ASCII码值,比如用二进制01100001(97)表示英文字符’a’。由于英文字符比较少,用一个字节(3bit可以表示128种情况)就可以表示了,但是其它国家的文字字符可能有成百上千所以使用一个字节是无法表示的,因为为了都能表示全世界各国的文字,采用UTF-8的3个字节原创 2016-06-07 21:45:28 · 1302 阅读 · 0 评论 -
接口设计
接口设计概述在手机广泛流行的今天,手机应用也随之越来越多,而且成长的速度也非常快。手机应用软件开发实现方式同普通PC软件一样,也分为BS和CS方式。而采用CS方式,在服务器端大多采用接口的形式提供数据交互(主流数据交互方式有:Json、WebService等),今天要说的就是如何设计接口。接口作为连通客户端与数据库进行数据流通的桥梁,起着举足轻重的作用,直接影响着程序的效率性、稳定性、可靠性以及数据转载 2016-04-08 15:56:04 · 1899 阅读 · 0 评论 -
XML和JSON瞎掰
XML和JSON瞎掰XML 跟 JSON 的圣战,或许会成为自 vim/emacs 圣战,cli/gui 圣战等等圣战以来的又一个圣战,而所有的圣战大抵都不会有结果,因为每方都有各自的道理,谁都不服谁。在我看来,XML 更适合数据定义,数据存储。它对数据的表达使得这个数据脱离你程序的上下文仍然存在意义并且可以被解读。所以 XML 适合作为配置文件,以及数据存储,存盘文件格式等等。JSON 更适合数据转载 2016-04-08 11:48:00 · 301 阅读 · 0 评论 -
浅析回调
浅析回调我们经常听说回调函数,其实对于学习面向对象编程的人可能会对回调函数不是太清楚.但是其实java图形编程已经有这个概念了,其实就是事件监听.举例某天我打电话向你请教问题,你一时想不出解决方法,我又不能拿着电话在那里傻等.于是我们约定:等你想出办法后打手机通知我,这样我就挂掉电话办其它事情去了.过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理.这个例子说明了“异步原创 2016-12-19 23:45:23 · 730 阅读 · 2 评论