掘金日報主打分享優質深度技術內容,技術內容分:前端、後端、Android、iOS、產品設計、工具資源和一些有趣的東西。
前端
-
比較與理解 React 的 Components,Elements 和 Instances
在翻譯《React Components, Elements, and Instances》文章的基礎上,主要專注闡述 React 的一個核心理念:用 Elements Tree 描述 UI。
-
如何用 JavaScript 實現一個陣列惰性求值庫
在程式語言理論中,惰性求值(英語:Lazy Evaluation),又譯為惰性計算、懶惰求值,也稱為傳需求呼叫(call-by-need),是一個計算機程式設計中的一個概念,它的目的是要最小化計算機要做的工作。
-
redux 三重境 – 對 redux 最佳實踐的思考和總結
- redux 基礎知識和 react-redux
- redux 周邊生態探索
- 有哪些功能?(粗略介紹)
- 有哪些很不錯的第三方庫?(詳細介紹)
- 最佳實踐介紹(dva)
後端
-
魅族推薦平臺的架構演進之路
魅族整個產品線都有用到推薦,包括資訊、視訊、應用中心、個性化中心、廣告等業務,魅族的推薦平臺在其中起到了關鍵的作用,下文將會全面分析從開始到現在的架構演進,以及其中涉及的技術難點分析,以期給讀者帶來更多的思考。
-
優先佇列實現原理分析
優先佇列是在實際工程中被廣泛應用的一種資料結構,不管是在作業系統的程式排程中,還是在相關的圖演算法比如 Prim 演算法和 Dijkstra 演算法中,我們都可以看到優先佇列的身影,本文我們就來分析一下優先佇列的實現原理。
-
《Deep Learning》中文版電子書
這是《Deep Learning》的中文翻譯,有 PDF 可以下載還可以閱讀原版。這本書以後將由出版社進行發行但是譯者選擇將它開源,開源的原因文中也有介紹。
Android
-
深入理解 ServiceManager
ServiceManager 是安卓中一個重要的類,用於管理所有的系統服務,維護著系統服務和客戶端的 binder 通訊。 對此陌生的可以先看系統服務與 ServiceManager 來了解應用層是如何使用 ServiceManager 的。 我們可以通過 ServiceManager.getService(String name) 來獲取服務,返回的是一個 Binder 物件,用於與系統做遠端通訊。
-
Android 底部導航欄 (底部 Tab) 最佳實踐|掘金技術徵文
當開始一個新專案的時候,有一個很重要的步驟就是確定我們的APP首頁框架,也就是使用者從桌面點選APP 圖示,進入APP 首頁的時候展示給使用者的框架,比如微信,展示了有四個Tab,分別對應不同的板塊(微信、通訊錄、發現、我),現在市面出了少部分的Material Design 風格的除外,大部分都是這樣的一個框架,稱之為底部導航欄,分為3-5個Tab不等。前段時間開始了一個新專案,在搭建這樣一個Tab 框架的時候遇到了一些坑,前後換了好幾種方式來實現。因此,本文總結了通常實現這樣一個底部導航欄的幾種方式,以及它各自一些需要注意的地方。
-
[譯] Android 如何實現氣泡選擇動畫
從安卓 Nougat 的底部導航到分屏特性,兩個平臺間有了許多相同之處。對設計師而言,我們可以將主流功能設計成兩個平臺一致(過去需要單獨設計)。對開發者而言,這是一個提高、改進開發技巧的好機會。所以我們決定開發一個安卓氣泡選擇的元件庫 —— 靈感來自於蘋果音樂的氣泡選擇。
iOS
-
可能是最全的iOS端HttpDns整合方案
DNS劫持會在我們正常瀏覽的網頁連結裡面被惡意插入一些奇怪的東西。不止是這些,DNS劫持還會對我們的個人資訊保安造成很大的傷害,釣魚網站之類的,也許我們所訪問的網站根本不是我們需要的網站,或者根本打不開網頁,有時還會消耗我們過多的流量。
-
掌握 Swift 的字串細節
String 型別在任何程式語言中都是一個重要的組成部分。而使用者從 iOS 應用的螢幕上能讀取到最有效的資訊也來自文字。為了觸及更多的使用者,iOS 應用必須國際化以支援大量現代語言。Unicode 標準解決了這個問題,不過這也給我們使用 string 型別帶來了額外的挑戰性。
-
Weex 事件傳遞的那些事兒
在前兩篇文章裡面分別談了Weex如何在Native端初始化的和Weex是如何高效的渲染Native的原生UI的。Native這邊還缺一塊,那就是Native產生的一些事件,是怎麼傳回給JS的。這篇文章就詳細分析這一部分。
產品設計
-
[譯] 針對失敗者的體驗設計
你還記得 turntable.fm 嗎?這個產品背後的理念是簡單明確的:你和你的朋友或陌生人一起加入了一個虛擬的「房間」,輪流為對方進行打碟。像許多經歷過早期流行性增長的產品一樣,它採用了現實世界的行為-社交性傾聽-並建立了一個數字代理,可以將人們跨越地理和文化的鴻溝即時連線起來。當 turntable.fm 啟動時,我非常激動,不會感覺到孤單。
-
[譯] 搜尋結果頁的最佳實踐
搜尋就像是使用者和系統之間的一次對話:使用者用一次查詢來表達他們需要的資訊,而系統用一組結果做為回應。搜尋結果頁恰恰是整個搜尋體驗中的一個關鍵部分:它提供了讓使用者參與對話的機會,來指導使用者的資訊需求。
-
面試時,如何闡釋設計思路?
眾所周知,作為設計師,面試的時候,面試官可能會讓你拿出自己覺得比較滿意的作品來講講設計思路,如果你沒準備好,再加上一緊張,很容易導致思路混亂,最後連自己都不知道在說什麼!
怎麼解決這個問題呢?
答案其實很簡單:那就是理清思路,做好充足的準備。
工具資源
-
持續整合是什麼 ?
持續整合是一種軟體開發實踐,即團隊開發成員經常整合它們的工作程式碼,每個成員每天至少整合一次,也可能會發生多次整合。每次整合都通過自動化的構建(包括編譯,釋出,自動化測試)來驗證,從而儘早地發現整合BUG,並解決。
-
收集非常好用的 Mac 應用程式、軟體以及工具
這個倉庫主要是收集非常好用的 Mac 應用程式、軟體以及工具,主要面向開發者和設計師。
-
貝賽爾曲線系統教程
貝賽爾曲線入門到高階系統教程,可以幫助你更好的理解貝賽爾曲線。