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

找工作失败,推广一下自己的开源框架吧

  •  
  •   Sepping · 2019-07-19 03:40:54 +08:00 · 4550 次点击
    这是一个创建于 1714 天前的主题,其中的信息可能已经有所发展或是发生改变。
    30 条回复    2019-08-11 11:36:29 +08:00
    Sepping
        1
    Sepping  
    OP
       2019-07-19 03:41:48 +08:00
    有点失落,准备回家咯~不过还是想让自己做的东西见见光,可能也有长期发展这个框架的打算。本人菜鸟一枚,欢迎各种建议。

    aHR0cHMlM0EvL2dpdGh1Yi5jb20vU2VwaW5nL0pRTA==

    主要功能:这是一个可以让你用 Java 8 以上的方法引用来写 SQL 的框架。例如,假如你要写一句 SQL:SELECT * FROM user WHERE user.name = "John"

    你可以这样来写:JQL.from(User.class) .where((root1, conditionChain) -> { return conditionChain .equal(root1.getAttribute(User::getName), "John"); }); 其中,User 是 user 表对应的实体类,有 get/set 方法。

    为什么要用“方法引用”呢?我只能说,初衷是为了能用 IDE 里的自动提示……

    部件构成:1、实体类 需要在类上标注 @Table 注解,表明这是与数据库表对应的实体类。实体类须有 get/set 方法,在 get 方法上可以用 @Column 注解标明该字段的特殊功能(插入时写默认值,逻辑删除标识等等)。

    2、实体类解析器 实体类需要经 EntityResolver 解析,得到实体类的通用抽象 Entity<t>,并存放于 EntityRepository 中。 我默认提供了一个用 ASM 解析的解析器,AnnotationBasicASMResolver。</t>

    3、JQL JQL 就是用来写 SQL 的类了。很抱歉,目前只支持 SELECT 语句和 MySQL 的部分语法。。。

    4、执行 SQL 在接口 SQLExecutor 中实现,查询结果以 List<CompositeEntity<t>>返回。</t>

    5、结果 结果封装为 CompositeEntity<t>的形式。CompositeEntity 是根据查询语句的 join 来封装的,例如,对于以下查询:SELECT * FROM user JOIN city ON city.name = user.city WHERE user.name = "John" 然后,得到了一个 CompositeEntity<user>对象 userResult,你可以用 userResult.getJoinEntities(City.class)来获得这条 user 关联的所有 city。 我默认提供了一个较为简陋的实现。</user></t>

    再杂谈一下吧。这个框架的具体实现其实很早就做出来了( master )分支,但是发现想扩展一个功能时存在了困难,就着手改造,把部件全部抽象化接口化。这才发现接口化、定义规范是最难的事情。当然,目前的组件结构我也不是很满意,主要在于复合条件链( ConditionChain )这个地方。有兴趣的大佬可以去看看代码,指点迷津一下。

    以上,觉得有意思就 star 一下吧~
    Sepping
        2
    Sepping  
    OP
       2019-07-19 03:45:06 +08:00
    真对不起各位!第一次再 V2EX 发帖不知道要用 base64,用了 base64 从记事本里拷文本的时候又没发现排版已经乱了。。。
    Pyjamas
        3
    Pyjamas  
       2019-07-19 06:52:48 +08:00
    建议搞清楚为什么用 base64...
    zvcs
        4
    zvcs  
       2019-07-19 07:03:26 +08:00 via iPhone   ❤️ 6
    我感觉那个人又要来了.....
    alw
        5
    alw  
       2019-07-19 07:30:37 +08:00
    PS:你可以给你的帖子 append,再发一下内容。
    nvioue
        6
    nvioue  
       2019-07-19 07:35:43 +08:00
    所以找工作失败什么情况
    lhx2008
        7
    lhx2008  
       2019-07-19 08:29:44 +08:00
    Jooq 了解一下
    breezeFP
        8
    breezeFP  
       2019-07-19 08:53:57 +08:00
    #7 我也想推荐来着,被你抢先了
    Sepping
        9
    Sepping  
    OP
       2019-07-19 13:43:04 +08:00 via iPhone
    @lhx2008 是,有参考过 Jooq。不过我觉得我的做法更有意思哈哈
    Sepping
        10
    Sepping  
    OP
       2019-07-19 13:43:35 +08:00 via iPhone
    @Pyjamas 防广告吗?
    Sepping
        11
    Sepping  
    OP
       2019-07-19 13:44:08 +08:00 via iPhone
    @zvcs 谁呢
    Sepping
        12
    Sepping  
    OP
       2019-07-19 13:45:03 +08:00 via iPhone
    @nvioue 投简历内推都少有回应,唯一有回应的一个昨天电话面试感觉凉了
    Sepping
        13
    Sepping  
    OP
       2019-07-19 13:56:16 +08:00 via iPhone
    @breezeFP 老哥,这不冲突吧……?
    breezeFP
        14
    breezeFP  
       2019-07-19 14:00:58 +08:00
    看清楚,我说的是 7 楼,没说你,这不冲突吧......?
    Sepping
        15
    Sepping  
    OP
       2019-07-19 14:14:30 +08:00 via iPhone
    @breezeFP 我理解错了,sry
    cominghome
        16
    cominghome  
       2019-07-19 14:36:48 +08:00
    orm ?
    Sepping
        17
    Sepping  
    OP
       2019-07-19 15:22:34 +08:00
    @cominghome 不知道能不能算 orm,因为很多东西都没加进去,事务控制之类的
    sarices
        18
    sarices  
       2019-07-19 15:27:03 +08:00
    放个 base64 出来让人去 star?
    Sepping
        19
    Sepping  
    OP
       2019-07-19 15:32:21 +08:00
    @sarices = = 啥意思呢……我没有骗 star 的意思啊
    glaucus
        20
    glaucus  
       2019-07-19 15:35:12 +08:00
    URL 干嘛要 BASE64。。。又不是你的个人信息
    AND 我曾经找不到工作待业 3 个月,是我人生总最灰暗的日子,所以 LZ 一定不要气馁,坚持下去~有时候并不是你不够优秀,而是你差一点运气。
    Sepping
        21
    Sepping  
    OP
       2019-07-19 15:39:41 +08:00
    @glaucus 因为我刚发帖的时候有 30 天注册限制,把 URL 换成 base64 才能发出来。
    很感谢你的鼓励,只是现在没钱交房租了……想着如果干不了程序员这行了,也可以继续发展这个框架,所以壮着胆子来这里宣传了一波
    sarices
        22
    sarices  
       2019-07-19 15:40:12 +08:00
    @Sepping 让人 star,就是来推广,但是故意设门槛?不是自相矛盾?
    Sepping
        23
    Sepping  
    OP
       2019-07-19 15:42:47 +08:00
    @sarices 我有 30 天限制,没法直接发 URL
    glaucus
        24
    glaucus  
       2019-07-19 15:45:02 +08:00
    @Sepping #21 别这样想,我当初也是交不起房租,还有花呗要换,幸好和我哥一起租的,他能帮我兜着点房租,不然我都快去要饭了,最艰难的时候不愿意找家里要钱,靠卖之前的电子产品过下去,一天只花 10 块,也想过接收朋友介绍的其他行业的工作,甚至是当服务员暂时解决生计,最后还是坚持下来了,在这个阶段往往容易怀疑自己,不过还是我想说的,你不是不够优秀,你只是差点运气而已,回家好好休息一下,重新整装待发,坚持下去,以后你会感谢当初坚持的自己。
    Sepping
        25
    Sepping  
    OP
       2019-07-19 15:50:24 +08:00
    @sarices 另外比起 star,我更希望有人能看看代码给点意见。目前这个框架离能让人使用还很远,能让人用了自然 star 不会少,现在拿一两个 star 没啥意思
    Sepping
        26
    Sepping  
    OP
       2019-07-19 15:52:51 +08:00
    @glaucus 借你吉言了,希望能和你有一样的好运
    Sepping
        27
    Sepping  
    OP
       2019-07-19 15:55:12 +08:00
    @alw 唉,很怕会变得更乱啊……
    Samuelcc
        28
    Samuelcc  
       2019-07-19 21:40:59 +08:00 via Android
    觉得 jooq 已经比较完整了吧
    Sepping
        29
    Sepping  
    OP
       2019-07-20 09:44:20 +08:00
    @Samuelcc 另一种思路吧
    enen123456789
        30
    enen123456789  
       2019-08-11 11:36:29 +08:00 via Android
    哪个城市啊?一年经验真的这么难嘛,焦虑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3484 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:53 · PVG 18:53 · LAX 03:53 · JFK 06:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.