所学: 技言
高并发解决方案: 垂直扩展(提升硬件配置), 水平扩展(分流)
编程语言描述了数据加工的流程
大数据的本质是还原用户的本质需求
解决真正需要解决的问题的程序员(解决真正问题的程序员,而不是解决编程问题的程序员)
C语言规范定义得宽泛经常导致相同的程序在不同平台运行的结果不同
内存溢出:程序使用的空间大于原本系统给它申请的空间。
内存泄漏:在new了对象之后,没有使用这个对象了,但是又没有被回收,一直占用着内存
缓存穿透: 大量查询不到的数据的请求落到后端数据库
缓存雪崩: 缓存不可用或者大量缓存key同时失效,大量请求直接打到数据库
Socket 是应用层与 TCP/IP 协议族通信的中间软件抽象层, 它是一组接口
设计原则: 合适性 结构稳定性 可扩展性 可复用性
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,在Unix系统通过初始化脚本启动时初始化,是系统其它进程的父进程
“万物皆对象”: 面向对象编程的核心思想
事务是数据库并发控制的基本单位
实现可以复杂,但调用必须简单
工程师的实质就是在给定的资源条件下,寻找目标的最优解
f计算机科学有两大难题:缓存不一致和变量命名
每个请求控制在200ms之内,对用户才能做到无感知
线程的本质是资源
1s可以处理大概10^8级别的数据
编程的实质无非是用一套形式化语言去定义问题和描述解决问题的步骤
一次磁盘读取大概需要10ms的时间
每一项技术诞生的背后都是为了解决某些特定问题的
软件设计不应该是面向需求设计,而应该是面向需求变更设计
模型是人们对一类事物的概括与抽象,使我们理解事物的本质
引用的本质是指针
计算机的本质是提供运算能力的机器
接口是对行为的抽象
系统设计: 性能, 伸缩性, 扩展性, 可用性, 安全性
性能指标: 响应时间, 吞吐量, 并发用户数
性能优化: 集群, 缓存, 异步
计算机资源的性能瓶颈: CPU、 内存、 磁盘IO、 网络、 异常、 数据库、 锁竞争
码农生来只知道前进
数据是信息的载体
网络是不可靠的
当前的人工智能过于依赖数据了,但数据本身没有智能,何来人工智能。 有人说,强人工智能最可能来源于“因果推断”
计算机资源的性能瓶颈: CPU、 内存、 磁盘IO、 网络、 异常、 数据库、 锁竞争
对象是对客观事物的抽象,类是对对象的抽象,类是一种抽象的数据类型
由于线程的执行过程是不可控的, 所以需要采用同步机制来协同对对象可变状态的访问
技术,总归是要为人服务的
Engineering is trade-off
表面上我们是在找工具,实际上,我们还是在寻找解决问题的最佳方案或次优方案
低耦合,高复用
所有“设计模式”的本质都是: 解耦和复用
高并发问题的本质就是:资源的有限性
网络安全有一个不言而喻的真理: “信任是一个漏洞,就像所有漏洞一样,应该被消除”
大数据系统 = 分布式系统 + 存储引擎 + 计算引擎