惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
量子位
GbyAI
GbyAI
B
Blog RSS Feed
月光博客
月光博客
人人都是产品经理
人人都是产品经理
腾讯CDC
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
The Cloudflare Blog
D
Docker
Cyberwarzone
Cyberwarzone
U
Unit 42
NISL@THU
NISL@THU
C
Check Point Blog
B
Blog
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
P
Proofpoint News Feed
F
Fortinet All Blogs
V
V2EX
T
Threat Research - Cisco Blogs
T
Threatpost
S
SegmentFault 最新的问题
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 司徒正美
P
Privacy & Cybersecurity Law Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
TaoSecurity Blog
TaoSecurity Blog
Latest news
Latest news
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
P
Privacy International News Feed
L
Lohrmann on Cybersecurity
AWS News Blog
AWS News Blog
G
Google Developers Blog
美团技术团队

PixelNest

会议是效率的杀手 国庆出游记录 对居家办公的一些想法 2022 春节 《搏击俱乐部》的结局 纪念 PAI 头一回达到 100 卡片笔记法 《刑法学讲义》的部分摘录 迁移博客 《UNIX 传奇》摘录 就地过年 一点记录:docker-compose 编排不同项目间的网络 近期读的几本书 办新身份证 git 获取其他分支的单个文件或目录 我的高考成绩 推荐 2020 年上半年的 8 部影视作品 ChromeOS 开发者模式 终于下单了《守望者》 联通来电管家服务 一些实用的 bash 代码片段 关于 鸟枪换炮 《架构整洁之道》摘录 惨淡的星球大战 旧笔记本电脑 if...then... 命令行检测 SSL 证书过期时间 2019 国庆假期 在 Ubuntu 里按空格键预览 《基本穿搭》笔记 我在 Ubuntu 里安装的一些软件 让人郁闷的英语学习过程 色彩理论基础 向百度主动推送网站链接 两部电视剧 《历史的教训》摘录 新工具 Koa 获取客户端 IP 备案了 apiDoc 基础语法 《代码整洁之道》摘录 BBC 纪录片 《逻辑的乐趣》 读不下去的《原则》 蓝牙鼠标唤醒休眠的 Ubuntu Google 发布会 2018 国庆假期 开发者的时间追踪和统计 使用 curl 发送 POST 请求的几种方式 《重来 2》读书笔记 Linux 和 MacOS 命令行转换图片用法整理 《Go 语言实战》笔记 Win10 微软拼音添加小鹤双拼以及其他配置 针对不同场景临时禁用 eslint 规则的方法 《好妈妈胜过好老师》读书笔记 配置 Win10 Linux 子系统作为开发环境 又读完一本尤·奈斯博的小说 近期写 Go 的一点语法碎片整理 ffmpeg 合并 MP4 M4A 文件 睡前看手机的大问题 《局外人》读书笔记 菊次郎与佐纪 读书笔记 3 菊次郎与佐纪 读书笔记 2 菊次郎与佐纪 读书笔记 1 豆瓣图片服务器防盗链 《如何有效阅读一本书》读书笔记 - 3 《如何有效阅读一本书》读书笔记 - 2 《如何有效阅读一本书》读书笔记 - 1 Vim iskeyword 济南 图个乐 开始看不懂《西部世界》了 剧透 听到几个好故事 过周末 相亲 让人失望的 Apple 悬疑故事 AI 记忆 世纪三部曲 上帝的梦
《程序员的职业素养》读书笔记
2019-10-25 · via PixelNest

这本书的英文名是 The Clean Coder, 中文译名是《代码整洁之道:程序员的职业素养》,跟《代码整洁之道》是同一个作者。这本书与具体的代码技巧关系不大,主要就讲了一件事——如何做一名专业的程序员。

挺薄一本书,内容都是日常所见,加上翻译也不错,所以读起来感觉轻松流畅。书中多数内容早已在实践,我印象最深刻的是这样几点:专业人士的态度,要重视测试,如何预估项目,以及对「流态区」的看法。

态度

专业人士至少应当有这样的态度:负责任,有担当。尽可能不出错,能为自己的错误负责。

测试

书中多次讲到「测试」,并且有专门的一章「测试驱动开发」,也就是 TDD。专业人士不破坏软件功能,不破坏软件结构,都需要靠覆盖率 100% 的测试来保证。

开发者自己写单元测试,一方面让代码质量得到保障,另一方面单元测试可以描述函数的意图,单元测试即是文档。遵循 TDD 的法则,为了能够让代码更「好测」,能够促使程序员在开发时对代码做出更好的设计。此外,开发者要辅助 QA 和业务人员写验收测试来明确开发需求。

预估

预估和承诺是两回事。

对于如何预估软件项目要花的时间,书中介绍了 PERT 预估法,有三个关键因素:乐观预估 O,标称预估 N 和悲观预估 P。

期望值 u 的计算公式是:

u = (O + 4N + P) / 6

标准差 σ 的公式是:

σ = (P - O) / 6

其他

  • 坚守原则,该说“不”时不能给出暗示性的虚假承诺,面对压力时也不能抛弃纪律和原则不顾。比如,即使工期紧,压力大的时候,也不能置 TDD 于不顾。
  • 保存好自己的精力和创造力,不要在身心疲惫和焦虑时思考代码、写代码。
  • 尽量避免走入死胡同,比死胡同更可怕的是陷入泥潭。

流态区

作者对「流态区」的看法,与我之前看到过的有关「心流」的观点截然相反。我不敢断定他们是不是在说同一个东西,如果是的话,那么跟书中其他内容相比,对「流态区」的描述是跟我的已有认知相差最大的。这也是为什么我给这个概念单拎出来一节内容。

这种意识状态并非真的极为高效,也绝非毫无错误。这其实只是一种“浅层冥想”状态,在这种状态下,为了追求所谓的速度,理性思考的能力会下降。

在流态区状态下,你其实放弃了顾及全局,因此,你很可能会做出一些后来不得不推倒重来的决策。在流态区写代码可能会快些,但是后面你将不得不更多地回头重新审视这些代码。

作者建议避免进入流态区