1. 碰到的问题前端请求量大,并发高,访问速度慢,瓶颈主要表现在:单表大单库大网络 IO 慢磁盘 IO 慢网络、磁盘 IO 优化,主要依靠硬件升级。理论上,数据库对单库、单表的大小没有限制,但是过大的单库、单表会导致更多的请求落到单机上,给 IO 造成压力。理想情况是,通过增加机器,能不断地增加系统并发能力。当 MySQL 单表数据量达到百万级别时,我们就应该开始存储相关的知识,以应对可能的问题。 ...
阅读更多 »
1. 敏捷开发是什么在传统的软件研发模型中,从提出需求到最后交付,时间周期较长。瀑布模型遵循需求分析、设计、编码、集成、测试、维护六个步骤进行。一旦需求发生变化,不仅浪费前期投入,还不易于调整。敏捷开发是一种应对快速变化的需求的软件开发能力。特别是互联网软件,前期设计不可能十分完美,在研发的过程中,会不断地调整、优化。敏捷开发是面向交付、面向协作的。相较于主张完善的设计、文档、流程规范,敏捷开发强 ...
阅读更多 »
1. 认知一致在大的组织中,我们可以将小团队理解为一个微服务。早在 1967 年,康威提出了微服务的概念。康威认为任何组织在设计一套系统时,所交付的设计方案在结构上都与该组织的沟通结构保持一致。在开发复杂系统时,我们通常会对系统进行模块拆分。一方面,个体能解决的问题难度有限,另一方面,个体之间具有一定差异。招聘更优质的工程师,意味着更大的成本。通过模块拆分,能够有效降低问题难度、节约成本。每个模块 ...
阅读更多 »
主要记录最近遇到的一些开发问题,解决方法。1. Python2 和 Python3 中的异常处理Python2,Python3 都支持的两种方式:带参数except (ExceptionType) as Argument: # 访问 Argument 不带参数except ExceptionType: 仅 Python2 支持的方式:except ExceptionType, Argume ...
阅读更多 »
1. 为什么需要 Mock在做单元测试时,被测试函数有时并不是一个可执行的独立单元。被测试函数依赖于一些外部资源,比如另外一个函数的返回值、数据库中某一条数据值等。为了屏蔽外部依赖的干扰,我们会采用 Mock 技术。通过模拟测试资源的方式,满足依赖条件。从设计模式的角度看,对于满足单一职责原则的函数、类,使用 Mock 的方式忽略外部依赖进行测试也是合理的。因为,外部依赖的测试,应该在其内部完成, ...
阅读更多 »