看似冷冰冰的技术,无法引起人们对于美的联想,那技术之美从何谈起呢?
艺术和技术有很多共通之处
我常常惊叹于显微镜下雪花的形状,温度降低,原本柔软的水竟然变成了有规则的冰晶,这就是一种不易被察觉的美。
看似是一个技术描述,背后却隐藏着美,两者不分彼此。由此可见,技术之美随处可见,应用程序开发本身也不例外。
2022年10月14日,2022亚马逊云科技中国峰会第二天,Dev Day为开发者准备了一场技术美学公开课。
活动现场,UCCA尤伦斯当代艺术中心副馆长、UCCA集团艺术总监尤洋跟广大开发者分享艺术、抽象、美学与技术的关系问题,启发人们思考信息技术的抽象、简化与架构之美。
尤洋表示,艺术和技术有很多相同之处,艺术之美往往需要通过抽象来呈现,而技术之美也由抽象也呈现。
在尤洋看来,计算机硬件软件的发展历程,就是通过抽象追求技术之美的历程。
从控制通断的01开始,到汇编语言,再到常用的编程语言,到各类精妙的算法,于是就有了如今的各类应用。这是一个不断抽象的旅程,也是一个从繁到简、从笨重到轻巧的过程,实现了技术之美。
以“抽象”为关键词,看懂IT技术快速迭代的根本
类和对象是面向对象编程的核心,开发者用类来创建对象,依靠逻辑代码对输入的变量进行处理后输出一个结果,这就完成了一个基本功能模块。多个基本模块就可以构成一个组件,对功能进行封装的过程就是一次抽象。
任何一个应用都是多个组件的集合,组件拆分后又是一些更细粒度的组件或软件包。去年热议的Log4J就是一个软件包,软件包本身就是一堆功能的集合,软件包本身就是一次抽象,而是用软件包构建成应用的过程也是一次抽象。
优秀的程序开发者都善于抽象总结,以日志框架为例,常用的除了Log4J,还有JDKLog、LogBack和SLF4J。理论上,普通开发者也可以自己编写日志框架,但如果想加快开发速度,就可以直接用这些框架,这就是抽象的意义。
前人的积累为后来者所用,同时,不断加入新的创新,周而复始,无穷无尽的后来者能一直站到前人的肩膀上。
比如,20多年前,如果我要搭建一个电商网站,需要准备用于计算的服务器、用于数据传输的网络和用于数据存储的系统,还需要开发者来开发复杂的电商系统平台。
如果一切全靠自己,普通小团体根本无法完成如此浩大的工程。
而在如今的云计算时代,一个人分分钟就能搭建计算存储和网络等资源,分分钟构建应用开发和部署环境,分分钟构建起一个拥有多种功能的电商平台。
公有云服务将“抽象”推到了一个极致,而亚马逊云科技是其中的佼佼者。
亚马逊云科技的科技美学
在亚马逊云科技看来,抽象成就技术之美,而技术之美成就自由构建。
抽象成就技术之美,意味着开发者不需要懂底层硬件,可以理直气壮地说“不会修电脑”。而技术之美成就开发者自由构建愿望,释放开发者的创造力。
先来看“抽象成就技术之美”。
从基础资源层面来看。亚马逊云科技发布对象存储Amazon S3、Amazon EC2,将原本需要搬来搬去,需要持续运营维护的硬件变成了召之即来挥之即去的服务,这就是一种抽象。
从应用开发的维度看。消息队列服务Amazon SQS举足轻重,它可用于应用解耦,解耦可以让开发者独立开发单个组件或者功能模块,相互间没有影响,从而可以加快应用开发迭代速度。
从亚马逊云科技大中华区解决方案架构部总监代闻的介绍中了解到,亚马逊云科技推出了两类代码:一类叫应用代码(Application Code),一类是管理代码(Infrastructure as Code)。
应用代码(Application Code)对云上计算环境的抽象,就是要不断简化底层复杂性,从虚拟服务器,到容器,再到Serverless技术,计算的灵活性大大提升,管理的复杂度大大降低。
管理代码(Infrastructure as Code),解决的是云上数据库、大数据、机器学习、安全等资源和服务的自动化问题。比如,Cloud Development Kit(CDK)能让开发者用最熟悉的代码来对云资源进行编排管理。
再来看“技术之美成就自由构建”。
代闻提到了三点:
第一,架构典范之美。架构的变化主要指的是从单体应用开始,不断解耦,演变成现如今非常火的微服务。另外,开发实践中的架构设计和架构原则也包含其中,这部分,亚马逊云科技也有心得和经验可以分享。
第二,组件抽象之美。这里主要指的是,使用亚马逊云科技的开发者,可以为任何架构的应用配备合适的资源,无论是EC2虚拟机资源,还是容器资源,或者是无服务器的资源。
第三,流程灵动之美。这里指的是简洁而灵活的开发和运维流程,它可以支撑应用持续迭代。
以上就是亚马逊云科技的“科技美学”。