OsChina.NET 是用 Java 开发的(一个朋友说,不是PHP就是ASP.NET,肯定不是Java,不幸猜错了)。
目前整个工程的Java代码行数是 1.5 万包含注释,其中真正的代码行是 1 万刚好,整个项目目录不足十兆,包括所有的jar包。
Java 开发Web网站一般都有很多的框架可以选择,但在OsChina中几乎没有用到什么框架,除了:Lucene(搜索)、Velocity(页面模板)、EhCache(缓存)。其中参考了 Struts 的 DispatchAction 的思路自己写了一个只有一个 Java 文件的控制器(详情),还有一个URL映射的(详情)。之前的很多项目都用了 Hibernate 来访问数据库,但觉得配置太烦、jar包太大,于是决定在 OsChina 项目中尝试不用 Hibernate,后来选择了 DbUtils ,结果是:配置没了、代码比用 Hibernate 来得更少,程序更简洁。例如:
1 /** 2 * 列出某人的好友 3 * @param user 4 * @return 5 */ 6 public static List ListFriendsOfUser(long user) { 7 String sql = "SELECT friend FROM osc_friends WHERE user=?"; 8 return QueryHelper.query_cache(long.class, CACHE, user, sql, user); 9 }
其他方面:不在项目中启动线程来自动构建索引,而是提供一个程序让通过操作系统的crontab来定期调用。
OSChina 服务器硬件情况请看:http://www.oschina.net/question/32709_8800