我把项目从 Java 切到了 PHP (嗯,就是那个被 V2EX 网友刷上 Github Trends 6 月全球榜前十的 Akaxin)

2018-09-27 15:30:44 +08:00
 imcnan

之前发了 Akaxin 后,被 V2EX 的网友的魔力直接推上了 Github 6 月份 Java 榜的全球前十,Github 官方 Twitter 也对此进行了报道。可短短一个月后,我们却不得不从 Java 切到了 PHP (+Golang ),推出了现在的DuckChat


现在早就切完了,群里内测用户已有小千人。当初选择切换的原因有这么几个:

1. 用户需要 Web 版 如果用 Java 写一个完整的 Web 版本,加上后续维护,效率真的太低。PHP 霸占业务开发语言老大位置是有实力的。而且我们的产品方向是要集成到用户已有业务里,比如与 Discuz 论坛集成,与 OA 办公集成,深度融合少不了彼此在 HTTP 层面的业务逻辑交互。切了后,用户在使用我们产品进行二次开发时,也容易的多。

2. 性能、长链接等问题通过架构分层解决 之前选择 Java 是因为长链接。虽然 PHP 也有类似的常驻进程方案,但毕竟不是干这个的。这次把架构拆分了一下,把连接层和业务曾分开,连接层用 Golang 写掉,后面 PHP 就写简单的业务逻辑。这样一套代码同时支持了 Resp、Websocket、Http 三种协议。另外,对于用户业务系统,大家都知道关键性能主要卡在 IO 上。

3. 拥抱已有技术资源 主要指的 HTTP 协议,业务层通过 HTTP 协议分发服务后,像很多压测、负载均衡之类的配套工具我们就都不用自己写了,节省出好多时间。

4. 人员复用 这玩意和优化程序时的多路复用一样,就这么几个人,就不分那么多语种了,这样统一后,别人学起来很简单,互相帮忙起来也灵活的多,不像之前只能干看着。

5. 还剩一个 Docker 问题,请大家帮忙出主意 Docker 在 Windows 上的使用太反人类了,我们需要一个能在 Windows 上完美解决环境一致性的解决方案,求介绍~~~~

当然选择推出 DuckChat,还有产品和运营层面的考量,这里就不展开了。

放一张截图(私有部署 | 安全可靠 | 随意定制)


DuckChat 的产品目标不变,都是为了提供一个安全的私有聊天软件,都有单聊、群聊、小程序,能非常方便做一些群组游戏、OA 集成什么的。欢迎大家下载代码 review,现在还在 beta 期,问题还不少,轻拍啊~~~

Github https://github.com/duckchat/gaga

git clone https://github.com/duckchat/gaga.git

最后,各位大神们,别忘了我们的 Docker 问题~~~

10018 次点击
所在节点    程序员
61 条回复
LuffyGu
2018-09-27 15:39:14 +08:00
docker 没用过,不过我在用 homestead,也是在 Windows 上的。
不知道行不行,我是渣,不对别喷我啊。






因为我开喷了你们喷不过我。开玩笑了
imcnan
2018-09-27 15:40:46 +08:00
@LuffyGu 其实 Docker 官方自己也给的是类似方案,给用户机器上装了一个虚拟机,不过用起来很不方便。
kulove
2018-09-27 15:46:43 +08:00
没有体验地址么?
imcnan
2018-09-27 15:48:31 +08:00
@kulove

网页版本:gaga.akaxin.com
Android 客户端:官网下载
iOS:官方 QQ 群拿企业签的内测包
xfcy
2018-09-27 15:53:50 +08:00
vagrant_(:з」∠)_也是基于虚拟机的
luoyou1014
2018-09-27 15:55:32 +08:00
看了下代码,你们这是裸写 php 啊,这工作量好大。
FakeLeung
2018-09-27 15:57:37 +08:00
有几个问题:
1. 稳定性如何?
2. 能否商用?
3. 商用价格?
4. 。。。。。











等等。。。

我这边后台是 .Net

打扰了。。。。
HangoX
2018-09-27 16:08:07 +08:00
window 上用 hyper-v 装 linux 虚拟机是最好的选择,我之前都是这样干的,vbox 也行。
jimrok
2018-09-27 16:12:03 +08:00
泼点冷水给你,你这个折腾方向不对,如果是定位私有使用,一定是企业用户买单,那 java 应该是优先选择。
imcnan
2018-09-27 16:12:55 +08:00
@HangoX 得高版本,低版本不行。高版本的话,docker 已经支持的很好了。
tradzero
2018-09-27 16:13:15 +08:00
居然不用 composer............
imcnan
2018-09-27 16:28:55 +08:00
@jimrok 这个不一定。
wangxiaoaer
2018-09-27 16:31:41 +08:00
@imcnan 对,企业不一定是 Java,但一定不是 php.
allinoneok
2018-09-27 16:33:42 +08:00
不错 支持以下
6IbA2bj5ip3tK49j
2018-09-27 16:52:09 +08:00
感觉方向跑偏了
定位用户是 爱折腾的计算机小白 ? 或者 个人站长 ?
Cbdy
2018-09-27 18:30:47 +08:00
根据我的实践,在 windows 上用 docker 最佳的方案是虚拟机,里面装个 Linux,然后再用 docker。虚拟化可以用 VirtualBox
mmdsun
2018-09-27 19:00:54 +08:00
请问安卓,iOS 应用是原生开发的吗?还是 rn
66beta
2018-09-27 19:04:03 +08:00
java 是政治正确,门槛低,人好招
imcnan
2018-09-27 19:37:36 +08:00
@mmdsun 原生开发的。
sagaxu
2018-09-27 19:44:13 +08:00
java 和 php 开发效率差不了多少,动态类型的弊端会随着项目增大而放大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/493182

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX