分享一些有助于提升程序设计水平的书籍 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Gota
V2EX    程序员

分享一些有助于提升程序设计水平的书籍

  Gota
gota33 2022 年 1 月 29 日 7511 次点击
这是一个创建于 1473 天前的主题,其中的信息可能已经有所发展或是发生改变。

不知道大家有没有这样的感觉, 刚入行的时候比较喜欢读一些新书, 尤其是讲时髦技术的书. 摸爬滚打两三年之后, 大概率会感觉到有个瓶颈期, 这时候读书就比较偏向于选择一些分享经验总结的书籍. 所以这次趁着放假, 特来分享几本经验性的书籍.

这几本书都比较薄, 一般两三天就可以读完一本. 适合有一两年实际工作经验的读者, 自己踩过坑再读最能领会其精髓.

A Philosophy of Software Design

软件设计哲学

豆瓣链接: https://book.douban.com/subject/30218046/

这是本 2018 年的书, 作者是斯坦福教授、Tcl 语言发明者 John Ousterhout.

本书核心论点: 软件设计的核心在于降低复杂性.

前 11 章是本书的精华, 定义了复杂性, 并分析了其产生的原因, 及可能导致的后果. 接下来描述了各种消除复杂性的策略, 包括: 1. 模块化设计, 2. 信息隐藏, 3. 分层抽象, 4. 错误处理.

虽然看起来都是一些再熟悉不过的词, 但由作者这样经验老道的大师分析下来, 确实给人一种眼前一亮, 醍醐灌顶的感觉.

不过本书没有引进国内, 所以想看的话只能到书栈网之类的网站上找找民间翻译的版本了. 水平不错的话也可以直接买英文版.

The Art of SQL

SQL 语言艺术

alt 属性文本

豆瓣链接: https://book.douban.com/subject/3012601/

这本 2008 年出版的书, 是由有着 25 年 SQL 性能调优经验的大牛 Stéphane Faroult 编写的.

和一般讲 SQL 概念的书不一样, 本书将 SQL 调优比喻成一场战争, 从战略部署开始讲起, 直到每个具体的战役, 甚至还有锦囊妙计. 每个章节都结合了作者自身的实际经历, 非常的充实.

这本书直接就能买到中文版实体书, 限于篇幅我就不多介绍了.

Google API 设计指南

网址: https://cloud.google.com/apis/design/

这其实是不是书啦, 而是一份文档, 自带中文.

经常看到有人争执接口设计方面的问题, 所以拿出来分享下. 我几年前也经常和同事在这种问题上争得不亦乐乎, 不过一般来说我们争论的出发点都是为了自己编码方便, 等到几年后再看当时的 API 设计, 才深刻地感受到当时自己给团队挖了多大的坑.

所以有次开会就确定下来, 所有的 API 不论对外对内, 都按这份文档设计. 之后就没怎么在这上面浪费时间了, 而且接口兼容性也比之前好了不少.

其实还有一个额外的好处, 就是几乎不用自己想接口和字段的名字了, 我对起名这种事真的是苦手...

结语

先分享这三本书吧, 一周刚好可以读完. 有读过的 V 友也可以来分享下感想. 如果有其他值得一读的非常经典的经验性书籍, 也欢迎在留言中分享.

26 条回复    2022-02-01 21:44:28 +08:00
DuDuDu0o0
    1
DuDuDu0o0  
   2022 年 1 月 29 日
感谢!最近也有这方面的苦恼。

此外,现在的软件设计几乎约等于系统架构了,边界模糊的同时,系统性学习的难度也逐渐增大。
Gota
    2
Gota  
OP
   2022 年 1 月 29 日
@DuDuDu0o0 确实, 平时工作中很容易陷入到各种具体实现和细节当中, 适当地退一步思考和学习反而容易把思路理顺.
adoal
    3
adoal  
   2022 年 1 月 29 日
Gota
    4
Gota  
OP
   2022 年 1 月 29 日
@adoal 真巧, 这本 <发布!设计与部署稳定的分布式系统> 我们老板最近也向我推荐过, 看来过年在家要读读看.
FeifeiJin
    5
FeifeiJin  
   2022 年 1 月 29 日
好帖,看书籍可以摄取到的知识比零散的文章多多了。
luban
    6
luban  
   2022 年 1 月 29 日
@Gota <发布!设计与部署稳定的分布式系统> 这本书京东读书 vip 电子版免费,有京东 plus 会员就可以领京东读书会员
Gota
    7
Gota  
OP
   2022 年 1 月 29 日
@luban 多谢提醒, 正好我有京东会员.
leishi1313
    8
leishi1313  
   2022 年 1 月 29 日 via Android   1
既然你提到了第三个,那也可以看看
https://aip.dev
Gota
    9
Gota  
OP
   2022 年 1 月 29 日
@leishi1313 看起来是一份更加细化的 API 设计文档, 感谢分享.
pengtdyd
    10
pengtdyd  
   2022 年 1 月 29 日
有没有用我不知道,但是我知道出版社肯定是赚钱了
midasplus
    11
midasplus  
   2022 年 1 月 29 日
感谢,google API 这个正好要用到
littlewing
    12
littlewing  
   2022 年 1 月 29 日
《 unix 程序设计艺术》
Gota
    13
Gota  
OP
   2022 年 1 月 29 日
@littlewing 这本书可太经典了, 至今记得其中对于紧凑性的描述, 可以灵活运用于工作中, 检测大部分工作能否顺利完成. 不过这本书比较厚, 适合慢慢读.
yuShan1
    14
yuShan1  
   2022 年 1 月 29 日 via iPhone
先 mark 一下,等待各位大佬的分享
zhujq
    15
zhujq  
   2022 年 1 月 29 日
你们可真太强了
ttgo
    16
ttgo  
   2022 年 1 月 30 日
大学时买过有一本巨厚的 c++,忘了名字了,挺有名的。。书还在家里放着。
虽然巨厚,但没有沦为语法手册,里面有很多作者关于写代码的各种心得。这种风格的书之后再也没见过了。
jackmod
    17
jackmod  
   2022 年 1 月 30 日
此贴妙极,我的吃灰收藏再添新丁( doge
最近在重构老系统到微服务上云,可谓雪中送炭。
happypy1
    18
happypy1  
   2022 年 1 月 30 日 via iPhone
推荐一本神书:designing data intensive application
https://book.douban.com/subject/26197294
chevalier
    19
chevalier  
   2022 年 1 月 30 日
推荐鲍勃大叔的《架构整洁之道》,很多原则用很浅显的语言和例子论述出来,醍醐灌顶
yurong333333
    20
yurong333333  
   2022 年 1 月 30 日
《重构》。2021 年一边看一边重构自己的项目,确实受益匪浅。
Gota
    21
Gota  
OP
   2022 年 1 月 30 日
@ttgo #16 说到巨厚的书, 我大学也买过一本 <C# 高级编程> 全书 1200 页, 翻到最后发现还有一半内容因为写不下, 请看随书光盘, 我当时人都傻了 _
Gota
    22
Gota  
OP
   2022 年 1 月 30 日
@happypy1 #18 <数据密集型应用设计> 去年刚看过这本, 确实是本好书. 很适合刚开始做大数据, 但选型时拿不定主意的时候看. 可以对大数据各个方面有个全局性的概览.
Gota
    23
Gota  
OP
   2022 年 1 月 30 日
@chevalier #19 几年前读过他写的 <代码整洁之道>, 确实写得通俗易懂, 一条条都分得很细, 很适合刚开始写代码的时候读, 一直照着做应该能养成不错的编码习惯.

@yurong333333 #20 这本也算是经典老书了, 确实是一本很讲究实操的书. 很适合翻个大概, 然后像你说的那样, 用到的时候就查一下.
S2Line
    24
S2Line  
   2022 年 1 月 30 日
赞,平时工作的时候很容易陷入一些实现细节,如果能适当跳出来,会发现很多时候一个合适的设计可以屏蔽很多不必要的细节,降低复杂度。需要多学习学习一些设计思想和原则,形成方法论
Gota
    25
Gota  
OP
   2022 年 1 月 30 日
@S2Line 你的理解很到位, 写好软件就是要控制好复杂度. 不过实际工作中很少有人能平衡好对内和对外的复杂度, 这也是我大力推荐 <软件设计哲学> 这本书的原因.
SmiteChow
    26
SmiteChow  
   2022 年 2 月 1 日
人月神话+bob 老师的 clean code
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     971 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 25ms UTC 19:15 PVG 03:15 LAX 11:15 JFK 14:15
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86