摘要:软件的复杂性是我们程序员在日常开发中所必须面对的东西,学会如何 “弄清楚什么是软件复杂性,找到导致软件复杂的原因,并利用各种手法去战胜软件的复杂性” 是一门必备的能力。 前言 在进行软件开发时,我们常常会追求软件的高可维护性,高可维护性意味着当有新需求来时,系统易扩展;当出现bug ...
分支或多线程编程是编程时最难最对的事情之一。这是由于它们的并行性质所致,即要求采用与使用单线程的线性编程完全不同的思维模式。对于这个问题,恰当类比就是抛接杂耍表演者,必须在空中抛接多个球,而不要让它们相互干扰。这是一项重大挑战。然而,通过正确的工具和思维模式,这项挑战是能应对的。 本文将深入介绍我为了简化多线程编程和避免争用条件 死锁等其他问题而编写的一些工具。可以说,工具链以语法糖和神奇委托为依 ...
2019-03-22 22:34 1 1234 推荐指数:
摘要:软件的复杂性是我们程序员在日常开发中所必须面对的东西,学会如何 “弄清楚什么是软件复杂性,找到导致软件复杂的原因,并利用各种手法去战胜软件的复杂性” 是一门必备的能力。 前言 在进行软件开发时,我们常常会追求软件的高可维护性,高可维护性意味着当有新需求来时,系统易扩展;当出现bug ...
一、前言 斯坦福教授、Tcl语言发明者John Ousterhout 的著作《A Philosophy of Software Design》[1],自出版以来,好评如潮。按照IT ...
原文-wiki 看Kolmogorov复杂性看到云里雾里,于是干脆把wiki上的翻译了一下。 目录 定义 Invariance 定理 非正式方法 更正式些的方法 历史与环境 基本结论 Kolmogorov复杂性 ...
http://student.zjzk.cn/course_ware/software/txt/txt/show.asp?filename=11_3.txt 11.3 软件复杂性11.3.1 软件复杂性的基本概念 软件复杂性度量的参数很多,主要有: (1) 规模,即总共的指令数 ...
参考文章: 阮一峰:http://www.ruanyifeng.com/blog/2018/09/complexity.html 软件复杂性: 软件设计的最大目标,就是降低复杂性。 所谓复杂性,就是任何使得软件难于理解和修改的因素。 复杂性的来源主要有两个:代码的含义模糊 ...
前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然也少不了前端需要作出的努力,这里我们只讲述在大小型项目中如何利用后台逻辑尽可能最大限度提高WebAPi性能,我们从以下几个 ...
目录 8.1 示例:编辑器文本类 8.2 示例:配置参数 8.3 做过了头 8.4 结论 本章介绍了另一种思考如何创建更深层次类的方法。假设您正在开发一个新模块,并且发现了一个不可避免的复杂性。哪个会更好呢:应该让模块的用户处理复杂性,还是应该在模块 ...
算法的复杂性是算法运行所以需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性。此量应只依赖算法要解决问题的规模、算法的输入和算法本身,分别用N,I和A表示,用C表示复杂性,应有C=F(N,I,A),若将时间和空间分开,分别用T和S表示,且A通常隐含在复杂性函数 ...