Archive for ‘ December, 2015

在系统中使用Bean Validation验证参数

为什么要使用Bean Validation?

 当我们实现某个接口时,都需要对入参数进行校验。例如下面的代码
public String queryValueByKey(String parmTemplateCode, String conditionName, String conditionKey, String resultName) {
        checkNotNull(parmTemplateCode, "parmTemplateCode not null");
        checkNotNull(conditionName, "conditionName not null");
        checkNotNull(conditionKey, "conditionKey not null");
        checkNotNull(resultName, "resultName not null");

Read more

Hortonworks(HDP)开发者认证-考试大纲

原文链接   译者:小村长

本项目是 Hortonworks开发者认证官方文档的中文翻译版,Hortonworks致力于打造一个全新的大数据处理平台来满足大数据处理和分析的各个使用场景,它组合了大数据平台使用的各个组件, 比如Hadoop、Hbase、Hive、Spark等等一些列的组件, 它安装方便使用便捷, 而且已经在2000节点以上的节点上商用. 本次翻译主要针对对Hortonworks感兴趣和致力于从事大数据方法开发的人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

由于我公司鼓励大家考Hortonworks认证(呵呵,公司出费用),于是今天简单的看了下官方考试大纲,感觉还不错,故翻译了下供大家参考学习,本次翻译并没有咬文嚼字, 而是根据我个人的理解进行翻译, 由于本人能力有限难免有些地方翻译不到位,还希望大家谅解,同时也鼓励大家去看官方文档。

Read more

《React官方文档》之Why React?

原文链接 译者:罗泽轩

为什么使用React?

React作为创造用户界面的JavaScript库,在Facebook和Instagram中被广泛使用。许多人视React为MVC中的V。React的诞生,就为解决一个问题:如何创建基于变化数据的大型应用

Read more

《Redis官方文档》事件库

原文链接 译者:flashair

究竟为什么需要一个事件库呢?让我们通过下面一系列问答来了解为什么。

Read more

Java 8 新特性

原文链接   译者:小村长

这篇文章是一篇介绍Java8新特性英文博客的中文翻译,Java8发布有些时日,但是大家对它的了解和认识还不够,大部分企业和用户还停留在之前的版本中,本次翻译主要针对对Java8感兴趣和致力于从事Java开发的人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。Java8的中文资料相对匮乏,这是我看过介绍Java8新特性最好的一篇文章,作者通过实例和理论相结合的方式,通俗易懂的阐述了Java8的一些新特性,今天让小村长为你揭开Java8的神秘面纱,一同走进码农的精神世界。注释 : 由于本人翻译水平有限,文中难免出现错误或者翻译不合理的地方,还希望大家多多指导。

Read more

《Redis官方文档》 FAQ

原文地址 译者:zivyu

为什么Redis与其他的k-v存储相比不一样

有两个主要的原因

  • redis在键-值数据库中是一个不同的发展方向,值可以包含更复杂的数据类型,同时许多原子操作定义在这些数据类型上。redis的数据类型和基本数据结构密切相关,没有额外的抽象层,同样对于程序员也是直接可见的。
  • redis是一个在内存中但是可以持久化到磁盘上的数据库,所以它代表了一个不同的权衡,高速读写被实现,但是对数据集有限制,那就是不能大于内存的大小。在内存中的数据库还有另外的优点,内存中表示的复杂数据结构比一些在磁盘中的数据结构更容易操作,所以redis可以做很多操作而内部并不复杂。同时,两种磁盘存储格式(RDB和AOF)也不需要适合于随机存储。所以,数据是紧凑的,而且总是在末尾添加生成。

Read more

《Spark官方文档》Spark操作指南

原文链接   译者:小村长

Spark–Quick Start

本项目是 Apache Spark官方文档的中文翻译版,致力于打造一个全新的大数据处理平台来满足大数据处理和分析的各个使用场景,本次翻译主要针对对Spark感兴趣和致力于从事大数据方法开发的人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

Spark最近几年在国内外都比较火,在淘宝、百度、腾讯、高伟达等一些公司有比较成熟的应用,做大数据方面的开发人员或多或少都与其有接触。Spark的中文资料相对前几年相对较多,但是我认为官方文档才是最好最完美的学习资料,今天让小村长为你揭开Spark的神秘面纱,一同走进Spark的精神世界。 Read more

少有人走的路

20130704121043_uUSdV.thumb.466_0

《少有人走的路》 是一位心理学家写的关于如何走上心智成熟之路的书。

引言

The road less traveled,并不是所有人的心智都是成熟的,从不成熟到成熟是人生要走的一段路,相信阅读本书或本文是走向成熟的重要路程,建议每一个人都阅读下这本书,能够帮助你促进心智成熟。

我自己总是在想,为什么明白很多的道理,却仍然做不明智的事情,为什么知道很多做事的技巧,却仍然做事情不是那么高效。明知道做事不要切换,却一会看看旺旺,一会听听音乐。最近朋友也和我说明明知道要努力,却还是喜欢玩。这些问题的答案就是缺乏自律。带着问题重看此书又有新的收获。

《JAVA多线程编程实战指南》之Active Object(主动对象)模式

本文是《JAVA多线程编程实战指南》的样章,感谢作者授权并发网(ifeve.com)发表此文。感谢demochen整理此文。

8.1 Active Object

Active Object模式是一种异步编程模式。它通过对方法的调用(Method Invocation)与方法的执行(Method Execution)进行解耦(Decoupling)来提高并发性。若以任务的概念来说,Active Object模式的核心则是它允许任务的提交(相当于对异步方法的调用)和任务的执行(相当于异步方法的真正执行)分离。这有点类似于System.gc()这个方法:客户端代码调用完gc()后,一个进行垃圾回收的任务被提交,但此时JVM并不一定进行了垃圾回收,而可能是在gc()方法调用返回后的某段时间才开始执行任务-回收垃圾。我们知道,System.gc()的调用方代码是运行在自己的线程上(通常是main线程派生的子线程),而JVM的垃圾回收这个动作则由专门的工作者线程(垃圾回收线程)来执行。换而言之,System.gc()这个方法所代表的动作(其所定义的功能)的调用方法和执行方法是运行在不同的线程中的,从而提高了并发性。

Read more

《ZooKeeper官方文档》Zookeeper操作指南

原文链接   译者:小村长

About

本项目是 Apache ZooKeeper官方文档的中文翻译版,致力于为有分布式协同项目需求和对 Apache Zookeeper 感兴趣的同学提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

Zookeeper对与做大数据的人来说在熟悉不过了,毕竟经常用于分布式协同服务中,比如Hbase,Strom等大数据组件中经常用到,但是大部分人仅仅把它当着一个小小的工具,从而很少发时间去深入了解它,今天让小村长为你揭开Zookeeper的神秘面纱。

Read more

《React官方文档》之Forms

原文链接  译者:黄文海

表单(Forms)

 诸如<input>、<textarea>和 <option>的表单组件与其它原生(native)组件不同,因为它们可以通过用户交互而被改变。这些组件提供的接口使得管理表单对用户交互的响应更加容易。

有关<form>事件的信息见Form Events

Read more

《React官方文档》翻译邀请

最近公司在组织Java开发工程师学习Facebook公司的前端开发框架React,所以本月并发编程网组织大家翻译React (官方地址),有兴趣的同学可以通过评论领取,每次领取一节,翻译完后再领取其他章节。如果翻译超过10篇文章,并发网会赠送一本作者签名的《JAVA并发编程的艺术》,超过20篇额外再赠送一件并发网定制的T shirt。

如何交稿?直接在并发网注册账号后点新建文章,参考我要投稿。 参与翻译的同学如果不了解React,可以先学习下《React 入门实例教程

Read more

《JAVA多线程编程实战指南》之Two-phase Termination(两阶段终止)模式

本文是《JAVA多线程编程实战指南》的样章,感谢作者授权并发网(ifeve.com)发表此文。感谢demochen整理此文。

5.1Two-phase Termination模式简介

停止线程是一个目标简单而实现却不那么简单的任务。首先,Java没有提供直接的API用于停止线程。此外,停止线程还有一些额外的细节需要考虑,如停止的线程处于阻塞(如等待锁)或者等待状态(等待其他线程),尚有未处理完的任务等。
Two-phase Termination模式通过将停止线程这个动作分解为准备阶段和执行阶段这两个阶段,提供了一种通用的用于优雅地停止线程的方法。
准备阶段。该阶段的主要动作是“通知”目标线程(欲停止的线程)准备进行停止。这一步会设置一个标志变量用于指示目标线程可与准备停止了。但是,由于目标线程可能正处于阻塞状态(等待锁的获得)、等待状态(如调用Object.wait)或者I/O(如InputStream.read)等待等状态,即便设置了这个标志,目标线程也无法立即”看到”这个标志而做出相应的动作。因此,这一阶段还需要用过interrupt方法,以期望目标线程能够对能够通过捕获相关的异常侦测到该方法调用,从而中断其阻塞状态、等待状态。对于能够对interrupt方法调用做出响应的方法(参见表5-1),目标线程代码可以通过捕获这些方法抛出的InterruptedException来侦测线程停止信号。但也有一些方法(如InputStream.read)并不对interrupt调用作出响应,此时需要我们手工处理,如同步的Socket I/O操作中通过关闭socket,使处于I/O等待的socket抛出java.net.SocketException。

Read more

《Redis官方文档》持久化

原文链接 译者:Alexandar Mahone

这篇文章从技术层面描述了Redis持久化,建议所有读者阅读。如果希望更多了解Redis持久化和持久性保障,建议阅读Redis持久化揭秘

Redis 持久化

提供了多种不同级别的持久化方式:

  • RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
  • AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集, 因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整。你甚至可以关闭持久化功能,让数据只在服务器运行时存在。

了解 RDB 持久化和 AOF 持久化之间的异同是非常重要的, 以下几个小节将详细地介绍这这两种持久化功能, 并对它们的相同和不同之处进行说明。

Read more

初探设计:Java接口和抽象类何时用?怎么用?

Writer      :BYSocket(泥沙砖瓦浆木匠

今天犯了个错:

接口变动,伤筋动骨,除非你确定只有你一个人在用”。哪怕只是throw了一个新的Exception。哈哈,这是我犯的错误。

一、接口和抽象类

类,即一个对象

抽象类,就是抽象出类的基础部分,即抽象基类(抽象类)。官方定义让人费解,但是记忆方法是也不错的 — 包含抽象方法的类叫做抽象类。

接口就是把抽象的深度更深,它就像用简短的非逻辑的一些规则表示类之间的关系。可以比作协议,比如通信使用的UDP/TCP协议等。

小结类与接口是Java语言的基本抽象单元。
Read more

return top