https://github.com/rainforesters/imsure
https://github.com/rainforesters/imsure-demo
请不要争论响应式,这不是重点,重点是这提出了一种新写法。
以嵌套对象 a.b.c
的属性监听为例:
传统写法:
a
完成初始化 → 才能监听 b
属性 → 当 a.b
被赋值有效对象后 → 才能继续监听 c
属性新写法:
A{ B{ C } }
→ 在类型 A
上定义 b.c
的监听规则 → 最后实例化对象 a
时自然具有所有监听规则a.b = { c: xxx }
或 a.b.c = xxx
)时自动触发规则,同时智能过滤无效操作(如 a.b = {}
这类不完整赋值)。 1
fov6363 3 天前
没看懂这个 github 的用途?看代码很难懂
|
![]() |
2
wyntalgeer 3 天前
没看代码,请教一下如果属性移除,监听也会移除的吧?再加回来不会重复监听吧?
|
![]() |
3
kyuuseiryuu 3 天前 ![]() 看不懂,自娱自乐可以,真正工作没人陪你玩这个。
|
![]() |
4
LeeReamond 3 天前 ![]() 编程圈从来不缺这种以为所有人都是傻逼,只有自己聪明逼的家伙。
点开项目看了看,这么抽象的东西还要收费的我确实从来没见过。 |
![]() |
5
xFrye 3 天前 ![]() 你们前端真会玩
|
6
JoeDH 3 天前
抽象
|
![]() |
7
neptuno 3 天前
写的太抽象了,建议先举一个实际业务场景,写一个低级程序员的代码,再把你的高级代码拿出来解释一下。这样大家就能看懂了。
|
![]() |
8
wxw752 3 天前
同意楼上的观点,没人花一块钱陪你过家家。
|
![]() |
9
lucasdev 3 天前
啥意思,“在类型 A 上定义 b.c 的监听规则” 这不违反 “迪米特法则” 么
看了下 op 的历史回复,这是在将哲学(神学?)应用到编程? |
10
w568w 3 天前 ![]() 计算机哲学民科
|
11
slert 3 天前 ![]() 可以写出无法维护的代码
|
![]() |
12
fcbwalk 3 天前
闲者模式编程思想
|
![]() |
13
Opportunity 3 天前
还需要手动声明依赖这就已经和“省时省力”没关系了吧。。
|
![]() |
14
molvqingtai 3 天前
我缓缓打出一个 ❓
|
![]() |
15
shadowyue 3 天前
这个项目居然从 2020 年开始迭代了这么久。。。
|
![]() |
16
svenzhao 3 天前 ![]() ????? 粗鲁的看了一下 你发明了一个残次品 mobx 双绑?????? 在家哲学了两天 觉得自己悟道了???
悟出了 观察者模式和发布订阅模式???? 知不知道 你所谓的悟道 心智负担有多大吗? 当你项目"悟道"了 100 多条交叉订阅的时候 你的小脑袋连数据流都捋不清楚! 你所谓的传统写法 是这么些年大家工程实践后 总结的 单向 flow 为的就是确定 无根之水 |
17
mumbler 3 天前 ![]() 中关村软件园旁边的“码农面馆”的格局,是和别处不同的:都是当街一个曲尺形的大柜台,柜里面预备着热水,可以随时下面。写代码的人,傍午傍晚散了工,每每花十来块钱,买一碗面,——这是十多年前的事,现在要涨到三十多了,——靠柜外站着,热热的吃了休息;倘肯多花几块,便可以买一碟凉拌海带丝或者拍黄瓜,做下饭物了,如果出到几十块,那就能买一样荤菜,什么酱肘子、猪头肉之类,但这些顾客,多是穿格子衫的短工,大抵没有这样阔绰。只有那些穿着印有大厂 Logo 的 T 恤,或者脖子上挂着工牌的,才踱进店面隔壁的房子里,要面要菜,慢慢地坐着吃。
我从十二岁起,便在村口的“码农面馆”里当伙计,掌柜说,我样子太傻,怕侍候不了那些“高级工程师”,就在外面做点事罢。外面的格子衫主顾,虽然容易说话,但唠唠叨叨缠夹不清的也很不少。他们往往要亲眼看着面从锅里捞出,看过碗里的牛肉是不是太少,又亲看将作料放在碗里,然后放心:在这严重监督之下,羼水也很为难。所以过了几天,掌柜又说我干不了这事。幸亏荐头的情面大,辞退不得,便改为专管温酒……哦不,是专管给顾客连 WiFi 和充电的一种无聊职务了。 我从此便整天的站在柜台里,专管我的职务。虽然没有什么失职,但总觉得有些单调,有些无聊。掌柜是一副凶脸孔,主顾也没有好声气,教人活泼不得;只有孔乙己到店,才可以笑几声,所以至今还记得。 孔乙己是站着吃面而穿“冲锋衣”的唯一的人。他身材很高大;青白脸色,皱纹间时常夹些伤痕;一部乱蓬蓬的花白的头发。穿的虽然是冲锋衣,可是又脏又破,似乎十多年没有补,也没有洗。他对人说话,总是满口“底层逻辑”、“代码规范”,叫人半懂不懂的。因为他姓孔,别人便从描红纸上的“上大人孔乙己”这半懂不懂的话里,替他取下一个绰号,叫作孔乙己。孔乙己一到店,所有吃面的人便都看着他笑,有的叫道,“孔乙己,你脸上又添上新 Bug 了!”他不回答,对柜里说,“温一碗面,要一份拍黄瓜。”便排出九块大洋……哦不,是掏出手机扫了九块钱的码。他们又故意的高声嚷道,“你一定又偷人家公司的代码了!”孔乙己睁大眼睛说,“你怎么这样凭空污人清白……”“什么清白?我前天亲眼见你在 GitHub 上 Fork 了人家的库,改了俩变量名就说是自己写的,被原作者挂起来锤。”孔乙己便涨红了脸,额上的青筋条条绽出,争辩道,“借鉴不能算偷……借鉴!……程序员的事,能算偷么?”接连便是难懂的话,什么“开源精神”,什么“站在巨人的肩膀上”之类,引得众人都哄笑起来:店内外充满了快活的空气。 听人家背地里谈论,孔乙己原来也写过代码,但终于没有当上架构师,又不会“向上管理”;于是愈过愈穷,弄到将要讨饭了。幸而写得一手好代码(虽然是过时的技术栈),便替人家做些外包,写点小脚本,换一碗饭吃。可惜他又有一样坏脾气,便是好喝……哦不,是好高骛远,总想搞“颠覆式创新”。坐不到几天,便连人带电脑,一齐失踪。如是几次,叫他做外包的人也没有了。孔乙己没有法,便免不了偶然做些“借鉴”的事。但他在我们店里,品行却比别人都好,就是从不拖欠;虽然间或没有现钱,暂时记在账上,但不出一月,定然还清,从粉板上拭去了孔乙己的名字。 孔乙己喝过半碗面,涨红的脸色渐渐复了原,旁人便又问道,“孔乙己,你当真会写代码么?”孔乙己看着问他的人,显出不屑置辩的神气。他们便接着说道,“你怎的连个 P7 也没混上呢?”孔乙己立刻显出颓唐不安模样,脸上笼上了一层灰色,嘴里说些话;这回可是全是“性能优化”、“内存管理”、“并发编程”之类,一些不懂了。在这时候,众人也都哄笑起来:店内外充满了快活的空气。 在这些时候,我可以附和着笑,掌柜是决不责备的。而且掌柜见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向孩子说话。有一回对我说道,“你写过代码么?”我略略点一点头。他说,“写过代码,……我便考你一考。那个‘i++’和‘++i’,怎样区分的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能区分罢?……我教给你,记着!这些知识应该记着。将来做项目经理的时候,优化代码要用。”我暗想我和项目经理的等级还很远呢,而且我们掌柜也从不让代码跑得更快;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不就是先赋值再自增和先自增再赋值的区别么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……‘i++’和‘++i’还有四样写法,你知道么?”我愈不耐烦了,努着嘴走远。孔乙己刚用指甲蘸了面汤,想在柜上写代码,见我毫不热心,便又叹一口气,显出极惋惜的样子。 有几回,邻居孩子听得笑声,也赶热闹,围住了孔乙己。他便给他们一人发一个 Bug 。孩子们领完 Bug ,仍然不散,眼睛都望着他的电脑包。孔乙己着了慌,伸开五指将电脑包罩住,弯腰下去说道,“不多了,我已经不多了。”直起身又看一看 Bug ,自己摇头说,“不多不多!多乎哉?不多也。” 孔乙己是这样的使人快活,可是没有他,别人也便这么过。 有一天,大约是中秋前的两三天,掌柜正在慢慢的结账,取下粉板,忽然说,“孔乙己长久没有来了。还欠十九块钱呢!”我才也觉得他的确长久没有来了。一个吃面的人说道,“他怎么会来?……他被打断腿了。”掌柜说,“哦!”“他总仍旧是偷。这一回,是自己发昏,竟偷到大厂的核心代码库里去了。人家的代码库,偷得的么?”“后来怎么样?”“怎么样?先写检查,后来是谈话,再后来是开了,听说还吃了官司。”“后来呢?”“后来打官司输了,赔了一大笔钱。”“赔了钱怎样呢?”“怎样?……谁晓得?许是‘优化’掉了。”掌柜也不再问,仍然慢慢的算他的账。 中秋过后,秋风是一天凉比一天,看看将近初冬;我整天的靠着暖气,也须穿上棉袄了。一天的下半天,没有一个顾客,我正合了眼坐着。忽然间听得一个声音,“温一碗面。”这声音虽然极低,却很耳熟。看时又全没有人。站起来向外一望,那孔乙己便在柜台下对了门槛坐着。他脸上黑而且瘦,已经不成样子;穿一件破夹袄,盘着两腿,下面垫一个蒲包,用草绳在肩上挂住;见了我,又说道,“温一碗面。”掌柜也伸出头去,一面说,“孔乙己么?你还欠十九块钱呢!”孔乙己很颓唐的仰面答道,“这……下回还清罢。这一回是现钱,面要好。”掌柜仍然同平常一样,笑着对他说,“孔乙己,你又偷了代码罢!”但他这回却不十分分辩,单说了一句“不要取笑!”“取笑?要是不偷,怎么会被裁掉,连电脑都被没收了?”孔乙己低声说道,“是……是项目黄了,意外,意外……”他的眼色,很像恳求掌柜,不要再提。此时已经聚集了几个人,便和掌柜都笑了。我温了面,端出去,放在门槛上。他从破衣袋里摸出四块钱,放在我手里,见他满手是泥,原来他便用这手走来的。不一会,他吃完面,便又在旁人的说笑声中,坐着用这手慢慢走去了。 自此以后,又长久没有看见孔乙己。到了年关,掌柜取下粉板说,“孔乙己还欠十九块钱呢!”到第二年的端午,又说“孔乙己还欠十九块钱呢!”到中秋可是没有说,再到年关也没有看见他。 我到现在终于没有见——大约孔乙己的确是“优化”掉了。 |
18
moefishtang 3 天前 ![]() |
19
dddd1919 3 天前
@kyuuseiryuu #3 看完了吧,看不懂吧,付费订阅吧
|
![]() |
20
janus77 3 天前
看懂了,一个问题:需求频繁变化的时候咋办
|
21
kneo 3 天前 ![]() 想钱想疯了吧。
|
![]() |
22
qping 3 天前
这不就是响应式么,和 vue watch/reactive 有什么区别
|
23
hefish 3 天前
op 的思想非常先进,而且只收 1 元,实在是太便宜了,应该多收一点,这么优秀的思想,实在是让我醍醐灌顶。。。 我顿悟了。。。
我忽然明白了自己是谁。。。 我忽然明白了自己来自哪里。。。 我忽然明白了自己要去往哪里。。。 这多亏 op 的思想。。。 你滴盐,我滴醋。。。 潮汕民粗粗义人民共火锅,满塞! |
![]() |
24
Chuckle 3 天前
这么多规则符号,让我想起了 mongodb 的一堆管道符,不是美好的体验,记不住的。想更好处理副作用,但这样搞,别说花钱学了,用 setTimeout 去避免死循环。。。。。。其实有个东西叫 rxjs ,很好用。
|
![]() |
25
iorilu 3 天前
别随便发明所谓新方法
如果你真有信心, 建议用你这个方法改写一个知名得库, 如果你改的好, 比如性能大增, 或者代码减少 70%, 那可以再 来吹 |
![]() |
26
luotianyi0712 3 天前
好抽象,别整这些花里胡哨的的,以实用性为主
|
27
xuld 2 天前
既然你的方法省时又省力,为啥你自己开源的两个仓库的代码还是一坨 vue 的代码
|
![]() |
28
lizy0329 2 天前
成功学学多了吧?
|
29
lnbiuc 2 天前
有一种被卖脑白金的感觉
|