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。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.