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。
1
torbrowserbridge 2018-07-23 08:59:20 +08:00
好厉害!!赞!!!
|
2
carrywu 2018-07-23 09:03:40 +08:00
star 了
|
3
Cyron 2018-07-23 09:06:11 +08:00
厉害,学习了
|
4
Willjim 2018-07-23 09:08:01 +08:00 via Android
由此可见产品经理不懂一些实现原理还糊弄得过去,程序员自己当产品经理真的糊弄不过去。
|
5
siloong 2018-07-23 09:26:27 +08:00
前排留名 star
|
6
ghos 2018-07-23 09:58:32 +08:00
懂程序的产品是最可怕的!
|
7
lance7in 2018-07-23 10:19:36 +08:00
略臃肿
灵魂支持 |
8
id4alex 2018-07-23 10:37:40 +08:00 1
|
10
lovedebug 2018-07-23 10:44:05 +08:00
lz 泄密了 哈哈。
给点赞。顺便学习。 PS module 语法现在不推荐吧? |
11
sited OP @lance7in 第一版是完全自己写的框架,那时目标是把 jar 包打进 10M,自己实现的 ORM,DI,微服务框架,但后来发现不可能不用第三方框架,比如 lucene,markdown 相关,一旦放开,好吧,hibernate 也用了...
好处就是基本都是标准 API,文档可以少写点:) |
12
ericgui 2018-07-23 10:57:40 +08:00
很牛逼的样子
|
13
darkcode 2018-07-23 11:24:45 +08:00
JAVA 10 感觉就不是重点啊
|
14
yhzwy 2018-07-23 11:48:33 +08:00
那么还有菜谱吗
|
15
sited OP @darkcode 用 Java10 的目标有两个 1 )限制模块里类对其他模块的可见性,比如一个接口模块,应该只导出 webservice,而不是具体业务逻辑实现,如果不用 Java10,需要模块框架支持 export 操作 2 )打出带 JRE 的包,但现在第三方库还不成熟,jlink 也没法打自动模块,这个好处还不明显,等 Java 11 应该会好些。
|
16
sited OP @yhzwy 有做哎,可是 SEO 去美国了,做到 100PV 关站了。最近在试水国外的 affilicate 站,检验一下这个 CMS。
|
17
gabon 2018-07-23 12:06:49 +08:00 via Android 1
还以为是 concurrent mark sweep😂
|
19
vjnjc 2018-07-23 12:37:18 +08:00
哈哈哈楼主厉害,下下来看看。
其实我是来学 react 和 JAX-RS 的~ |
20
metrxqin 2018-07-23 13:18:48 +08:00 1
我还以为 Concurrent Mark Sweep (CMS) collector。
|
21
Sharuru 2018-07-23 13:25:35 +08:00
Java 10 的支持周期了解下,接下来该换 Java 11 了
|
22
sited OP @Sharuru 是啊,已经等的急不可耐了。之前 Javassist 在 JDK 11 上 break,貌似 fix 了。所以现在应该可以运行在 JDK 11 才对。
|
23
Cbdy 2018-07-23 15:00:29 +08:00 via Android
怎么打一个更小的 JRE ?有啥文章参考一下吗?
|
24
sdalkesioe 2018-07-23 15:26:28 +08:00
@Cbdy 根据需要精简 jer 包就行,可以参考: https://wenku.baidu.com/view/c265c4f1360cba1aa811da3c
|
25
sited OP Java 9 命令行程序可以打一个 10M 左右的带 JRE 的包。https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/
|
26
0915240 2018-07-23 20:37:23 +08:00
擦,这不是我想要的 cms。。。。
但还是要支持下了。 |
28
crack105 2018-07-24 03:18:18 +08:00
已 star,学习一个哈哈
|
29
zmxnv123 2018-07-24 08:38:18 +08:00 via Android
第一眼想到的是 cms 垃圾回收器 看到后来发现不是,但还是给楼主一个 star
|
30
Heanes 2018-07-24 08:42:07 +08:00
学习一个
|
31
thisisgpy 2018-07-24 10:30:45 +08:00
吓我一跳,还以为楼主写了个 GC。
|
33
archer2ee 2018-07-24 13:03:39 +08:00
吓我一跳,还以为楼主写了个 GC。+1
哈哈,还是给楼主点个赞! |