具体描述
《程序员2017精华集》由程序员编辑部精心打造,对CSDN的《程序员》杂志2017年的内容再次进行了优化整合,内容更加聚焦,是一份浓缩的饕餮盛宴,值得阅读。包括16大篇章,210篇文章,涉及:技术视野、AI工程师职业指南、人工智能为我所用、人工智能学术前沿、前端开发创新实践、移动开发十年、微信小程序、VR与AR开发、互联网应用架构面面观、大数据技术深度实践、分布式数据库、物联网开发技术栈、云计算演进与应用、容器技术经验谈、区块链、关于C++你应该更新的知识等。
作者简介
程序员编辑部,是CSDN《程序员》的策划和编辑者,《程序员》是国内针对开发人员的专业技术刊物,一直秉承服务中国IT人员的思想积极发展,在中国开发人员中拥有较高的知名度。是广大开发者了解技术发展趋势、学习与提高的重要参考资料。
目录信息
大脑理论与智能机器探索者—Jeff Hawkins 专访 1
Xerox PARC为何与众不同,今日的研究院当如何打造 3
无模式文本编辑与“剪切、复制、粘贴”的历史 5
导航者:程序员的未来 9
AI工程师职业指南
如何成为一名机器学习算法工程师 14
如何成为一名推荐系统工程师 17
如何成为一名对话系统工程师 20
如何成为一名数据科学家 23
如何成为一名异构并行计算工程师 26
如何成为一名语音识别工程师 31
如何成为一名自然语言处理工程师 34
求取技术突破:深度学习的专业路径 36
实战路径:程序员的机器学习进阶方法 39
人工智能,为我所用
深度学习在推荐领域的应用 44
表示学习在信息推荐系统中的应用 47
Bandit算法与推荐系统 50
打造企业级云深度学习平台—小米云深度学习平台的架构设计与实现 56
机器学习平台JDLP长成记 59
Weiflow—微博机器学习框架 62
微博深度学习平台架构和实践 65
机器学习在热门微博推荐系统的应用 68
特征选择在新浪微博的演进 71
美丽联合业务升级下的机器学习应用 73
自然语言处理技术在推荐系统中的应用 75
浅析强化学习及使用Policy Network实现自动化控制 81
强化学习解析与实践 86
基于容器的AI系统开发 95
看得“深”、看得“清”——深度学习在图像超清化的应用 97
见微知著:细粒度图像分析进展 100
基于深度学习的计算机视觉技术发展 105
面向图像分析应用的海量样本过滤方案 110
人脸识别技术发展及实用方案设计 112
SLAM刚刚开始的未来之“工程细节” 115
深度学习中的注意力机制 118
声纹识别技术助力远程身份认证 123
TensorFlow下构建高性能神经网络模型的最佳实践 126
在物联网设备上实现深度学习 130
无人驾驶刚刚开始的未来 133
人工智能学术前沿
深度增强学习前沿算法思想 139
WSDM 2017精选论文 141
ICLR 2017精选论文 143
WWW 2017精选论文 145
AISTATS 2017精选论文 148
ACL 2017精选论文 150
前端开发创新实践
下一代Web 应用模型——Progressive Web App 154
饿了么的PWA升级实践 160
WebAssembly,Web的新时代 164
WebAssembly初步探索 170
WebAssembly在白鹭引擎5.0中的实践 172
在Node.js中看JavaScript的引用 175
Node.js异步编程之难 178
58同城Android端HTTPS实践之旅 181
微信终端跨平台组件Mars在移动网络的探索和实践 185
原生JavaScript 模块的现在与未来 188
详解HTTP/2 Server Push—进一步提升页面加载速度 191
Webpack在现代化前端开发中的作用与未来 . 196
使用WebGL提升可视化中的布局性能 199
Redux or Mobx:前端应用状态管理方案的探索与思考 203
Hybrid Go:去哪儿网Hybrid实践 210
苏宁前端基础工具集 213
被低估的Babel 216
探索Headless Chrome 217
CSS模块化演进 220
前端工程师为什么要学习编译原理 223
移动开发十年
十年一顾 iOS 与Android 这样改变了我们 227
饿了么商家版iOS端订单模块的重构之路 227
稳定性与内存优化—小型团队的Android 应用质量保障之道 . 229
谈Fuzz 技术挖掘Android 漏洞 234
安居客Android模块化探索与实践 237
浅谈Android视频编码的那些坑 240
从源码角度剖析Android 系统EGL 及GL 线程 244
基于拆分包的React Native在iOS端加载性能优化 247
Qunar React Native大规模应用实践 252
饿了么移动基础设施建设 256
美团点评酒旅移动端Vue.js最佳实践 259
前端感官性能的衡量和优化实践 261
微信全文搜索优化之路 263
ofo移动端的过去与未来 267
基于接口的消息通信解耦 268
Retinex图像增强算法及App端移植 273
使用Server-Side Swift 开发RESTful API 275
微信小程序
微信小程序的编程模式 279
微信小程序技术解读 281
从《小睡眠》谈微信小程序开发的实用技术与注意事项 284
《轻课》微信小程序踩坑历险记 286
使用Vue.js开发小程序:解析前端框架mpVue 288
微信开发深度解析之缓存策略 290
VR与AR开发
Web 端VR 开发初探 298
PC VR游戏的CPU性能分析与优化 300
HoloLens开发与性能优化实践 307
Unreal Engine 4 VR应用的CPU性能优化和差异化 309
VR中的交互之熵 314
ARKit:简单的增强现实 318
互联网应用架构面面观
京东分布式数据库系统演进之路 324
万人协同规模下的代码管理架构演进百度代码管理概况 327
微信数据强一致高可用分布式数据库PhxSQL 设计与实现 331
同程旅游缓存系统(凤凰)打造Redis时代的完美平台实践 335
百万用户分布式压测实践手记 338
电商物流系统技术架构进化史 343
有道云笔记跨平台富文本编辑器的技术演进 .. 345
不再谷满谷,坑满坑,看苏宁库存架构转变 350
唯品会双11大促技术保障实践 355
画像在同城物流调度系统的实践 358
大数据技术深度实践
Heron :来自Twitter 的新一代流处理引擎(原理篇) 365
Heron:来自Twitter的新一代流处理引擎(应用篇) 368
图数据库—大数据时代的高铁 371
图数据库在CMDB领域的应用 376
使用SMACK 堆栈进行快速数据分析 382
微博商业数据挖掘方法 384
探讨大数据时代构建高可用数据库的新技术 .. 388
使用Marathon 管理Spark 2.0.2 实现运行运行期扩容的executor 调度 391
大数据引擎Greenplum 那些事 395
OLTP类系统数据结转最佳实践 397
PostgreSQL并行查询介绍 399
基于Spark的大规模机器学习在微博的应用 403
HBase在滴滴出行的应用场景和最佳实践 405
Livy:基于Apache Spark的REST服务 408
Amazon Aurora深度探索 411
大数据的分布式调度 419
网易数据运河系统NDC 设计与应用 423
饿了么大数据平台建设 428
分布式数据库
微信分布式数据存储协议对比—Paxos 和Quorum 432
数据库压缩技术探索 434
浅谈分布式事务控制在银行应用的实现 438
ColumnStore在大数据中的应用实践 439
Redis Cluster探索与思考 441
支持自动水平拆分的高性能分布式数据库TDSQL 446
物联网开发技术栈
物联网技术现状与新可能 450
基于JavaScript语言的快速物联网开发架构 452
游历JavaScript IoT应用开发平台 456
使用Python进行物联网端到端原型开发 460
管中窥豹:一线工程师看MQTT 463
物联网安全与实战 467
IoT通信技术选型及模型设计的思考 470
微软、百度、阿里巴巴三大物联网云平台探析 .. 472
如何基于Android Things 构建一个智能家居系统? 475
浅析物联网应用层协议CoAP 478
蓝牙Mesh 技术初探 482
云计算演进与应用
谈谈OpenStack 大规模部署 486
业务视角下的微服务架构设计实例 491
Hurricane实时处理系统架构剖析 493
实施微服务的关键技术架构 500
网易云容器服务基于Kubernetes的实践探索 503
Kubernetes 、 Microservice以及ServiceMesh解析 506
单体应用到Kubernetes微服务架构的迁移方案 509
容器技术经验谈
Docker 在美团点评的实践 512
CoreOS vs. Docker容器大战引擎 516
基于模板引擎的容器部署框架 518
微服务应用容器化场景中常见问题总结 521
追本溯源,详解Serverless架构及应用 524
基于Mesos/Docker构建去哪儿网数据处理平台 . 526
容器与OpenStack:从相杀到相爱 530
Mesos容器引擎的架构设计和实现解析 532
基于Docker持续交付平台建设的实践 535
追求极简:Docker镜像构建演化史 540
区块链
最小可行性区块链原理解析 544
如何使用区块链技术进行项目开发 552
写给CTO的主流区块链架构横向剖析 554
关于区块链,程序员需要了解什么 559
区块链现有应用案例分析 561
产品定位的“生死劫”——你的区块链产品能否活过2017 年 564
区块链在版权保护方面的探索与实践 565
区块链技术在零售供应链的商业化应用 568
区块链技术实现及在政务网的应用 569
将区块链用于京东供应链溯源防伪 574
关于C++你应该更新的知识
C++14 实现编译期反射—剖析magic_get 中的magic 577
C++17中那些值得关注的特性(上) 580
C++17中那些值得关注的特性(中) 583
C++17中那些值得关注的特性(下) 587
· · · · · · (收起)
读后感
用户评价
这套书的“精华”二字,我觉得体现在它对“遗留问题”的处理哲学上。书中有一章专门讨论了“遗留代码重构的艺术”,这部分内容非常接地气。它没有鼓吹“推倒重写”的浪漫主义,而是提供了大量实用的、风险可控的渐进式重构策略,比如“绞杀者模式”在微服务拆分中的应用案例。作者详细描述了如何在新旧系统并行运行期间,如何设计透明的API网关来平滑过渡,以及如何设置有效的灰度发布指标来监控新模块的稳定性。这种“步步为营,稳扎稳打”的工程思想,比那些空喊“拥抱变化”的口号要实在得多。它教会我的不仅仅是技术,更是一种面对庞大、复杂、陈旧系统的成熟心智。读完后,我感觉自己看待手头的项目,多了一份耐心和对系统生命周期的敬畏。
这本厚重的精装书,拿到手里沉甸甸的,光是封面那深邃的蓝,就透着一股子技术沉淀的味道。我特意挑了个周末,泡了壶浓茶,打算好好啃啃。首先映入眼帘的是对并发编程模型那些底层原理的探讨,讲得极其细致,不是那种蜻蜓点水的介绍,而是直接深入到了操作系统的调度机制和硬件层面的缓存一致性问题。特别是关于Go语言中Goroutine调度器的剖析,作者用了很多生动的比喻,将复杂的上下文切换过程解释得清晰易懂,让我这个平时只停留在应用层调用的开发者,终于对“协程”这两个字有了更具象的认识。书中对内存模型的阐述也极为深刻,那些关于happens-before原则的推导过程,逻辑严密得像一套数学证明,看得我直冒冷汗,深感自己过去在多线程编程中很多“想当然”的做法其实是埋下了定时炸弹。读完这部分,我感觉自己对“稳定”这两个字有了新的理解,它不再是代码不报错的表象,而是对底层机制深刻把握后的一种自信。
我最欣赏的是书中对性能调优那几章的实战性。它没有停留在理论的云端,而是直接拿出了几个真实的、在业界广受诟病的老问题进行“手术”。比如,如何通过火焰图来定位CPU热点,作者手把手教你如何设置采样率,如何解读那些密密麻麻的函数调用栈,甚至连GDB的复杂命令组合都给得明明白白。有一章专门讲网络I/O模型的演进,从select到epoll的质变,作者通过C语言的底层代码片段,清晰地展示了内核态和用户态之间数据拷贝的损耗,逻辑缜密,让人茅塞顿开。我立刻将书中的优化思路应用到了我负责的一个高并发服务上,调整了TCP缓冲区和连接回收策略,说实话,效果立竿见影,延迟曲线平滑了许多,高峰期的丢包率也有明显下降。这感觉就像是给一台老旧的机器换上了最新的引擎,操作起来才真正有了掌控感。
说实话,这本书的阅读曲线是陡峭的,中间有几处算法和数据结构的结合点,让我不得不停下来,翻阅参考资料。但这种挑战性恰恰是它价值所在。它对图算法在复杂依赖关系解析中的应用进行了深入挖掘,特别是针对有向无环图(DAG)的拓扑排序,书中不仅给出了标准解法,还针对大规模、动态变化的数据集给出了增量更新的优化方案。让我印象深刻的是关于序列化协议的选择讨论,作者不仅仅停留在JSON和Protocol Buffers的对比上,而是深入到了二进制编码效率、Schema演进兼容性等多个维度进行量化分析,甚至提到了Google Flats Buffers的零拷贝特性在特定场景下的巨大优势。读完这些,我对“数据交换”这件事的理解都提升了一个维度,不再是简单地认为“能传就行”,而是开始关注字节的对齐和解析的速度。
这本书的叙事风格非常“硬核”,它仿佛是一位经验丰富的老工程师,坐在你对面,语气不紧不慢,但每一个字都掷地有声。在讲解设计模式的应用时,它没有简单地罗列“工厂”、“单例”这些耳熟能详的标签,而是将其置于具体的分布式事务处理场景中进行剖析。比如,如何利用状态机模式来保证Saga模式的补偿逻辑不发生死锁,这个角度非常刁钻且实用。书中对“CAP理论的实际落地”一节尤其精彩,作者没有回避现实世界的复杂性,而是坦诚地讨论了在不同业务场景下,如何进行痛苦但必要的取舍,并给出了基于Raft协议的实践经验总结。那些关于脑裂、一致性选举失败后的恢复策略,讲得极为详尽,让人感觉仿佛正在参与一场真实的集群故障排查会。这种直面困难、不回避复杂性的态度,是很多轻量级技术书籍所缺乏的。