Introduction to Object-Oriented Programming (OOP) 什么是 OOP OOP 是一种编程范式,其核心思想是将任务抽象成对象,通过对象的交互完成任务。
面向对象和面向过程的区别 面向对象: 通过对象的抽象和交互来完成任务。 面向过程: 将任务分解成一个个步骤,然后逐步完成。 简单对比:
OOP: object1.doTask1 Procedure: task1.step1 -> task1.step2 -> task1.step3 面向对象的特征 如果语言支持以下特征,可以认为是面向对象的语言:
封装: 将数据和方法封装在一个对象中。 控制数据的访问权限。 继承: 对象可以继承其他对象的属性和方法。 多态: 同一个类型(接口)的对象可以有多种形态(实现的方法不一样)。 五大原则 五大原则指导我们写出更好的面向对象代码,这些原则同样适用于其他编程范式:
多复用: 减少重复代码。 容易拓展: 新增功能时,不需要大量修改原有代码。 容易进行单元测试: 可以很容易专门针对某块代码进行测试。 具体原则 单一职责原则: 一个类应该只有一个引起它变化的原因。 里氏替换原则: 子类可以替换父类,强调继承应该是同一类型的继承。 依赖倒置原则: 高层和底层模块都应该依赖抽象。 开闭原则: 对扩展开放,对修改关闭。 接口隔离原则: 不应该强迫客户端依赖他们不需要的接口。 Is Go an OOP Language? go 是 OOP 吗 Go 是部分 OOP。判断一个语言是否是 OOP,主要看它是否实现了面向对象的三大特征。Go 放弃了继承,因此不是完全的面向对象。
Go 为什么放弃了继承? Go 认为继承是一个不好的设计,因为:
代码复用可以通过组合实现。 继承会带来很多问题,如过度耦合等。 Implementing OOP in Go go 如何实现 OOP 封装 使用 type 和 method。 通过大小写控制访问权限。 多态 通过 interface 实现多态。
当下的力量与森田疗法 森田疗法: 顺其自然, 为所当为 当下的力量: 臣服,专注当下
二者本质上是一样的,不去与我们的思维抗争, 把更多的精力放在当下。
痛苦的来源: 思维对过去或者未来的悔恨焦虑,并且我们沉浸在这种思维中。
如何做 接受 回到当下 如何接受: 不去抗拒也不去认同这些思维
不抗拒:
我们要认识到这些不好的想法是我们的一部分,就像我们身上的细菌一样,与我们共生共灭,我们与他们共存; 这些想法会突然的产生,,就像湖面上的涟漪,他们会突然产生,然后自然消失; 不认同:
想象这些思维像流水一样, 我们不去阻断他, 但也使他变大。
当这些思维在流动的时候,我们逐步的将思维拉到当下:
让更多的思维关注当下的事情: 如你的呼吸,或者路边的树木;天空的云彩; 让这个想法自然流淌,就像一个石头掉进水里激荡起来的涟漪,他们会自然消失。
不去抗拒也不去认同:
不要进一步去想象你悔恨的场景; 将你的思维温和的拉回当下: 如何回到当下:
不要让自己闲下来; 继续做你该做的事情; 观察他们: 假想自己是一个更高的观察者, 站在一边,观察你的思维:
接受: 让这些思维和情绪去表演,你是看表演的人。 不参与: 不去抗拒也不去认同这些思维,就静静的观察, 看他们表演。 专注于当下: 做你现在正在做的事情,将你的思维拉回到当下。
why 为什么要接受情绪?
痛苦的情绪我们无法消除, 只能于他共存 抗拒情绪会让情绪更加强烈,接受它反而会让情绪消失的更快 接受情绪是否会更加痛苦?
痛苦可能是一时的,但很快就会消失;
专注当下的本质是什么? 最大化的将思维从痛苦的情绪中拉回到当下;
读书文摘 我来总结一下这个过程:将注意力集中在你内心的感受上,了解到这就是痛苦之身并接受它的存在;别去想它,别让你的感受变成了大脑和思维,不要去判断或分析它,别在其中寻找你自己的身份认同;保持临在,继续观察你的内在;不但觉知到你情绪上的痛苦,更要察觉那个沉默的观察者。这就是当下的力量,这就是你自己有意识的那种临在的力量。然后,请看看接下来会发生什么事情。
当我们拥有足够的意识,切断与痛苦之身的认同是,结果会怎么样?无意识创造它;却把它转型它自己。圣保禄以优美的文句,表达了这个宇宙的原理:“在光照之下,一切无所遁形;在光照之下,一切化成光。”就像你无法对抗黑暗一样,你也无法对抗痛苦之身。试图这么做,只会增加冲突和更多的痛苦,观察它就足够了,观察它隐含了接受它是当下这一刻本然的一部分。 …… 举例来说吧,如果愤怒是痛苦之身的主控能量,而你思考了一个愤怒的思想,你沉湎在某个人对你的所作所为,和你打算如何对待他或她的时候,那么你就变成了无意识了。痛苦之身便趁虚而入,变成了“你”。愤怒的底层必然有痛在。再比如说,你被一个阴沉的心情所攫获,于是你开始进入一个负面的心智模式里,思考着自己的生命有多可怕。你就已经变成无意识,而成为痛苦之身攻击的靶子。我这里使用的“无意识”,指的是与某个心理或情感的模式认同。它隐含的意思是:观察者完全缺席。 …… 我把整个过程做一个总结:把注意力焦集在你内在的感觉上。知道这是痛苦之身。接受它在那里。不要思考它—-不要让感觉变成思考。不做批判或分析。不要从它身上为自己编造身份。保持临在,对你内在发生的一切,继续当一个观察者。觉察你情感痛苦的同事,也觉察那个“尽享观察的”,那个沉默的观察者。这就是当下的力量,你有意识临在的力量。接下来的就静观其变了。
当下的力量与森田疗法 森田疗法: 顺其自然, 为所当为 当下的力量: 臣服,专注当下
二者本质上是一样的: 与我们的思维共存, 把更多的精力放在当下。
痛苦的来源 思维对过去或者未来的悔恨焦虑,并且我们沉浸在这种思维中。
如何做 接受 回到当下 如何接受: 不去抗拒也不去认同这些思维
不抗拒:
我们要认识到这些不好的想法是我们的一部分,就像我们身上的细菌一样,与我们共生共灭,我们与他们共存; 这些想法会突然的产生,,就像湖面上的涟漪,他们会突然产生,然后自然消失; 不认同:
想象这些思维像流水一样, 我们不去阻断他, 但也使他变大, 让这些思维自然的流动着。 当这些思维在流动的时候,我们逐步的将思维拉到当下: 让更多的思维关注当下的事情: 如你的呼吸,或者路边的树木;天空的云彩; 如果你目前有正在处理的事情,那么继续你正在做的事情,。 如何回到当下:
不要让自己闲下来; 继续做你该做的事情; 。
读书文摘 我来总结一下这个过程:将注意力集中在你内心的感受上,了解到这就是痛苦之身并接受它的存在;别去想它,别让你的感受变成了大脑和思维,不要去判断或分析它,别在其中寻找你自己的身份认同;保持临在,继续观察你的内在;不但觉知到你情绪上的痛苦,更要察觉那个沉默的观察者。这就是当下的力量,这就是你自己有意识的那种临在的力量。然后,请看看接下来会发生什么事情。
当我们拥有足够的意识,切断与痛苦之身的认同是,结果会怎么样?无意识创造它;却把它转型它自己。圣保禄以优美的文句,表达了这个宇宙的原理:“在光照之下,一切无所遁形;在光照之下,一切化成光。”就像你无法对抗黑暗一样,你也无法对抗痛苦之身。试图这么做,只会增加冲突和更多的痛苦,观察它就足够了,观察它隐含了接受它是当下这一刻本然的一部分。 …… 举例来说吧,如果愤怒是痛苦之身的主控能量,而你思考了一个愤怒的思想,你沉湎在某个人对你的所作所为,和你打算如何对待他或她的时候,那么你就变成了无意识了。痛苦之身便趁虚而入,变成了“你”。愤怒的底层必然有痛在。再比如说,你被一个阴沉的心情所攫获,于是你开始进入一个负面的心智模式里,思考着自己的生命有多可怕。你就已经变成无意识,而成为痛苦之身攻击的靶子。我这里使用的“无意识”,指的是与某个心理或情感的模式认同。它隐含的意思是:观察者完全缺席。 …… 我把整个过程做一个总结:把注意力焦集在你内在的感觉上。知道这是痛苦之身。接受它在那里。不要思考它—-不要让感觉变成思考。不做批判或分析。不要从它身上为自己编造身份。保持临在,对你内在发生的一切,继续当一个观察者。觉察你情感痛苦的同事,也觉察那个“尽享观察的”,那个沉默的观察者。这就是当下的力量,你有意识临在的力量。接下来的就静观其变了。
Forrest published on included in go 错误 程序出现了意外的状况,需要我们额外处理。如果不处理,会破坏程序的正常运行。比如:
对 nil map 进行写入操作;对数组进行越界操作。 对非 JSON 格式的数据进行 JSON 解析。 处理的方式:
独立的异常处理流:exception 对象,通过 try-catch-finally 流程处理; 作为正常流程一部分:异常作为普通对象,error 值或者 int ,与正常返回值一起返回,通过条件判断来处理。 panic panic vs exception same:
终止代码的继续执行; 展开堆栈,即逐步退出每个函数,直到被 recover 或者 catch 住 被 catch 后程序的调用流程都发生改变, 都跳转到 catch 的位置执行 panic 之后的代码则不会执行; differ: try catch 更灵活 ,可以针对任一代码块 而 recover 只能在 函数 derfer 中,catch 整个函数 是否 panic 可以实现 exception 的相同功能? 可以,从技术上来说 panic 可以实现和 exception 等价的功能;
和 try .. catch 的比较: 类型用法,理论上可以 用 recover 实现 try catch 的功能;
分心的原因 我们的大脑天生不是一个为专注而设计的:
喜欢新鲜, 讨厌重复无聊的事情 喜欢简单, 讨厌复杂的事情 喜欢即使的反馈 如何更专注 改变认识: 意识到我们大脑不是面向专注而设计的,承认我们的专注力是有限的,
逃离: 手机: 禅定模式 电脑: 锁定网页 其他可能的干扰:全部逃离 建立固定模式: 习惯 给自己建立一个课程表,固定的安排, 无意识的习惯去做某些事情。
example: 我的作息时间表:
01:00-08:00 睡觉 08:00-09:00 起床,洗漱,吃早餐 09:00-12:40 work 3.66h 12:40-13:10 午餐 13:10-13:50 午休 13:40-18:00 work 4.33h 18:00-19:00 dinner,back 19:00-01:00 work 6h total work time 3.66+4.33+6 = 14h 目标管理 分解:将大目标分解成小的目标, 可管理,可量化
避免注意力滑坡 滑坡:在经过一段时间的专注后,突然完全松懈。
如何避免: