V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
elantion
V2EX  ›  程序员

失业在家,花一个月撸了个 web 前端框架,求大佬们指点

  •  
  •   elantion · 119 天前 · 11273 次点击
    这是一个创建于 119 天前的主题,其中的信息可能已经有所发展或是发生改变。

    失业状况(请跳过)

    失业在家快一年了,刚过 40 岁,有点不知所措。刚拿到赔偿金那天还很高兴,当天就去自驾游了,但玩得很内疚,总感觉在浪费时间,想是不是该沉下心来学习?于是玩了一周就回家了。 回来后,几个月都在打兼职,写 AI 工具,总共就赚了五千块,还借了六七千块钱给个在创业的朋友(估计是要不回来了)。
    后面感觉做兼职是浪费时间,转头研究 AI Agent ,自已写了个本地对话工具,基于 Ollama ,但是本地电脑算力不够,而且 ollama 不支持 mcp ,bridge 写得头大,放弃了。(遗产: https://gitee.com/james-yin01/viviwawa
    又转头研究腾讯的 KuiklyUI ,自研个“贷款计算 App”,但发现 Kuikly 非常不成熟,文档不全,bug 多,功能不完善,社区没人,果断放弃。(遗产: https://gitee.com/james-yin01/lc-loan-calculator
    最后,心想还是做自已最擅长的东西吧(我十多年 web 前端开发),于是就花一个月写了个 web 框架。当然,目前只是原型阶段,只是跑通了基本的几个小场景,问题肯定还有很多,所以想在这儿问问大佬们这玩意有没有搞头,有的话就继续写写看,没有的话就放弃搞别的去了。

    框架简述

    框架名为 LazyCoffee ,是一款设计为面向对象开发的 web 框架。框架地址: https://gitee.com/james-yin01/lc_ood_framework

    为什么要开发这个框架?

    实话实说,我也是个讨厌重复造轮子的人,没事找事,感觉像刷 KPI 。但我写前端这么多年了,用了巨多框架,各种优点缺点我都心中有数,所以想能不能造个能解决某些痛点,又简单好用的框架,于是就萌生了写框架的想法,绝不是简单的造轮子。

    失控的状态变量

    我是从 ie6 那年代过来的,我特别喜欢原生开发,有一种掌控全局的感觉,到后面 angular, react, vue ,我发现项目变大后,有种失控的感觉,例如一个 dom 元素会被 state, props, redux 等各种变量控制,产生这样的问题是因为不同的变量有不同的作用域,你必须从上到下传递变量或者利用 redux 这样的框架全局把控。随着代码贡献的人变多,思路不一致,会发现项目的组件像口袋里的有线耳机一样混乱,例如明明可以组件内控制的变量非要用 props 传过来。
    举个经典例子:弹窗。我们要做很多个弹窗,所以会有一个叫 Modal 的组件统一显示弹窗,弹窗内容通过props.children传过来,开关通过props.isOpen控制。因为你有很多不同的弹窗,所以你要一个数组来控制所有的弹窗变量,这就需要 redux 之类的状态管理工具来全局把控了。如果要关闭某个弹窗,你要遍历,变更状态,触发更新,麻烦的很。

    解决单向流的痛点

    其实造成上面的问题的根本原因就是 react, vue 都一直尊循的原则:状态变量单向流,你的状态变量只能从上层往下层传递,如果你的下层组件想变更上层状态变量,是不允许的,如果想实现,只能把状态变量统一提取到全局作用域,下层组件通过变更全局变量才能实现。
    为了解决这个问题 LazyCoffee 框架利用了两个古老但实用的设计:元素查找和属性代理。

    元素查找和属性代理

    如果有两个平行的组件,例如两个弹窗,你不能在一个组件里变更另一个组件的变量,只能改为上下级或者通过共同父组件来控制。但 LazyCoffee 框架就可以,你只要找到另一个组件的实例,然后调用实例方法即可,看下面伪代码:

    import { queryOne } from 'lc_ood_framework';
    
    function submit() {
        const anotherModal = queryOne('#confirm');
        anotherModal.open('Are you sure?', function () {
            // do something
        });
    }
    

    是不是很熟悉的感觉?这不就是 jquery 老一辈的设计嘛?是的,朋友,是的。queryOne就是元素查找的方法,anotherModal就是元素的实例,open就是元素的方法,这个方法就是通过属性代理实现的。 通过这种设计,不管你的组件是平行的,还是上下级,都可以直接操控别的组件,从单向流的桎梏中解脱出来。

    是不是有别的办法?

    我在想,是不是有别的办法解决上面说的痛点,有必要另外写个框架?有的,朋友,当然有。利用 redux 或 pinia 之类的状态管理库,统一管控起来,然后让团队成员遵守代码规范,做好代码检视,一般是能实现的。我之所有写框架,是想更优雅解决这个痛点,提供一个与众不同的思路。

    没了,就这样

    框架的其他设计几乎都是照抄 react ,就是代码实现上自已另外造了个轮子,没找到复用的方法(有想到的告诉我,维护一个 jsx 实现是很难的)。

    请大佬们指点迷津,谢谢!
    另外,有需要前端老中医的欢迎联系我,我失业中,谢谢!

    126 条回复    2025-06-03 15:00:07 +08:00
    1  2  
    bugu1986
        101
    bugu1986  
       118 天前 via iPhone
    @elantion 我觉得你这个思路好 ai native
    bugu1986
        102
    bugu1986  
       118 天前 via iPhone
    楼里大部份人是 loser 楼主别理会
    Yanlongli
        103
    Yanlongli  
       118 天前
    说实话,重复造轮子对新手学习有帮助,但是对老鸟没啥用(当然也有学习作用)
    zczxc44
        104
    zczxc44  
       118 天前
    前端可否留下 base64 地址加个 v
    NoCash
        105
    NoCash  
       118 天前
    @elantion #44 羡慕资产很多不用考虑钱的问题
    bigdaxin
        106
    bigdaxin  
       118 天前
    差不多呢,30 岁,无业,目前负资产在家带娃,做后端,也想搞个框架。折腾了一下发现时代变了,根本不知道干啥- -
    bzj
        107
    bzj  
       118 天前
    看到是前端框架,我甚至都不愿意点开看看,是那几个大公司开源的框架不好用还是你做得比他们的好
    cfancc
        108
    cfancc  
       118 天前
    我觉得你对于框架的理解有点浅,可以和 deepseek 交流下你的想法,然后再决定如何造轮子
    oukichi
        109
    oukichi  
       118 天前
    大哥没想过自己写游戏吗
    Rule2025
        110
    Rule2025  
       118 天前
    一定要试试 AI 编程呀,我一个 0 代码基础的新手,一个月借助 AI ,主要是 cursor 和 Augment 都开发了 3 个网站,不止是前端。我觉得 AI 真的太高效了。如果不用,说句不好听,早晚被淘汰。
    darkway
        111
    darkway  
       118 天前
    大佬来开发机器人吧,机器人很适合失业的开发
    我最早的状态是出国留学,因为家庭变故回国.
    那之后我就没再上学,也没找工作,一直在做这类开发.(不是黑灰产)
    场景就是各种 im 平台的机器人,QQ 的,wx(服务号),kook 的,这类地方
    说句心里话,像前端,后端,这种距离做出来能赚钱的应用是链路是挺长的,
    组成一个完整的产品是很复杂的.前后端,UI UX,上架,各种,

    但是机器人非常丝滑,从代码到指令,到跑起来商业化,(你可以想象一下 discord 的 midjourney)
    机器人是直接把你的才华,脑子里想的东西,设计的或者创新出来的东西,直接递给用户.
    你可以看看一些 QQ 机器人,是怎么做的,
    机器人距离用户进,商业化,比如说做起来 dau 以后,插个广告,做个爱发电的赞助,
    我之前也有困难的时候,到 Kook 里头,有很多语音陪玩店,当时就把 10 多个店的接单后台机器人给一起做了,
    挣了 10 多万,他们和我说什么,说找了半年才找到一个人会开发机器人,结果又开发的不行,还好遇到我.
    机器人,距离赚钱&规模化都很快,最主要的是,没几个同行是能打的.

    我社区里的开发者,基本都是野路子,考大学失败,只能上大专的,或者压根就没工作的.
    (因为机器人是个野路子,很多开发者会觉得看不上,没想到就把这条路留给我们这些开发者)
    有句话,进窄门,耕瘦田,来窄门看看.
    darkway
        112
    darkway  
       118 天前
    @darkway 进窄门,耕瘦田,大佬的眼界是很高的,很可能进一个很宽的门,
    里面已经红海了,又不是一直在里头,还怎么竞争.
    像机器人这样的东西,还很多啊,我之前还做过 2 年的 ai 绘图小程序和机器人,sd 绘图刚出那会儿,
    也是感觉好自由啊,没看到几个同行竞争啊,我用户涨的嘎嘎快,要不是后来没搞定成本问题.
    其实这种领域,很应用 1 万小时定律,花在里头的时间多了,最后发现,已经一览众山小了.
    多找几个这样能一万小时投入定律+窄门瘦田属性的领域,做个独立开发者还真的根本就饿不死.
    吃的很撑都很有可能.
    elantion
        113
    elantion  
    OP
       117 天前
    @Rule2025 AI 编程也玩过的
    elantion
        114
    elantion  
    OP
       117 天前
    @oukichi 想过,只是我没天份,估计设计不出好游戏,自个都玩不明白
    elantion
        115
    elantion  
    OP
       117 天前
    @darkway 谢谢你的建议啊,做机器人感觉要学很多东西吧?我年纪大,现在学起来真的很慢。我估计要学 3D 打印,电路设计,单板开发,一堆东西?想想就头痛,要是我年轻十岁估计就 solo 干了。成品做出来还要找销路,估计还要考虑成本的问题。
    我那个创业的朋友就是做硬件的,投入巨大,但市场我真的看不懂,估计他有自已的想法吧。
    不过还是谢谢你提供这么好的建议,估计能帮到很多像我这样的失业的同行
    elantion
        116
    elantion  
    OP
       117 天前
    @zczxc44 MTg2NjYxMzM3NTY=
    elantion
        117
    elantion  
    OP
       117 天前
    @bugu1986 谢谢兄弟的鼓励,难得见一个支持的,哈哈
    kapaseker
        118
    kapaseker  
       117 天前
    @elantion 我借给我一个亲戚 4 万多,现在已经开始瑟瑟发抖了
    darkway
        119
    darkway  
       117 天前
    @elantion 哈哈,是那种对话式机器人,openai 那样的.实体机器人太难了.
    burnsby
        120
    burnsby  
       117 天前
    如果是研究学习,我支持你。如果你想靠它改变开发生态,那我尊重你但不看好你。
    kinfuy
        121
    kinfuy  
       117 天前
    一个巨大的工程,主要是生态,设计也只是锦上添花,没有根本性的变革,与当前热门框架拉不开差距呀
    elantion
        122
    elantion  
    OP
       117 天前
    @darkway 对话式机器人,在手机上不就有了么?我想不到有什么市场呢,就算是儿童手表也有了,加上家庭使用小爱同学,车里用车载智能体。如果单独做一个硬件对话机器人好像可替代性很高哦。
    不过,之前看新闻说深圳有家公司也做对话机器人,卖得挺火,可能是我理解不了
    elantion
        123
    elantion  
    OP
       117 天前
    @kapaseker 目前这个形势基本是要不回来了,下次上让他们找网贷吧,几千块倒无所谓,几万对我来说还是太多了
    kapaseker
        124
    kapaseker  
       117 天前
    @elantion 已经哭晕了
    Ryden
        125
    Ryden  
       117 天前
    @yinxs2003 我都是用规范借这个小程序,谁借钱,先把这个借条签了
    CyouYamato
        126
    CyouYamato  
       113 天前
    Angular 的双向数据绑定已经能够解决你说的单向数据绑定的问题了, 我觉得 Angular 是一个非常完美的框架, 可就是不火. 关于 mcp, 我也正在开发类似的. 包含前端(Next.js)+后端 (rust), mcp 这部分肯定要自己写的. mcp 这部分自己写了, 前端也得自己写. 完成这个功能要会全栈, 对 websocket 熟悉.
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1245 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:41 · PVG 07:41 · LAX 16:41 · JFK 19:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.