我们离像乐高积木那样编程还有多远? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制贴 AI 生成的内容
pythonee
V2EX    程序员

我们离像乐高积木那样编程还有多远?

  •  
  •  
    pythonee 2021-11-14 09:00:45 +08:00 8051 次点击
    这是一个创建于 1428 天前的主题,其中的信息可能已经有所发展或是发生改变。
    记得刚学编程的时候,老师都说要低耦合高内聚
    后面接触了 OO ,好像也讲了很多模块化的设计方法,比如依赖反转
    工作后,又有了微服务等划分系统模块的方法

    但实际上,各个模块间的集成并非像拼积木那么简单,现在我们离像乐高积木那样编程更近了吗
    在使用一些 vim 、emacs 插件的时候,偶尔会有一种积木组合的感觉,不知大家还见过哪些模块化编程、构造的软件呢
    43 条回复    2021-11-16 16:04:19 +08:00
    jackmod
        1
    jackmod  
       2021-11-14 09:07:27 +08:00 via Android   2
    企业的需求经常变,代码最终都会变成面条。煮面条就是比捏饭团省事。
    事物喜欢归于破坏和混沌,积木式始终是努力的方向,而无所谓远近。
    XTTX
        2
    XTTX  
       2021-11-14 09:09:59 +08:00
    https://github.com/ardanlabs/service

    foundation- 底层 methods, 只要是 web app 都可以 copy-paste
    business- 专属的业务逻辑、数据库、中间件
    app- web app 入口,handler

    最近好像又有大变化了。只要用顺了这个结构,新项目基本上就是缝缝补补,foundation 不用动,business 里的 CRUD 逻辑也是复制粘贴改,app 里的 handler 也差不多
    XTTX
        3
    XTTX  
       2021-11-14 09:17:16 +08:00
    如果说积木的话,我看过几眼的 nest.js 里的各种 decorator 是真的像。一些常见的功能 “@xxxxx”就搞定了
    coderluan
        4
    coderluan  
       2021-11-14 09:28:56 +08:00   10
    乐高其实远比你想的复杂,你弄个大点的套装,然后不看说明试试,编程其实也一样,达到一定规模,都得靠人脑和经验。
    jasonkayzk
        5
    jasonkayzk  
       2021-11-14 09:52:49 +08:00   13
    乐高搭了一万层,这时候产品过来告诉你,第 1 层和第 6666 层要大改;
    watzds
        6
    watzds  
       2021-11-14 10:08:31 +08:00   1
    等这个世界像像乐高积木一样单纯的时候,就能实现
    rpman
        7
    rpman  
       2021-11-14 10:11:29 +08:00   9
    感觉你没拼过难的乐高
    chendy
        8
    chendy  
       2021-11-14 10:23:11 +08:00   1
    简单的乐高比简单的程序简单
    复杂的程序比复杂的乐高简单
    其实道理都差不多,用最基本的单元拼出模块拼出大模块最后装一起
    mmrindextt
        9
    mmrindextt  
       2021-11-14 10:25:45 +08:00
    世界哪有那麽多确定的东西,乐高你就确定能拼出个东西来的
    ChefIsAwesome
        10
    ChefIsAwesome  
       2021-11-14 10:48:05 +08:00   1
    思维混乱,概念不清。作为程序员,你不仅是拼乐高的人,也是设计乐高的人。
    设计乐高比设计程序容易吗?不。
    lrzsw2008
        11
    lrzsw2008  
       2021-11-14 10:54:13 +08:00 via Android
    很多人在家不是不整理,但是要不了几天就会趋于一团
    Kinnice
        12
    Kinnice  
       2021-11-14 10:55:34 +08:00 via Android
    乐高的基础是 数百上千个各项参数确定基本模块
    编程的基础是 数千万个(不止)个性能,参数各异的函数
    makelove
        13
    makelove  
       2021-11-14 10:56:07 +08:00
    需求细节就是这么复杂多变对应的编码能简单得了?除非强人工智能发明出来自动细化需求并实现
    1194129822
        14
    1194129822  
       2021-11-14 11:05:17 +08:00   2
    乐高积木你以为简单?不需要学习?汇编对纸带打孔来说就是拼积木,高级语言对汇编也是拼积木,只是不需要学习所谓低一层的技术。你觉得现在开发软件简单吗?需求在发展,工具也有边际效益。
    cmdOptionKana
        15
    cmdOptionKana  
       2021-11-14 11:21:31 +08:00
    乐高简单的前提是:

    一个模型已经固定,批量生产,你买回来按图堆砌,基本上没有改动,用户一般也不会故意搞破坏。

    编程难是因为需求不断变化。

    如果像乐高那样设计固定不变,编程当然可以可视化拖拽完成,现在就可以做到,其实几十年前就能做到。
    msg7086
        16
    msg7086  
       2021-11-14 11:25:56 +08:00   5
    现在不就是像乐高一样了吗,不需要你去写汇编代码,一个 if 语句就代替了一大堆 CPU 指令,这还不乐高吗……
    wolfie
        17
    wolfie  
       2021-11-14 11:35:05 +08:00
    中台系统?
    基础服务想不出与乐高对应。
    kiracyan
        18
    kiracyan  
       2021-11-14 11:36:13 +08:00
    现在的各种组件 中间件已经很像搭乐高了
    ch2
        19
    ch2  
       2021-11-14 11:42:27 +08:00
    编程本来就是乐高,只不过零件实在太多了,乐高也变得难搭了
    xumng123
        20
    xumng123  
       2021-11-14 12:20:43 +08:00 via iPhone
    乐高挺难的,将几盒大规模的乐高混在一起,没有图纸的情况下,拼一个试一试?

    现在编程已经是乐高式的拼装了,关键是要提前设计好怎么拼装
    laoyur
        21/span>
    laoyur  
       2021-11-14 14:08:47 +08:00   17

    乐高小车车
    hdiwhsg
        22
    hdiwhsg  
       2021-11-14 14:16:43 +08:00
    @laoyur 被秀到了
    nicknick
        23
    nicknick  
       2021-11-14 14:56:49 +08:00 via Android
    @jackmod 哈哈,正解。当你觉得你的框架多么爽,多么合理,多么智能的时候,人家明天来一句,能不能把那几个框变成灰色的呀(意思是不可编辑,流程权限)或者后天来一句不好用,还是换回来吧。
    xylxAdai
        24
    xylxAdai  
       2021-11-14 15:03:33 +08:00
    定制化和标准化就是偏离的,你的产品越定制越个人化,越不可能标准化,你的产品越标准化,后面改起来就会越痛苦。
    特别是当一个产品用到了成千上万个标准化模块的时候,这时候对每个模块的需求又不停的变化,实际上我们现在的标准化已经不错了,问题是需求太过于个人。
    marffin
        25
    marffin  
       2021-11-14 16:24:00 +08:00
    所以还是有不少人希望做个简单的 crud boy 的
    pengtdyd
        26
    pengtdyd  
       2021-11-14 17:19:00 +08:00
    搭积木的这种方式是乌托邦,永远只能活在想象中。现实是想要追求最极致的用户体验,永远需要优化优化再优化,优化意味着是某种高度的定制,精心的雕琢每一个细节,没有任何多余的部分,你觉得搭积木能达到这种目标吗。
    wanguorui123
        27
    wanguorui123  
       2021-11-14 19:02:06 +08:00
    前端组件化就是很好的搭积木,后端其实也可以搭积木,但是完全减少模块的耦合,需要研发团队的心志必须非常清晰,不然迟早写成屎山,你能做到代码的低耦合其他人的水平不一定行,最后把你的代码搅合成屎山。
    mengzhuo
        28
    mengzhuo  
       2021-11-14 19:59:49 +08:00
    乐高就有图形编程的,搜索 MINDSTORMS
    但是你用过之后,就会想念各种编程语言……因为图形化很难表达复杂逻辑
    Jooooooooo
        29
    Jooooooooo  
       2021-11-14 20:18:21 +08:00
    工程难度不在于写代码.
    yunyuyuan
        30
    yunyuyuan  
       2021-11-14 20:35:59 +08:00
    @laoyur 这比写代码难:)
    cs419
        31
    cs419  
       2021-11-14 21:45:48 +08:00
    这类东西挺多的啊
    游戏:dota 的地图 我的世界
    css: Tailwind
    淘宝、京东 对商家来说
    各种云服务 不都是么
    ZRS
        32
    ZRS  
       2021-11-14 22:27:15 +08:00
    永远在路上
    timothyye
        33
    timothyye  
       2021-11-14 22:34:19 +08:00
    不是已经有了吗,参考: https://scratch.mit.edu/
    哈哈
    jiayong2793
        34
    jiayong2793  
       2021-11-15 00:12:11 +08:00
    中国企业不会给你时间封装的
    gengchun
        35
    gengchun  
       2021-11-15 04:54:55 +08:00
    大概时间点就是以后你买汽车,车商给你一堆乐高让你拼。拼完直接上牌。

    差不多这个时候吧。
    putin541
        36
    putin541  
       2021-11-15 08:39:01 +08:00
    永远都不可能的。分久必合 合久必分
    Rheinmetal
        37
    Rheinmetal  
       2021-11-15 08:44:48 +08:00
    搭积木想象力不行 类似自动寻路的 copilot 了解一下
    1018ji
        38
    1018ji  
       2021-11-15 09:08:58 +08:00
    你不失业吗
    yinzhili
        39
    yinzhili  
       2021-11-15 09:18:07 +08:00
    个性化需求太多,不可能这样的
    betainCao
        41
    betainCao  
       2021-11-15 10:23:19 +08:00
    我觉得现在的微服务不就是这种模式么?或者说比乐高的模式更加复杂。把每个服务想想为乐高的每个组件,组装起来才能提供一个完整的服务
    standin000
        42
    standin000  
       2021-11-15 17:53:17 +08:00
    一直是乐高积木编程,就是积木太多了点,:D
    fxxkgw
        43
    fxxkgw  
       2021-11-16 16:04:19 +08:00
    我司就有个项目叫乐高 实现你想的功能 支持这个项目的有 1000+容器 可想复杂度了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     867 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:41 PVG 03:41 LAX 12:41 JFK 15:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86