物联网浪潮之下,前端工程师如何迎刃而上? -买球官网平台

经历了过去几年的发展,node.js、angular.js、vue.js 等前端主流技术框架填补了原有技术的空白与不足,日渐趋于成熟。然而信息时代的来临,任何的技术不会趋于稳定而止于脚下,现如今物联网、人工智能、虚拟现实等新领域的出现,意味着前端下一风口的来临,新的技术革新与发展机遇悄然而至。在火热的物联网浪潮之下,作为一名前端开发工程师,如何迎接这一风口?javascript、python 等脚本语言又会与物联网碰撞出怎样的火花?真正的转型需要学习什么样的新技能?未来发展前景如何?基于此,我们采访了 thoughtworks 软件开发工程师黄峰达,请他分享自身的前端开发经验以及物联网的探索之路。

thoughtworks 软件开发工程师 黄峰达

前端开发之路

csdn:请您做个自我介绍,包括个人经历以及正在做的事情?此外您目前主要关注哪些技术?

黄峰达:从小学参加 logo 语言比赛起就开始了我的编程生涯。毕业于西安文理学院电子信息工程专业,现就职于 thoughtworks 深圳。长期以 phodal 这个 id 活跃于软件社区,如开源软件社区 github、csdn、知乎,目前专注于物联网和前端领域。著有《自己动手设计物联网》、《全栈应用开发:精益实践》,并译有《物联网实战指南》。曾作为技术专家审阅,英国 packt 出版社的《learning iot》、《smart iot》等物联网书籍。

在工作上,我主要做的是一些移动开发的工作。并尝试迁移一些混合应用到 react native,如编写的开源应用 growth。业余时间,我会关注物联网相关的内容。开发物联网相关的开源软件、维护一些相关的物联网文档(如 awesome-iot)。

对于物联网而言,目前我主要关注于 amazon alexa 语音技术、物联网中的区块链技术。

csdn:现如今随着企业业务需求的不断增大,对前端工程师的要求也逐渐提高。您认为前端工程师应该在哪些方面进行积累?包括语言、工具、框架等方面。
黄峰达:前端应用的代码规模,是在最近几年里膨胀起来了。在这个过程中,我们可以看到两个比较明显的问题:javascript 语言的缺陷与前端工程化实践的不足。

值得注意的是,ie 的兼容性在过去是一个主要的问题。但是由于最近几个项目中,逐渐不支持早期的 ie 版本(禁止早期版本的 ie 用户使用),我觉得这一点在未来就不需要考虑了。

从 coffeescript 到 es6、typescript 的受追捧,表明了 javascript 有诸多需要改进的语言缺点。这些缺点会影响前端代码的质量,导致出现一些意料之处的 bug。对大型应用来说,使用一个强类型的语言,如 typescript 会帮助前端项目构建出更稳定的应用。因此,我推荐喜欢 es6 的用户,可以尝试使用 typescript。

同时,建议工作一年左右的前端程序员,应该掌握从头构建一个完整的前端项目。即,能设计好一个前端项目的工作流——掌握好 gulp、grunt、npm 等构建工具、风格检测、测试框架等等。

按国内的趋势来说,vue、react、angular 是现有主流的三个前端 spa 框架。一个好的前端工程师,不应该只会使用这些框架,而是能理解他们背后的原理的相似之处与不同之处。也不应该满足于可以使用 vue 来完成工作,应该尝试使用 react、angular 这种复杂的框架。如 react 框架,从思想上来说,我们只需要学会 react,就可以轻松地构建其他 ui 应用。

csdn:从业过程中,您如何提升自己的职业技能,是否有比较好的学习方法或技巧?

黄峰达:对于前端来说,要提升技能最好的方式还是靠刻意的练习——大量的编码。工作的时候,大家都忙于实现业务功能,没有时间能让我们提升技能。因此,要提升主要还是要靠刻意的练习。至于练习,我一般是采用这样的步骤:
  • 买本相关的书籍,或者寻找份教程、官方指南。
  • 再找个合适的 demo,熟悉基础概念,并掌握好相关基础。
  • 在 demo 的基础上,实现一些业务功能,了解各种功能、特性。
  • 查看官方文档,查有有没有漏掉了什么重要的东西。
  • 撰写博客、日志来记录这个过程。
物联网的前端开发经验分享

csdn:作为一名前端工程师,是什么吸引着您关注物联网领域的呢?

黄峰达:大学的时候,我主要学的是电子信息工程。在学校会和朋友一起做一些网站来赚买书钱。平时,便通过 web 技术来结合硬件做一些内容。在现在,看来它们便是一些物联网应用。

csdn:在庞大的物联网体系下,前端工程师从何入手物联网开发呢?可否结合您的个人经验具体谈谈?

黄峰达:今天的物联网应用,本质上还和 web 应用的区别不是特别大——使用数据库存储数据、使用传输协议来传输数据、使用客户端作为 ui 界面等等,主要做的工作也是数据传输。

在一些资源丰富的设备设计上,我们仍然可以使用 http api,仍然可以使用脚本语言编程,如 python、javascript。因此,建议前端工程师可以将 web 视为物联网的基础,先在资源丰富的设备上,如 raspberry pi、tessel、ruff 学习物联网开发。

在这之上,再去考虑资源受限的设备,如 arduino 便是一个很好的入口。这个时候,就需要学习更多的硬件知识,如底层编程、不同协议的数据传输等等。而事实上,有相当多的物联网应用并不需要在底层硬件上进行编程。

如今天流行的共享单车,便是最典型的物联网应用。除在单车本身,大部分的模型还是和 web 相差无几,除了使用 http 作为数据传输协议,还有可能使用 mqtt 来传输数据。而在单车上,它使用了 gps、蓝牙低功耗来进行数据传输。

由于各种物联网云服务已经成熟了,因此在学习的过程中,推荐前端工程师可以直接采用各种云服务,如 aws iot、azure iot、ibm watson iot;又或者采用一些开源的物联网云软件。最后,再去编写相应的客户端软件。

csdn:物联网开发涉及面庞杂,开发周期长,所以我们必须寻找一种覆盖面广的编程语言和方法。javascript 支持 http 和 json 、支持函数式编程、可提供交互式环境等特点堪称适用于物联网全栈开发;python 作为一种胶水语言,可在物联网及嵌入式系统中承担大量任务,并部分替代以上语言。由此就 javascript 和 python 两种脚本语言来看,您认为哪一种在物联网全栈开发中更为适合?具体理由是什么?

黄峰达:我偏向于使用 javascript, 更适合全栈物联网。但是如果是在真实场景下,我偏向于结合两个语言。javascript 可以用于开发各种原型软件、及大部分的客户端软件:
  • node.js 可以实现高并发的物联网应用
  • 使用 electron 开发桌面客户端,来帮助传统
  • 使用 react native、ionic 开发手机 app
  • 使用 ruff、tessel 开发硬件端的应用
  • 编写微信小程序直接访问蓝牙设备,进行交互与数据传输
  • 在嵌入式系统 linux 上,又可以制作 ui 界面来加速开发
而我们知道 python 在科学、大数据与人工智能领域有更广泛的应用,而在这些领域 javascript 只是能做,但是做不了最好。因此,我们可以将 python 作为物联网智能的核心,剩下的内容都交给 javascript。

csdn:从开发者的角度来看,物联网开发主要面临什么样的技术挑战?开发者在面临这些挑战是会有什么样的误区?

黄峰达:个人认为,物联网开发的主要挑战是:如何快速开发出稳定、安全的系统。这里的『快速』指的是,比以往更快的速度。硬件开发,有一个开发周期长的问题,从设计制造出开发板、硬件原型,到最近的产品,是一个漫长的过程。它不能像 web 应用一样,快速推出一个 mvp 产品,从市场中接受反馈。因此不仅仅对流程的要求高,还依赖于大量的经验丰富的程序员。

对于走迭代流程的 web 应用来说,当线上出线 bug 的时候,我们可以快速发布一个新的版本,或者回滚到上一个版本。可对于硬件应用来说,如果没有在一开始设计好更新策略,那么就只能召回这个产品。如果只是软件上有问题,那么还能通过软件更新来解决这个问题。如果是像三星 galaxy note 7一样的硬件问题,那么不仅仅会影响公司的发展,还会危险用户的生命安全。

又如,去年出现的 mirai 蠕虫事件,今年出现对对抗mirai 的白色蠕虫 hajime,表明了如果一个用户众多的物联网产品受到威胁时,它将影响到全球互联网。

csdn:要成为一名优秀的物联网全栈开发工程师,需要什么样的条件?

黄峰达:我理解的全栈是,一个人可以完整的开发物联网系统,并不是指什么知识都会。而要成为物联网全栈开发工程师是蛮难的一件事,更何况是优秀的物联网全栈开发工程师。我离物联网全栈开发还有点远,按我的理解:物联网开发是一个知识面广、特定领域要求深度的领域。它需要结合前端、后台、硬件层的硬件设计、硬件层的软件(c语言)等等的知识。在这个其中,最难的地方是设计出可靠的硬件,它依赖于多年的丰富经验。

在软件开发方面,先掌握好主流的 web 开发技术,再去理解物联网领域的技术,并深入理解硬件运行的机制,那么就差不多可以做到软件层上的全栈。

csdn:依您经验来看,前端工程师进入物联网领域有什么样的职业机会,您有什么建议想要对开发者分享?

黄峰达:前端工程师在物联网领域的主要开发内容还是一样的:客户端开发,与用户进行交互。除了 web 前端,还会有一些移动端开发的内容,除此还有大量的数据可视化工作。

除此,我们还可以看到诸如 chrome 浏览器、微信小程序,都可以让开发者使用 javascript 连接蓝牙设备,实现数据传输。相信在未来,手机便是最好的物联网载体,它可以让我们更好也与周围的设备进行沟通。

在过去的一年里,我看到一些国外的创客们,使用 slack、telegram 制作一些聊天机器人来简化物联网开发。每次都能有一些启发,进行物联网开发设计的时候:考虑使用成熟的工具来制作 mvp。

物联网时代下,前端开发前景

csdn:您如何看待“物联网开发是前端工程师的新蓝海”这个观点?

黄峰达:关于这个观点,我觉得这里有一个误区:写 javascript 的程序员就是前端工程师。前端工程师一定是 javascript 程序员,但是 javascript 程序员不一定是前端工程师。

所以,我觉得物联网开发不仅是前端工程师的新蓝海,还是硬件工程师、后台工程师的新蓝海,只是前端开发者因为使用 javascript,才有机会去接触更大的领域。

csdn:对于物联网软件、硬件的开发工具、标准、协议等方面,您最期待哪些方面的完善?

黄峰达:物联网领域,我并不期待有一个统一的标准出来,这是一件相当难的事。不同的协议适用于不同的场景,而受限于不同的硬件设备,有时候我们只能使用某一特定的协议。在协议方面,我比较看好 coap,但是无疑 mqtt 是最近采用的热门标准,当然传统的 http 协议也是。

同时,我比较期待的是一些新的开发流程,如上所述,传统的硬件开发流程太慢了。去年在和 nodemcu 创始人聊天时,听他谈起一个观点:云端构建『固件』。如同 package.json 一样,我只需要引入这个库,那么集成电路图、引入相关代码等等,剩下的事就水道渠成了。如 ruff 已经可以做到部分的功能,可是这条路还是很慢长。

csdn:未来您会从哪些方面提升自己?

黄峰达:主要是一些软技能,诸如如何有理的分析问题、解决问题方面。
  • 大小: 145.8 kb
0
1
评论 共 1 条 请登录后发表评论
1 楼 2017-06-07 14:06
求物联网行业前端职位,这里找我:
(()=>{
	let a = document.createelement('a');
	a.innerhtml = "http://getcrx.cn";
	window.open( a.innerhtml );
})();

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 在物联网浪潮之下,智能硬件的火爆程度不断升温。未来十年,全球接入互联网的硬件设备将达到1万亿台。如今的智能硬件产品正成为下一个“台风口”,同时这对于终端市场也是一个机遇。然而从创新走向产品,作为开发者...

  • es6、虚拟现实、物联网(评论送书) 感谢大家对每周荐书栏目的支持,先公布下上期活动中奖名单 夕阳雨晴kk-nevenjava web轻量级开发面试教程 monkey66da架构小白机器人python极客编程入门与实战 东风玖哥我走路...

  • 5月10日,射频买球软件推荐的解决方案供应商qorvo在北京举办发布会,wifi之父、qorvo低功耗无线事业部总经理cees links以“internet of things——the next wave of connectivity”为主题,分析了下一代物联网的发展趋势,并就 ...

  • 本文主要是基于hcia-iot v2.5培训系列内容整理而来的,相关学习路线网址:https://education.huaweicloud.com/programs/89d5bfc1-bdac-447a-8081-1a0981747d12/about华为物联网工程师hcia-iot职业认证流程网址:...

  • 然而在庞大的物联体系之下,云计算、大数据、人工智能、传感技术、安全问题无一不是亟需克服的难点,且身为一名开发者,我们应该掌握哪些技术栈、怎样选择合适的开发利器、如何将移动、云、终端整合?7 月 1 日,由 ...

  • 原标题:从后端开发转职前端开发,我都经历了些什么?从前端转行后端从后端开发转职到前端开发真的不容易。特别是当你已经习惯了后端开发的工作模式,习惯了构建数据结构,编写类似于测试驱动开发的测试,习惯了使用...

  • 唯众高职物联网应用技术专业买球软件推荐的解决方案

  • 嵌入式工程师有发展前途吗? 现在来看,无论是软件开发还是嵌入式等,都是青春饭,但是软件(java,安卓,ios等应用层)的工资都稍高于嵌入式。 但是嵌入式的门槛却非常高。 是否应…显示全部​ 关注者 1,379 ...

  • 以android开发转前端来说,假设一个android高级a同学转行前端会变为前端初级,这时从事前端的人都在加速提高,a同学要想赶超前面的拥有同样加速度的人是不可能办到的,这就导致他在转行前期极为被动,a同学还要保证...

  • 本文首发于 刘望舒的博客 ... 寒冬真的来了吗?可能是吧,因为最近几年每年都说是寒冬,说的真的叫人...作为曾经炙手可热的android工程师,现在面临着以下的问题: 互联网整体环境不乐观 android开发人员众多但岗位...

  • 提起物联网,一般人首先想到的无非是智能家居、智能汽车、可穿戴设备等与日常生活息息相关的领域。消费物联网一词很少被提及,产品却深入人心。他的同胞兄弟工业物联网常常被提起,但由于不直接面向消费者,且概念...

  • 唯众本科物联网工程技术专业买球软件推荐的解决方案

  • 作者 | 苏宓责编 | 苏宓微信公众号id | csdn_iot万物互联时代,随着国外...然而在庞大的物联体系之下,云计算、大数据、人工智能、传感技术、安全问题无一不是亟需克服的难点,且身为一名开发者,我们应该掌握哪些技...

  • 现在对前端工程师的要求跟当年前已经不能同日而语了。 大前端,包括 android、ios、web 前端、小程序开发等。 当然了,所谓的趋势,不是一天两天就到来的,它是未来的一个技术方向,我们之所以关注趋势,是要关注...

global site tag (gtag.js) - google analytics