摘要:在建立了很多代码以后,在写代码的过程中你会不断遇到让人迷惑的错误。
代码是十分有趣的东西在你有任何想法的时候,都可以编写软件,然后愿望就实现了。
但有时候不是这样的,编程带给人的惊喜只是暂时的,在建立了很多代码以后,在写代码的过程中你会不断遇到让人迷惑的错误。
毫无疑问,不同的编程语言间存在着很多差异性,那么对于这种差异性,开发者应如何解决呢?
语言都包含什么?
各种编程语言都在,以下三个方面上有着很大的不同,语法、语义和标准库。
语法
如果不遵循语法,那么你会在编辑器中看到各种弯弯曲曲的红线,而且你的代码也无法通过编译器或解释器。
JavaScript使用大括号,布尔型使用小写的true和false,用//表示行注释。
Python用缩进,布尔型用首字母大写的True和False表示,用#表示行注释。
Haskell又有完全不同的语法:
语义
所有编程语言都有大多数相同的特征:变量赋值、数字相加、字符串操作、调用函数、等等。
然而,每种语言都有特殊的思想,以特定的方式运行。可以将它们划分成不同的模式(命令式、面向对象、函数式),但是即便是两个相同模式的编程语言在细节上也是完全不同的。
在“声明类”,“调用函数”,或“定义参数的类型”时,你定义了程序的语义。有些语言遵循这样一套规则,而其他的遵循别的规则。比如:C++中声明的类可以延伸到多个类。当你使用“+”将数字和字符串加到一起的时候,根据语言的语义会得出不同的结果。一些编程语言会因为类型不匹配而导致编译失败,但是有些编程语言会自动将数字转换成十进制的字符串。
语法与语义的关系就相当于用单词(语法)来表达想法(语义)。你可以通过语言的语法来表达语义。
标准库
最后,每种语言都有各自的软件包,我们称之为“标准库”。
在JavaScript中,你可以使用console.log()代替print(),可以访问Object、Array等类。
标准库是一门语言中重要的组成部分。它可以为语言带来活力,没有标准库,你无法简单地做出任何东西。
很讽刺的是,并没有“标准的标准库”。每个标准库基本上都不同于其他库:一些库只提供最低限度的方法,而有些库则提供非常广泛的函数,所以开发人员基本上不需要依赖任何第三方库。
基本的方法
以上我们介绍了一门语言的构成,接下来我有一个基本的想法:我们是否可以找到一种方法清晰地分割语法、语义和标准库呢?我们又如何实现这一想法呢?
将标准库抽象成API
API是一个非常高明的概念。每个软件都可以通过API与其他软件沟通。移动端的应用可以通过API与服务器交流。服务器可以通过API与数据库交流。每个人都可以通过API与他人对话。这是一件很酷的事情。
为什么我要在这里讨论API?因为这正是我们所需要的。API是语言的媒介。它们是一套语义,可以描述一个特殊代码模块对外提供的功能。无论是函数库,HTTP服务器,或是别的。
声明API的方式多种多样。可以是NPM上的JavaScript模块,并在README文件内提供API文档。也可以是代码中明确声明的API,比如TypeScript模块。也有可能并没有API的声明,也没有清晰的文档。
但是重要的是:API声明了代码模块的”对外接口“,你可以用其他语言重写模块内部的代码,但API不会发生改变。这就是API的魅力所在。虽然编程语言一团糟,但是API很酷。
把所有东西都做成API
现在我们有了干净的代码模块定义的纯粹的语义,并将与标准库的交互抽象成了API。
下一步做什么?创建API。
现今的代码库有多个文件构成,彼此之间通过“import语句”互相引用。这对于我们来说很便利,但是这也意味着我们需要在脑海中勾画代码库的结构。任何一个地方发生小的变化,都可能在不经意期间给别的地方带来破坏性的影响,尤其是如果我们没有做好自动测试的话。而且,代码库会不断增长,而编译的时间会逐渐加长。
也有更好的方法解决这个问题,比如模块化。
本人对待工作认真负责,善于沟通、协调有较强的组织能力与团队精神 ; 活泼开朗、乐观上进、有爱心并善于施教并行 ; 上进心强、勤于学习能不断提高 自身的能力与综合素质。在未来的工作中,我将以充沛的精力,
已有0人表明态度,0%喜欢该职业规划老师!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号