cs架构用什么语言开发_我为什么建议Python开发者将ES6作为第二语言

95c4f1cacf4f0c26bcc96d80e0054137.gif

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

为什么建议学习 ES6?

先从我的经历说起吧!小编大二的时候,开始接触 web 开发,那时候 web 开发技术栈基本上是 php+html+Javascript, JavaScript 功能十分强大,但是学习曲线非常陡峭,对新手不够友好。

后来,我上研究生的时候,Python 凭借大数据火了,我的主流开发语言就变成 Python 了。与此同时,前端也迎来了从 MVC 架构到 MVVM 架构的变革,出现了组件化开发,前后端分离开发, SPA 单页应用等新概念,产生了代表性的框架 Vue, React 等,在 Facebook、阿里、腾讯等大厂得到了大规模应用。使用这些框架不必再去了解晦涩难懂的原生 JavaScript 了,就像当初 jquery 代替原生的 JavaScript 一样。而这些前端框架几乎都是基于 ES6 的,改版后的ES6, 上手难度大大减小。

ca2b14d1a79c49e366f50b9687b56780.png
React vs Vue

从本科到研究生,再到现在工作,Python 和 ES6 一直是我最喜欢的语言。

我选择这两个语言搭配的理由是:

  1. Python+ES6 配合使用,基本算一个全栈工程师了,本人也算半个全栈吧,使用这两个语言能让我够轻松应对爬虫、前端、后端、机器学习、NLP 开发等日常工作。掌握一些前端的技术,是十分有用的,毕竟有时候,算法再酷,也需要产品包装一下。研究生期间,这套技能组合,让我接到了一些业余的小项目,现在工作了,虽然自己是 NLP 算法工程师,但有过排期经验的都懂,一个需求下来就是一个月,因此偶尔也会自己去撸 demo。
  2. ES6语言容易上手,因为很多语法都是借鉴Python的。说出来可能有些夸张,我压根没有系统的去学习ES6,做项目的时候,看一看别人的例子,很多代码直接就写出来了,很多语法按照Python的理解,基本上都能猜出来。

为了解释为何ES6学习成本如此之低,我找到一篇博客,整理的非常好:https://blog.logrocket.com/how-python-can-help-you-learn-es6/

程序员最讨厌的两件事:不写注释和写注释

之所以没有做更多的注释,除了想偷个懒之外,我觉得把两个语言放在一起,代码的意思不言自明。

基本数据类型对比

d54fb225cbb3fb17a92236c5a2b3ca00.png
基本数据类型

数组/列表操作

// JavaScript
let arr = [1,2,3,4,5]
arr.push(5)
console.log(arr) // [1,2,3,4,5,5]
arr.pop()
console.log(arr) // [1,2,3,4,5]
# Python
l = [1,2,3,4,5]
l.append(5)
print(l) // [1,2,3,4,5,5]
l.pop()
print(l) // [1,2,3,4,5]

字符串切片

// JavaScript
let s = '123456'
console.log(s.split('')) // ["1", "2", "3", "4", "5", "6"]
# Python
s = '123456'
print(s.split('')) / ["1", "2", "3", "4", "5", "6"]

变量定义对比

// JavaScript
let coerced = 1;
let concatenated = coerced + 'string';
# Python
not_coerced = 1
concatenated = str(not_coerced) + 'string'

函数对比

// JavaScript
function drSeuss(catInTheHat, thing1, thing2) {
if (catInTheHat == true &&
thing1 == true &&
thing2 == true) {
console.log('is cray');
} else if (catInTheHat != true) {
console.log('boring');
} else {
console.log('so boring');
}
}
# Python
def dr_seuss(cat_in_the_hat, thing1, thing2):
if cat_in_the_hat == True and
thing2 == True and
thing2 == True:
print 'is cray'
elif cat_in_the_hat != True:
print 'boring'
else:
print 'so boring'

模板字符串对比

// JavaScript
let exclamation = 'Whoa!';
let sentence = `They are really similar to Python.`;

console.log(`Template Literals: ${exclamation} ${sentence}`);
# python
print '打印: {} {}'.format('Whoa.', 'Quite!')
# 打印: Yup. Quite!

参数默认值对比

// JavaScript
function nom(food="ice cream") {
console.log(`Time to eat ${food}`);
}

nom();// Time to eat ice cream
# Python
def nom(food="ice cream"):
print 'Time to eat {}'.format(food)

nom() # Time to eat ice cream

类对比

// JavaScript
class Mammal {
constructor() {
this.neocortex = true;
}
}

class Cat extends Mammal {
constructor(name, years) {
super();
this.name = name;
this.years = years;
}

eat(food) {
console.log('nom ' + food);
}
}
# Python
class Mammal(object):
neo_cortex = True

class Cat(Mammal):
def __init__(self, name, years):
self.name = name
self.years = years

def eat(food):
print 'nom %s' % (food)

fry_cat = Cat('Fry', 7)
fry_cat.eat('steak')

模块导入对比

# JavaScript
import { myvar, myfunc } from "./mymodule";
console.log(myvar);
myfunc();
# Python
from mymodule import myvar, myfunc
print myvar
myfunc()

后记

最近在看 Martin Fowler 的经典老书《重构 改善既有代码的设计》,第一版 2003 年出版,用的是 Java 来讲解的,2019 年第二版发布了, 并用 JavaScript 语言重写了代码范例,读起来就像看 Python 代码一样浅显易懂,感兴趣的可以翻一翻。

d336a02790f1c5a412b14078183b1a01.png
重构(第2版)全彩精装版
历史文章推荐阅读: 从零开始深度学习Pytorch笔记(2)——张量的创建(上) 从零开始深度学习Pytorch笔记(1)——安装Pytorch 【心得体会】聊一聊在国内计算机读研,遇上的那些导师们... 你不知道的Python环境管理技巧,超级好用! Python快速安装库的靠谱办法 你只会用Python的pip安装包?别错过这些好用功能!
扫码下图关注我们不会让你失望! 49f54993c354bf9c02e234d31fcc3f88.png 26be48cc6d2e81aaf05acb597782f3f9.png 你点的每个在看,我都认真当成了喜欢
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值