阿里妹導讀:在《Java 開發手冊(泰山版)》發布之後引發了程序界的廣泛討論,技術和道理都是越辯越明的,相信帶給了大家不少的收穫。《Java 開發手冊(嵩山版)》特別增加了前後端規約,並修復了一些原來存在的一些問題,接下來讓我們先品嘗一些嵩山版帶來的新的滋味吧。此外為了更好地幫助大家理解運用,特別綜合過往的規約和新增修訂的內容給大家帶來了一套測試題,還有機會獲得機械鍵盤和社區周邊!
點擊「閱讀原文」,下載嵩山版。
在前後端程式設計師分工協作愈加普遍的今天,不但帶來了效率上面的提升,也帶來了諸多協作上的問題,本次開發手冊新增的前後端規約旨在解決前後端程式設計師協作上的問題以及讓大家規避常見的易於疏漏的錯誤。正所謂「沒有規矩,不成方圓」,大到前後端API的約定,小到前後端的時間格式約定,在現在的前後端協作當中存在著這樣的問題,用蘋果的宣傳語來講便是「唯一的不同,是處處不同」,每個系統都對應著自己的一套前後端約定非常不利於維護,混亂的約定更讓系統接手與維護的人頭痛不堪。規矩並非枷鎖,而是老司機們上路的安全帶,有了它,才能讓我們在程序的世界裡安全的馳騁,去最大可能的提升效率,去創造更大的奇蹟。在前後端交互的過程當中,API是重中之重,一個好的API應該能夠明確協議、域名、路徑、請求方法、請求內容、狀態碼、響應體等7個重要要素。一個好的API約定會讓前後端雙方能夠為接下來的開發工作節省許多時間和溝通的成本,是我們前後端協作的基石。不同於後端程序的各種數字類型的明確區分,在JS的世界裡數字只有一種類型,那就是Number類型,它其實是雙精度浮點數,因此,它造成的麻煩總是使人困惑和痛苦,當我們將一個過大的整數傳遞給前端的時候,想像一下當它超過了雙精度浮點數能最精確表示範圍的時候會出現怎麼樣的悲劇吧?欲知詳情如何,請見嵩山版開發手冊吧。你是否曾經把異常帶到了頁面上?你是否把系統的錯誤提示發給了一臉懵的用戶?今天,前後端規約將助你擺脫這樣尷尬的境遇。用戶體驗不僅僅是產品設計需要考慮的部分,作為技術人的我們更應該注重產品本身的質量,因此用戶提示一定要與系統本身的錯誤區分開,給用戶更友好的提示也是系統魯棒性的象徵,另外發生錯誤的時候返回給前端的信息除了上面兩種錯誤信息再搭配上錯誤碼與HTTP狀態碼一起食用更香哦。很多場景需要我們用URL來做前後端的參數傳遞,但是比較微妙的是URL有最長長度的限制,而眾多瀏覽器對URL最大長度限制卻是不同的。不明確的地方都是不易察覺的深坑,不知道栽進去了多少的仁人志士,為了規避這樣的深坑,前後端規約中特別指出,對於URL長度限制採用所有瀏覽器限制的最小值,為2048位元組。上面簡單介紹了一下本次《Java 開發手冊(嵩山版)》的一些有趣知識給大家品嘗,更詳細的內容還請參閱開發手冊中的內容,相信能夠給大家帶來滿滿的收穫。「紙上得來終覺淺,絕知此事要躬行」,本次我們還特別綜合過往的規約和新增修訂的內容給大家帶來了一套試題,相信小夥伴們都迫不及待的要來試試啦,那麼接下來就讓我們開啟一場激動人心的規約大闖關吧!1 服務端發生錯誤時,返回給前端的響應信息必須包含以下哪幾個部分?2 以下哪些時間類型在規約中不允許在程序中使用?3 以下哪些選項不符合前後端交互的JSON格式數據中key的編碼風格:4 前後端的時間格式統一為____,統一為GMT。5 HTTP請求通過URL傳遞參數時,不能超過多少字節?A. 請求的路徑可以使用動詞、名詞、推薦使用名詞單數D. 響應體body可放置多種數據類型,由Content-Type頭來確定B. 根據國家法律,網絡運行狀態、網絡安全事件、個人敏感信息操作等相關記錄,留存的日誌不少於六個月,並且進行網絡多機備份C. 應用中的擴展日誌(如打點、臨時監控、訪問日誌等)命名方式:appName_logType_logName.logD. 在日誌輸出時,字符串變量之間的拼接使用佔位符的方式8 以下說明屬於正確的前後端規約內容的有哪幾項?A. 推薦在接口路徑中加入版本號,來進行相應的版本控制B. 服務端返回的數據,推薦使用JSON格式而非XMLC. 伺服器返回信息必須被標記是否可以緩存,如果緩存,客戶端可能會重用之前的請求結果 D. HTTP請求通過body傳遞內容時,必須控制長度,超出最大長度後,後端解析會出錯A. 401: 請求要求身份驗證,常見對於需要登錄而用戶未登錄的情況B. 402:伺服器拒絕請求,常見於機密信息或通過複製其它登陸用戶連結訪問伺服器的情況C. 501:伺服器不支持請求的功能,無法完成請求10 對於前後端傳遞整數的場景,當十進位整數大於等於多少位時,服務端需要採用String類型返回防止精度丟失?B. 錯誤碼在某些特殊場景下可以直接輸出給用戶作為提示信息使用C. 錯誤碼之外的業務獨特信息由error_message來承載,而不是讓錯誤碼本身涵蓋過多具體業務屬性Tips:含多選題。評論區回覆你的答案,阿里妹會在今天14:00統一放出含有答案的留言並公布獲獎名單。屆時將按留言先後順序(14:00後的留言不計入,且每個ID以第一條回復為準),第一位全部答對的同學,送一個機械鍵盤。除此之外答對最多的前3位同學每人送一個雙肩包,前4-6位每人送一件衛衣。 福利來了上面測試題沒有獲獎的同學看這裡!識別下方二維碼加「阿里妹」好友,今天14:00以後回復 「答案」(14:00前回復無效),領取測試題答案及解析,阿里妹將抽獎送出5本《Java 開發手冊(嵩山版)》紙質書~