sbfksmq'log

8 object(s)
 

读书笔记1

想读

《人类群星闪耀时》( 斯蒂芬·茨威格 )

《人类简史:从动物到上帝》( 尤瓦尔·赫拉利 )

形式逻辑 – 金岳霖

黄帝内经

经济学原理

柏拉图《申辩篇》

重读

恶心 – 萨特

已读

高效程序员的45个习惯 敏捷开发修炼之道(苏帕拉马尼亚姆)

代码整洁之道 程序员的职业素养 (罗伯特·C.马丁)

如何让你爱的人爱上你 (美)朗兹

棋王 阿城

身边的逻辑学(普通读者的逻辑入门书,以无数生活细节教人如何“清晰思考”)

刻意改变:81种改变习惯、实现目标的思维训练法/(美)玛丽·简·瑞安

原则 [美] 瑞 达利欧

《好奇心杂货铺》《经济学人》的万物解释 (英)汤姆·斯丹迪奇 

经济学通识课 [英]尼尔·基什特尼(Niall Kishtainy)

无限可能:快速唤醒你的学习脑 [美]吉姆·奎克(Jim Kwik)

你一定爱读的极简金融史/斯凯恩著

微习惯 简单到不可能失败的自我管理法则 ( 美) 斯蒂芬·盖斯(Stephen Guise)

极简生活法则 - 理查德·泰普勒

巨人的方法 [美]蒂姆·费里斯

追寻生命的意义

世界上最神奇的24堂课 查尔斯·哈奈尔

非暴力沟通 [美] 马歇尔 卢森堡

如何高效阅读 (美)孔普(Kump,P.)

刻意练习:如何从新手到大师 (美)安德斯·艾利克森(Anders Ericsson) (美)罗伯特·普尔(Robert Pool) 著

学习之道 A Mind for Numbers:How to Excel at Math and Science(Even If You Flunked Algebra)(美)芭芭拉·奥克利(Barbara Oakley)

中医基础/王秀主编

那些让你更聪明的科学新概念 著者:【美】约翰·布罗克曼(John Brockman)编著

世界因何美妙而优雅地运行 著者:【美】约翰•布罗克曼(John Brockman)

多维度思考:拥有正确判断和科学决策的100条极简法则 [英]理查德·泰普勒(Richard Templar) 著

书名:那些科学家们彻夜忧虑的问题 著者:【美】约翰·布罗克曼(John Brockman)著

创意吉他1

编写可读性代码的艺术

108个经济学常识

逻辑思维简易入门(原书第2版)How to Think Logically 2nd Edition [美]加里·西伊(Gary Seay)苏珊娜·努切泰利(Susana Nuccetelli) 著

生命中最简单又最困难的事(美)华莱士 著

财务自由之路/(德)博多·舍费尔著;刘欢译.—北京:现代出版社,2017.3

财务自由之路Ⅱ,3年内让你的个人资产翻一番/(德)博多·舍费尔著;赵禹霏译.—北京:现代出版社,2018.10

财务自由之路.Ⅲ/(德)博多·舍费尔著;王习又译

练习的心态:如何培养耐心、专注和自律 The Practicing Mind: Developing Focus and Discipline in Your Life (美)托马斯M.斯特纳(Thomas M.Sterner) 著 王正林 译

书名:清醒思考的艺术 作者:[德]罗尔夫•多贝里

精力管理:管理精力,而非时间 互联网+时代顺势腾飞的关键 /(美)洛尔,(美)施瓦茨著;高向文译.

五分钟经济学:互联网时代的经济逻辑/寇宗来著

程序员的思维修炼:开发认知潜能的九堂课/(美)亨特(Hunt, A.)著

设计模式之美

命名的关键是能准确达意。对于不同作用域的命名,我们可以适当地选择不同的长度。 我们可以借助类的信息来简化属性、函数的命名,利用函数的信息来简化函数参数的命名。 命名要可读、可搜索。不要使用生僻的、不好读的英文单词来命名。命名要符合项目的统一规范,也不要用些反直觉的命名。 接口有两种命名方式:一种是在接口中带前缀“I”;另一种是在接口的实现类中带后缀“Impl”。对于抽象类的命名,也有两种方式,一种是带上前缀“Abstract”,一种是不带前缀。这两种命名方式都可以,关键是要在项目中统一。

  1. 关于注释

注释的内容主要包含这样三个方面:做什么、为什么、怎么做。对于一些复杂的类和接口,我们可能还需要写明“如何用”。

类和函数一定要写注释,而且要写得尽可能全面详细。函数内部的注释要相对少一些,一般都是靠好的命名、提炼函数、解释性变量、总结性注释来提高代码可读性。

  1. 关于代码风格

函数、类多大才合适?函数的代码行数不要超过一屏幕的大小,比如 50 行。类的大小限制比较难确定。 一行代码多长最合适?最好不要超过 IDE 的显示宽度。当然,也不能太小,否则会导致很多稍微长点的语句被折成两行,也会影响到代码的整洁,不利于阅读。 善用空行分割单元块。对于比较长的函数,为了让逻辑更加清晰,可以使用空行来分割各个代码块。 四格缩进还是两格缩进?我个人比较推荐使用两格缩进,这样可以节省空间,尤其是在代码嵌套层次比较深的情况下。不管是用两格缩进还是四格缩进,一定不要用 tab 键缩进。 大括号是否要另起一行?将大括号放到跟上一条语句同一行,可以节省代码行数。但是将大括号另起新的一行的方式,左右括号可以垂直对齐,哪些代码属于哪一个代码块,更加一目了然。 类中成员怎么排列?在 Google Java 编程规范中,依赖类按照字母序从小到大排列。类中先写成员变量后写函数。成员变量之间或函数之间,先写静态成员变量或函数,后写普通变量或函数,并且按照作用域大小依次排列。

  1. 关于编码技巧

将复杂的逻辑提炼拆分成函数和类。 通过拆分成多个函数或将参数封装为对象的方式,来处理参数过多的情况。 函数中不要使用参数来做代码执行逻辑的控制。 函数设计要职责单一。 移除过深的嵌套层次,方法包括:去掉多余的 if 或 else 语句,使用 continue、break、return 关键字提前退出嵌套,调整执行顺序来减少嵌套,将部分嵌套逻辑抽象成函数。 用字面常量取代魔法数。 用解释性变量来解释复杂表达式,以此提高代码可读性。

  1. 统一编码规范 除了这三节讲到的比较细节的知识点之外,最后,还有一条非常重要的,那就是,项目、团队,甚至公司,一定要制定统一的编码规范,并且通过 Code Review 督促执行,这对提高代码质量有立竿见影的效果。
    • 36 实战二(上):程序出错该返回啥?NULL、异常、错误码、空对象?
  2. 返回错误码

C 语言没有异常这样的语法机制,返回错误码便是最常用的出错处理方式。而 Java、Python 等比较新的编程语言中,大部分情况下,我们都用异常来处理函数出错的情况,极少会用到错误码。

  1. 返回 NULL 值

在多数编程语言中,我们用 NULL 来表示“不存在”这种语义。对于查找函数来说,数据不存在并非一种异常情况,是一种正常行为,所以返回表示不存在语义的 NULL 值比返回异常更加合理。

  1. 返回空对象

返回 NULL 值有各种弊端,对此有一个比较经典的应对策略,那就是应用空对象设计模式。当函数返回的数据是字符串类型或者集合类型的时候,我们可以用空字符串或空集合替代 NULL 值,来表示不存在的情况。这样,我们在使用函数的时候,就可以不用做 NULL 值判断。

  1. 抛出异常对象

尽管前面讲了很多函数出错的返回数据类型,但是,最常用的函数出错处理方式是抛出异常。异常有两种类型:受检异常和非受检异常。

对于应该用受检异常还是非受检异常,网上的争论有很多,但也并没有一个非常强有力的理由,说明一个就一定比另一个更好。所以,我们只需要根据团队的开发习惯,在同一个项目中,制定统一的异常处理规范即可。

对于函数抛出的异常,我们有三种处理方法:直接吞掉、直接往上抛出、包裹成新的异常抛出。这一部分我们留在下一节课中结合实战进一步讲解。

“努力决定下限,运气决定上限”

芒格私人书单

在读

暂读

高效休息法 世界精英这样放松大脑/(日)久贺谷亮著

那些科学家们彻夜忧虑的问题 著者:【美】约翰·布罗克曼(John Brockman)著

练习的心态:如何培养耐心、专注和自律 (美)托马斯M.斯特纳(Thomas M.Sterner) 著

布鲁克林的荒唐事(村上春树赞赏的当代小说大师,保罗·奥斯特罕见暖心治愈之作,献给梦想家,也献给失意者。 (保罗·奥斯特经典作品) (保罗·奥… (Z-Library)

思考的艺术

批判性思维工具(原书第3版)[美]保罗(Paul,R.)[美]埃尔德(Elder,L.) 著

如何解决复杂问题[奥地利]安德烈亚斯·瓦格纳(Andreas Wagner);胡正飞译

富爸爸年轻退休 Retire Young Retire Rich [美]罗伯特·T·清崎莎伦·L·莱希特 著 李钊平译

弃读

《如何阅读一本书》– Mortimer J. Adler&Charles van Doran