不是技術也能看懂云計算,大數據,人工智能
我今天要講這三個話題,一個是云計算,一個大數據,一個人工智能,我為什么要講這三個東西呢?因為這三個東西現在非常非常的火,它們之間好像互相有關系,一般談云計算的時候也會提到大數據,談人工智能的時候也會提大數據,談人工智能的時候也會提云計算。所以說感覺他們又相輔相成不可分割,如果是非技術的人員來講可能比 ...
記一次內存溢出的分析經歷——thrift帶給我的痛orz
說在前面的話 朋友,你經歷過部署好的服務突然內存溢出嗎? 你經歷過沒有看過Java虛擬機,來解決內存溢出的痛苦嗎? 你經歷過一個BUG,百思不得其解,頭發一根一根脫落的煩惱嗎? 我知道,你有過! 但是我還是要來說說我的故事.................. 背景: 有一個項目做一個系統,分客戶端和 ...
機器學習漫游(1) 基本設定
最近的十幾年機器學習很是火熱,尤其是其中的一個分支深度學習在工業界取得很好應用,吸引了很多眼球。不過從其歷程來看,機器學習的歷史并不短暫~從早期的感知機到八十年代火熱的神經網絡,再到九十年代被提出的經典算法集成學習和支持向量機;而最近的十年算得上是機器學習發展的黃金年代,軟、硬件計算條件大幅提高,尤 ...
高可用Redis服務架構分析與搭建
基于內存的Redis應該是目前各種web開發業務中最為常用的key-value數據庫了,我們經常在業務中用其存儲用戶登陸態(Session存儲),加速一些熱數據的查詢(相比較mysql而言,速度有數量級的提升),做簡單的消息隊列(LPUSH和BRPOP)、訂閱發布(PUB/SUB)系統等等。規模比較 ...
Android組件化框架設計與實踐
在目前移動互聯網時代,每個 APP 就是流量入口,與過去 PC Web 瀏覽器時代不同的是,APP 的體驗與迭代速度影響著用戶的粘性,這同時也對從事移動開發人員提出更高要求,進而移動端框架也層出不窮。 上圖顯示的是傳統的服務端架構和客戶端 App 架構對比。傳統的服務端架構中最底下是一個 OS,一般 ...
科普:String hashCode 方法為什么選擇數字31作為乘子
1. 背景 某天,我在寫代碼的時候,無意中點開了 String hashCode 方法。然后大致看了一下 hashCode 的實現,發現并不是很復雜。但是我從源碼中發現了一個奇怪的數字,也就是本文的主角31。這個數字居然不是用常量聲明的,所以沒法從字面意思上推斷這個數字的用途。后來帶著疑問和好奇心, ...
漫話JavaScript與異步·第三話——Generator:化異步為同步
ES6新增的特性中,Generator無疑是最為強大者之一,它與Promise結合起來,為令前端頭疼的異步回調難題提供了終極解決方案! ...
超高性能管線式HTTP請求(實踐·原理·實現)
這里的高性能指的就是網卡有多快請求發送就能有多快,基本上一般的服務器在一臺客戶端的壓力下就會出現明顯延時。 該篇實際是介紹pipe管線的原理,下面主要通過其高性能的測試實踐,解析背后數據流量及原理。最后附帶一個簡單的實現 實踐 先直接看對比測試方法 測試內容單一客戶的使用盡可能快的方式向服務器發送一 ...
深度工作:充分使用每一份腦力
浮躁已經成了普遍的社會現象。判斷一個人是否浮躁非常容易,看他一天主動拿起手機的次數就可以了。據TED的演講者說,這個值一般是50次,除了8小時的睡覺之外,基本上每20分鐘就要去翻翻手機。 你會去用手機做什么?看微信,票圈,微博,知乎,淘寶,或只是來回刷首頁。我們不是名人,沒人關心你在社交網絡上的行動 ...
DDD峰會歸來話DDD
一場大戲落幕,首屆DDD中國峰會如大會主題色一般的紅。或許在12月9日這一天,全中國的DDD粉絲大約有一半都匯聚在了國家會議中心。聽起來是幸,其實是不幸,因為DDD在中國的人群基數實在是太少了。 因為要負責大會的其中一個Track,期間又要接受采訪,另外還有朋友到訪,所以除了前面的兩個keynote ...
分布式、服務化的ERP系統架構設計
ERP之痛 曾幾何時,我混跡于電商、珠寶行業4年多,為這兩個行業開發過兩套大型業務系統(ERP)。作為一個ERP系統,系統主要功能模塊無非是訂單管理、商品管理、生產采購、倉庫管理、物流管理、財務管理等等。作為一個管理系統,大家的一般開發習慣就是使用.Net或Java技術,建立一個單塊(單進程)架構的 ...
設計稿自動生成可用頁面的展望
這篇文章只打算描述我加入支付寶之后,在設計稿生成代碼這個方向上自己做的嘗試和看到的團隊中的嘗試。不談行業歷史,不爭論方向。文章以現狀的形成和我的想法演進為主脈絡,文末會提到我所看到的新契機。所以讀者如果對現狀和推演沒興趣可以直接翻到后面《投石》一章。 立足 三年前剛開始做 Sketch 生成代碼插件 ...
.NET Core跨平臺的奧秘[下篇]:全新的布局
綜上所述,要真正實現.NET 的跨平臺偉業,主要需要解決兩個問題,一是針對不同的平臺設計相應的運行時為中間語言CIL提供一個一致性的執行環境,而是提供統一的BCL以徹底解決代碼復用的難題。對于真正跨平臺的.NET Core來說,微軟不僅為它設計了針對不同平臺被成為CoreCLR的運行時,同時還重新設... ...
什么是內存(二):虛擬內存
通過上一篇文章的扯淡,我們應該已經明白了存儲器的層次結構,技術細節很復雜,但是思想卻不難理解,因為就是很簡單的緩存思想。那么本文我們開始討論關于內存的另一個話題. 虛擬內存 。其實思想也是很容易理解的。 我不知道有多少人聽過虛擬內存這個概念,但是虛擬內存是計算機系統最重要的概念之一,并且它成功的主要 ...
.NET Core跨平臺的奧秘[中篇]:復用之殤
在《.NET Core跨平臺的奧秘[上篇]:歷史的枷鎖》中我們談到:由于.NET是建立在CLI這一標準的規范之上,所以它天生就具有了“跨平臺”的基因。在微軟發布了第一個針對桌面和服務器平臺的.NET Framework之后,它開始 “樂此不疲” 地對這個完整版的.NET Framework進行不同范... ...
.NET Core跨平臺的奧秘[上篇]:歷史的枷鎖
微軟推出的第一個版本的.NET Framework是一個面向Windows桌面和服務器的基礎框架,在此之后,為此微軟根據設備自身的需求對.NET Framework進行裁剪,不斷推出了針對具體設備類型的.NET Framework版本以實現針對移動、平板和嵌入式設備提供支持。除此之外,在Window... ...
剖析Linux系統調用的執行路徑
本文主要描述了操作系統是如何通過系統調用這個接口為上層提供服務的。文章通過printf函數調用過程為例,詳細剖析了系統調用是如何一層層由用戶態深入到內核態的過程,同時涉及到Linux處理中斷的一般流程。 ...
初探性能優化——2個月到4小時的性能提升
一次項目架構和性能上的優化,該項目功能更描述十分簡單,但可以說麻雀雖小五臟俱全,可以掌握Java很多優化性能的知識。 ...
一個程序員送給大學生弟弟的那些話
前言: 昨天一個大學生弟娃問了我一些問題,他是想賺點錢,因為讀書嘛沒什么錢,又談了戀愛,想通過一些方式賺點外快。 雖然平時也沒怎么聯系,但是作為大濕人,也不免多啰嗦幾句,把我能想到的一些觀點告訴他,希望對他能有所啟發。 在博客園里,我越來越傾向于寫更多“硬菜”,和技術緊密相關的文章。 但也如我博客園 ...



