首发,我写了一个 Java 10 CMS!

2018-07-23 08:47:48 +08:00
 sited

2 年零 6 个月,这个项目吞了我无尽的业余时间。本来我只是想做一个菜谱的 SEO 爬虫站,看着这一堆的代码,我现在才回过神来,程序员给自己当产品经理太可怕啦!

“模板引擎得自己写一个,thymeleaf 可以改进一下”
“好!”
“ Admin 后台用 react 吧,angular 打包太大了”
“好,必须 react !”
“数据库还是从 JDBC 切到 JPA 吧,JPA 容易写单元测试”
“好,必须切啊,不能测试的代码不是好代码”
“前端用 PureCSS 吧,小”
“好!”
“前端用 bootstrap 吧,能切主题”
“好!”
“微服务框架用 JAX-RS 吧,统统用标准”
“好!”
“切到 Java 10 吧,Java 10 可以打一个更小的带 JRE 安装包”
“好!”
“不支持 IE8 吧”
“好”
“ IE8 还是支持一下吧,两年了,份额也没降…”
“好”
“编辑器用 draftjs 来做个类似 Medium 的吧”
“好”
“编辑器还是用 Markdown 吧,draftjs 的原生数据,太占空间了”
“好…”

这个系统的底层是一个很薄封装的微服务模块框架,基本用的都是 Java 标准 API,每个功能拆分成基于 API 的 module,然后组合 module 形成解决方案,部署也随时可以拆分 API,不需要改动到代码。有点类似 OSGi,但和 Java 10 结合,要更简单。v0.9.0 包括基础的 CMS 功能:

• 用户登录注册密码权限相关(权限还有点小问题)
• 文件上传下载(目录权限是仿照 Linux 实现的,但没写完)
• 页面模板可视化编辑(支持自适应,这个功能老难了,你们来瞅瞅)
• 文章,文章分类管理
• 评论
• …等等,还有很多组件(大概 50 个)因为没有迁移框架,在本地仓库待命,但发出来的功能做个博客大概可能是够了…

Github 有系统截图和安装文档,

https://github.com/sited-io/sited-project

为了易用性,我做了一些 Jersey 的封装,比如硬把 HK2 的 DLS 改成 Guice 风格,基于接口自动生成 JAX-RS Client,JAX-RS 接口实现类不需要带着 rs 相关的注解等等,还发现了一个 Jersey 的 BUG,有机会我要分享一下 Java 10 上 JEE 的坑…

如果你对这个 CMS 有兴趣,或者志愿想当小白鼠,或者对 JEE 迁移 Java 10 有怨念,咱们聊聊,我微信:sited-io,备注 sited。

注:如果你觉得这个项目不错,请给我的一个 github Star,现在可怜巴巴的,请鼓励鼓励我!最近在补性能测试和单元测试,暂定一两周后发布 1.0。

5471 次点击
所在节点    Java
33 条回复
Sharuru
2018-07-23 13:25:35 +08:00
Java 10 的支持周期了解下,接下来该换 Java 11 了
sited
2018-07-23 14:46:46 +08:00
@Sharuru 是啊,已经等的急不可耐了。之前 Javassist 在 JDK 11 上 break,貌似 fix 了。所以现在应该可以运行在 JDK 11 才对。
Cbdy
2018-07-23 15:00:29 +08:00
怎么打一个更小的 JRE ?有啥文章参考一下吗?
sdalkesioe
2018-07-23 15:26:28 +08:00
@Cbdy 根据需要精简 jer 包就行,可以参考: https://wenku.baidu.com/view/c265c4f1360cba1aa811da3c
sited
2018-07-23 16:04:42 +08:00
Java 9 命令行程序可以打一个 10M 左右的带 JRE 的包。https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/
0915240
2018-07-23 20:37:23 +08:00
擦,这不是我想要的 cms。。。。



但还是要支持下了。
sited
2018-07-23 21:42:41 +08:00
@0915240 兄弟,说下你的需求~
crack105
2018-07-24 03:18:18 +08:00
已 star,学习一个哈哈
zmxnv123
2018-07-24 08:38:18 +08:00
第一眼想到的是 cms 垃圾回收器 看到后来发现不是,但还是给楼主一个 star
Heanes
2018-07-24 08:42:07 +08:00
学习一个
thisisgpy
2018-07-24 10:30:45 +08:00
吓我一跳,还以为楼主写了个 GC。
sited
2018-07-24 12:32:51 +08:00
@zmxnv123 谢谢!写垃圾回收器是不可能的~
archer2ee
2018-07-24 13:03:39 +08:00
吓我一跳,还以为楼主写了个 GC。+1
哈哈,还是给楼主点个赞!

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

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

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

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

© 2021 V2EX