文档章节

简单说说 OSChina 的技术架构

红薯
 红薯
发布于 2009/02/18 15:48
字数 532
阅读 11.7W
收藏 775

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

OsChina.NET 这个域名是在去年 08年8月16日申请的,然后花了不足一个月的时候开发了第一个版本的OsChina,包含有项目展示、新闻、后台管理、会员注册等功能,以后的每次的改进就没那么集中,有空的话就完善完善一直到今天,当然了,还会一直完善下去。

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 来得更少,程序更简洁。例如:

/**
 * 列出某人的好友
 * @param user
 * @return
 */
public static List ListFriendsOfUser(long user) {
	String sql = "SELECT friend FROM osc_friends WHERE user=?";
	return QueryHelper.query_cache(long.class, CACHE, user, sql, user);
}

其他方面:不在项目中启动线程来自动构建索引,而是提供一个程序让通过操作系统的crontab来定期调用。

OSChina 服务器硬件情况请看:http://www.oschina.net/question/32709_8800

欢迎关注我的个人微信公众号(红薯胡说):

© 著作权归作者所有

红薯

红薯

粉丝 22399
博文 163
码字总数 89029
作品 8
深圳
产品经理
私信 提问
加载中

评论(244)

半裸剥落蜜汁
该更新了啊
vb_yu
vb_yu
11 年了 求更新
性感码农
性感码农
这篇文章10年过去了,开源中国的架构肯定发生了很大的变化,为什么不一直跟着架构的变化而更新这篇文章呢? 建议更新😄,@红薯
h
heike07
暴露了 数据库表。
大风起兮屁屁凉
大风起兮屁屁凉
公众号二维码中间的红薯看着。。。怎么说呢,有点黄啊
诗词
诗词
春花秋月何时了,往事知多少?小楼昨夜又东风,故国不堪回首月明中!
雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流。
小超超rabbit
小超超rabbit
666😎
smarthjx636
smarthjx636
666
故乡月
故乡月
领骚数十年😂
qinwentu
qinwentu
大道至简👍
NoSQL数据库概览及其与SQL语法的比较

本文作者:伯乐在线 -周兆熊 。未经作者许可,禁止转载! 欢迎加入伯乐在线专栏作者。 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,同时也是知名的NoSQL数据库之一。NoS...

伯乐在线
2015/11/13
0
0
如何利用 C++ 的 Lambda 表达式提升 Qt 代码

原文出处:oschina Lambda 表达式是在 C++11 中加入的 C++ 特性。在这篇文章中我们将看到如何用 Lambda 表达式来简化 Qt 代码。Lambda 很强大,但也要小心它带来的陷阱。 首先,什么是 Labm...

oschina
2017/02/09
0
0
容器管理利器:Web Terminal 简介

文章目录 一、前言 二、实现容器的 Web Terminal 2.2 前端 Web Termianl 页面"> 2.2 前端 Web Termianl 页面 三、总结 四、参考 一、前言 在微服务大行其道的今天,容器恰巧又是微服务的主要...

John
2019/01/15
0
0
高手问答第 158 期 —— 企业大数据系统构建实战

OSCHINA 本期高手问答(2017 年 6 月 21 日 — 6 月 27 日)我们请来了@ethan888 吕兆星为大家解答关于企业大数据方面的问题。 吕兆星,资深大数据技术专家,精通基于大数据的分布式数据挖掘...

局长
2017/06/20
3.7K
36
Elasticsearch 基本介绍及其与 Python 的对接实现

什么是 Elasticsearch 想查数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据。然而对于我们自己的业务数据...

崔庆才
2018/08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在Windows上安装pip? - How to install pip on Windows?

问题: pip is a replacement for easy_install . pip替代了easy_install 。 But should I install pip using easy_install on Windows? 但是我应该在Windows上使用easy_install安装pip吗? ......

fyin1314
今天
21
0
gitlit二级目录访问

由于我们只有一个域名暴露,特殊需求,所以需要二级目录访问 配置文件在 defaults.properties 第1985行 contextPath 改掉就好了 # Context path for the GO application. You might want to...

shzwork
今天
24
0
OSChina 周一乱弹 —— 我电脑传染了新冠脚气

@性感码农 :不结婚,被老爸说,回村里别人都瞧不起你,及即使你赚了很多钱,不结婚,永远没有人瞧得起你。挺纳闷的,要别人瞧得起我干嘛 又不回村里, 跟他们生活也没什么交集啊, 用得着他...

小小编辑
今天
28
0
类加载的过程

加载->链接->初始化; 其中链接又分为:验证->准备->解析。

曦鱼violet
今天
21
0
Linux下几个与磁盘空间和文件尺寸相关的命令

硬盘是计算机非常重要的一个部件,不管是代码,还是 UI 、声音、文档,抑或是没人时偷偷看的小视频,都需要保存在硬盘里。 对于很多 Linux 服务器,会进行很多的编译操作。而编译操作在很多情...

Linux就该这么学
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部