Web 开发人员需要了解哪些有关物联网的知识?
已发表: 2017-10-30Web 开发出现在 Internet 时代初期,当时我们开始让速度更快、功能更强大的计算机通过电话线相互通信。
随着互联网变得越来越复杂; 网络开发变得更加技术化和专业化。 现在,我们正在摆脱互联网时代,进入物联网 (IoT) 时代,在这个时代,从未被视为计算机的设备能够以我们只能做到的方式与彼此、用户和服务器进行通信想象。
今天,我们不一定要去电脑屏幕上的网站买东西。 相反,我们要求 Alexa 通过我们的语音激活 Amazon Echo 购买东西。 我们不会简单地等到回家后才更换恒温器。 我们将 Nest 连接到我们的智能手机,并告诉它在我们的手机感应到我们离房子大约 30 分钟路程时打开暖气。
目前,我们发现这种连接水平非常舒适,但随着物联网时代的发展,我们会发现我们的设备以前所未有的方式在工作、娱乐和家庭之间同步。 众所周知,物联网将对我们的生活造成如此大的破坏,以至于很难准确地想象未来会是什么样子,但有一件事我们是肯定知道的。 物联网已经对 Web 开发产生了巨大的影响,而且它的影响只会越来越大。
这意味着所有 Web 开发人员都需要在某个时候考虑物联网。 为了领先一步,我们列出了 Web 开发人员需要了解的有关物联网的所有信息。
Web 开发和现在的物联网
这些是物联网发展的狂野西部时代。 有很多猜测和实验,目前几乎没有标准化(至少有五个主要组织正在同时制定物联网标准)。 所以我们不知道事情会如何发展。 但是当专家们讨论物联网对当今 Web 开发的影响时,我们可以看到某些领域一次又一次地出现。
物联网现在对 Web 开发的影响
- 后端无处不在:现在,每个设备都构建在自己的小世界中。 每家公司都有自己的方式让设备相互连接和交谈。 每个设备都收集自己的数据类型,每个设备都使用自己的命令来运行。 这意味着许多应用程序开发中心只是让您的应用程序与其他已经建立的应用程序很好地融合。 Node.js 对此有所帮助,因为它已成为在物联网设备之间建立通信的领先框架。 尽管如此,这个问题还是很难解决。
- 界面需要简单性:没有人有时间弄清楚与电器有关的复杂命令,因此咖啡机的控制面板中没有空间缺乏清晰度。 换句话说,用户界面必须易于上手和响应。 在为物联网设备设计用户界面时,您将使用可用性带中的所有工具,特别是因为大多数公司都希望他们的产品可以通过智能手机以及设备自己的屏幕进行控制。 控制在手机上应该和在机器上一样明显。 复杂性应该只出现在幕后。 用户需要看到的是干净、合乎逻辑的设计。
- 缓解网络延迟:当您按下打印机上的按钮时,您希望它立即开始打印。 但是对于物联网设备,命令从屏幕到服务器再到设备,而不是从屏幕直接到设备。 这个额外的步骤可能会在命令和操作之间创建一个缓冲区,尤其是在网络连接速度较慢的情况下。 用户会看到一种产品要么缓慢要么无效,而这两种产品在他们的生活中都不是他们想要的。 因此,物联网开发人员必须设计能够并且将处理缓慢甚至中断的连接的应用程序,以便用户从他们的设备中获得他们想要的东西。
- 想想权力:我们都喜欢想想权力,对吧? 希望答案是“是”,因为物联网开发人员将不得不考虑他们的应用程序在每个点上占用了多少计算能力。 为什么? 因为大多数物联网设备都是电池供电的、无线的,并且没有足够的空间容纳大量的存储芯片。 应用程序越复杂,芯片消耗的功率就越长,这将消耗电池并导致要求退款的客户失望。 简而言之,应用程序设计的每个部分都应该使用绝对最小的电量。
- 隐私和安全:这个领域有点困难,因为隐私和安全太主观了。 关于什么是安全的和什么应该保密的想法在不断变化,尤其是当我们为了方便而交易它们时。 例如,我们大多数人对让雇主跟踪我们的动作的植入式传感器感到不安,但瑞典初创公司 Epic entre 的员工心甘情愿地接受注射——甚至为自愿拥有植入式技术的其他人举办派对。 他们将可植入 ID 设备的便利性作为主要动力。 也可以想想 2000 年代初期围绕网上购物的所有恐惧。 其中许多担忧已经成真,包括身份盗用和广泛的欺诈行为,但我们中的大多数人很乐意用我们的安全性来换取在家购物的便利。 尽管如此,犯罪分子知道,将更多设备连接到可渗透的网络意味着更多的诈骗和盗窃机会。 这就是为什么身份盗窃保护以及整体安全和隐私需要内置到网络本身和设备使用的应用程序中。 需要打破的墙越多,犯罪分子的动机和机会就越少。
- 坚持你所知道的不会拯救你:即使你决定不想从事物联网开发,你在开发任何东西时仍然必须考虑物联网。 可以这样想:估计有 3560 万人在家中拥有支持语音的扬声器。 现在,他们倾向于使用它们来访问公司自己的网站(例如亚马逊 Echo 用户从亚马逊订购商品)。 但这种能力将会扩展,用户将希望能够从几乎任何物联网设备访问任何网站。 所以这只是时间问题,就像之前的响应式设计一样,您必须假设网站的大部分用户将来自物联网设备并相应地进行构建。
您现在需要知道的语言
所以物联网发展的步伐基本上是不可避免的,当你开始为物联网开发时,你需要开始使用某些语言。 今天有许多编程语言正在使用,但这些是物联网开发人员最常使用的语言。
- C :目前这是一个常见的选择,因为它是一种流线型语言,适用于内存有限的设备。 然而,一旦设备变得更先进,C 的能力就会被超越。
- C++ :这是目前常用语言中最复杂的,因为它功能强大但仍然相当敏捷。 不幸的是,它的复杂性意味着它并没有被广泛采用,因为目前大多数物联网设备都无法处理它。 所以这可能意味着它在未来也不会被采用,因为开发人员想办法用更高级和更常用的语言来处理开发问题。
- Java :Java 是最常教授的开发语言之一,所以几乎每个人都知道如何使用它。 此外,虽然不如 C++ 强大,但对于当今物联网设备的有限内存来说,它仍然更容易处理。 将这两件事结合起来——它的广泛使用和它对大多数当前开发需求的适用性——你就拥有了最流行的开发语言之一。
- Python :这是目前物联网开发中的另一种重要语言,原因与 Java 相同。 它建立良好,广泛教授且灵活。 一件大事是 Raspberry Pi。 作为 Pi 的主要编程语言,Python 是物联网开发的核心。 Pi 的强大功能、小尺寸和低价位意味着它是学习者和实验者的理想选择,现在它被用于从机器人研究到构建非常简单的运动激活相机的所有领域。
物联网和 Web 开发的未来
这可能是一个实验和疯狂猜测的时期,但仍有一些明显的变化即将出现。 网站不会是消费者研究和购买产品的唯一场所。 跟踪办公室工作人员效率的库存控制应用程序和传感器将在人们的日常活动中变得像智能加热器和可上网的婴儿监视器一样普遍。 在物联网领域,谷歌和苹果要么必须学会合作,要么吃掉对方,因为最终这一切都必须无缝衔接。
然而,专家们非常确定,Web 开发人员面临的最大挑战尤其是思维方式的转变。 开发人员无需考虑单个设备以及它们如何使用互联网,而是需要使用大量用户数据来塑造服务,几乎不管产品如何。
物联网未来可能对 Web 开发产生影响的地方
- 网络应用程序,而不仅仅是设备:目前,物联网设备应用程序就像为这些特定产品定制的解决方案。 开发人员想到了他们希望设备做的一件很酷的事情,他们着手为此构建说明。 然而,在未来,物联网开发人员将不得不开始更广泛地思考。 您需要能够创建跨网络工作的应用程序,而不是为单个设备提供应用程序。 可以这样想:目前,像 Wink 这样的网络在一个主遥控器下将家庭的所有物联网设备连接在一起,但大多数收集数据、共享信息或执行指令的应用程序仍然在单个设备内。 未来,物联网连接将看到最强大的应用程序位于网络中,而不是设备中。 从某种意义上说,网络将变得更加智能,提供所有的数据分析、协调和指令,而设备和电器将变得更加笨拙,沦为简单的数据收集者和指令追随者。
- 越来越个性化的网站:随着设备能够在彼此之间收集和共享更多数据,您会发现互联网浏览体验将会发生变化。 网站将能够根据其物联网设备和产品生成的数据自动为客户提供量身定制的服务。 这可以看到他们连接的冰箱、洗衣机和其他电器将数据发送到他们最喜欢的在线杂货店,这样当你打开网站时,它会自动向他们显示他们缺少的主食。 当然,这需要一些复杂的后端开发,因为杂货店的网站必须能够与市场上的每个品牌和种类的电器进行通信。 在制定行业标准之前,这确实是一项非常艰巨的任务。
- 各级集成:未来,企业将希望能够即时响应客户需求。 例如,生产线将动态响应网站购买量的增加。 这意味着您开发的任何应用程序都必须集成到整个生产线和供应链中。 事实上,这种广泛的集成就是为什么标准化是目前如此重大的挑战。
- 屏幕不是唯一的方式:在未来,许多设备可能会在没有太多用户交互方式的情况下相互交谈。 与 Nest 一样,用户只能与一个简单的控制面板进行交互,其余数据将由用户不会直接与之交互的传感器和应用程序收集。 这意味着前端设计会更简单,而其他一切都会复杂得多。
- 新的测试注意事项:当您测试 IoT 应用程序时,您需要考虑全新的概念。 如果网络滞后,用户是否能够控制他们的物联网设备? 如果用户与设备之间以及设备与服务器之间的网络连接变慢或中断怎么办? 有没有办法保留应用程序的功能但降低功耗? 这些只是开发人员在测试阶段必须不断问自己的一些事情。
您可能需要了解的语言、操作系统和协议
这是预测可能变得非常模糊的地方。 如果过去编程语言的发展教会了我们什么,那就是我们不能假设明天的技术与今天的技术有很多共同之处。 尽管如此,我们有几个理由认为这些工具会派上用场。
- JavaScript :它已经很流行并且已经被使用,所以很多人认为 JavaScript,尤其是 Node.js 环境,将继续流行。 至少,它将是您的物联网开发箭袋中最有用的箭头之一。
- Weave :少语言多机器通信协议,Weave 与谷歌的 Brillo OS 一起工作,让设备可以廉价而快速地相互通信。 Brillo 基本上是 Android 的精简版,使其对功能有限的设备更有用。 它也比 Android 需要更少的功率,使其成为物联网开发更便宜、更有吸引力的选择。
- Swift :这是 Apple 的开源语言。 它适用于 iOS、MacOS 和 HomeKit(Apple 用于连接其所有物联网设备的操作系统)。 如果您想深入了解 Apple 的物联网世界,您需要了解这一点。
- 尚未发明的语言:我们只能推测它们将是什么,如果历史是可以借鉴的,那么我们所有的预测几乎都是错误的。
结论
进入物联网时代既令人兴奋又充满挑战。 我们现在可以学习和做一些事情,但实际上,未来还有很多东西需要学习和解决。 我们知道,我们正在进入一个更加无缝连接的世界,大量的数据和网络连接塑造了我们生活的方方面面,但实际情况如何,谁也说不准。 我们知道 JavaScript 现在很有用,并且可以成长为物联网开发的支柱,但这并不一定意味着它会。 我们知道,每一个新的机会都会引发新的挑战,每一个新的解决方案都会创造出自己的机遇和挑战,我们甚至无法预料。
当然,学习和发明新解决方案的挑战是吸引大多数开发人员进入该领域的原因,因此在未来的几十年里,将有很多东西可以让您保持兴趣并继续工作。 这可能是 Web 开发人员了解物联网最重要的事情。