AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️最干净<Wifi住宅+5G移动>IP代理泰国仓储,本土仓发货2-3元/单
指纹浏览器,就用AdsPower谷歌/FB/Bing/Yahoo代理商开户7200W全球动态不重复住宅IP代理BINOM TRACKER 60% OFF!
【广户】
⚡️我们很有钱这些广告位都是我买的FB/Google/TK点我开户⚡️
出售Facebook,友缘号,FB广告号,insFB/TT/KW 加白开户ADPLEXITY + ADVERTCN比Adplexity还好用的Spy工具
MediaGo+Taboola+Ob开户百度国际MediaGo⚡️让产品狂奔全球百度国际,高点击转化,快速放量百度国际MediaGo,独家原生流量
虚拟信用卡+独立站收款行业首创新型指纹Cloak, 谷歌奇效!Kookeey⚡️100%独享⚡️原生住宅IP⚡IPFoxy住宅代理全场88折⚡
全球虚拟卡, 支持U充值免账户投放 FB 广告(送项目)2024做什么 - Media buy 项目库免费黑五教程(持续更新、欢迎交流)
Facebook 批量上广告各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户Adsterra 的CPA/CPM/CPC 网站流量
在线注册美国/英国/香港等海外公司EU KETO/CBD - JumbleberryFB二三解1元/个9Proxy ⚡️ $0.04/IP, 无限带宽
cloak斗篷/ss/nutra/cpa/DatingFB号商直销-24小时自动发货Facebook个号0.01一个FB个号1块一个
FB账号0.1一个FB顶级服务商「Facebook广告账号/批量采购」广告位出租
全球低价纯净住宅/移动IP-免费试用广告代投, 东南亚物流, 虚拟信用卡VMLogin指纹浏览器+多账号防关联 
查看: 6561|回复: 12

耗时半年,终于开发了第一款基于nosql+php的开源论坛

[复制链接]

56

主题

384

广告币

941

积分

中级会员

Rank: 3Rank: 3

积分
941
发表于 2016-2-29 20:28:49 | 显示全部楼层 |阅读模式
adsterra
本帖最后由 shinebay 于 2016-2-29 20:31 编辑 ' t6 |- O4 {  z/ Z0 e$ A; f' G0 I- w

. X$ R: q* `) e+ t, Q" l爱码士倒计时页面: www.2ma4.com/countdown! z$ c! r, m$ e2 i7 ^* i; A2 U
和坛子里其他网友每天做英文站不同,一直以来,我就想打造一个专为国内极客和码农们热烈交流的社区,纵观国内 IT 论坛,基本都是一个帖子下面平行分布各种回复,每个回复之间通过 @相连接,有时经常都要找半天这个人到底是在回复谁?比如 ruby-china , phphub , V2EX , cnodejs , golang 中国 等等,这些社区都做得很精美小巧,但是,却难以将回复者之间的关系调动活跃起来。1 X2 Y4 A% {8 c6 S
去年 8 月份,我便开始动手编写“爱码士”这个论坛,我希望回复者能够像网易盖楼那样,一层一层彼此热情高涨,在设计过程中我参考了网易盖楼和 disqus 等网站的盖楼设计,但这些设计都不是太完美,逐渐向内缩进的盖楼意味着盖楼的楼层数始终有个最大值,印象中网易盖楼到 70 层时便塌楼了,因此,我设计了一种新的“堆栈式”盖楼设计:3 K+ _1 g% t) J) v: N
6 ~# ?  ~# e7 \6 |% u& `. r: I
盖楼一层层向上推进,理论上支持无限多的楼层& |# ?5 p3 v& m
在前端方面,码农们眼中从来都是干净、整洁、纯粹的东西是最美的设计,因此,我将爱码士整个论坛都设计的非常干净简单:
7 h2 [0 K! r# R8 v( }1 d帖子页:
. T5 t0 L3 {* X# _8 q  a
4 H+ w& s/ x+ V8 U8 x! I站内私信发送:& w6 |, n: _( u! ?% F: C; d, @

: k  _" z& Q8 [" t5 {- ]个人 profile 页:
0 s+ Z" Z$ F' Y, l; Q  f: b2 {5 e4 i% x
在系统架构上,爱码士使用了经典的 MVC 架构,这个 MVC 也是内置在自己编写的一个很小巧的 php 框架中,系统存储采用了国人开发的一款基于 Google leveldb 的 nosql : ssdb ( http://ssdb.io/zh_cn ), ssdb 简单的说就是一个存储在硬盘上 redis ,其使用协议和 redis 相同,但由于数据全部存储在硬盘上,并且支持亿级数据,因而扩大了容量的同时大幅降低了成本。相对于传统的 php+MySQL+memcache(or filecache)后端设计, ssdb 可以多出很多特性,比如 setx 可以限制用户频繁对一个帖子进行回复:爱码士将每个人对于一个帖子的回复 setx 一个有存活时间的 flag ,在这个 flag 存活期内,用户无法再对这个帖子进行回复。但用户发送私信行为不能用 setx 进行限制,不可能让用户每隔 10 分钟发送一条私信吧,万一有多条连续重要的私信呢,这时,借助于 ssdb 的 list 特性,我们可以为每个用户发送私信的时间戳设置一个队列,尾部入栈,顶部出栈,这样,用户在规定时间内发送次数多于某个预设值时阻止发送。
6 y4 @; B& x3 ]3 `# F+ Z& \在盖楼的数据库设计方面,为了达到回复内容的可控性,我没有把回复 HTML 写死在数据库里,而是将回复 reply_id 以 json 形式存在 hashmap 中
0 H) F' V4 P5 Z# ]) r系统帖子排序分为“默认排序”和“最新帖子”,默认排序是按照 stackoverflow 的算法,感谢阮一峰老师提供的这篇文章: http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_stack_overflow.html 爱码士的默认排序也是按照这篇文章中的算法进行排序的。
1 H. d$ q5 n  A" A整个爱码士编写大概耗时半年,其中个人感觉最难的就是私信发送系统了,私信没有采用 websocket , php 不适合干这个,也没有采用长轮询的方式,而是 js setinterval 定时请求,通过 jquery trigger click 刷新按钮请求服务器,由于第一次使用 nosql 编写这个在线聊天系统,可能会有考虑不周的 bug 出现。
+ V  ]. e* [! c+ u  N) O系统前端只引用了 jquery 库,为了界面美观干净,没有使用臃肿的 bootstrap ,全站公用一个 global.js 和 base.css ,站长二次开发的时候会很方便查看代码
; y  @. V4 z  }" K& W& j从 mockup 构想,到 HTML 和 css UI 设计,然后是后端架构和数据库设计,到最后的 js Ajax 前后调用,自己花了半年的时间完成,希望大家能尊重劳动成果,一个人开发所以 bug 难免,加之第一次使用 ssdb ,希望大家能抱着平和的态度指出 bug ,目前倒计时页面已经放出,系统目前 PC 版已经制作完成, mobile 端正在制作中,待 bug 修复完毕后,我会将 PC 端代码以安装包形式上传至 github 供站长二次开发和安装8 p, y& U+ J# n) l7 U/ M% K
希望坛子里的各位能支持爱码士
" u: I$ x# }+ s

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 4广告币 +13 收起 理由
妖妖 + 5 赞一个!
salulu + 2 NB! 简约 美观
蜘蛛 + 4 看不懂,坚持就是牛B
tmdsoft + 2 赞一个!

查看全部评分

相关帖子
回复

使用道具 举报

1

主题

3

广告币

47

积分

初级会员

Rank: 2

积分
47

社区QQ达人

发表于 2016-2-29 20:38:08 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

6

广告币

101

积分

初级会员

Rank: 2

积分
101

社区QQ达人

发表于 2016-2-29 20:39:41 | 显示全部楼层
虽然看不懂,但感觉很高大上的样子,支持一下。
回复 支持 反对

使用道具 举报

1

主题

647

广告币

526

积分

中级会员

Rank: 3Rank: 3

积分
526
发表于 2016-2-29 21:39:58 | 显示全部楼层
本帖最后由 vision2003 于 2016-2-29 21:42 编辑 , a. p! }0 w$ C% d9 h
/ j( c% j& g- V8 d: Y- T  Q
不错,支持一下
* \9 K7 c. Y) ?# o. Z" c/ m6 v8 j其实你这盖楼模式就是10几年前的那种论坛的模式。( K6 \, s1 G* p4 k5 V
貌似也是reddit的模式!
9 r/ U! m" H: b% P

点评

貌似也是最大色情社区 4cha的那种模式,呵呵!  发表于 2016-2-29 21:42
回复 支持 反对

使用道具 举报

49

主题

858

广告币

1310

积分

高级会员

Rank: 4

积分
1310
发表于 2016-2-29 21:46:53 | 显示全部楼层
赞。支持楼主。希望楼主能多分享些 nosql 使用方便的文章。
回复 支持 反对

使用道具 举报

80

主题

1384

广告币

4002

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4002
发表于 2016-3-1 10:05:23 | 显示全部楼层
牛B,严重支持
回复 支持 反对

使用道具 举报

26

主题

836

广告币

1784

积分

高级会员

Rank: 4

积分
1784
发表于 2016-3-1 11:57:23 | 显示全部楼层
严重支持
回复 支持 反对

使用道具 举报

6

主题

719

广告币

1358

积分

高级会员

Rank: 4

积分
1358
发表于 2016-3-1 16:53:54 | 显示全部楼层
开源不?为什么要用Php写,用nodejs不更好吗

点评

后期会将PC端开源,php使用更广泛一些  详情 回复 发表于 2016-3-1 18:16
回复 支持 反对

使用道具 举报

56

主题

384

广告币

941

积分

中级会员

Rank: 3Rank: 3

积分
941
 楼主| 发表于 2016-3-1 18:16:41 | 显示全部楼层
william 发表于 2016-3-1 16:534 |+ w. o; W) ]! X/ T
开源不?为什么要用Php写,用nodejs不更好吗

* T! Y' O+ W) ]. o+ C$ o/ \: N; V后期会将PC端开源,php使用更广泛一些
回复 支持 反对

使用道具 举报

10

主题

26

广告币

116

积分

初级会员

Rank: 2

积分
116
发表于 2016-3-2 15:49:15 | 显示全部楼层
支持一个,
回复 支持 反对

使用道具 举报

31

主题

117

广告币

424

积分

中级会员

Rank: 3Rank: 3

积分
424

社区QQ达人

发表于 2016-3-3 09:57:25 | 显示全部楼层
挺一个,虽然我不懂
知识就像内裤,看不见,但是很重要
回复 支持 反对

使用道具 举报

3

主题

24

广告币

415

积分

中级会员

Rank: 3Rank: 3

积分
415
发表于 2016-3-4 15:36:24 | 显示全部楼层
很不错呀
www.engweb.cn 英文站大全
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Binom

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2024-5-29 03:33 , Processed in 0.055619 second(s), 17 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表