基于Go语言的社区系统:mlog-club1.0.3 发布

本次更新内容

  • 优化用户登录注册流程
  • 修复评论发表emoji表情乱码问题
  • 美化404、5xx错误页面样式
  • 修复发表评论快捷键错误的问题
  • 修复头像修改失败的问题
  • 其他一些细节修改

功能简介

  • 多用户博客
  • 轻论坛
  • 站内消息
  • 站内收藏
  • 机器人搜集公众号文章
  • 用户登录、注册,支持 Github 账号登录

5d1c1411c780340563.png
WX20190708-155911.png

技术栈

相关链接

共 3 个回复


a7a2

因为自己也准备在欠债还清后写一份bbs类的产品的,所以
给你几点建议:
1、使用xorm能兼任更多数据库如tidb、MsSql、Oracle

2、别用iris之类的框架,而是原生net/http,三十岁前追求轻剑---快,什么fasthttp阿,各类框架阿之类,但是很多人就看测试数据快10倍(fasthttp支持http2的时候测试肯定就没10倍了),很少考虑其他支持如http2.0,是否大部分业务都需要读取body(不需读body fasthttp效率高很多),安全及稳定性(我看到有线上业务使用fasthttp遇到坑的文章)。反正我现在写代码尽可能用原生。见过牛逼团队说干就干说黑就黑的时候的30岁后自然尽可能倾向更安全,原装的是肯定维护的,例如go新特性出来iris可能不维护了就不支持,而原装绝对支持。又如政治、国安肯定追求是否可信而不是性能聪明程度,注意侧重点。(参考discuz、phpwind都不用php框架)

3、任何项目都要基于可集群式设计,哪怕预算承载量就200用户在线,否则同行看不起你的,至于运维搭建的复杂度完全可以docker化。所以消息队列是否已经用到?尽管帖子发的频率可能一辈子都不会需要用到锁、消息队列的方式去处理。

4、没有集成ssl自动化package acme?这个是什么年代,没留意全球信息安全及没有被人用隐私到处放黑整过?没有被监听临时工放料黑整过?看看为何chrome某年更新后强制要求https否则在网址栏提示“不安全”。所以你需要用上golang.org/x/crypto/acme/autocert ,Let's Encrypt的免费证书已经为你考虑周详,90天过期,90天能破解的基本为0可能在当前硬件条件。

5、既然说好了可集群化那就需要集群配置简便化如etcd是否用上,grace restart是否用上等等。。。

6、应该集成注册,用自己的账号密码登陆,可以完全脱离第三方资源运行才算的上完整的项目(系统),例如没有第三方css、js的调用,能不用第三方登陆也可进入系统发帖,这个很有必要的,不是每个人都想把自己暴露给第三方,注册内容可以不填写隐私信息的尽可能不用填例如email、手机号,登陆注册时候的密码要在前端js完全一次或多次加密防止ssl证书方或其他第三方截取,然后才是后端逻辑处理的基于用户名等唯一字段+key的形式实现每个用户密码唯一(不同)加密才存到数据库,要以太湖之光的运算解密能力10年为标准设计密码加密,如果前端js已经完成了md5+sha3-512 hash的,再加后端一次独一的hash基本足够太湖之光解密一个用户10年了。所以数据库泄漏没用,看看几年前各种库被脱出就应该有这种注重隐私的思维。
亲身经历:我见过开源代码存在bug,然后在某页面调用指定网址的gif的,而这个gif就实现了通知外部敌人可进攻的信号。
例如本论坛使用第三方的验证码也是一样道理,万一对你出手的就是这个第三方验证码服务商呢,所以一个优秀的产品应该完整独立性,正如中国国家安全就需要自主研发武器,而不是靠如台湾一样让人制衡只能买这样受制于人,一定要自主!
也如一个国家的组成就有各种阶层也有干脏活的,如果把这些干脏活的人抛弃了,他们就会反吃,所以独立的完整性很重要。

7、论坛要不断融合现代新特性,例如wasm、http2、,Brotli,websocket,前3个不说,websocket实现实时免刷新更新很重要,而这个在代码逻辑层面及构架上有点技巧的,既要保证所有客户端内容最新又要应对不同时间涌入的用户及不断更新的帖子。否则你的论坛没什么创新及新特性,谈何引入资本关注?

8、既然用得go去写的,尽可能容入p2p技术,而不仅仅是一个应用层面的产品,例如内置vpn服务,就是说当假设你产品的网站的ip被墙的时候只要你有几百客户下载了你的桌面端就能通过其中一个用户访问到最新的帖子,而这些技术代码已经存在github上,就靠你组装了。其中p2p、cdn就可以论坛之间组建联盟实现共同抵抗被强及ddos。

9、良好的架构能兼容如so、dll插件的加载,以便有机会集成更多第三方,一个人再牛再努力还不如架构好让全球开发者加入一起发力。

商业模式就可以基于论坛的安装量产出的桌面端形成的p2p(数据存储、网络加速、局域网共同游戏、新闻资讯垄断、消息流通、甚至基于在线时间服务时间计算的数字货币、站长cdn联盟等)、vpn等等很多,所以说论坛这个产品只是一个插入点、突破口。
如果写一个bbs类产品没有发挥到go跟php的不同点,我为何从phpwind、discuz转换到你们这里?
站长A使用的discuz的bbs社区拥有100万用户,但是很多内容要审查就怕有一天被干掉不能访问了,所以他知道你们产品具备破墙能力被封了仍然能通过桌面端实现访问而免于专门的vpn,该站长很高兴并切换到你们的产品,哪怕你们技术人力还斗不过GFW的人,但是都想尝新。这个叫特色、突破,又叫你们的插入点、突破口。

---------只要有创新有突破有特色何来没有商业利益----这个年代就是骗子骗到一定规模的人也能让国家招揽------------

                                            a7a2  2019年-07月-16日
# 0

fuckshit

@a7a2

感谢你给的建议,认真的读完了。

# 1