V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Joker123456789
V2EX  ›  Java

Martian 框架的建议征集帖

  •  
  •   Joker123456789 · 2020-08-16 21:43:27 +08:00 · 2310 次点击
    这是一个创建于 1564 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先,我可能还是老规矩,要先解释一波,虽然我知道不喜欢的人也不会喜欢看我解释,但是我觉得还是有必要说一下的。

    关于扩展性不够强

    我不知道这个扩展性具体是指啥,是指以下这种情况吗?

    1. 我内置 httpserver,但是你想用 tomcat 可以自己切换?
    2. 我内置 durid,但是你想用 c3p0 可以自己切换?

    如果你们指的是这种,那我可以很负责任地说,我从来没往这方面考虑,所以也就不会去做大家嘴里的扩展性,我始终坚持一个场景只提供一种解决方案,就像 iphone 只提供 faceid,不提供屏下指纹一样。

    如果大家不认同这个理念,那我只能说我们的想法不同吧,可能聊不到一块。


    如果不是指上面这些,而是指支持 kafka,支持 activeMQ,支持 mongodb 等,这些完全没问题啊,这些项目本来就是可以单独使用的东西,又不是必须跟 spring 整合才能用,都可单独使用了,你们还怕不能跟 Martian 框架一起用吗? 无非现在就是缺少几个针对他们的 starter+工具类嘛,导致整合会比较耗时,对不对? 但这是问题吗?我觉得这不是问题,只要有兴趣的人一起行动,各种 starter 肯定就满天飞了。

    所谓的 spring 生态,其实就是这些开源项目开发了针对 spring 的 starter 和工具类嘛, 他们又不是软件和系统的关系,一个软件在 windows 上能跑,在 mac 上不能跑,这个别人拿生态来说事,我还能理解,但是 kafka 和 spring 是这种关系吗?肯定不是啊。

    接下来是意见征集

    我经常听到有人说 这个框架功能少,不够用,所以这个帖子我主要是想来听一听具体的一些干货。

    我承认 我是井底之蛙 ,见识不够广,所以我希望大家来指正我,拜托了,但同时我也请大家注意礼貌。

    请说出 用这个框架无法满足,或者很难满足的场景,数量不限,越多越好,但必须是 web 开发这个方向的哦

    然后我有几个小小的请求,希望大家见谅

    1. 希望大家可以说出正经的干货,如果光是一个劲的说,辣鸡,或者功能少,却不说到底什么场景下不够用,那我可能无法认同你们的吐槽,望见谅
    2. 我希望听到的是业务场景,而不是技术需求,比如有人喜欢把页面写在 java 项目里用模板引擎,又或者有人喜欢 jsp,这种就不要说了,因为这是技术需求,不影响业务实现,用前后端分离完全可以实现业务需求,所以这一类的东西不能算缺陷,只能说没有满足部分人的喜好吧

    项目官网:http://www.mars-framework.com

    14 条回复    2020-08-18 11:52:55 +08:00
    xihefeng
        1
    xihefeng  
       2020-08-16 21:57:40 +08:00 via Android
    感觉楼主的确是一个喜欢钻研技术的人,前面看过一点你的框架,主要是感觉挺适合做技术的研究,但是放到生产还是有些虚。另感谢楼主的分享!加油!
    sagaxu
        2
    sagaxu  
       2020-08-16 22:13:13 +08:00 via Android
    卖点是什么呢?性能更强?内存占用更低?实现同样功能比 springboot 少写代码?
    micean
        3
    micean  
       2020-08-17 00:34:44 +08:00
    我认为个人框架首要考虑的不是扩展性和生态,而是你的框架是否能解决某种特定需求并且比其他框架做的更好
    xuanbg
        4
    xuanbg  
       2020-08-17 08:23:38 +08:00
    楼主还是先说一下你的初心是什么吧。譬如你就想打造一个轻量级的框架,我们吐槽你功能不够多岂不是鸡同鸭讲?浪费我的时间也浪费你的时间,还让大家显得生分,这就很不好。
    rancc
        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}
    rancc
        6
    rancc  
       2020-08-17 11:38:52 +08:00
    @rancc 说错了。是访问 localhost:8080 后台报错
    industryhive
        7
    industryhive  
       2020-08-17 11:44:00 +08:00
    任何能给开源世界做贡献的人我都非常敬佩!楼主加油!
    Joker123456789
        8
    Joker123456789  
    OP
       2020-08-17 12:38:56 +08:00
    @rancc 必须请求具体的接口,根目录是不支持访问的。
    rancc
        9
    rancc  
       2020-08-17 17:29:23 +08:00
    @Joker123456789 例子中的可用访问 api 的地址是什么?
    Joker123456789
        10
    Joker123456789  
    OP
       2020-08-17 21:22:32 +08:00
    @rancc 在 api 包里面的 ExpApi 接口里面有很多方法,方法的注释里 标注了如何请求
    monkeyWie
        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 不香吗?
    rancc
        12
    rancc  
       2020-08-18 11:05:31 +08:00
    @Joker123456789 好的。
    测试的问题,源码 install 的时候测试不通过:com.mars.common.test.util.MarsAddressUtilTest#testGetLocalIp 方法里写死了本地 ip
    测试这么写不合适吧
    Joker123456789
        13
    Joker123456789  
    OP
       2020-08-18 11:50:57 +08:00
    @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 好了嘛

    开源项目本身就是随缘。
    Joker123456789
        14
    Joker123456789  
    OP
       2020-08-18 11:52:55 +08:00
    @rancc 不需要自己 install,jar 包都传到 中央库了,直接用即可。

    单测这个问题,如果 ip 不写死,那这个单测就没意义嘛。两个用来比较的值都是获取出来的,我怎么知道对不对呢。肯定是拿获取出来的值,跟实际的值做比较嘛,而实际的值 就得手工查看,然后写进去。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:41 · PVG 06:41 · LAX 14:41 · JFK 17:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.