我们离像乐高积木那样编程还有多远?
记得刚学编程的时候,老师都说要低耦合高内聚
后面接触了 OO ,好像也讲了很多模块化的设计方法,比如依赖反转
工作后,又有了微服务等划分系统模块的方法
但实际上,各个模块间的集成并非像拼积木那么简单,现在我们离像乐高积木那样编程更近了吗
在使用一些 vim 、emacs 插件的时候,偶尔会有一种积木组合的感觉,不知大家还见过哪些模块化编程、构造的软件呢
企业的需求经常变,代码最终都会变成面条。煮面条就是比捏饭团省事。
事物喜欢归于破坏和混沌,积木式始终是努力的方向,而无所谓远近。
github.com/ardanlabs/service
foundation- 底层 methods, 只要是 web app 都可以 copy-paste
business- 专属的业务逻辑、数据库、中间件
app- web app 入口,handler
最近好像又有大变化了。只要用顺了这个结构,新项目基本上就是缝缝补补,foundation 不用动,business 里的 CRUD 逻辑也是复制粘贴改,app 里的 handler 也差不多
如果说积木的话,我看过几眼的 nest.js 里的各种 decorator 是真的像。一些常见的功能 “@xxxxx”就搞定了
乐高其实远比你想的复杂,你弄个大点的套装,然后不看说明试试,编程其实也一样,达到一定规模,都得靠人脑和经验。
乐高搭了一万层,这时候产品过来告诉你,第 1 层和第 6666 层要大改;
等这个世界像像乐高积木一样单纯的时候,就能实现
感觉你没拼过难的乐高
简单的乐高比简单的程序简单
复杂的程序比复杂的乐高简单
其实道理都差不多,用最基本的单元拼出模块拼出大模块最后装一起
世界哪有那麽多确定的东西,乐高你就确定能拼出个东西来的
思维混乱,概念不清。作为程序员,你不仅是拼乐高的人,也是设计乐高的人。
设计乐高比设计程序容易吗?不。
很多人在家不是不整理,但是要不了几天就会趋于一团
乐高的基础是 数百上千个各项参数确定基本模块
编程的基础是 数千万个(不止)个性能,参数各异的函数
需求细节就是这么复杂多变对应的编码能简单得了?除非强人工智能发明出来自动细化需求并实现
乐高积木你以为简单?不需要学习?汇编对纸带打孔来说就是拼积木,高级语言对汇编也是拼积木,只是不需要学习所谓低一层的技术。你觉得现在开发软件简单吗?需求在发展,工具也有边际效益。
乐高简单的前提是:
一个模型已经固定,批量生产,你买回来按图堆砌,基本上没有改动,用户一般也不会故意搞破坏。
编程难是因为需求不断变化。
如果像乐高那样设计固定不变,编程当然可以可视化拖拽完成,现在就可以做到,其实几十年前就能做到。
现在不就是像乐高一样了吗,不需要你去写汇编代码,一个 if 语句就代替了一大堆 CPU 指令,这还不乐高吗……
中台系统?
基础服务想不出与乐高对应。
现在的各种组件 中间件已经很像搭乐高了
编程本来就是乐高,只不过零件实在太多了,乐高也变得难搭了
乐高挺难的,将几盒大规模的乐高混在一起,没有图纸的情况下,拼一个试一试?
现在编程已经是乐高式的拼装了,关键是要提前设计好怎么拼装
乐高小车车
被秀到了
哈哈,正解。当你觉得你的框架多么爽,多么合理,多么智能的时候,人家明天来一句,能不能把那几个框变成灰色的呀(意思是不可编辑,流程权限)或者后天来一句不好用,还是换回来吧。
定制化和标准化就是偏离的,你的产品越定制越个人化,越不可能标准化,你的产品越标准化,后面改起来就会越痛苦。
特别是当一个产品用到了成千上万个标准化模块的时候,这时候对每个模块的需求又不停的变化,实际上我们现在的标准化已经不错了,问题是需求太过于个人。
所以还是有不少人希望做个简单的 crud boy 的
搭积木的这种方式是乌托邦,永远只能活在想象中。现实是想要追求最极致的用户体验,永远需要优化优化再优化,优化意味着是某种高度的定制,精心的雕琢每一个细节,没有任何多余的部分,你觉得搭积木能达到这种目标吗。
前端组件化就是很好的搭积木,后端其实也可以搭积木,但是完全减少模块的耦合,需要研发团队的心志必须非常清晰,不然迟早写成屎山,你能做到代码的低耦合其他人的水平不一定行,最后把你的代码搅合成屎山。
乐高就有图形编程的,搜索 MINDSTORMS
但是你用过之后,就会想念各种编程语言……因为图形化很难表达复杂逻辑
工程难度不在于写代码.
这比写代码难:)
这类东西挺多的啊
游戏:dota 的地图 我的世界
css: Tailwind
淘宝、京东 对商家来说
各种云服务 不都是么
永远在路上
不是已经有了吗,参考: scratch.mit.edu/
哈哈
中国企业不会给你时间封装的
大概时间点就是以后你买汽车,车商给你一堆乐高让你拼。拼完直接上牌。
差不多这个时候吧。
永远都不可能的。分久必合 合久必分
搭积木想象力不行 类似自动寻路的 copilot 了解一下
你不失业吗
个性化需求太多,不可能这样的
我觉得现在的微服务不就是这种模式么?或者说比乐高的模式更加复杂。把每个服务想想为乐高的每个组件,组装起来才能提供一个完整的服务
一直是乐高积木编程,就是积木太多了点,:D
故事的起因:今天老妈来电话说手机丢了(华为手机),说手机解锁密码设置的很简单,同时她的某个理财产品密码和手机解锁密码一致,生怕偷手机的人把她钱的转移出去,吓得立马去营业厅补办手…
套餐 1:月租 49 元包含 70G 通用流量,700 分钟通话,500 兆家庭宽带,最多可以开 4 张 0.1 元副卡,套餐每 2 年自动续期。 套餐 2:月租 79 元包含…
在《这多年来我一直在钻研的技术》这篇文章中,我讲述了一下,我这么多年来一直在关注的技术领域,其中我多次提到了工业级的软件,我还以为有很多人会问我怎么定义工业级?以及一个高可用性…