• 请不要在回答技术问题时复制粘贴 AI 生成的内容
elantion
V2EX  ›  程序员

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

  •  
  •   elantion · May 28, 2025 · 13683 views
    This topic created in 382 days ago, the information mentioned may be changed or developed.

    失业状况(请跳过)

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

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

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