QQ邮箱|什么是低代码(Low-Code)?( 三 )
不只是少写代码
回到最初那个直击心灵的小白问题:Low-Code中的“Low” , 到底是啥意思?答案已经显而易见:既不是指抽象程度很低(相反 , 低代码开发方式的抽象程度要比传统编程语言高一个level) , 也不是指代码很low(也相反 , 低代码所生成的代码一般都经过精心维护和反复测试 , 整体质量强于大部分手写代码) , 而是单纯的“少写代码” —— 只在少数需要的情况下才手写代码 , 其他大部分时候都能用可视化等非代码方式解决 。
再往深一点儿看 , 低代码不只是少写代码而已:代码写得少 , bug也就越少(正所谓“少做少错”) , 因此开发环节的两大支柱性工作“赶需求”和“修bug”就都少了;要测的代码少了 , 那么测试用例也可以少写不少;除了开发阶段以外 , 平台还覆盖了后续的应用构建、部署和管理 , 因此运维操作也更少了(Low-Code → Low-Ops) 。
然而 , 少并不是最终目的:如果单纯只是想达到少的效果 , 砍需求减人力、降低质量要求也是一样的 。 低代码背后的哲学 , 是少即是多(Less is More) , 或者更准确说是多快好省(Do More with Less) —— 能力更多、上线更快、质量更好 , 成本还更省 , 深刻践行了阿里“既要 , 又要 , 还要”的价值观精髓 。
平台的职责与挑战
上面说的是低代码给开发者提供的能力与吸引力 , 那么作为服务的提供方与应用的承载者 , 低代码开发平台自身应该承担怎样的职责 , 其中又会遇到多大的挑战?是否就一定要如阿里云所主张的那样 , “把复杂留给自己 , 把简单留给别人”?虽然这句话听起来很深明大义 , 但不知道大家有没有想过 , 为什么我们一定要抱着复杂不放 , 平白无故给自己找事?就不能直接干掉复杂 , 也给咱阿里云自己的员工留点简单吗?是工作太容易就体现不出来KPI价值了 , 还是家里的饭菜不如公司的夜宵香?
冥思苦想许久后 , 我从热力学第一定律中找到了答案:开发一个应用的总复杂度是恒定的 , 只能转移而不可能凭空消失 。 要想让开发者做的更少 , 安心享受简单的快乐 , 那么平台方就得做的更多 , 默默承担尽可能多的复杂度 。 就像一个满身腱子肉的杂技男演员 , 四平八稳地托举着在高处旋转与跳跃的女搭档;上面的人显得越轻盈越毫不费力 , 下面的人就得越稳重越用尽全力 。 当然 , 不是说上面的女演员就很轻松没压力 , 只是他们各自的分工不同 , 所承担的复杂度也不一样 。
根据《人月神话》作者Fred Brooks的划分 , 软件开发的复杂度可以划分为本质复杂度(Essential complexity )和偶然复杂度(Accidental complexity) 。 前者是解决问题时固有的最小复杂度 , 跟你用什么样的工具、经验是否丰富、架构好不好等都无关 , 而后者就是除此之外在实际开发过程中引入的复杂度 。 通常来说 , 本质复杂度与业务要解决的特定问题域强相关 , 因此这里我把它称为更好理解的“业务复杂度”;这部分复杂度不是任何开发方法或工具能解决的 , 包括低代码 。 而偶然复杂度一般与开发阶段的技术细节强相关 , 因此我也相应把它称为“技术复杂度”;而这一部分复杂度 , 恰好就是低代码所擅长且适合解决的 。
为开发者尽可能屏蔽底层技术细节、减少不必要的技术复杂度 , 并支撑其更好地应对业务复杂度(满足灵活通用的业务场景需求) , 这是身为一个低代码开发平台所应该尽到的核心职责 。
在尽到上述职责的同时 , 低代码开发平台作为一个面向开发者的产品 , 还需要致力于为开发者提供简单直观的极致开发体验 。 这背后除了巨大的工作量 , 还得能在“强大”和“易用”这两个很难两全其美的矛盾点之间 , 努力找到一个符合自己产品定位与目标客户需求的平衡点 —— 这也许是设计一个通用低代码开发平台所面临的最大挑战 。
推荐阅读
- 黑鲨4pro什么时候出多少钱,黑鲨4pro价格参数介绍
- 111完美邮箱上线,定位“年轻人的专属邮箱”
- 为什么有"iphone是穷人手机"的言论?用万元机的人真穷吗
- 极速鲨课堂89:主板名字带WIFI和不带有什么区别
- 比起007,996真的是福报!互联网大厂为什么加班都这么狠?
- vivo追求的本原设计是什么?X60 Pro给出了答案
- iQOO 7邀请函曝光“马”“鸭”“羊”代表什么
- 锐龙5000微代码更新:超频更稳、X570无需风扇
- 近期浙江引来这么多重磅级“帮手”传递什么信号?
- 都是为自己手机代言,为什么董明珠不行,雷军太行了?