温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
程序员
三门
技术
精进
架构
修炼
管理
探秘
CMYCMMYCYCMYK程序的三fy.pdf 1 2019/9/11 9:22:22 内 容 简 介 我们都有一个共同的梦想成为更棒的程序员,但是如何做?如何学习和精进自己的技术?如何做业务分析和架构设计?如何做技术管理?本书就广大程序员都很关注的问题提供一些思路和方法。本书内容分为三大篇:第 1 篇介绍程序员的技能成长路径,介绍如何通过学习来加速成长,并讲解非常重要的业务分析和设计知识;第 2 篇详细介绍了架构修炼中的必备架构思维模式、架构设计过程,还通过真实案例剖析了架构设计的核心要素及关注点,以及如何通过架构设计来把控质量和风险;第 3 篇总结了做技术管理的诀窍,揭秘如何从准备做技术管理到实现自我管理再到实现团队管理。本书适用于即将或者正在从事 IT 相关开发工作,却不知如何提升自己,希望通过适当的学习方法精进技术的初级程序员;也适用于具备一定架构设计经验,想进一步系统化提升架构设计能力的中级程序员;以及有一定技术积累,想从事技术管理却不知如何着手的高级程序员。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 程序员的三门课:技术精进、架构修炼、管理探秘/于君泽等著.北京:电子工业出版社,2019.10(冲呀程序员系列)ISBN 978-7-121-37377-0.程.于.程序设计.TP311.1 中国版本图书馆 CIP 数据核字(2019)第 194241 号 责任编辑:张国霞 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:787980 1/16 印张:18.5 字数:390 千字 版 次:2019 年 10 月第 1 版 印 次:2019 年 10 月第 1 次印刷 印 数:4000 册 定价:79.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:010-51260888-819,。推荐序1 世界需要什么样的程序员 不想当工程师的程序员不是好民工。会编程不代表会工作,工程能力包含软硬技能,面向的是实际应用。从程序员变为工程师,得先“入门”,然后才是“上道”,从而成为“工型人才”。有人工作几年还没入门,只会简单开发;有人开发技能娴熟,却找不到进一步成长的路径,陷入迷茫之中;更有不少人自诩为 IT 精英,却不了解行业格局、发展趋势,很快就遇到职业发展瓶颈,蹉跎了岁月,虚度了青春。在我看来,好的程序员应该是“工型人才”。所谓“工型”,是指从下到上的能力提升过程。具体来说,就是先要具备完成完整应用的能力,包括:线上运维,成为熟手,这是下面的一横;在某些领域足够深入,成为高手,这是中间的一竖;在达到更高的水平之后,兼通很多领域,比如业务、产品、项目管理、测试、运维、团队组织,成为驱动者和领导者,这是上面的一横。每个人的成长都是不断打怪升级的过程,既要掌握技术和工具,又要学习方法和理论、积累实战经验,更要思考和沉淀。先进技术只是工具,最终目标是解决问题。经验丰富的工程师就像 MMA(Mixed Martial Arts,综合格斗)高手,精通综合技巧,活学活用,不拘泥于流派。在勇猛、精进之外,踏实、靠谱更为重要。踏实,是有自己的方向,知道差距;靠谱,是能把活儿干好,值得大家信赖,大家都乐于和你合作,放心把有挑战的任务交给你。从程序员到工程师,读这本书就够了!本书非常实用,可称作程序员入行手册。市场上的各类“21 天学会 XXX”和“XXX 编程宝典”书已经太多了,能够传承工作中实践技巧的书依然太少。本书汇聚了多位资深技术老炮儿压箱底的傍身秘技,兼顾软硬技能,贯通了程序员从基础到进阶再到突破的各个阶段,道出了成长的真谛,更手把手地指引我们前行。程序员的三门课:技术精进、架构修炼、管理探秘 IV 有道是“师傅领进门,修行在个人”,徘徊在门外或者迷茫在路口的新同学,从此不必再上下求索、苦苦寻觅。一书在手,夫复何求?希望你能通过本书,提升程序员的大局观,在成为“工型人才”的路上迈出坚实的一步,并穿越众妙之门,通达三千世界。微信公众号“IT 民工闲话”作者 史海峰 推荐序 2 V 推荐序2 程序员的工作是将从现实或者虚拟世界中抽象出来的逻辑以代码的形式实现,需要凝神静气才能完成一段有质量的代码。但不得不承认的是,程序员这个职业在很大程度上是吃青春饭的,如何充分把握自己的青春年华做一名优秀程序员?如何为未来的职业发展打下良好基础?这是每个程序员都应该认真思考的问题。非常遗憾的是,程序员这个职业所需要的知识、技能和经验,并不能完全从学校获得,更多地来自工作实践。本书系统且循序渐进地介绍了如何从菜鸟程序员成为高级研发人员或者架构师,以及如何积累知识和经验成为技术管理者,对于程序员在编码过程中需要用到的工具、模式、测试、沟通和架构知识,作者也给出了亲身实战经验总结。本书应该成为程序员的案头手册,对程序员的快速成长意义重大。读了这本书,相当于同老一代程序员深入交谈,他们也把自己的酸甜苦辣、成功与挫折、心得与秘密悄悄地告诉了你。这不仅仅建立了你的大局观,也让你有机会有赢在起跑线上。易宝支付 陈斌 程序员的三门课:技术精进、架构修炼、管理探秘 VI 序1 本书的素材主要来源于我的多年公众号积累,并邀请了李伟山、张洪亮、彭首長、刘朋这几位专家共同完成本书的写作,杨彪老师也在本书写作前期贡献了不少想法。我一直都是一个“笨孩子”,但我不以笨为耻。小学三年级时要写一篇关于柑橘树的作文,那时自己肚子没货、下笔万难,父亲知道后教了我两招:一是从整体到局部观察事物;二是阅读,看看别人是怎样写的。有朋友问,写书的时间从哪里来?其实,因为热爱,不觉疲惫!写作是让自己梳理思路的一个机会。古人说,有三类人,一类人深沉厚重,一类人磊落豪情、一类人聪明才辩。聪明才辩是学不了了,磊落豪情在骨子里有几分,愿学深沉厚重,下笨功夫。中国的软件业发展短短几十年,在思想构建、方法体系乃至实践上仍有很多需要我们努力的地方,每一年都有人在问十年前就被问过的问题,说明有些路必须走过才知道,也说明如果能在走路的过程中给后来者一点点益处,也算是一桩好事!特别感谢自己读高中时的班主任何老师,何老师教给我了独立思维,教我在写作功力扎实的基础上探索更有新意的内容。有一次作文课,何老师念了其他同学的两篇文章,课后跟我说到,其实我写得也不错,但也要给其他同学机会。我感受良多,也渐渐地学会了包容。感谢同事、朋友的帮助,愿我们共同成长!感谢我的妻子小娜对我的支持和帮助,感谢你不断鼓励和支持我去做新的尝试。我们的一对可爱的儿女也带给我很多欢乐。所谓幸福,大抵如此!谢谢你们!于君泽(右军)于成都 序 2 VII 序2 为什么要写书呢?这要从我的切身体会说起,刚进入职场时自己的职业规划几乎为零,一心想着怎样尽快学习更多的技术和积累更多的业务经验,但现实是每天都深陷永无止尽的业务需求开发中。因为长期埋没于代码世界的浩大分工体系中,我无法看清从业务到系统架构的价值链条,无法清晰定义自己在分工体系中的位置,处理不好自身与技术、业务的关系。我想,要是能有人帮我规划,我可能进步得更快。好在自己总能给自己打气(总觉得自己很棒),经过这么多年的摸爬滚打,终于摸索出相对清晰的职业发展路径。为了帮助和我一样致力于在 IT 道路上走得更远的人,我参与了本书的写作。写书是一个重新梳理自己的知识体系的过程,也是重新梳理自己的逻辑思维的过程。写书和写公众号不一样,公众号只是分享一个知识点,而写书是分享一个相对完整的知识体系,需要思维逻辑更加缜密。当然,还要做好时间安排,我写书都是先在路上梳理思路,再回家写。幸运的是,2018 年有了儿子嘟嘟,当嘟嘟好奇地想摸电脑时,我会暂停写书陪他,假模假样地给他讲爸爸在干什么。当然,儿子也是自己写书的动力。感谢右军、刘朋、彭首長、张洪亮,很荣幸和你们一起合作,虽然素未谋面,但我从字里行间可以感受到你们对技术的热情和真知灼见,希望我们能有更多的合作。最后,郑重感谢妻子小何同学为我们的家庭做出的贡献。李伟山 于南京 程序员的三门课:技术精进、架构修炼、管理探秘 VIII 序3 我在 2015 年离开校园,现在还依稀记得当初刚刚入职的时候,公司里的高管和我们新入职的员工一起交流,他说:“一个程序员工作的前 3 年,肯定是他成长最快的 3 年”。我当时对这句话的理解还不够深,但随着自己慢慢地走过第一个 3 年,回首过去,发现在这 3 年里,自己确实经历了一个飞速成长的过程。但是,自己也曾迷茫、困惑。所以,我特别想把自己在这 3 年里总结的经验分享给其他人。其实我很早就开始写博客了,有很多出版社的编辑找过我,也有很多读者问我能不能写本书,但都被我婉拒了,因为我始终觉得自己还需要沉淀一段时间。直到 2018 年,在我工作满三年,正有向其他人分享自己的工作经验想法的时候,右军找到我,说他想出一本关注程序员成长的书。我们一拍即合,马上就投入到了这本书的创作当中。在写这篇作者感悟的时候,我简单回顾了自己的人生,觉得自己还是挺幸运的。初中升高中时压线升入一所省重点,高中升大学时压线考入自己想学的专业,大学毕业时也幸运地加入自己梦寐已求的公司。我在工作的这几年里一直积极跟进技术的发展,所幸丝毫没有耽误自己的成长,而且能坚持更新博客和公众号,收获了很多读者和粉丝。这可能就是所谓的“越努力越幸运”吧。特别感谢本书的发起人右军的邀请,并感谢本书的其他几位作者:李伟山、刘朋、彭首長,还要感谢本书的责任编辑张国霞,以及为本书的写作做出很多贡献的杨彪,很荣幸能和大家一起完成这样一本书的写作!感谢我的博客和公众号上一直支持我的读者和粉丝,是你们的每一次阅读和每一条评论给了我坚持创作的动力!感谢我的女朋友对我的理解与支持!感谢我的爸爸妈妈在我的成长道路上给我的包容与支持!张洪亮 于杭州 序 4 IX 序4 在刚收到右军的本书写作邀请时,其实我是拒绝的,因为当时的 IT 圈遍布裁员和 996的消息,几乎所有人都在认真对待自己的工作,希望以更多的输出稀释空气中的那份压抑,我也希望把更多的时间和精力留给工作。但是,人生总是有那么多的偶然性,一位已步入中年的员工在离职之际向我倾诉了他的迷茫、焦虑和无助。他在经历了多年的职业生涯后还是没能找到自己的职业方向,将大量的时间消耗在了十字路口的彷徨中,也没能让自己高效成长。风雨之中,这位中年男人疲惫地带着梦想蹒跚前行。他的倾诉也让我陷入了深深的沉思中,总觉得自己应该做些什么。于是,我加入了本书的写作团队中,与其他作者一起,把我们在互联网行业里走过的路、踩过的坑和做过的思考以文字的形式呈现给大家,希望对正在路上的朋友有所帮助。特别感谢本书的几位作者:右军、李伟山、张洪亮、刘朋,我们齐心协力完成了本书的写作,我在该过程中也受益颇多,在技术和认知上都得到了提升。感谢本书的责任编辑张国霞,以及为本书的写作提供过很多帮助的朋友,特别是那些在百忙之中帮我找错别字的小伙伴:何宇、潘晨、杨笑美、赵元舒,大家辛苦了!彭首長 于成都 程序员的三门课:技术精进、架构修炼、管理探秘 X 序5 在一堂培训课上,关于领导力,一位技术管理者说:“领导力就是心存善念、劝人向善”,大家都在短暂的沉默后,被这有点“佛系”的说法逗乐了。但我认为,“心存善念、劝人向善”这八个字,不仅适用于技术领导者,还适用于程序员的成长。例如,在下班之后,把刷微信的时间用在为 GitHub 上的开源项目贡献一些整洁的代码。也许你只是希望自己在用了这么多年开源项目之后,能够回馈社区。但你没有想到,在自己做技术面试时,面试官突然抛开你的简历,关注起你在 GitHub 上的技术贡献。又如,当团队中的大多数人只关注项目进度,忽略了新增的代码是否让整个系统的架构变得愈发复杂时,你出于团队不要被“腐烂”的代码拖慢进度的想法,自告奋勇地用刚学的“整洁代码”技能,小心翼翼地把系统做