修改遗留代码的艺术 对于程序员来说,最怕也是最不愿意做的一件事情就是修改遗留代码。因为大部分情况下遗留代码是人家写的代码,又烂又长,晦涩难懂,在不能完全读懂代码的情况下修改代码,是非常危险的。 在《修改代码的艺术》这本书…
标签:架构
0010 人生就像死循环,只要不退出就要继续运行
这节课讲循环。 程序执行顺序有3种,第一种最简单:按顺序执行;第二种是前面几节课讲的:分支执行,即根据情况执行分支的某一个,其余的不执行;第三种就是今天要讲的:循环执行。 这3种执行逻辑是所有计算机语言都通用的执行顺序逻…
两种bug
两种bug 1985年,Jim Gray在这篇文章中第一次提出了软件bug分为两种:玻尔bug和海森堡bug。 Jim Gray 玻尔和海森堡是两位伟大的物理学家,都是诺贝尔奖获得者。为啥以这两人区分bug?那是因为这两…
值传递与地址传递(C语言)
一、值传递 例1: // swap.c #include <stdio.h> int main() { int a = 20; int b = 30; int c = 0; printf("a is %d, …
浅析编程思维
网络图片 无论在生活中,学习中,还是工作中,我们都会遇到各种各样的问题,每个人都有自己的一套处理办法,每种处理办法都有其特定的内在思维逻辑,最近学习python编程语言,在解答各种题目的过程中,让我清晰的认识到,编程是有…
C++ 网易面试题“让new操作符不分配内存,只调用构造函数”
问题 c++中的new操作符 通常完成两个工作 分配内存及调用相应的构造函数。 请问: 1)如何让new操作符不分配内存,只调用构造函数? 2)这样的用法有什么用? placement new的含义 placement …
创业公司设计师怎样从0到1设计一款APP(一)——概述
一直在思考怎样给我的读者带来更多的干货,读者在看文章的时候花了时间,楼主就要为读者这所花的时间进行负责,尽量凭借着楼主这有限的知识去分享一些能够在工作或者生活上帮助到大家的一些知识。 楼主反思自己作为设计师最大的成就感是…
来学一下UML
来学一下UML 一、UML简介 UML是面向对象分析与设计时的行业标准,全称为Unified Modeling Language(“同一建模语言”),其主要内容是针对面向对象的分析和设计。 1.什么是UML? UML是由…
框架开发之Java注解的妙用
PS:如果你还不会使用注解,你肯定不好意思对别人说你学过Spring,你学过Mybatis,因为它们用了大量的注解。可见注解在开发领域已经使用的非常广泛了。 配图.jpg 注解的好处: 1.能够读懂别人写的代码,特别是框…
函数式编程-学习笔记:又为这个复杂的世界增加了一个熵(shang)
函数式编程(FP) 学习笔记 同大家分享、交流学习成果,观点不一定正确,请大家用辩证的眼光来看待本文内容 鸟瞰函数式编程的概况 简单了解一下函数式编程中的基本脉络和一些主要思想 看看大家怎么说 1. “函数式…
拜占庭将军问题和FLP的启示
Byzantine Generals Problem 昨天那篇文章提到的Two General Paradox实际上是一个弱化的Byzantine Generals Problem. 1982年, Leslie Lamp…
全球分布式数据库:Google Spanner(论文翻译)
本文由厦门大学计算机系教师林子雨翻译,翻译质量很高,本人只对极少数翻译得不太恰当的地方进行了修改。 【摘要】:Spanner 是谷歌公司研发的、可扩展的、多版本、全球分布式、同步复制数据库。它是第一个把数据分布在全球范围…