前言这份文档是GoogleJava编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则,我们才认为它符合Google的Java编程风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题,同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则,对于那些不是明确...
Read More查看当前操作系统内核信息1 $ uname -a2 Linux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux查看当前操作系统发行版信息1 $cat /etc/issue2 Ubuntu 9.1...
Read More近期,好屋中国官网app项目(下称“官网app”)如期上线,项目一期正式告一段落。这一期官网app项目核心是一个面向C端用户的新房二手房交易app,工作量也主要集中在app及其后台服务。但这一期项目相关联的系统及业务却非常广泛,包括HOSS、合伙人app、内部合伙人、外部合伙人、助理宝、抢钱宝,基本上关于新房二手房各个产品线上的产品和系统都有新增需求和业务变更,整个工程的复杂度可想而知。系统的设计开发测试及上线准备持续大约一个月,执行过程也遇到了大大小小的包括技术、业务、管理等等各种问题,但总的来说比较顺利,产品质量也比较高。这与各个小组成员的辛勤劳动和密切配合是密不可分。这期项目中,我带领官网app和合伙人app(包括助理宝、抢钱宝等)团队,主要完成了官网app后台(包括官网app运营)及合伙人(包括内部合伙人 外部合伙人)、助理宝、抢钱宝和抢客宝的新系统研发及已有系统的变更和维护。团队人数12个人以上,其中有一半以上成员是刚加入的新员工,时间紧,任务重;另外,第一次集成单点登录,第一次通过公共服务集成在线支付;再加上,项目过程中,合伙人及助理宝业务需求并行开发和上线。团队大,业务复杂,对我来说都是第一次,因此,要管理好团队按时保质保量按时上线,对我也是不小的挑战。在此,我对这次项目做一个小小的总结,总结经验,以为下一次项目执行更臻完善;吸取教训,以防再犯同样的错误。
Read MoreRedis 是一个 Key-Value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string(字符串)、list(链表)、set(集合)和 zset(有序集合)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式的排序。与 memcached 一样,为了保证效率,数据都是缓存在内存中。区别的是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slave(主从)同步。
Read More这是一篇关于linux常用命令的博文,主要记录我在学习中遇到的一些容易忘记的linux命令、用法以及注意点。不过,这里需要说明的是,我并不是一个linux的初学者。那么,为什么会有这篇博客呢?原因自己的linux学习基础不扎实,在有了几年linux系统使用经验后,仍然觉得力不从心。然而linux是一个优秀的且免费自由的操作系统这一点是毋庸置疑的,我当然希望自己能够更熟练、更高效的使用linux。所以,从今天开始,重新启程,从linux基础起,对linux的基础知识和用法作进一步的学习和研究,使基础的知识更扎实,同时捡起自己遗漏的知识点,并一一记录。所谓“学而时习之,不亦说乎”!
Read More坏的代码重复的代码(Duplicated Code)改善方法Extract MethodPull Up MethodTemplate MehtodExtract Class过滤器面向切面统一的异常处理过长的函数(Long Method)每当感觉需要以注释说明点什么的时候,可以把需要说明的东西写进一个独立的函数,并...
Read More前段时间针对 scheme 语言写了一个解释器,现在就 fork 一下当时想法,整理一下其中的脉络,做一个思维快照,以期下次用C语言来实现时可以顺利地进行。 成品在此:scheme-bootstrap。
Read More我们知道,web浏览器会将form中的内容打包成HTTP请求体,然后发送到服务端,服务端对请求体解析后可以得到传递的数据。这当中包含两个过程:encode
与decode
。
概述Spring Security这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injectio...
Read MoreBeanValidation 可以帮助开发者方便地对数据进行校验,但它只是一个标准,只有一套接口,要想使用它的功能必须选择一种实现,hibernate-validator
是个不错的选择
话不多说,直接上源码,用了传说中的伪面向对象写法加了个jsonp用来跨域,当然了,需要服务端支持才有效(function(){ var WT = { ID_SEL:'#', CLA_SEL:'.', newInstance:funct...
Read MoreWSDLdefinitions 为根节点,属性为name:WS 名称,默认为“实现类 + Service”targetNamespace:WS 目标命名空间,默认为“WS 实现类对应包名倒排后构成的地址”definitions的5个子节点types:描述了 WS 中所涉及的数据类型portType:定义了 WS ...
Read More线程拥有通过程序运行的独立的并发路径,并且每个线程都有自己的程序计数器,称为堆栈和本地变量。线程存在于进程中,它们与同一进程内的其他线程共享内存、文件句柄以及进程状态。JDK 5.0 中的并发改进可以分为三组:JVM 级别更改。大多数现代处理器对并发对某一硬件级别提供支持,通常以 compare-and-swap...
Read More一 创建和销毁对象1.考虑用静态工厂方法代替构造器静态工厂方法的优势:1.有名称,可以见名知义了解获取对象的特点2.不必每次调用时都创建一个对象3.可以返回原类型的任何子类型对象4.创建参数化类型实例时,可以使代码更简洁(右边无需再写一遍)5.不可变对象可以进行缓存,以提升性能2.遇到多个构造器参数时要考虑用构建...
Read More本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 Socket 搭建一个超简单的服务器,这个服务器只有...
Read More.代表此层目录..代表上一层目录-代表前一个工作目录~代表『目前使用者身份』所在的家目录~account代表 account 这个使用者的家目录(account是个帐号名称)cd变换目录pwd显示目前所在的目录[root@www ~]# pwd [-Pl]选项与参数:-P:显示出真实的路径,而非使用连结 (lin...
Read More抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分...
Read More抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分...
Read MoreBeanValidation 可以帮助开发者方便地对数据进行校验,但它只是一个标准,只有一套接口,要想使用它的功能必须选择一种实现,hibernate-validator
是个不错的选择
线程拥有通过程序运行的独立的并发路径,并且每个线程都有自己的程序计数器,称为堆栈和本地变量。线程存在于进程中,它们与同一进程内的其他线程共享内存、文件句柄以及进程状态。JDK 5.0 中的并发改进可以分为三组:JVM 级别更改。大多数现代处理器对并发对某一硬件级别提供支持,通常以 compare-and-swap...
Read More一 创建和销毁对象1.考虑用静态工厂方法代替构造器静态工厂方法的优势:1.有名称,可以见名知义了解获取对象的特点2.不必每次调用时都创建一个对象3.可以返回原类型的任何子类型对象4.创建参数化类型实例时,可以使代码更简洁(右边无需再写一遍)5.不可变对象可以进行缓存,以提升性能2.遇到多个构造器参数时要考虑用构建...
Read More.代表此层目录..代表上一层目录-代表前一个工作目录~代表『目前使用者身份』所在的家目录~account代表 account 这个使用者的家目录(account是个帐号名称)cd变换目录pwd显示目前所在的目录[root@www ~]# pwd [-Pl]选项与参数:-P:显示出真实的路径,而非使用连结 (lin...
Read More我们知道,web浏览器会将form中的内容打包成HTTP请求体,然后发送到服务端,服务端对请求体解析后可以得到传递的数据。这当中包含两个过程:encode
与decode
。
概述Spring Security这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injectio...
Read MoreWSDLdefinitions 为根节点,属性为name:WS 名称,默认为“实现类 + Service”targetNamespace:WS 目标命名空间,默认为“WS 实现类对应包名倒排后构成的地址”definitions的5个子节点types:描述了 WS 中所涉及的数据类型portType:定义了 WS ...
Read More本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 Socket 搭建一个超简单的服务器,这个服务器只有...
Read More话不多说,直接上源码,用了传说中的伪面向对象写法加了个jsonp用来跨域,当然了,需要服务端支持才有效(function(){ var WT = { ID_SEL:'#', CLA_SEL:'.', newInstance:funct...
Read More前段时间针对 scheme 语言写了一个解释器,现在就 fork 一下当时想法,整理一下其中的脉络,做一个思维快照,以期下次用C语言来实现时可以顺利地进行。 成品在此:scheme-bootstrap。
Read More