文档章节

简单说说 OSChina 的技术架构

红薯
 红薯
发布于 2009/02/18 15:48
字数 468
阅读 98343
收藏 745

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

服务器托管在广州电信较场西机房!

OSChina 的部分源码请看:http://www.oschina.net/code/tag/oschina

等等,想到再继续补充。。。。。。

© 著作权归作者所有

共有 人打赏支持
红薯

红薯

粉丝 20477
博文 125
码字总数 42895
作品 8
深圳
产品经理
加载中

评论(231)

阿债
阿债

引用来自“虫虫”的评论

回过头来看,框架在Java领域是一个大大的谎言。

引用来自“九千里”的评论

大神为何这般讲?

引用来自“袁一涵”的评论

9年过去了,不知道历经9年的争论有了结果没有,9年前说框架是谎言的人,现在是不是做到架构师了,是不是会极力推荐框架
虫虫 是coding的CEO张海龙,你可以去那边问他
lifes77
lifes77
你好是啊
你好是啊
这.NET一大写,当然有人猜这是用ASP.NET
孤独的探索号
孤独的探索号
期待补充的博文
lilugirl
lilugirl
你把博文分类浏览放哪里了,我自己的文章都不好找了!!
袁一涵
袁一涵

引用来自“虫虫”的评论

回过头来看,框架在Java领域是一个大大的谎言。

引用来自“九千里”的评论

大神为何这般讲?
9年过去了,不知道历经9年的争论有了结果没有,9年前说框架是谎言的人,现在是不是做到架构师了,是不是会极力推荐框架
九千里
九千里
十年过去了,现在的架构是不是大大改变了呢? 现在很流行微服务架构,OS网站会考虑也改版成微服务架构?还是说现在的OS其实已经在用微服务的架构了??
九千里
九千里

引用来自“虫虫”的评论

回过头来看,框架在Java领域是一个大大的谎言。
大神为何这般讲?
liwei2000
liwei2000
我还以为会很长呢,这么快就写完了:sweat:
Z
Zempty

引用来自“老余的故事”的评论

整个项目目录不足十兆,包括所有的jar包? 厉害。。
8年前不10M,现在1G了:flushed:
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
性能测试的艺术

原文出处:磁针石 为什么要进行性能测试? 什么是好的与坏的性能?为什么性能测试在软件开发生命周期(SDLC software development life cycle)中很重要? 性能不佳的应用通常无法实现企业预期...

磁针石
2016/03/21
0
0
简单在线文本编辑器--SEditor

简单在线文本编辑器SEditor,仿汽车之家论坛发帖 注意:id为调用参数(小写),即隐藏的内容表单项id, ReadCookie设置是否读取上次未提交的数据,1为开启,0为关闭(注意大小写)。 asp调用 ...

yxl2
2012/12/17
3.6K
0
如何处理前任程序员留下的代码

原文出处:Justin Albano 译文出处:开源中国 身为一个软件工程师,我们不可避免的会遇到这样一些问题:不得不修改别人的代码,或者在别人的代码中添加新的功能。我们并不熟悉这些代码,它也...

Justin Albano
2017/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux 中不适用功能键切换TTY

本简要指南介绍了在类 Unix 操作系统中如何在不使用功能键的情况下切换 TTY。在进一步讨论之前,我们将了解 TTY 是什么。正如在 AskUbuntu 论坛的一个答案[1]中所提到的,TTY这个词来自 Tele...

问题终结者
3分钟前
0
0
OSChina 周三乱弹 —— 我自己总觉得我的灵魂有毒

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Devoes :分享王菲的单曲《匆匆那年 (Fleet of Time)》 《匆匆那年 (Fleet of Time)》- 王菲 手机党少年们想听歌,请使劲儿戳(这里) 天长地...

小小编辑
9分钟前
3
3
深度学习与图像处理实例:人像背景虚化与背景替换

简单人像背景虚化处理思路如下: 对图像内容分割,提取人像,背景 背景模糊处理 人像与模糊处理后的背景融合 本实例使用DeepLabV3图像分割深度学习模型实现。代码如下: import numpy as np...

IOTService
昨天
0
0
八月新增开源项目:假装自己是图形界面的 Git 命令行工具

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品...

编辑部的故事
昨天
7
0
20180918 find命令与Linux文件扩展名

命令find 用来查找搜索文件。 搜索文件相关命令: which 从环境变量里的目录中去搜索 whereis(不常用) 从一个固定的库中搜索 locate(需要单独安装 yum install -y mlocate) 查询时会从/var/...

野雪球
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部