如何進行網絡框架的學習和設計

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"1 前言"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對框架的認知,分爲三層:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"第一層:會用"},{"type":"text","text":" 。瞭解它的功能,知道怎麼調用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"第二層:知道實現"},{"type":"text","text":" 。通過研究源碼,知道它怎麼實現的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"第三層:理解爲什麼"},{"type":"text","text":" 。爲什麼要有這個框架?如果沒有這個框架,我們如何實現它的功能以及實現的成本有多高?框架內部爲什麼這麼設計?有沒有更好的設計?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"要認知到第三層,最好的方式就是先拋棄這個框架,擼起袖子自己幹,從零設計一個這樣的框架,最後回過頭來,再去思考這個框架存在的意義,以及它內部的設計。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"比如網絡框架,它的基本功能是調用服務器的接口獲取數據,在APP開發中,這個功能不需要依賴任何額外框架就可以輕鬆實現,但是在實際項目中,能滿足這個基本功能是遠遠不夠的,還有很多其他的事情需要考慮,比如線程調度、數據加工、易用性、可擴展性等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面我們先從零設計一個網絡框架,然後再去對照okhttp和retrofit的源碼,思考它們存在的意義以及它們的設計,最後我們再挖掘下okhttp和retrofit預留給我們的擴展能力,舉例一些常見的應用場景。更進一步,我們再思考下它還有哪些不足,以及如何改進。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"2 從零設計網絡框架"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"第一步:請求網絡"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章