论框架设计(一)
Web
- MVC Framwork:SpringMVC,Restful的风格,对比Strus2更简单,更友好。
- CSS Framwork:最热火的Twitter Bootstrap,提供了简便的布局能力和基本的页面美化。
- Javascript Library:随大流用了JQuery
- Validation Framwork:当然用jQuery Validation,客户端校验和体验都不错!
Database
-
数据库设计一般性原则
- 主键的列名统一为id。
- 为方便数据操作及维护,不建立任何外键,用程序去保证关联关系。
- 为表名添加前缀以便日后管理。比如有几十个表,将联系比较紧密的表,使用相同的前缀。
- 表名全小写,因为MySQL在Linux下默认区分表名大小写。
-
传统关系型数据库
- MySql,Postgresql
- Oracle
-
流行的NoSql
-
本地缓存Cache
- 在JVM里的缓存,最老牌的就是Ehcache;
- 另外最简单的是Guava的Cache,也提供TTL;
-
ORM框架
Search Engine
- Elasticsearch,一个基于Lucene构建的开源,分布式,RESTful搜索引擎;设计用于云计算;能够达到实时搜索,稳定,可靠,快速。本人喜欢这个。
- Solr,一个基于Lucene构建的开源,最流行的,最快的搜索引擎。
Services
-
Security Framework
- Apache Shiro,个人推荐,比Spring Security简单,容易扩展。
- Spring Security, 老牌的安全权限框架。
-
Schedule
- Quartz,最推荐这个。
- Spring Schedule spring自带的轻量级定时调度器
Utilizes
- General 常规包
- Apache Commons Lang,这也太黏码农了,陪伴着码农长大的Jar。
- Guava,Google新鲜出炉的优雅产品,有点新潮,Java8好多基础Class都收此为囊中。
- Apache Commons IO, 同样好使。
- Commons FileUpload,基础上传文件包。
- XML
- JDK JAXB ,JDK自带
- Xstream ,以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换。
- JSON
- Logging
- Slf4j,早就替代了Apache Common Logging了,个人一直用它Log日志。
- Logback,Log4j作者的后作Logback就好很多了,另外选择Logstash做日志的中央式处理。
- HttpClient
- JDK URL,JDK原生的URL请求。
- Apache HttpClient,建议用Apache HttpClient好过JDK自带。
- Serializer
Test
- Unit Test:Junit正统Java测试用例框架,AssertJ 是目前最好的Assert语句库。
- Performance/Stability Test:[Jmeter]作为测试工具是最成熟,常用于压力测试,并发测试等等。