如果你已经写了好几年代码,你写的软件也已经稳定运行了很久,你甚至知道有多少用户在使用你的系统,包括你的女友、家人和同学。让系统成功部署和运转能给我们这些程序员带来满足感、成就感,但很难持续太久。
艰难编程一整天以后,当你回到家里时,你是会:
对着镜子里的自己说:“今天干得真棒!”
还是会觉得自己只是流水线中的“码农”,深陷低水准工作的泥潭?
你是否开始信奉,只有降低质量才能赶上进度,而且这已经成为团队的潜规则;你们只差喊出这句话:生产力与质量就是成反比的!!!
这还不是最糟糕的。焦虑、困惑、内卷将会接踵而至——35岁职业分水岭迫在眉睫,会很多时髦语言、框架的新同事不断涌现,最近你总在考虑:到底是该要求老板提升你做leader,还是出去创业试试?
其实,你还有一个选择,从码农走向匠师!
因为,匠师有自己的骄傲,可以用骄傲打败焦虑、赶走内卷、跨越年龄!而让一个编码匠师骄傲的,永远只有一件事,绝不是写出什么系统,而是自己写系统的方式。
▊ 你最终为谁编程——老板?用户?不,是社会!
21世纪,为了生存,我们的社会开始由技术主导,这是人类历史上首次出现的状况。
软件入侵了现代生活的方方面面,从早晨用手机刷开地铁闸机到中午扫码付午餐钱,从在淘宝买衣服到用滴滴打车。随着软件不断深入铁路和飞机等基础设施、银行等商业机构,甚至深入政府,发生“灾难”的风险在不断增加。
这意味着我们这些程序员的失误有可能导致:
一次登录失败
一笔资金丢失
一次刹车失效
甚至是以生命作为代价
……
这不是危言耸听,波音737 MAX 8的一个Bug让我们这个社会损失了两架1.2亿美元的飞机,夺去了338条鲜活的生命!
在此背景下,与其期待漫威英雄拯救世界,不如祈祷这些系统背后的程序员都能真正承担责任。
尤其是35岁前后的你,正值年富力强,却被这个数字诅咒,误以为软件开发生涯已接近尾声。正好相反,无论是你还是你的Boss,都需要及早树立“匠师”思维。因为“匠师”意味着技艺高超、成就非凡的行家——善用工具,熟悉行业,为自己的工作而自豪,满怀尊严和专业精神,值得信赖——他们是人类社会这个脆弱系统最后的夕阳武士。
要成为他们,意味着:
当写下一行代码,实现一个函数,提供一个接口时,我们清楚地明白这意味着什么!
当产出代码时,保证代码正确,保证所有继承它的人都可以轻松了解它的作用!
当提供接口时,我们可以自豪地宣称自己提供的接口好用、易用、难于误用!
不要再为35岁恐慌!你不屑于做管理,你也对开公司不感兴趣,上天注定你只能成为下一个 “匠师”。那是程序世界的最高境界,不仅值得你孜孜求索,也并非遥不可及。
▊ 拒绝成为“码农”!全面进化成“编码匠师”!!!
软件工程师可能是我们这个时代最接近工匠的一个职业,因为“代码是写给人看的,不是写给机器看的,只是计算机可以执行而已”。
一名好的工程师,应该有把“代码运行起来”这件事情更高的要求,用工匠般的心看待自己写出的代码,坚持聚焦在产品与系统的交付上,用纪律、标准和职业操守严格约束自己,最大限度地生产健壮、高容错和高效的软件。
纪律,是探索高效率和高质量的系统交付准则,坚持测试驱动、系统设计、系统重构、结对编程、验收测试等工作流程。纪律决定了技术团队交付效率与交付质量的底线。
标准,是对研发质量、测试质量、研发效率、技术生产力、持续改进等建立量化指标。全面梳理“冒烟测试通过率是多少?”“千行缺陷率是多少?”“用例复用率是多少?”“全量用例回归时间是多少?”等一系列指标的合格线,以便不断评估、改进,标准指导研发的效率与质量不断进步。
职业操守,是我们必须坚守的道德准则与底线,注释、文档、思考、交流、承诺、协作、自动控制,每一行代码里,无一不体现着我们技术人的职业操守。唯有坚持“我不写有害的代码”“我生产的代码将永远是我最好的作品”“我永远不会停止学习和改进我的技艺”等职业操守,坚信我们是在用代码编写规则,掌控互联网运行的规律,才能守正创新,行稳致远。
那么,该如何认识纪律、标准与职业操守,并将其应用在工作之中呢?
Clean Code、Clean Agile、《架构整洁之道》等经典图书的作者——鲍勃大叔(罗伯特 C. 马丁),35岁之前他在写代码,35岁之后他写出了更好的代码,第二个35年后,他在教全世界程序员怎么写好代码,而且将所有答案存放于封山之作——《匠艺整洁之道》中。
从最开始的Clean Code关注“好代码”,到现在《匠艺整洁之道》关注“好匠艺”, 鲍勃大叔十年磨一剑,给我们带来了软件开发领域几十年的匠艺追求。
随着对软件职业做出严格定义的难度正在增加。我们也许可以根据所创建的软件的关注重点,采用几种不同的路径。但是,要把关键软件和非关键软件区分开来可能并不那么容易。
依靠领袖的日子已一去不返。每名程序员都各自做自己眼中正确的事已经不够。纪律、标准和对职业操守的要求将会出现。今天摆在我们面前的问题是,让程序员自己来定义这些纪律、标准和职业操守,还是让那些不了解我们的人强加给我们。
唯有改变我们这些程序员的工作方式,提高纪律性、职业操守和标准,才能支撑起纸牌屋,防止它倒塌。
……
鲍勃大叔用净心实事求是,正本清源,全面剖析了尚处于青春期的技术行业,每一位从业者都能从中得到表象背后的“行业机密”。
鲍勃大叔用真心小处见大、以微知著,全面展现自己几十年上下求索得出的从个体到集体的匠艺思考,打破技术人头上的“紧箍咒”,让技术人为自己的工作感到骄傲和自豪。
鲍勃大叔用热心身体力行、谆谆教诲,把自己几十年来在代码编写、敏捷开发方面经验,“抽象”为程序员要学会的纪律、标准和职业操守,并毫无保留地倾囊相授,指导程序员写出优秀的代码、创建出色的系统,成为真正的“匠师”!!!
鲍勃大叔用好奇心“码”耕不辍,不断战斗,阅读本书,你将从最优秀、最有经验、最有战斗力的人身上找到改进自己的方法,找回编码的激情,激起提升手艺的欲望,获得无尽的精力,无所畏惧地追求完美。
唯有不停磨炼匠艺,纠正“35岁转管理”这样的行业浮躁心态,才能走向真正的工匠精神之路。
纪律是最基础的一层。这个部分关注实用性、技术性和规范性。阅读和理解这个部分,各类程序员都能从中受益。这部分内容配了一些视频,以展示测试驱动开发节奏和重构纪律。文本部分即旨在展示这种节奏,但还是视频比较有效。
标准是中间层次。这部分概括了世界对程序员这行的期望。管理者应该好好阅读,从而了解对专业程序员应有的期望。
职业操守在最高层。这部分阐述了编程职业的道德背景。它以誓言或一套承诺的形式体现,其中包括大量关于历史与哲学的话题。程序员和管理者都应该阅读这部分内容。
本书是为程序员和管程序员的人写的。但在另一种意义上,本书是为整个人类社会写的。因为正是我们这些程序员恰好处于这个社会的支点上。
罗伯特 C. 马丁(鲍勃大叔),软件开发行业领军人物,曾任C++ Report杂志主编、敏捷联盟首任主席、Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域的资深顾问。
1964年,年仅12岁的就已写下他的第一行代码。他自1970年起从事程序员职业。他与人合办了cleancoders.com网站,为软件开发者提供在线视频培训服务。他还创办了Uncle Bob咨询有限公司,为分布于世界各地的大公司提供软件咨询、培训和技能培养服务。同时,他也供职于芝加哥的软件咨询企业8th Light,任大匠(Master Craftsman)一职。
马丁先生在多本行业杂志上发表过数十篇文章,是各种国际性会议和行业活动讲坛上的常客。他也是cleancoders.com网站上广受赞誉的多个系列视频的创作者,也是Designing Object-Oriented C++ Applications Using the Booch Method 以及 Jolt 获奖图书 Agile Software Development, Principles, Palterns,and Practices,Clean Code 等畅销书作者。
韩磊,IT产品与运营专家、IT图书专业译者,译有《代码整洁之道》《梦断代码》《C#编程风格》等多部计算机图书。曾担任CSDN副总经理、《程序员》总编辑、广东二十一世纪传媒股份有限公司新媒体事业部总经理等职,现任AR初创企业亮风台广州公司总经理。
AI 前线为粉丝准备了《匠艺整洁之道》纸质书籍5 本!长按识别下图小程序,参与抽奖活动,由小程序随机抽出 5 位,每人赠送一本书。开奖时间:6 月 3 日(下周三) 18:30,获奖者每人获得一本。
👇点击【阅读原文】购买