Endeca自动化流程管理之浅淡

DreamForce从事Endeca架构设计与开发有半年之多,Endeca其实也不算是什么神奇的东西,大可以认为就是一个搜索引擎同时配置了一个以数据为驱动的视图引擎。

不过遗憾的是,Endeca在中国的份额并不多,而且Endeca对于大多数IT从业人员来说也较为陌生,所以关于Endeca的自动化流程管理也并没有所谓的最佳实践,DreamForce就谨此以半年左右的所思所想进行一下总结。

Continue Reading →
 

Endeca Data Feed (数据输入)

Endeca Data Feed , 一般来说有两种架构模式: 1. TXT等格式的定向导入。 2.CAS 对于第一种是最为方便且轻量级的Feed模式, 使用方法也较为简单, 在APP的配置文件中指定相应的数据文件路径,然后调用APP的BaselineUpdate命令即可。 当然此种方式的缺陷也是明显的,没有数据管理系统及版本控制,也不能与第三方数据系统进行有效的对接。 而CAS(Content Acquitsition System)是Endeca自带的数据仓库(容器),它可以有效的进行数据抓取与收集,同时也可以接受第三方的数据并存放在数据仓库,以便Endeca App编录索引。 CAS架构图:

Continue Reading →
 

Gradle最佳实践

为什么会用Gradle

其实这个也是我最先使用Gradle这个脚本的的疑问,说实话,dreamforce是带着疑问去编写这个脚本的,幸运的是, gradle并不是一个非主流的脚本,他结合并保持了动态脚本语言的特色和书写方式,而dreamforce有着JAVA和Python的基础能很顺利的上手这门脚本语言。

gradle上面支持Groovy语法,也就是说也支持着原生的JAVA语法,如果你实在不清楚groovy的API,可以干脆直接写JAVA代码,这是完全支持的。gradle与Maven可以完美的结合,gradle也可以完美的支持ANT脚本,shell脚本..etc..

经过了数天的脚本编写后,Dreamforce发现Gradle确实比较实用,扩展性相当不错,甚至可以书写出非常良好可维护的代码结构,而这是ANT这些脚本很难做到的。(你见过面向对象的ANT么?可是你可以写面向对象的Gradle)

Continue Reading →
 

JAVA序列化的浅析与性能优化(Best Practice about Serialization)

文章会的简要目录如下:
Serialization的概述
用‘transient’进行性能优化
关键点总结
Serializtion的概述
Serializtion是将一个完整的JAVA对象写入输出流的过程,这个流可以是文件,字节数组或者TCP/IP相关的Socket流。
Deserializtion就是反序列化,也就是说将一个完整的JAVA对象从输入流里读取出来。

JAVA类必须如果实现 java.io.Serializable或 java.io.Externalizable 接口,也可以继承实现了这些接口的超类。那么此JAVA对象就被序列化或者反序列化了。
所以的基本数据类型和一些JAVA API类都是进行了序列化的,你不必要进行额外的序列化。
如果你使用Externalizable可以定制你的序列化方式。这篇文章主要关注的是Serializtion接口
Serializable接口是一个标志位接口,他没有任何的接口方法。像EJB,RMI,ATG这些主流的JAVA技术都是基于序列化进行对象传输的,这些技术本身都暗中的将你的对象进行了序列化的操作。。

Continue Reading →
 

排序算法的介绍与个人看法

引:

其实写这个小稿,是因为最近看到了一本很畅销的《Java algorithm&&structrue》的算法教科书,其实教科书都有一个通病,永远都是死板的,从来没有更深一步的改进。就好比, 今天你学会了如何削水果,第二天你又开始学习用菜刀,教科书只会给你说,如何去用,但他从来不会说,其实削水果的技能某些时候可以用在菜刀上。所以照本宣 科的事情屡见不鲜,这是我最讨厌的事情,很多时候,模枋不一定就是真正的掌握。

Continue Reading →