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

一种省时省力的编程方式

  •  
  •   muchan92 ·
    muchan92 · 3 天前 · 4271 次点击

    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 = {} 这类不完整赋值)。
    29 条回复    2025-03-28 16:10:59 +08:00
    fov6363
        1
    fov6363  
       3 天前
    没看懂这个 github 的用途?看代码很难懂
    wyntalgeer
        2
    wyntalgeer  
       3 天前
    没看代码,请教一下如果属性移除,监听也会移除的吧?再加回来不会重复监听吧?
    kyuuseiryuu
        3
    kyuuseiryuu  
       3 天前   ❤️ 1
    看不懂,自娱自乐可以,真正工作没人陪你玩这个。
    LeeReamond
        4
    LeeReamond  
       3 天前   ❤️ 11
    编程圈从来不缺这种以为所有人都是傻逼,只有自己聪明逼的家伙。

    点开项目看了看,这么抽象的东西还要收费的我确实从来没见过。
    xFrye
        5
    xFrye  
       3 天前   ❤️ 1
    你们前端真会玩
    JoeDH
        6
    JoeDH  
       3 天前
    抽象
    neptuno
        7
    neptuno  
       3 天前
    写的太抽象了,建议先举一个实际业务场景,写一个低级程序员的代码,再把你的高级代码拿出来解释一下。这样大家就能看懂了。
    wxw752
        8
    wxw752  
       3 天前
    同意楼上的观点,没人花一块钱陪你过家家。
    lucasdev
        9
    lucasdev  
       3 天前
    啥意思,“在类型 A 上定义 b.c 的监听规则” 这不违反 “迪米特法则” 么

    看了下 op 的历史回复,这是在将哲学(神学?)应用到编程?
    w568w
        10
    w568w  
       3 天前   ❤️ 1
    计算机哲学民科
    slert
        11
    slert  
       3 天前   ❤️ 2
    可以写出无法维护的代码
    fcbwalk
        12
    fcbwalk  
       3 天前
    闲者模式编程思想
    Opportunity
        13
    Opportunity  
       3 天前
    还需要手动声明依赖这就已经和“省时省力”没关系了吧。。
    molvqingtai
        14
    molvqingtai  
       3 天前
    我缓缓打出一个 ❓
    shadowyue
        15
    shadowyue  
       3 天前
    这个项目居然从 2020 年开始迭代了这么久。。。
    svenzhao
        16
    svenzhao  
       3 天前   ❤️ 1
    ????? 粗鲁的看了一下 你发明了一个残次品 mobx 双绑?????? 在家哲学了两天 觉得自己悟道了???
    悟出了 观察者模式和发布订阅模式????

    知不知道 你所谓的悟道 心智负担有多大吗?

    当你项目"悟道"了 100 多条交叉订阅的时候 你的小脑袋连数据流都捋不清楚!

    你所谓的传统写法 是这么些年大家工程实践后 总结的 单向 flow 为的就是确定 无根之水
    mumbler
        17
    mumbler  
       3 天前   ❤️ 2
    中关村软件园旁边的“码农面馆”的格局,是和别处不同的:都是当街一个曲尺形的大柜台,柜里面预备着热水,可以随时下面。写代码的人,傍午傍晚散了工,每每花十来块钱,买一碗面,——这是十多年前的事,现在要涨到三十多了,——靠柜外站着,热热的吃了休息;倘肯多花几块,便可以买一碟凉拌海带丝或者拍黄瓜,做下饭物了,如果出到几十块,那就能买一样荤菜,什么酱肘子、猪头肉之类,但这些顾客,多是穿格子衫的短工,大抵没有这样阔绰。只有那些穿着印有大厂 Logo 的 T 恤,或者脖子上挂着工牌的,才踱进店面隔壁的房子里,要面要菜,慢慢地坐着吃。

    我从十二岁起,便在村口的“码农面馆”里当伙计,掌柜说,我样子太傻,怕侍候不了那些“高级工程师”,就在外面做点事罢。外面的格子衫主顾,虽然容易说话,但唠唠叨叨缠夹不清的也很不少。他们往往要亲眼看着面从锅里捞出,看过碗里的牛肉是不是太少,又亲看将作料放在碗里,然后放心:在这严重监督之下,羼水也很为难。所以过了几天,掌柜又说我干不了这事。幸亏荐头的情面大,辞退不得,便改为专管温酒……哦不,是专管给顾客连 WiFi 和充电的一种无聊职务了。

    我从此便整天的站在柜台里,专管我的职务。虽然没有什么失职,但总觉得有些单调,有些无聊。掌柜是一副凶脸孔,主顾也没有好声气,教人活泼不得;只有孔乙己到店,才可以笑几声,所以至今还记得。

    孔乙己是站着吃面而穿“冲锋衣”的唯一的人。他身材很高大;青白脸色,皱纹间时常夹些伤痕;一部乱蓬蓬的花白的头发。穿的虽然是冲锋衣,可是又脏又破,似乎十多年没有补,也没有洗。他对人说话,总是满口“底层逻辑”、“代码规范”,叫人半懂不懂的。因为他姓孔,别人便从描红纸上的“上大人孔乙己”这半懂不懂的话里,替他取下一个绰号,叫作孔乙己。孔乙己一到店,所有吃面的人便都看着他笑,有的叫道,“孔乙己,你脸上又添上新 Bug 了!”他不回答,对柜里说,“温一碗面,要一份拍黄瓜。”便排出九块大洋……哦不,是掏出手机扫了九块钱的码。他们又故意的高声嚷道,“你一定又偷人家公司的代码了!”孔乙己睁大眼睛说,“你怎么这样凭空污人清白……”“什么清白?我前天亲眼见你在 GitHub 上 Fork 了人家的库,改了俩变量名就说是自己写的,被原作者挂起来锤。”孔乙己便涨红了脸,额上的青筋条条绽出,争辩道,“借鉴不能算偷……借鉴!……程序员的事,能算偷么?”接连便是难懂的话,什么“开源精神”,什么“站在巨人的肩膀上”之类,引得众人都哄笑起来:店内外充满了快活的空气。

    听人家背地里谈论,孔乙己原来也写过代码,但终于没有当上架构师,又不会“向上管理”;于是愈过愈穷,弄到将要讨饭了。幸而写得一手好代码(虽然是过时的技术栈),便替人家做些外包,写点小脚本,换一碗饭吃。可惜他又有一样坏脾气,便是好喝……哦不,是好高骛远,总想搞“颠覆式创新”。坐不到几天,便连人带电脑,一齐失踪。如是几次,叫他做外包的人也没有了。孔乙己没有法,便免不了偶然做些“借鉴”的事。但他在我们店里,品行却比别人都好,就是从不拖欠;虽然间或没有现钱,暂时记在账上,但不出一月,定然还清,从粉板上拭去了孔乙己的名字。

    孔乙己喝过半碗面,涨红的脸色渐渐复了原,旁人便又问道,“孔乙己,你当真会写代码么?”孔乙己看着问他的人,显出不屑置辩的神气。他们便接着说道,“你怎的连个 P7 也没混上呢?”孔乙己立刻显出颓唐不安模样,脸上笼上了一层灰色,嘴里说些话;这回可是全是“性能优化”、“内存管理”、“并发编程”之类,一些不懂了。在这时候,众人也都哄笑起来:店内外充满了快活的空气。

    在这些时候,我可以附和着笑,掌柜是决不责备的。而且掌柜见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向孩子说话。有一回对我说道,“你写过代码么?”我略略点一点头。他说,“写过代码,……我便考你一考。那个‘i++’和‘++i’,怎样区分的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能区分罢?……我教给你,记着!这些知识应该记着。将来做项目经理的时候,优化代码要用。”我暗想我和项目经理的等级还很远呢,而且我们掌柜也从不让代码跑得更快;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不就是先赋值再自增和先自增再赋值的区别么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……‘i++’和‘++i’还有四样写法,你知道么?”我愈不耐烦了,努着嘴走远。孔乙己刚用指甲蘸了面汤,想在柜上写代码,见我毫不热心,便又叹一口气,显出极惋惜的样子。

    有几回,邻居孩子听得笑声,也赶热闹,围住了孔乙己。他便给他们一人发一个 Bug 。孩子们领完 Bug ,仍然不散,眼睛都望着他的电脑包。孔乙己着了慌,伸开五指将电脑包罩住,弯腰下去说道,“不多了,我已经不多了。”直起身又看一看 Bug ,自己摇头说,“不多不多!多乎哉?不多也。”

    孔乙己是这样的使人快活,可是没有他,别人也便这么过。

    有一天,大约是中秋前的两三天,掌柜正在慢慢的结账,取下粉板,忽然说,“孔乙己长久没有来了。还欠十九块钱呢!”我才也觉得他的确长久没有来了。一个吃面的人说道,“他怎么会来?……他被打断腿了。”掌柜说,“哦!”“他总仍旧是偷。这一回,是自己发昏,竟偷到大厂的核心代码库里去了。人家的代码库,偷得的么?”“后来怎么样?”“怎么样?先写检查,后来是谈话,再后来是开了,听说还吃了官司。”“后来呢?”“后来打官司输了,赔了一大笔钱。”“赔了钱怎样呢?”“怎样?……谁晓得?许是‘优化’掉了。”掌柜也不再问,仍然慢慢的算他的账。

    中秋过后,秋风是一天凉比一天,看看将近初冬;我整天的靠着暖气,也须穿上棉袄了。一天的下半天,没有一个顾客,我正合了眼坐着。忽然间听得一个声音,“温一碗面。”这声音虽然极低,却很耳熟。看时又全没有人。站起来向外一望,那孔乙己便在柜台下对了门槛坐着。他脸上黑而且瘦,已经不成样子;穿一件破夹袄,盘着两腿,下面垫一个蒲包,用草绳在肩上挂住;见了我,又说道,“温一碗面。”掌柜也伸出头去,一面说,“孔乙己么?你还欠十九块钱呢!”孔乙己很颓唐的仰面答道,“这……下回还清罢。这一回是现钱,面要好。”掌柜仍然同平常一样,笑着对他说,“孔乙己,你又偷了代码罢!”但他这回却不十分分辩,单说了一句“不要取笑!”“取笑?要是不偷,怎么会被裁掉,连电脑都被没收了?”孔乙己低声说道,“是……是项目黄了,意外,意外……”他的眼色,很像恳求掌柜,不要再提。此时已经聚集了几个人,便和掌柜都笑了。我温了面,端出去,放在门槛上。他从破衣袋里摸出四块钱,放在我手里,见他满手是泥,原来他便用这手走来的。不一会,他吃完面,便又在旁人的说笑声中,坐着用这手慢慢走去了。

    自此以后,又长久没有看见孔乙己。到了年关,掌柜取下粉板说,“孔乙己还欠十九块钱呢!”到第二年的端午,又说“孔乙己还欠十九块钱呢!”到中秋可是没有说,再到年关也没有看见他。

    我到现在终于没有见——大约孔乙己的确是“优化”掉了。
    moefishtang
        18
    moefishtang  
       3 天前   ❤️ 1
    《受孔子的影响》
    dddd1919
        19
    dddd1919  
       3 天前
    @kyuuseiryuu #3 看完了吧,看不懂吧,付费订阅吧
    janus77
        20
    janus77  
       3 天前
    看懂了,一个问题:需求频繁变化的时候咋办
    kneo
        21
    kneo  
       3 天前   ❤️ 2
    想钱想疯了吧。
    qping
        22
    qping  
       3 天前
    这不就是响应式么,和 vue watch/reactive 有什么区别
    hefish
        23
    hefish  
       3 天前
    op 的思想非常先进,而且只收 1 元,实在是太便宜了,应该多收一点,这么优秀的思想,实在是让我醍醐灌顶。。。 我顿悟了。。。
    我忽然明白了自己是谁。。。
    我忽然明白了自己来自哪里。。。
    我忽然明白了自己要去往哪里。。。
    这多亏 op 的思想。。。

    你滴盐,我滴醋。。。
    潮汕民粗粗义人民共火锅,满塞!
    Chuckle
        24
    Chuckle  
       3 天前
    这么多规则符号,让我想起了 mongodb 的一堆管道符,不是美好的体验,记不住的。想更好处理副作用,但这样搞,别说花钱学了,用 setTimeout 去避免死循环。。。。。。其实有个东西叫 rxjs ,很好用。
    iorilu
        25
    iorilu  
       3 天前
    别随便发明所谓新方法

    如果你真有信心, 建议用你这个方法改写一个知名得库, 如果你改的好, 比如性能大增, 或者代码减少 70%, 那可以再
    来吹
    luotianyi0712
        26
    luotianyi0712  
       3 天前
    好抽象,别整这些花里胡哨的的,以实用性为主
    xuld
        27
    xuld  
       2 天前
    既然你的方法省时又省力,为啥你自己开源的两个仓库的代码还是一坨 vue 的代码
    lizy0329
        28
    lizy0329  
       2 天前
    成功学学多了吧?
    lnbiuc
        29
    lnbiuc  
       2 天前
    有一种被卖脑白金的感觉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1216 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:49 · PVG 07:49 · LAX 16:49 · JFK 19:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.