Web 開發人員需要了解哪些有關物聯網的知識?

已發表: 2017-10-30

Web 開發出現在 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 開發人員了解物聯網最重要的事情。