APP下载

迁移至TypeScript之体会

2020-05-25李洁

科学导报·学术 2020年18期
关键词:服务器端开发人员代码

李洁

摘  要:JavaScript作为网站开发技术的必备语言最近发展迅猛,TypeScript的出现可能是一种更好的选择。本文对以上两种语言进行了比较,并且给出了自己的观点。

关键词:JavaScript;TypeScript

1 BS架构应用程序概述

由于BS架构应用程序具有跨平台性的优点,一直备受用户和开发者的喜爱,移动互联网技术的发展,更是促使着该领域的发展。通过招聘网站的信息可以看出该领域发展迅猛,从以前的网站开发职位,细分到网站前端工程师、服务器端工程师和全栈工程师等。

2 JavaScript应用领域

JavaScript作为一门语言(以下简称JS),主要应用在网站前端。其特点为小巧、易学,并且易操作DOM,以前的网站工程师一直将其作为提升用户体验的脚本。直到2005年,谷歌公司利用AJAX技术实现了异步通讯,这使得人们认识到JS的威力。随着项目需求的发展,为了使JS能够开发出大型、复杂的企业级应用程序,2015年发布了JS发布了新的ES6标准。JS这时可谓如日中天,势头正旺。

JS绝对是现代网站前端开发的最流行的脚本语言,国内外互联网软件公司都争相招聘JS工程师。jQuery、Vue、Angular等第三方JS库,使的JS应用生态更加良好。HTML5带来的新特性,更为JS带来诸多用武之地。

网站服务器端主流开发技术有PHP、JSP等,但是随着JS的发展,JS不但可以开发前端应用程序,服务器端应用程序也可以用其进行开发,主要代表有Node。

在安卓和iOS等移动端开发领域,JS也有如Cordova等接口库来进行软件开发。

3 TypeScript语言

TypeScript是一种开源的编程语言(以下简称TS),该语言项目由微软进行维护和管理。TS不仅包含JS的语法,而且还提供了静态类型检查以及使用看起来像面向对象编程语法操作原型。TS是为开发大型应用而设计的,并且TS可转译成JS。由于TS是JS的超集,任何现有的JS程序都是合法的TS程序。TS类似于强类型的JS。它添加了大部分开发人员期望强类型语言的功能,虽然浏览器无法解析TS,但是,TS可以通过编译转换为JS。从技术上讲,TS并没有添加任何新的运行时功能。

社区里经常听到开发者没有使用TS就在那抱怨其不好,主要是由于为了实现相同的功能而要另外学习一门新的语言,感觉得不偿失。但是使用TS不仅是语言的优点,还有构建过程。目前,大多数现代网站应用在其构建链中至少有一个以Babel[1]的形式保留给JS。

下面将分析TS优缺点,从而决定是否要使用TS。

虽然,社区一些开发者在那抱怨TS,但是也有许多使用过TS的开发者表示仍然会继续使用TS进行开发。其实使用TS多带来的好处远大于缺点。具体优点有:TS的编译步骤意味着您可以及早发现问题,而不必等待运行时失败;现代IDE可以在编译步骤之前就提示错误;当ES6中提出新功能时,TS可以尽早采用它们,从而使您始终处于技术最前沿。

但实际上,TS最主要好处是可以使您的代码能够进行自描述,而JS无法做到这一点。可能担任独立开发项目,JS并不会显得那么糟糕,因为对于独立开发人员来说,所有代码和应用逻辑都十分了解。但是,即使作为唯一的开发人员,在编写代码时也容易忘记代码。比如,当编写普通的JS时,因为忘记函数返回值或它接受什么样的参数,有时不得不去阅读函数定义以弄清楚如何使用它。

一些公司有相互关联的项目生态系统,它们共享相同的代码库。使用TS有助于他们做出API设计变更。做出API变更的开发人员需要确保他們的变更不会破坏其他依赖于这些库的项目。TS为这个非常有限的TS用户子集节省大量的时间。

这就是TS的优雅之处。它并不会迫使您成为一名优秀的开发人员,但它却为您提供了实现此目标的特性。

TS当然也存在缺点。有些开发者抱怨TS没有JS的代码录入效率高,因为TS定义每个新函数或变量还要输入类型,显然没有弱类型的JS输入更方便;还有开发者抱怨TS,由于必须编译代码,因此每次更新和测试运行都将花费一点时间,但是编译代码所花费的时间,对一个功能完善的应用程序来说是微不足道的,在使用TS开发,只在调试环节,其排错功能所节省的时间,都会远超过编译所花费的时间;在构建复杂的项目时,如果不熟悉构建工具,则设置新项目可能会一件让人头大事情。

所以,只从单方面的看一个语言的优缺点,难免有失偏颇。我们要从软件开发、调试、发布和维护的整个流程来验证一个程序语言是否高雅。

4 TypeScript使用的统计数据

StackOverflow是一个与程序相关的IT技术问答的国际流行网站。到2010年年末,其月度独立访客超过1600万,每月浏览量超过7200万。根据2019年开发人员调查[2],JS连续第七年成为该网站上讨论最多的语言,有67.8%的受访者使用它。TS为21.2%,排名第十。然而,在2018年,TS的比例为17.4%,而2017年仅为9.5%,2016年,只有0.47%的受访者使用TS。所以,可以看出TS有了惊人的增长。虽然,TS这一增长在很大程度上要归功于Angular框架,该框架在早期就放弃了JS支持,但是,Angular为什么放弃JS而选择拥抱TS呢?当查看最喜欢的语言时,TS表现得更好,它在Rust和Python之后排在第三位(73.1%)。JS排名第11(66.8%)。

5展望

TS短期内不会取代JS。掌握TS可使JS发挥更大的作用。TS不会在任何浏览器中原生运行。TS不是根本改变JS,而是自然的演变。

TS不仅使具有JS基础的开发者学习变得更容易,而且JS项目转换为TS会使项目开发提高一个层次。首先将后缀为.ts。这样就成为一个TS项目。然后,就可使用TS所有功能了。虽然,完全掌握TS不是一件简单事情,但是它绝对会给您带来开发JS项目从未有过的快感。

参考文献

[1]  Bable中文网. Babel是什么[EB/OL] . https://www.babeljs.cn/docs

[2]  StackOverflow. 2019年开发人员调查[EB/OL]. https://insights.stackoverflow.com/survey/2019

猜你喜欢

服务器端开发人员代码
Semtech发布LoRa Basics 以加速物联网应用
基于Qt的安全即时通讯软件服务器端设计
神秘的代码
基于Qt的网络聊天软件服务器端设计
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
一种基于Java的IM即时通讯软件的设计与实现
近期连续上涨7天以上的股
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
后悔了?教你隐藏开发人员选项