失业在家快一年了,刚过 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 实现是很难的)。
请大佬们指点迷津,谢谢!
另外,有需要前端老中医的欢迎联系我,我失业中,谢谢!
![]() |
102
bugu1986 118 天前 via iPhone
楼里大部份人是 loser 楼主别理会
|
![]() |
103
Yanlongli 118 天前
说实话,重复造轮子对新手学习有帮助,但是对老鸟没啥用(当然也有学习作用)
|
104
zczxc44 118 天前
前端可否留下 base64 地址加个 v
|
106
bigdaxin 118 天前
差不多呢,30 岁,无业,目前负资产在家带娃,做后端,也想搞个框架。折腾了一下发现时代变了,根本不知道干啥- -
|
107
bzj 118 天前
看到是前端框架,我甚至都不愿意点开看看,是那几个大公司开源的框架不好用还是你做得比他们的好
|
108
cfancc 118 天前
我觉得你对于框架的理解有点浅,可以和 deepseek 交流下你的想法,然后再决定如何造轮子
|
![]() |
109
oukichi 118 天前
大哥没想过自己写游戏吗
|
![]() |
110
Rule2025 118 天前
一定要试试 AI 编程呀,我一个 0 代码基础的新手,一个月借助 AI ,主要是 cursor 和 Augment 都开发了 3 个网站,不止是前端。我觉得 AI 真的太高效了。如果不用,说句不好听,早晚被淘汰。
|
![]() |
111
darkway 118 天前
大佬来开发机器人吧,机器人很适合失业的开发
我最早的状态是出国留学,因为家庭变故回国. 那之后我就没再上学,也没找工作,一直在做这类开发.(不是黑灰产) 场景就是各种 im 平台的机器人,QQ 的,wx(服务号),kook 的,这类地方 说句心里话,像前端,后端,这种距离做出来能赚钱的应用是链路是挺长的, 组成一个完整的产品是很复杂的.前后端,UI UX,上架,各种, 但是机器人非常丝滑,从代码到指令,到跑起来商业化,(你可以想象一下 discord 的 midjourney) 机器人是直接把你的才华,脑子里想的东西,设计的或者创新出来的东西,直接递给用户. 你可以看看一些 QQ 机器人,是怎么做的, 机器人距离用户进,商业化,比如说做起来 dau 以后,插个广告,做个爱发电的赞助, 我之前也有困难的时候,到 Kook 里头,有很多语音陪玩店,当时就把 10 多个店的接单后台机器人给一起做了, 挣了 10 多万,他们和我说什么,说找了半年才找到一个人会开发机器人,结果又开发的不行,还好遇到我. 机器人,距离赚钱&规模化都很快,最主要的是,没几个同行是能打的. 我社区里的开发者,基本都是野路子,考大学失败,只能上大专的,或者压根就没工作的. (因为机器人是个野路子,很多开发者会觉得看不上,没想到就把这条路留给我们这些开发者) 有句话,进窄门,耕瘦田,来窄门看看. |
![]() |
112
darkway 118 天前
@darkway 进窄门,耕瘦田,大佬的眼界是很高的,很可能进一个很宽的门,
里面已经红海了,又不是一直在里头,还怎么竞争. 像机器人这样的东西,还很多啊,我之前还做过 2 年的 ai 绘图小程序和机器人,sd 绘图刚出那会儿, 也是感觉好自由啊,没看到几个同行竞争啊,我用户涨的嘎嘎快,要不是后来没搞定成本问题. 其实这种领域,很应用 1 万小时定律,花在里头的时间多了,最后发现,已经一览众山小了. 多找几个这样能一万小时投入定律+窄门瘦田属性的领域,做个独立开发者还真的根本就饿不死. 吃的很撑都很有可能. |
115
elantion OP @darkway 谢谢你的建议啊,做机器人感觉要学很多东西吧?我年纪大,现在学起来真的很慢。我估计要学 3D 打印,电路设计,单板开发,一堆东西?想想就头痛,要是我年轻十岁估计就 solo 干了。成品做出来还要找销路,估计还要考虑成本的问题。
我那个创业的朋友就是做硬件的,投入巨大,但市场我真的看不懂,估计他有自已的想法吧。 不过还是谢谢你提供这么好的建议,估计能帮到很多像我这样的失业的同行 |
120
burnsby 117 天前
如果是研究学习,我支持你。如果你想靠它改变开发生态,那我尊重你但不看好你。
|
![]() |
121
kinfuy 117 天前
一个巨大的工程,主要是生态,设计也只是锦上添花,没有根本性的变革,与当前热门框架拉不开差距呀
|
122
elantion OP @darkway 对话式机器人,在手机上不就有了么?我想不到有什么市场呢,就算是儿童手表也有了,加上家庭使用小爱同学,车里用车载智能体。如果单独做一个硬件对话机器人好像可替代性很高哦。
不过,之前看新闻说深圳有家公司也做对话机器人,卖得挺火,可能是我理解不了 |
126
CyouYamato 113 天前
Angular 的双向数据绑定已经能够解决你说的单向数据绑定的问题了, 我觉得 Angular 是一个非常完美的框架, 可就是不火. 关于 mcp, 我也正在开发类似的. 包含前端(Next.js)+后端 (rust), mcp 这部分肯定要自己写的. mcp 这部分自己写了, 前端也得自己写. 完成这个功能要会全栈, 对 websocket 熟悉.
|