內容簡介
《程式設計師2015精華本》由程式設計師編輯部精心打造,對CSDN的《程式設計師》電子期刊2015年的內容再次進行了最佳化整合,內容更加聚焦,是一份濃縮的饕餮盛宴,值得閱讀。人物篇:由程式設計師記者對話行業大師級人物和知名技術人,如Stephen Wolfram、阿里研究員趙海平,在前沿科技實踐等方面進行深刻碰撞。專題篇:盤點年度熱門技術專題,如Spark新特性新實戰、智慧型手錶、虛擬現實等,讓您對技術熱點一覽無餘。 雲計算和大數據篇:雲計算和大數據領域的熱門技術和實踐,尤其是Hadoop、Docker、Openstack等年度熱門技術。移動篇:把脈移動套用領域的熱點問題,如App Store套用殭屍化、手機淘寶的最佳化之路等,通過對移動領域突出問題的探討,提出一些解決方案。技術篇:包括語言與工具、技術實踐等方面內容。管理篇:針對技術管理中的一些問題進行深入探討,給出一些解決方案。
編輯推薦
1、書中的每篇技術文章都來自生產環境中遇到的真實問題,由當事人為你分析案,闡釋原因。
2、假如你入行不久,這本書將讓你身臨其境,感受行業中最真實的一面——緊迫的問題從何而來,緣何非克服不可。
3、如果你已是摸爬滾打多年的老手,這本書不但能讓你學到有效具體的技術方案,還能重現資深從業者的思考方式——讓你領略如果站在作者的角度上,會如何思考,怎樣判斷。
內容提要
《程式設計師2015精華本》由程式設計師編輯部精心打造,對CSDN的《程式設計師》電子期刊2015年的內容再次進行了最佳化整合,內容更加聚焦,是一份濃縮的饕餮盛宴,值得閱讀。人物篇:由程式設計師記者對話行業大師級人物和知名技術人,如Stephen Wolfram、阿里研究員趙海平,在前沿科技實踐等方面進行深刻碰撞。專題篇:盤點年度熱門技術專題,如Spark新特性新實戰、智慧型手錶、虛擬現實等,讓您對技術熱點一覽無餘。 雲計算和大數據篇:雲計算和大數據領域的熱門技術和實踐,尤其是Hadoop、Docker、Openstack等年度熱門技術。移動篇:把脈移動套用領域的熱點問題,如App Store套用殭屍化、手機淘寶的最佳化之路等,通過對移動領域突出問題的探討,提出一些解決方案。技術篇:包括語言與工具、技術實踐等方面內容。管理篇:針對技術管理中的一些問題進行深入探討,給出一些解決方案。
目錄
人物篇
“新”科學家Stephen Wolfram 1
生物與計算機交織的獨特人生
——Facebook HipHop 作者、阿里研究員
趙海平專訪 4
CTO要30%懂產品、30%懂管理、40%懂技術
——快的打車聯合創始人兼技術副總裁聞誠專訪 8
UPYUN 這些年:一段“剛好”的旅程
——UPYUN CTO 黃慧攀專訪 10
為人才創造匹配的成長環境
——雅虎北京全球研發中心創始人兼總裁張晨專訪 12
做旅遊與社交有機結合的先行者
——麵包旅行CTO 薛亮專訪 13
機會存在於傳統行業擁抱網際網路
——紛享銷客CTO 劉晨專訪 14
“細分垂直+開放融合”的網際網路大勢
——APICloud 聯合創始人兼CTO 鄒達專訪 15
程式媛人生 17
成功的社區在於擁抱變化
——知乎創始人周源專訪 18
賈揚清:希望Caffe 成為深度學習領域的Hadoop 20
專題篇
總結與展望2015 24
中國社交產品10 年記 24
盤點2015:十大最佳遊戲API 27
程式語言的2015 29
盤點:主流敏捷軟體研發工具平台比較 31
Spark 這一年,從開源到火爆 34
Spark新特性新實戰 37
平易近人、兼容並蓄
——Spark SQL 1.3 概覽 37
Tachyon:Spark生態系統中的分散式記憶體檔案系統 39
Hive on Spark 初探 43
Spark 性能調優 47
從Hadoop到Spark的架構實踐
——TalkingData 的移動網際網路大數據平台架構疊代 49
ALS在Spark MLlib中的實現 52
移動開發新看點 55
Android 記憶體最佳化之OOM 55
App 競品技術分析
——總結百款App 技術實現的秘訣 62
菜鳥爬坑記:Apple Watch 套用開發兩三事 65
野獸,以故事穿起騎行 66
淺談物聯網技術趨勢 68
智慧型手錶 70
Android 手錶在中國這樣落地 70
Apple Watch套用開發:從“再造”墨跡天氣談起 72
也談眾籌之王Pebble Time 74
Apple Watch 套用開發:遇到的那些坑 76
智慧型手錶的三大感知與未解難題
——華為創新總監蔡緒鵬專訪 77
虛擬現實 80
VR 的發展歷史與現在火爆的原因 80
感官世界與人機互動的盛宴
——未來虛擬現實養成記 83
淺析VR 互動技術選型中的瓶頸與機遇 85
基於UE4引擎的虛擬現實開發 87
移動端VR遊戲設計與開發
——Gear VR 遊戲《Finding》開發實戰經驗 91
創客世界 95
Lyn Jeffery :中國創客,加油! 95
Stefania:讓我們“真眼”看世界 96
Strawbee+Quirkbot:用吸管也能搭出機器人 99
Katia Canepa Vega:一場有關美的實驗 100
被忽視的Maker教育 101
用戶體驗塑造產品未來 103
用戶體驗與轉型 103
提升用戶體驗: 必備的核心理念與方法
——攜程用戶體驗實踐 104
軟體界面的國際化實踐 106
以用戶為中心、商業成功為導向
——淺談設計師的主觀能動性和職業發展 108
微信生態 111
微信生態中企業套用的創新與創業機會 111
微信智慧商圈平台的搭建和探索 112
用可視化工具提升微信H5 開發效率 114
微信支付開發中的“坑”與解決之道 115
“網際網路+”時代,微信開發者沒有理由成為項目最後的接盤俠
——微信開發團隊管理的精益體系、OKR 體系、內部創業及其他 116
O2O困境or新機 119
O2O 經濟垂直細化,小美到家的上門美容探索 119
e袋洗,不忍辜負這個時代 120
微微拼車,創業源於大情懷 122
河狸家:沒有人比我們更了解服務的本質 123
前端框架 126
AngularJS 在2015 126
Vue.js:輕量高效的前端組件化方案 128
avalon :小而美,輕量級前端MVVM 框架 131
解讀React 133
探索React生態圈 135
解讀Mobile Library背後的設計故事和理念 139
新型資料庫 141
雲+ 微服務+ 新硬體:下一代大規模並行資料庫架構風格 141
Pinot-LinkedIn如何將大數據做到實時與民主化 143
阿里雲分散式快取OCS與DB之間的數據一致性 145
刀尖上的乾坤大挪移 :RapidsDB技術大起底 147
Spark與Flink:對比與分析 149
基於LLVM的記憶體計算 150
關係型到文檔型的跨越 153
MyCat:開源分散式資料庫中間件 155
雲時代的分散式資料庫:阿里分散式資料庫服務DRDS 157
架構技術與實踐 160
架構設計最佳實踐與架構師必備素養 160
創業公司工程師應該掌握的可伸縮Web開發技術 160
面向業務的立體化高可用架構設計 163
從MVC到前後端分離 168
以58幫幫為例看58同城典型技術架構演變 174
淺談工業級物聯網項目架構設計及實施 177
軟體定義存儲(SDS)的定義及其分類 181
論架構師的自我修養 185
人生何處不架構:Tieto,SONY架構實踐 186
Java二十年 189
Java——永存、曲折、低谷、重生! 189
越來越“簡單”的Java 190
細品這杯香濃的咖啡
——阿里中間件高級專家沈詢的Java 之旅 191
做編碼的架構師
——專訪唯品會架構師肖樺(江南白衣) 192
熱情和毅力讓我將技術進行到底
——專訪《實戰Java 虛擬機——JVM 故障診斷與性能最佳化》作者葛一鳴 193
Java開發與技術挑戰
——關於技術的技術思考 195
Java 8與Apache Ignite 197
Java記憶體模型的歷史變遷 200
那些年,Java 程式設計師用過的開發工具 201
Java框架研發思考 204
雲上Java System Profiling與Debugging
——螞蟻金服觀察與實踐 205
搜狗商業平台Java技術實踐 208
Java 在遊戲伺服器開發中的套用 212
Java 在電信軟體領域的技術實戰 213
關於Java框架Vert.x的幾點思考 216
中國SaaS生態 219
中國SaaS 觀察 219
團隊協作工具Worktile技術架構揭秘 221
基於公有雲平台,打造TB級海量檔案備份保護系統 223
讓餐廳放心的雲服務:雅座CRM技術解密 226
移動端企業IM系統最佳化 229
聚焦用戶體驗,dayHR雲存儲技術背後思考 230
逸創雲客服技術分享與案例實踐 232
傳統企業SaaS套用的五個誤區 234
泛OA,2B-SaaS的主場 235
大數據核心技術與實踐 238
開源大數據開源生態概覽 238
eBay的Connected Commerce大數據平台實踐 239
優酷土豆大數據平台服務及套用監控設計與實踐分享:Hold住你的平台 242
微店的大數據平台建設實踐與探討 244
逆水行舟,看前行中的Spark 248
SparkR:數據科學家的新利器 249
基於Mesos的Spark集群搭建實踐 252
雲計算開源技術變遷 256
Kubernetes 容器管理技術變遷 256
OpenStack Magnum 及Liberty 新功能簡介 258
Liberty版本中Neutron的發展介紹 262
OpenStack之Heat的合縱連橫 265
容器周邊開源工具新秀:Sysdig和Calico 267
基於Mesos和Docker構建Cloud Native套用 269
OpenStack架構企業IT套用的敏捷實踐 272
專訪ZStack創始人張鑫私有雲大部分剛需在“虛擬化+” 276
OpenCloud技術 278
容器技術的歷史、現狀和展望 278
深度解析Docker和OpenStack系統集成 281
基於Mesos和Docker的分散式計算平台 287
基於容器的自動構建
——Docker 在美團的套用 291
騰訊在Spark 上的套用與實踐最佳化 293
Intel Spark套用最佳化和實踐經驗 295
安全實踐 299
安全的喧譁與躁動 299
6種常見架構設計安全誤區 300
企業私有雲安全防護實踐與探索 302
去哪兒網安全實踐:如何從0到1打造企業信息安全 307
唯品會安全實踐三步曲 308
從旁路攻擊看4G時代的手機安全 309
網路安全人才決定行業格局 312
ROVNIX攻擊平台分析
——利用WordPress 平台傳播的多外掛程式攻擊平台 313
人工智慧技術進展 317
從數據到智慧型,中國人工智慧技術實踐現狀分析 317
AMiner背後的技術細節與挑戰 318
TalkingData大規模機器學習的套用 322
DMLC深盟開源分散式深度機器學習平台解析 325
基於深層神經網路的命名實體識別技術 329
論SparkStreaming的數據可靠性和一致性 331
雲計算與大數據篇
搜狐雲景頻寬自動化運維實踐 334
揭秘12306技術改造
——傳統框架雲化遷移到記憶體數據平台 335
Neutron結合SDN的架構分析 340
大數據時代的軟體架構範式
——Reactive 架構及Akka 實踐 341
飛起來的大象:Hadoop從離線到線上 345
用Sentinel實現Redis高可用集群 348
Ilya Sutskever的深度學習綜述及實用建議 351
溫故知新:SchemaRDD 解析 354
銀聯基於OpenStack的金融私有雲建設實踐 356
Docker容器的root安全嗎? 361
Voidbox - Docker on YARN
——一個YARN 上基於Docker Container 的
計算框架 363
Linux套用容器:Docker vs. Rkt 366利用Docker構建能自動運維的彈性雲平台 370
Docker創業指南 372
移動支付爆發年的雲服務機遇 374
淺談CloudStack與ZStack架構與性能 375
基於雲平台的車聯網UBI解決方案 379
淺談“中國”語境下的公有雲發展 381
移動篇
從技術極客到核心管理的秘密 385
——出門問問CTO 雷欣專訪 385
關於大屏互動,我們的理解還很幼稚 386
App Store 套用殭屍化 388
——沒品質沒資本的必然走向 388
腳踏車,恰到好處的“智慧型” 391
手機淘寶性能最佳化之路 392
手機遊戲:那些狂飆突進背後的現實陰影 394
尷尬的導航 397
《知性》,探尋移動化社區的敏感帶 397
手遊因無節制獎勵而遊戲化的趨勢 399
Apple WatchKit探究 401
《天龍八部3D》的Unity實踐 404
Unity開發MMOARPG遊戲解決方案 406
F2P遊戲三大顯性特徵的結構解析 408
iBeacons的這一年 410
Unity首席布道師:VR遊戲的設計細節 412
跨平台3D軍事動作遊戲面臨的挑戰 413
巨人的進擊 —— Android生態的破與立 414
Android事件匯流排還能怎么玩 ? 416
Arduino與中國開發者合作,推出Geduino背後的故事
——Arduino 聯合創始人Massimo Banzi 專訪 420
Android系統架構之微服務架構 421
墨跡天氣的體驗創新 425
LBS實時交通信息系統設計方法 426
LBS數據的空間索引方法 428
LBS套用的定位與算路方法 431
LBS 套用的路徑引導方法 434
LBS實時交通信息系統設計方法 436
技術篇
從4 行代碼看右值引用 438
變長抽樣算法
——一種在傾斜數據集中進行均勻抽樣的高效算法 441
揭秘百度下一代分散式檔案系統AFS 444
從《LOL》談遊戲中的隨機動作最佳化 446
App競品技術分析(一)
——總結百款App 技術實現的秘訣 449
App競品技術分析(二)
——總結百款App 技術實現的秘訣 452
App 競品技術分析(三)
——總結百款App 技術實現的秘訣 462
App 競品技術分析(四)
——總結百款App 技術實現的秘訣 466
Vert.x3異步框架實戰 468
基於大數據與深度學習的自然語言對話 470
從acl談如何設計伺服器編程框架 473
從字面量發現函式式編程 477
C++11模板元編程 479
C++11模板元編程套用 483
泛化之美C++11可變模板參數的妙用 487
C++11實現一個輕量級的AOP框架 491
PHP7與Swoole 494
音樂程式語言Alda 496
螞蟻金服AQC持續集成平台漫談 500
國內和國外兩種被否定的研發聲音 503
工業網際網路需要更多的方法
——Essence 使得這些方法更強大 506
Facebook的願景以及虛擬現實的未來 509
Google定製整機櫃伺服器 512
利用Go重寫大型系統 515
SQL Server新利器 In-Memory OLTP 516
Tachyon入門之實例談 520
我是如何進行異構並行計算算法設計的 522
電信行業服務化實踐 524
如何像巫師那樣隔空操作
——淺析迷你雷達的原理和套用 527
遊戲設計的疊代誤用:從半成品到概念修正 529
如何挑選適合的前端框架 530
GC調優在Spark套用中的實踐 532
深入掌握ECMAScript 6 異步編程 537
駛向智慧型化生活的速度與激情
——福特汽車車輛電氣化及基礎設施全球總監Mike Tinskey 專訪 544
分散式MySQL資料庫TDSQL架構分析 546
如何正確理解訊息推送服務的“送達率” 549
Spark SQL在騰訊TDW的套用實踐 551
中科雲超融合架構的存儲實踐 553
多面程式語言Scala 554
神奇的距離幾何學
——定位網路的套用與研究 558
電商“阿米巴”模式實踐 561
深入淺出數據分析師 562
以業務驅動型的美麗說HIGO架構演變 563
搜狗商業平台服務化體系實踐之路 564
開源套用之策
——借船出海還是造船出海 567
HTML5遊戲框架大軍中的一乘輕騎Phaser 569
Pulsar Jetstream
——來自eBay 的實時大數據處理 576
基於ActiveMQ的訊息中間件系統
——OneMM 邏輯與物理架構設計詳解 579
管理篇
在前行中蛻變 582
不進化,則消亡
——網際網路時代企業管理的十項實踐 584
敏捷轉型初體驗
——開發自測踐案例 586
成果與價值是最好的驅動力
——開啟新旅程,寫在窮游年會之後 588
熬過寒冬,展翅騰飛
——關於技術團隊建設的那些事 590
關於網際網路創業的眾智思考 591
敏捷思維
——移動網際網路和大數據時代下的IT 企業變革之道 592
矽谷公司的企業特點和人才招聘那些事兒
——矽谷“超級面試官”、Coursera 軟體工程師董飛專訪 594
項目進度估算難題 596
作者簡介
程式設計師編輯部是CSDN《程式設計師》的策劃和編輯者,《程式設計師》是國內針對開發人員的專業技術權威刊物,一直秉承服務中國IT人員的思想積極發展,在中國開發人員中擁有較高的知名度。是廣大開發者了解技術發展趨勢、學習與提高的重要參考資料。
前言
效法工業
有人曾問法國印象畫派先驅Agugste Renoir,為何他總是露天作畫,而非於畫室中創作?Renoir 回答說,在畫室中,他大概只能想像出四五種不同模樣的樹葉,再畫其他葉子便與之相似。而大自然則創造出了百萬種不同的樹木,是取之不盡的思維源泉。Leslie Lamport(圖靈獎得主,LaTeX 設計者)則說,正是這樣的原因,他從未供職於大學,而是始終在工業界開展他的研究。《程式設計師精華本》中的每篇技術文章都來自生產環境中遇到的真實問題,由當事人為你分析案,闡釋原因。
假如你入行不久,這本書將讓你身臨其境,感受行業中最真實的一面——緊迫的問題從何而來,緣何非克服不可。如果你已是摸爬滾打多年的老手,這本書不但能讓你學到有效具體的技術方案,還能重現資深從業者的思考方式——讓你領略如果站在作者的角度上,會如何思考,怎樣判斷。
你需要的最新資料Marvin Minsky 曾開玩笑說,每樣科學都有“半衰期”,而計算機科學可能是半衰期最短的領域之一——洗個澡的工夫,就有一半知識要過時了。
在你離開學校前,有的知識就已多年未曾更新(比如新標準下程式語言的用法),而坊間口口相傳的,或許只是“過時”技術在各自頭腦中醞釀的不同版本——或許你並不知道,走在行業前沿的開發者,早已擁有了更好的方案,而用戶最關心的問題也已經默默發生著變化。《程式設計師精華本》為你收錄最近一年的行業進展,在文章重新組合的過程中,我們保留了那些讓你能在今天受益的文章——向你講述新標準、新工具、新解法、新問題,以及新的思考方式。
帶給你意外收穫
1986 年,科學家Richard W. Hamming 在貝爾通訊研究中心,為兩百名科學家做了題為《You and YourRe-search》的演講:
“我觀察到,關上辦公室的門,確實能在今天明天完成更多工作,效率也比其他人高。而十年後則未必——你已分不清哪些問題才真有價值了。而敞開門的人,總免不了各種打擾,卻在偶然間獲得了有關這個世界是什麼,以及哪些問題更重要的線索。敞開門與最終成就大事之間,聯繫千絲萬縷,儘管關著門的人通常更用功”。
重要的發現常常來自“意外收穫”——科學家依靠同事帶給他們洞見。而閱讀《程式設計師精華本》,將讓你獲得“這個世界是什麼,以及哪些問題更重要”的線索。這本書不僅有你最迫切想要了解的問題,也會告訴你行業中還有哪些問題很重要。這些線索會不會幫助你翻開職業生涯新的一頁?我們拭目以待。
程式設計師編輯部