首先,我可能还是老规矩,要先解释一波,虽然我知道不喜欢的人也不会喜欢看我解释,但是我觉得还是有必要说一下的。
我不知道这个扩展性具体是指啥,是指以下这种情况吗?
如果你们指的是这种,那我可以很负责任地说,我从来没往这方面考虑,所以也就不会去做大家嘴里的扩展性,我始终坚持一个场景只提供一种解决方案,就像 iphone 只提供 faceid,不提供屏下指纹一样。
如果大家不认同这个理念,那我只能说我们的想法不同吧,可能聊不到一块。
如果不是指上面这些,而是指支持 kafka,支持 activeMQ,支持 mongodb 等,这些完全没问题啊,这些项目本来就是可以单独使用的东西,又不是必须跟 spring 整合才能用,都可单独使用了,你们还怕不能跟 Martian 框架一起用吗? 无非现在就是缺少几个针对他们的 starter+工具类嘛,导致整合会比较耗时,对不对? 但这是问题吗?我觉得这不是问题,只要有兴趣的人一起行动,各种 starter 肯定就满天飞了。
所谓的 spring 生态,其实就是这些开源项目开发了针对 spring 的 starter 和工具类嘛, 他们又不是软件和系统的关系,一个软件在 windows 上能跑,在 mac 上不能跑,这个别人拿生态来说事,我还能理解,但是 kafka 和 spring 是这种关系吗?肯定不是啊。
我经常听到有人说 这个框架功能少,不够用,所以这个帖子我主要是想来听一听具体的一些干货。
我承认 我是井底之蛙 ,见识不够广,所以我希望大家来指正我,拜托了,但同时我也请大家注意礼貌。
请说出 用这个框架无法满足,或者很难满足的场景,数量不限,越多越好,但必须是 web 开发这个方向的哦
1
xihefeng 2020-08-16 21:57:40 +08:00 via Android
感觉楼主的确是一个喜欢钻研技术的人,前面看过一点你的框架,主要是感觉挺适合做技术的研究,但是放到生产还是有些虚。另感谢楼主的分享!加油!
|
2
sagaxu 2020-08-16 22:13:13 +08:00 via Android
卖点是什么呢?性能更强?内存占用更低?实现同样功能比 springboot 少写代码?
|
3
micean 2020-08-17 00:34:44 +08:00
我认为个人框架首要考虑的不是扩展性和生态,而是你的框架是否能解决某种特定需求并且比其他框架做的更好
|
4
xuanbg 2020-08-17 08:23:38 +08:00
楼主还是先说一下你的初心是什么吧。譬如你就想打造一个轻量级的框架,我们吐槽你功能不够多岂不是鸡同鸭讲?浪费我的时间也浪费你的时间,还让大家显得生分,这就很不好。
|
5
rancc 2020-08-17 11:33:23 +08:00
楼主,本人 java 菜鸡。下载 https://github.com/yuyenews/Mars-Example 启动 main 方法后下一步怎么做?麻烦完善下 demo 的 readme 文件。
启动 Mars-Example 后后台报错,页面返回 {"error_info":"服务器上没有相应的接口","error_code":500} |
7
industryhive 2020-08-17 11:44:00 +08:00
任何能给开源世界做贡献的人我都非常敬佩!楼主加油!
|
8
Joker123456789 OP @rancc 必须请求具体的接口,根目录是不支持访问的。
|
9
rancc 2020-08-17 17:29:23 +08:00
@Joker123456789 例子中的可用访问 api 的地址是什么?
|
10
Joker123456789 OP @rancc 在 api 包里面的 ExpApi 接口里面有很多方法,方法的注释里 标注了如何请求
|
11
monkeyWie 2020-08-17 21:35:31 +08:00
刚刚随便看了看,有几个槽点:
1. 用的 com.sun.net.httpserver.HttpServer,这在非 sun 和 oracle JDK 上可能直接就运行不起来 2. 路由匹配目前好像是用 HashMap 做的,没有用 tire tree 3. 文件上传的实现为了不引入依赖,直接复制了一堆 Apache commonfile 的源码 4. json 序列化目前固定成了 fastjson,想换成 jackson 怎么办 5. 好像不支持支持 /user/{id} 这种路由的写法 想说的是: 造轮子学习技术可以,但是没有很明显优势的话别人为啥用,springboot 它不香吗?要高性能的话 vert.x 或者用 golang 不香吗? |
12
rancc 2020-08-18 11:05:31 +08:00
@Joker123456789 好的。
测试的问题,源码 install 的时候测试不通过:com.mars.common.test.util.MarsAddressUtilTest#testGetLocalIp 方法里写死了本地 ip 测试这么写不合适吧 |
13
Joker123456789 OP @monkeyWie
嗯,我简单回复下吧: 1. 没打算支持 sun 系 以外的 jdk 2. 路由匹配这个,感谢你的建议,我稍后研究下 3. 这个还真不是为了不引入依赖,而是 common-fileupload 依赖 servlet,而我又丢弃了 servlet,不得已复制源码进行修改 4. 想用 jackson 的 用就是了啊,不管是 maven 还是 java 都没限制一个项目只能引入一个 json 解析包吧? 想用 jackson 那就直接用好了,完全没问题啊,我完全无法理解这个槽点。 如果有洁癖的,不想看到一个项目里有两个 json 解析器,那大可选择别的框架,只是个 util 而已,这么纠结干嘛呢。 除非这个东西本身存在致命的缺陷,否则那就是各有千秋的事,说到底就是个人喜好嘛,我框架里用 fastjson 来处理数据,你自己写业务用 jackson 处理,一点问题都没。 5. 这个故意不要的,传参统一用对象,我连 requestBody,requestParam 这一类的注解都丢弃了,框架自动根据 Content-type 判断如何解析。 如果你不喜欢,那我只能说很遗憾吧,你可以选择别的 别人用不用,不是我关心的,我只是开源出来,并推荐给大家,springboot 很香,那用 springboot 就好了嘛。vert.x 很香,那就用 vert.x 好了嘛 开源项目本身就是随缘。 |
14
Joker123456789 OP @rancc 不需要自己 install,jar 包都传到 中央库了,直接用即可。
单测这个问题,如果 ip 不写死,那这个单测就没意义嘛。两个用来比较的值都是获取出来的,我怎么知道对不对呢。肯定是拿获取出来的值,跟实际的值做比较嘛,而实际的值 就得手工查看,然后写进去。 |