无代码开发究竟是不是伪需求?

Hnr每天发布大量与生活相关的资讯平台

作者 | Alex HudsonHnr每天发布大量与生活相关的资讯平台

译者 | 风车云马,责编 | 唐小引Hnr每天发布大量与生活相关的资讯平台

封图 | 付费自东方 ICHnr每天发布大量与生活相关的资讯平台

最近几年里越来越流行一句话,“2020 年将是无代码的一年”。这意味着你即使不是软件开发人员,也可以编写业务逻辑甚至整个应用程序。这样做固然有一定的好处,有些“无代码”工具确实很强大,但我也认为这是不大可能的。Hnr每天发布大量与生活相关的资讯平台

为什么会有“No Code”?Hnr每天发布大量与生活相关的资讯平台

从表面上看,“不用代码”的原因是显而易见的:软件开发人员成本昂贵,供不应求,而且软件本身的开发也是需要周期的,后期还要根据需求变化进行调整,并且运行和维护的成本都很高。Hnr每天发布大量与生活相关的资讯平台

然而对软件的需求是与日俱增的。现代数字化企业需要大量的软件,大部分都是高度定制的。Hnr每天发布大量与生活相关的资讯平台

如果我们可以创建数字业务,甚至数字产品,那不是更好吗? 或许一开始新技术很难使用,但随着时间的推移会变得更容易获得。Hnr每天发布大量与生活相关的资讯平台

将业务流程转换到软件领域主要有两个明显的好处:Hnr每天发布大量与生活相关的资讯平台

“变更控制”成为一个软件问题,而不是人员问题。您仅仅做一个软件发布,而不需要通过大量的人员再培训,就可以改变现有的流程或引入新的流程。从而实现更快地回滚或迭代。 创新使企业与众不同,尤其是企业的竞争对手也在做同样的产品,将业务流程转换到软件领域,这对一些企业来说是好事,但大多数企业不想从事软件产品服务。

许多企业试图通过数字化转型来获得这些好处,但都失败了。你会突然发现公司会变成(至少在某种程度上)一个软件开发公司,而大多数公司都不擅长这个! 虽然软件环境具有无限的可能性,但要有足够的资源(时间、金钱、人员),大多数人都会梦想各种可能性,但在实践过程中受到很多限制。 Hnr每天发布大量与生活相关的资讯平台

“无代码”是什么?Hnr每天发布大量与生活相关的资讯平台

“无代码”意味着软件开发不需要编写代码。人们可以在某个“更高的层次”上进行操作,在这个层次上,开发要简单得多,但最终的结果是相同的。Hnr每天发布大量与生活相关的资讯平台

具体来说,按照计算机编程语言的语法形式编写业务逻辑是令人讨厌的。打个比方:软件开发人员就像汽车修理工一样,了解引擎的内部。但大多数人只需要能够驾驶汽车,会使用方向盘和一些踏板就行。随着时间的推移,我们不断提高了机械化程度。有人可能会喜欢手动挡,但大多数人更喜欢自动变速箱,这样驾驶我们就让它简化了!Hnr每天发布大量与生活相关的资讯平台

简单的抽象Hnr每天发布大量与生活相关的资讯平台

在这个行业的早期试图简化编程就已经开始了:BASIC 是一种尝试,它允许人们用看起来像英语的语言来编写软件,这也是非常成功的。Hnr每天发布大量与生活相关的资讯平台

然而,抽象作为编码系统的一个关键概念,它往往不会过于简化:实际上,许多开发人员都在积极地尝试确保代码足够具体,使其易于理解。Hnr每天发布大量与生活相关的资讯平台

简单的语法Hnr每天发布大量与生活相关的资讯平台

主要的问题是编写文本,已经有人尝试简化语法甚至完全去掉——有许多图形开发系统。Hnr每天发布大量与生活相关的资讯平台

这些语法的简化也会带来表达的问题。一旦它们足够简单,可以快速掌握,它们就不再具有足够的表达能力,无法在许多场景中使用。还有些计算机语言专注于某个应用程序领域,称为领域特定语言(dsl)。但这些语言很少有真正在开发中获得成功的,主要是因为它们再次使事情变得极其复杂。Hnr每天发布大量与生活相关的资讯平台

配置代码Hnr每天发布大量与生活相关的资讯平台

许多不会写代码的人正在通过整合现成的应用程序来构建重要的系统。使用像 Zapier 这样的工具可以更直接地做到这一点,这些工具可以广泛地集成到不同的系统中。Hnr每天发布大量与生活相关的资讯平台

这种情况有两方面的原因。首先,您已经将逻辑扩展到各种不同的系统中,因此很难再对整个应用程序进行梳理。Hnr每天发布大量与生活相关的资讯平台

其次,逻辑是通过配置来实现,而不是代码。程序员经常面临这样的两难境地:我们是信任外部系统并投入大量的配置工作,还是尝试自己处理更多的逻辑?Hnr每天发布大量与生活相关的资讯平台

无论应用程序如何扩展,逻辑不会消失。即使使用 Zapier 规则进行连接,也不会消除任何维护的成本或负担。Hnr每天发布大量与生活相关的资讯平台

代码的等价性Hnr每天发布大量与生活相关的资讯平台

开发人员仍然使用纯文本是有原因的——主要是为了提高效率和清晰的表达。当然,如果出现了更简洁的工具,许多(不是所有!)开发人员会像扔热石头一样丢掉文本。Hnr每天发布大量与生活相关的资讯平台

但是无论以什么方式的逻辑表达,都不会减少所描述事物本身的复杂性。就比如编写“two”和“2”,表示相同的东西。Hnr每天发布大量与生活相关的资讯平台

假想视觉开发环境中的过程是这样的:Hnr每天发布大量与生活相关的资讯平台

Hnr每天发布大量与生活相关的资讯平台

完全等价于:Hnr每天发布大量与生活相关的资讯平台

defprocess_email( self, address) : Hnr每天发布大量与生活相关的资讯平台

ifnotself.validate_email(address): Hnr每天发布大量与生活相关的资讯平台

raise InvalidDataException( _( "Address is not valid")) Hnr每天发布大量与生活相关的资讯平台

self.store(address) Hnr每天发布大量与生活相关的资讯平台

在第一个例子中,我需要知道该视觉环境系统是如何工作的。在第二个例子中,我需要了解一种语言和开发环境。但这两种技能都是很容易获得的。它们之间的共同点是,我要理解逻辑是什么,以及它将如何工作。Hnr每天发布大量与生活相关的资讯平台

要理解软件——任何类型的软件——你需要能够在头脑中对所表示的系统建模,并基于此对它在不同场景下的工作方式进行预测。Hnr每天发布大量与生活相关的资讯平台

这正是许多人在现代数字设备上遇到麻烦的原因。问题是由于硬件的输入按钮很少,但内部工作非常复杂:所以用户需要在他们的头脑中保留设备内部状态的高级模型。Hnr每天发布大量与生活相关的资讯平台

有些人认为这是一种不可习得的技能。如果你不能推断出某物的内部状态,那么很可能将无法编程。我敢说没有大量的实践,你肯定做不好。坦率地说,逻辑是文本的还是可视化的并不重要。Hnr每天发布大量与生活相关的资讯平台

“无代码”就不好吗?Hnr每天发布大量与生活相关的资讯平台

绝对不是。Hnr每天发布大量与生活相关的资讯平台

在 70 多年的可编程计算机的发展历史中,我们仍然在使用 20 年前的开发工具,这才是最大的不幸。Hnr每天发布大量与生活相关的资讯平台

当然,我们仍然应该努力改善我们的语言和环境。看以下两段代码:Hnr每天发布大量与生活相关的资讯平台

# include<string.h>Hnr每天发布大量与生活相关的资讯平台

# include<stdlib.h>Hnr每天发布大量与生活相关的资讯平台

char* add_domain_name( char*source) { Hnr每天发布大量与生活相关的资讯平台

constsize_tsize = 1024; Hnr每天发布大量与生活相关的资讯平台

char*dest = malloc(size+ 1); Hnr每天发布大量与生活相关的资讯平台

strncpy(dest, source, size); Hnr每天发布大量与生活相关的资讯平台

strncat(dest, "@example.com", size); Hnr每天发布大量与生活相关的资讯平台

returndest; Hnr每天发布大量与生活相关的资讯平台

} Hnr每天发布大量与生活相关的资讯平台

以及这个:Hnr每天发布大量与生活相关的资讯平台

functionadd_domain_name(username: string): string{ Hnr每天发布大量与生活相关的资讯平台

returnusername + "@example.com"; Hnr每天发布大量与生活相关的资讯平台

} Hnr每天发布大量与生活相关的资讯平台

第一个例子是 C(发明于 1972 年左右),第二个例子是 40 年后的 Type(发布于 2012 年)。它们在很多地方有大致相同的语法,但是 Type 比 C 高级得多。特别是,开发人员不需要担心内存分配、字符串的编码或其他事情。Hnr每天发布大量与生活相关的资讯平台

实际上,对于足够大的应用程序,大部分业务逻辑将在相当高的级别上实现,而且语言之间的差异将更加不明显。Hnr每天发布大量与生活相关的资讯平台

在实践中,“无代码”的不足之处?Hnr每天发布大量与生活相关的资讯平台

目前有一些非常高级的系统,例如,您可以在 Salesforce Cloud 中定义非常复杂的软件,而不需要编写任何代码。它包含了可视化编程、规则设置和配置。Hnr每天发布大量与生活相关的资讯平台

对于其他人的平台,实际上根本无法实现所需的功能。您常常需要构建复杂的解决方案来弥补功能缺失。举个例子,我曾经使用过一个平台,它有一个电子邮件自动回复器,但是不能放在垃圾邮件检查器中。使用它意味着产生垃圾邮件反向散射,这是许多电子邮件系统迅速禁止的接收方式。Hnr每天发布大量与生活相关的资讯平台

假设它能根据您的需求完全实现特性,那么随着项目的进展,在产品化方面就会遇到麻烦。变更控制就是一个明显的例子。Hnr每天发布大量与生活相关的资讯平台

我们习惯于使用代码创建更改,然后将其部署到单独的测试环境中,最后部署到生产环境中(要逐步地启用该特性)。如果出现错误,我们可以快速地处理它们并解决问题,而不会影响到所有用户。Hnr每天发布大量与生活相关的资讯平台

由于系统“无代码”,非生产环境中的测试往往很难或不可能实现。Salesforce 有一些优秀的工具可用来完成这项工作,即使在那样的环境中,这也是非常困难的。Hnr每天发布大量与生活相关的资讯平台

“无代码”的成功之处?Hnr每天发布大量与生活相关的资讯平台

质疑对软件的需求也无非好坏,“无代码”系统对于概念验证阶段有很好的指导作用。Hnr每天发布大量与生活相关的资讯平台

作为非 IT 系统,它们在获取实际业务设计输入和反馈方面也非常有用。虽然我们谈论了很多关于敏捷开发的内容,但是我很少看到开发团队中的最终用户。Hnr每天发布大量与生活相关的资讯平台

有许多工具,虽然本身不是“没有代码”,但也允许用户生成更多的技术输出。我最喜欢的例子是商业智能工具 Looker,在不同的细分市场中还有许多类似的工具。我发现它们的模型开发都是纯文本的,都使用常规的软件开发工具,这非常有趣。Hnr每天发布大量与生活相关的资讯平台

总结Hnr每天发布大量与生活相关的资讯平台

我认为“无代码”作为大多数主流开发的替代方案是一个白日梦。在过去的 70 年里,还没有出现任何先进的技术让我们敢于取代基于文本的开发。Hnr每天发布大量与生活相关的资讯平台

作为一名软件开发 CTO,虽然我认为各种“无代码”工具非常有价值,但必须谨慎部署。它们不是软件开发的万能包,很可能使情况变得更糟而不是更好。Hnr每天发布大量与生活相关的资讯平台

对我来说,最理想的用户是“超级用户”:那些已经非常熟练的 IT 用户,他们可能会设计出更好的工具,给他们一个交付的环境是极其重要的,但这应该是我们技术人员的共同努力——“有/无代码”双方不应该对立。Hnr每天发布大量与生活相关的资讯平台

原文:The 'No Code' DelusionHnr每天发布大量与生活相关的资讯平台

链接:https://www.alexhudson.com/2020/01/13/the-no-code-delusion/Hnr每天发布大量与生活相关的资讯平台

作者:Alex Hudson,Fractional CIO/CTO at Freeman ClarkeHnr每天发布大量与生活相关的资讯平台

译者:风车云马Hnr每天发布大量与生活相关的资讯平台

【END】Hnr每天发布大量与生活相关的资讯平台

你觉得无代码开发靠谱么?Hnr每天发布大量与生活相关的资讯平台

也许你还喜欢

ups不间断电源原理分析

当前在电源市场上,所销售的电源类型较多,不同类型的电源,相应的功能与作用有所不同。在超

空间背景音乐怎么添加图文教程分享

怎样免费添加QQ空间背景音乐其实步骤也不多,很简单,主要有以下几个步骤,详情如下

万能转换器破解版怎么用?具体操作方

万能格式转换器是一款功能强大的格式转换软件,音频、视频、图片、光驱设备都可以通过万

rmvb转mp4格式转换器图文教程

在我们日常娱乐和日常工作中,现在网络上一些高清的视频一般都是rmvb格式的,而一些播放设

支付宝网络系统异常怎么解决

支付宝支付出现网络系统异常是因为IE浏览器设置Internet选项不恰当而导致的,去重新设置

win10蓝牙驱动破解版安装图文教程

win10蓝牙驱动怎么安装?请看下面具体操作方法。

微孔抛光镜面加工计数详解

一般来说,对于小孔微孔进行抛光,传统的加工方法可能会导致孔洞磨损,或者加工效果不理想。

短视频内容管理助手有哪些?怎么好用

随着短视频的普及,越来越多的人开始将大量的时间和精力投入到短视频的制作和分享中。因

模具设计学习知识分享

今天,我想谈谈我在模具设计CAD方面的一些心得体会。作为一个从事这个行业多年的工程师,

seo优化排名软件详细介绍

1. SEMrush SEMrush,一款广受好评的SEO神器,被誉为业内最佳的SEO分析工具。功能包括全