1. 程式人生 > 實用技巧 >大廠新來的實習生,連Json都不知道都不知道,給喬戈裡震驚了。。。

大廠新來的實習生,連Json都不知道都不知道,給喬戈裡震驚了。。。

喬戈裡,一名在北漂的大廠程式設計師,在這裡記錄下來喬戈裡從校招進入大廠以來的點點滴滴。

事情

起因

如圖所示,發生在這周的一個工作日,當時這份介面文件評審完成了(PS:在大廠開發需要開發寫介面文件,然後由高 T去評審介面文件,文件沒問題了,然後前端和後端開發按照介面文件進行開發),然後需要根據評審意見進行修改,由於某些原因,這份介面文件的開發工作需要交接給新來的實習生進行開發,所以喬戈裡就讓實習生完成接下來的修改工作和開發工作。

修改介面文件過程

修改的地方不多,一個是加一個分頁效果,另外一個是給返回結果裡面增加一些欄位,我理解工作量也不多。

給返回結果裡面增加一些欄位 ,我想的結果應該是下面這樣:

{
    "data":{
        "A1":{
            "A1":[
                "A1-1",
                "A1-2"
            ],
            "current":""
        }
    }
}

其中, data.A1.A1是個 list,裡面是包括 data.A1.A1所有取值情況,data.A1.current 欄位是代表data.A1.A1當前被使用者選中了哪個欄位。

但是萬萬沒想到,實習生把修改完的介面文件給我,我看到的是這個樣子的結果:

{
    "data":{
        "A1":{
            "A1": {A1-1,A1-2} ,
            "new":null
        }
    }
}

我問了實習生,你這個可以在json 線上解析網址解析成json嗎?實習生回我,json是什麼東西啊?
喬戈裡當時就???

好吧,json 不知道就不知道吧,但這個為了實現分頁效果的修改也是槽點滿滿

我期待的結果是下面這樣:

{
    "page":{
        "pageNo":1,
        "pageSize":10,
        "totalCount":1
    }
}

結果實習生只加了一個 page:1這樣的欄位,我問你這樣可以實現分頁效果嗎?只展示第幾頁,不展示每頁展示多少嗎?

處理過程

最後我看他這樣呀,修改完不知道啥時候,我就把介面文件的修改工作親自改完了。

反思大廠招人標準

(圖片)看到這裡,大家估計都會新生疑問,我靠,這麼菜怎麼進的百度啊?。其實當時發完朋友圈,就一堆人在下面評論問我了,(PS:想窺探我朋友圈一手訊息的,可以加我哈已經有我好友就不用加了哈,目前人數還沒到上限, 複製 QGLNB12342 新增即可)

這裡和大家說一下大廠招實習生看中什麼,其實大家可以從網上看看大廠的面經就知道了:

  • 基礎紮實,計算機基礎:作業系統、資料庫、資料結構、計算機網路、設計模組、Java 基礎集合 Spring這些得會
  • 手寫演算法題可以徒手把《劍指 offer》上面的每道題10分鐘內寫出來
  • 有個能說的專案
  • 學歷尚可,學歷不行只能找人內推,比如找喬戈裡內推。

所以你看,面試的時候也不會去讓你徒手寫個json 啊,不會json並不影響你通過面試。
關於上面這些進入大廠必備的東西,喬戈裡之前在準備面試的時候總結了一份資料,如下圖所示

已經幫助很多粉絲朋友拿到網際網路公司的 offer,最近一位讀者朋友說她拿到了百度的22K+12W 簽字費 offer。

需要的在我的公眾好 程式設計師喬戈裡 後臺回覆 888 獲取這份大廠面試寶典。

介面文件

關於實習生的事情,雖然我自己親手改了介面文件,但想著以後如果有寫介面文件的事,也不能老是我親自動手啊,於是我在雙11的夜晚,整理了一些資料發給了實習生。

別問為什麼雙11晚上不陪女朋友過節,喬戈裡但凡有個女朋友,至於大晚上給一個大老爺們發這些資料嗎?


https://juejin.im/entry/6844903426350907400

需要我整理的這些介面文件資料的,可以在喬戈裡的公眾好:程式設計師喬戈裡 後臺回覆 介面文件 獲取。

介面的命名規範

介面的 url 中比較重要的點就是路徑了我覺得:

路徑又稱"終點"(endpoint),表示API的具體網址。

在RESTful架構中,每個網址代表一種資源(resource),所以網址中不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的表格名對應。一般來說,資料庫中的表都是同種記錄的"集合"(collection),所以API中的名詞也應該使用複數。

舉例來說,有一個API提供動物園(zoo)的資訊,還包括各種動物

你如果想定位到某個動物園下的某種動物,那你的 url:

https://api.example.com/v1/zoos/{zooID}/animals/{animals}

zooID換成對應的動物園 ID,animals換成對應的動物。
https://api.example.com/v1/zoos/2/animals/pig
就代表2號動物園的 pig。

介面的增刪改查

比如你新建一個配置並進行儲存,那麼應該使用 post 方法,然後再進行編輯應該使用 put 方法。

雖然你使用 post 也可以在後端實現修改編輯的功能,甚至你可以使用 post 使用 get 方法,但是其實是不符合規範,大廠還是很注重規範。

翻頁的設計

每個公司可能前端的翻頁都有預設那一套,最好是和前端提前對齊再去設計介面文件,別一個介面文件一種翻頁方式,給前端和後端都增加不少工作量。

對齊

文件如果更改完了,記得和大家對齊介面文件

最後

喬戈裡原創不易,覺得有幫助的,希望人才們轉發、點贊、在看支援一波。