Python 编码规范

一、文件编码

所有的 Python 脚本文件都应在文件头部指定如下标识或其兼容格式的标识:

# -*- coding: utf-8 -*-

二、注释

注释分为两类,以 # 开头的“真正的”注释,和 docstring。前者一般用于说明实现的原理及难点,后者用于说明使用方法、示例以及单元测试。

坚持适当注释原则。对不存在技术难点的代码坚持不注释,对存在技术难点的代码必须注释。

三、格式

注释

以 # 开头的注释,在 # 符号后加空格,再写注释内容。对于行内注释,在语句后空出至少2格,再加注释部分。

缩进

Python 严格依赖缩进来确定代码块的层次。可以使用空格或者 Tab 来缩进代码。一般地,一个缩进层次采用 4 个空格。

空格

代码中适当加入空格可增强代码的可读性。

(1) 在二元算术、逻辑运算符、赋值运算符前后加空格:

a = b + c

算术运算符左右一般要加空格;但复杂表达式中,优先级高一些的部分,算术运算符左右不加空格:

x = x*2 - 1  # 乘号的优先级高
c = (a+b) * (a-b)  # 括号部分的优先级高一些

(2) 冒号(:)用在行尾时前后皆不加空格,如分支、循环、函数和类定义语言;用在非行尾时右边加空格,如 dict 对象的定义:

d = {'key': 'value'}

(3) 括号(含圆括号、方括号和花括号)前后不加空格,作为分隔符的逗号后加空格:

do_something(arg1, arg2)

函数定义及调用时的形参赋值,等号左右不加空格:

def complex(real, imag=0.0):
    return magic(r=real, i=imag)

(4) 逗号后面加一个空格,前面不加空格。

空行

适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:

  • 在类、函数的定义间加空行
  • 在 import 不同种类的模块间加空行
  • 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔
断行

一般地,行的最大长度不超过 78 个字符。可以使用括号(包括圆括号、方括号、花括号)和反斜线来断行,在断行后增加一个缩进。

四、命名

常量

常量名所有字母大写,由下划线连接各个单词。

APP_REQUEST_TIMEOUT = 600
变量
  • 变量名全部小写,由下划线连接各个单词
  • 私有类成员使用单一下划线前缀标识
  • 变量名不应带有类型信息,因为 Python 是动态类型语言。如 iValue、names_list、dict_obj 等都不是好的命名
函数

函数名的命名规则与变量名相同。

类名采用 Pascal 命名法。单词首字母大写,不使用下划线连接单词,也不加入 C、T 等前缀。

模块

模块名全部小写,对于包内使用的模块,可以加一个下划线前缀。注意不要与内置的模块名重复,否则会导致内置模块不可用。

包的命名规范与模块相同。

五、语句

import

import 的次序,先 import Python 内置模块,再 import 第三方模块,最后 import 自己开发的项目中的其它模块;用空行分隔这几类模块。

一条 import 语句只导入一个模块。

当从模块中 import 多个对象且超过一行时,使用如下断行法(此语法 py2.5 以上版本才支持):

from module import (obj1, obj2, obj3, obj4, 
    obj5, obj6)

不要使用 from module import *,除非是 import 常量定义模块或其它你确保不会出现命名空间冲突的模块。

赋值

不要做无谓的对齐:

a        = 1                  # 这是一个行注释
variable = 2                  # 另一个行注释
fn       = callback_function  # 还是行注释

没有必要做这种对齐,原因有两点:一是这种对齐会打乱编程时的注意力,大脑要同时处理两件事(编程和对齐);二是以后阅读和维护都很困难,因为人眼的横向视野很窄,把三个字段看成一行很困难,而且维护时要增加一个更长的变量名也会破坏对齐。直接这样写为佳:

a = 1 # 这是一个行注释  
variable = 2 # 另一个行注释  
fn = callback_function # 还是行注释
分支和循环

(1) 不要写成一行,如:

if not flg: pass 

应该这样:

if not flg:  
    pass  

(2) 条件表达式的编写应该足够 pythonic,如以下形式的条件表达式是拙劣的:

if len(alist) != 0: do_something()
if s != "": do_something()
if var != False: do_something()

应该这样:

if seq: do_something() # 注意,这里命名也更改了
if var: do_something()

注:本文主要参考赖勇浩的《简明Python编程规范v2》。

PHP 运行模式

PHP 主要有四种运行模式

  1. CGI 模式
  2. FastCGI 模式
  3. CLI 模式
  4. Module 模式

CGI 模式

CGI 的全称为 Common Gateway Interface,即通用网关接口。它是一种描述 Web 服务器与应用处理程序之间传输数据格式的协议。

作为 PHP 的一种运行模式,它是比较陈旧的,现在几乎不再使用。每有一个用户请求,都会创建一个子进程,然后处理请求,处理完后结束这个子进程。(也称为 Fork-And-Execute 模式)

根据原理可以看出,这种模式无法处理高并发的场景。同一时间,用户请求增多,会产生大量子进程,导致服务器资源紧张,直到崩溃。

FastCGI 模式

是 CGI 模式的升级版,它不会每个请求都 Fork 一个子进程,而是创建一个或多个常驻的子进程。这些子进程在处理完一个请求后,不会结束掉自己,而是等待或者处理后续的请求。因此也叫常驻型 CGI。这可以显著降低进程创建与进程销毁所耗的资源,以及 CGI 子进程启动后初始化的时间。

PHP-FPM(PHP-FastCGI Process Manager)是 PHP 语言中实现了 FastCGI 协议的进程管理器,它随 PHP 源码一起编译、安装。

通常 Nginx 使用这种模式运行 PHP。

CLI 模式

CLI 的全称为 Command Line Interface,即命令行接口。PHP 默认会安装,通过 php -v 命令可以看到 cli 字样。

php -r <code> 运行 PHP 代码,不需要加开始与结束标记(<? 和 ?>)
php -f <file> 运行 PHP 文件。其中参数 -f 可以省略,即 php 命令后直接输入文件名。

Module 模式

是将 mod_php5 模块集成到 Web Server 软件中,来运行 PHP。

通常 Apache 使用这种模式运行 PHP。需要在 httpd.conf 中配置:

LoadModule php5_module modules/mod_php5.so

当请求 .php 文件时,Apache 就会调用 php5_module 来解析 PHP 脚本。

附加知识

PHP 的运行模式,也可以称为 SAPI,全称为 Server Application Programming Interface, 即服务端应用编程接口。SAPI 为 PHP 提供了一个和外部通信的接口。PHP 通过 SAPI 与其它程序进行数据交换。针对不同的应用场景,PHP 提供了多种不同的 SAPI,如 apache、apache2filter、apache2handler、cli、cgi、embed 、fast-cgi、isapi 等等。

可通过 php_sapi_name() 函数获取 Web 服务器与 PHP 之间的接口类型,也可通过常量 PHP_SAPI 获取,它们返回相同的值。

还可以在 phpinfo() 中查看到使用了哪种 Server API。

从《野蛮生长》中了解中国民营企业

中国民营企业经历的三代

第一代是从 1978 年到 90 年代初,可称为“前公司时代”。社会上做生意的主要是“个体户 + 官倒”,个体户又叫倒爷,基本上是做简单的贸易,或者是开个餐馆、钉个鞋子、卖个衣服(最典型的是广州高第街)。大的就是官倒,倒钢材、倒批文、倒汽车。他们以垄断的方式从事贸易。那时参与个体经济活动的绝大多数是被社会边缘化的人,劳改释放犯、没事干的人以及大批返城知青。那时是计划经济时代,国家各行业无法安置上千万的知青,提出让他们自谋职业,可以做小买卖。另外一部分人就是所谓的公子或者叫干部子女,他们成立公司,但也不是私人公司,表面上是国家公司,实际上个人从中捞取巨大好处。他们的公司从事倒买倒卖,叫官倒公司。在一定程度上推动了经济形态向市场的转移。

第二代是从 90 年代初到 2001 年,可称为“公司时代”。就是《公司法》出台后,所有的创业和经营活动是以公司形式展开的。民间注册公司也越来越容易,大家都以公司的形态开始做生意。而之前的个体户都是以个人和家庭为单位开展经营,已不再吃香。官倒也逐渐消失,因为政府垄断资源越来越少,大部分已经市场化了。这一阶段掀起了全民经商的浪潮,人们纷纷下海办公司,同时公司的经营范围也扩大了很多,从传统的简单服务业到大规模的内外贸易、甚至个别的走私。受“邓小平南巡讲话”的影响,在政府中低官员中出现了一波下海经商热,后来他们管自己叫“92派”。

第三代是从 2001 年到现在,实际上进入了一个“创富时代”,这个时期最重要的创富加速器是资本市场。这时很多公司从业务和规模上看已经不是一般的公司,它们中有许多都成为全国乃至全球行业的领导者,一些大公司和超大公司开始出现。这个时代最重要的特征是代表新经济的网络公司。在这个创富时代,民营企业在某一行业成为领导者已不稀奇,甚至成为垄断者,风光无限。这个时代商人的地位开始提高,商业道德成为一个主流的价值观。

总结下来,改革开放以来,民营经济经历了这样的三个阶段,形成了三代人。第一阶段是边缘人口加干部子女,第二阶段是全民经商、鱼龙混杂,什么人都下海,第三阶段主要是一些精英,在商场上筛选出来的行业领袖。

投资时间

在时间的投资上有个说法叫排挤效应,时间它既是生产资料,又是消费资料,它既是资本品,又是消费品。有人在茶楼里喝茶喝一下午,对于这些人来说,时间就是消费品。对于大多数人来讲,加班加点工作,时间就是资本品,我们是用时间去换取金钱。所以在人类有限的一生中,有一个互相排挤的效应,你拿多少时间用来生产,就失去了多少时间来消费。

所以如果我们在有效的时间内,尽可能去做好一件专业的事情,持久、专注地对待,我们可能会得到更多的金钱,同时又能省出很多时间来,而这些时间也相当于回报,可以用来消费,比如度假、画画等等。

时间在方向上是单向的、不可逆的,它本身是一维的,所以你就必须在有限的时间里去做一些特定的活动。但究竟怎样才能收益最大化呢?我们往往欲望比较大,既想做成这件事,又想做成那件事,结果成就都不大。有人一生做了十件事,而有人一生只做一件,他在做这一件事上花的时间虽然比你多很多,但总的来讲,他还富余出很多年,而且这件事他比你做得好,获得的收效自然更大。为什么阿迪力走钢丝掉不下去,而我们一走就可能摔死。他练了二十年,不尽摔不下去,还能靠这个挣钱。也就是说,如果专心在一件事情上花时间,花到足够多,你既可能成为这件事情的主宰,又可能因此获得收入。

但是想让一个人放弃杂念,专心做一件事情,这太难了。所以成功的人很少。

多余的钱存银行不如投资于人

比如我有 60 万块钱存在银行,遇到麻烦会是什么结果呢?第一、兵荒马乱中到银行去取钱,银行可能无法兑现;第二、真要出事了,要吃粮食,银行不能变出粮食;第三、钱还得贬值,还收利息税。但如果投在六个人身上,一人十万,只要有一个人相对比较成功,或者一直关系不错,那么遇到危机的时候,他肯定先打电话问有什么事,或者冲上来直接帮忙。万一他发达了,十万或者五十万,对他也不是大事,不用你到银行,他就直接送过来了。所以投资到人身上是值得的。

三个钱包

人(也可以指一个公司)一生会有三个钱包,他可以使用三种钱。一个是现金或资产,这些东西是具体的,如银行存款、房产、股票等,这是可以计算的。第二个钱包是信用,别人口袋里的钱你能支配多少。比如我给某某打电话借 100 万,结果下午钱就到账了。虽然这个钱在法律上不属于我,但我能支配,这种钱比较难度量。第三个是心理的钱包,花同样的钱,有人可能觉得挺少的,无所谓,有的人觉得挺多,要慎重考虑。对于同一个人,在不同的时期,困难和顺利的时候,对同样的钱所感觉多少不一样。

我们考虑的主要是第一个钱包。第二个钱包是最难管理的,信用资产像气球的一样,它可以飞得很高,但很脆弱,一扎就爆。第三个钱包是心理的感觉,这跟第一个钱包大小有直接关系。我们要善于利用信用钱包来放大第一个钱包,相反第一个钱包的大小会直接影响信用钱包的大小。但不能随便使用信用钱包。

死亡的困境

人只有到死亡边缘,才会发现时间宝贵,还有很多要做的事没有完成。所以,与死亡擦肩而过的人,往往对世界和自己的看法会发生根本的变化,变得更理性,更加知道什么该做什么不该做。所以说死亡是人生的朋友,也是人生的导师。

很多公司、国家,因为领导人突然离世而奔溃。对于公司来讲,可以事先做以下措施,防止领导人突然不在的情况。

  1. 使公司高度制度化。而不是靠领导本人来管理。
  2. 个人继任问题,要在你(领导者)还在的时候处理好,确定好继任规则甚至人选。
  3. 应该立一个遗嘱,所有可能的问题都应该说清楚,特别是财产分割问题。
  4. 葬礼计划也可以提前定制好,让葬礼能反映出你活着的时候的精神。

注:本文是我阅读冯仑先生的《野蛮生长》之读书笔记,摘录一些对我有帮助的内容。

创业者与投资人的股权如何分配

概念

创业,首先需要一个想法(Idea),这个想法是能解决现有的问题、其产品能满足消费者某方面的需求。再一个是需要人,即创业者,以及合适的创业搭档。最后一个,也是最重要的,资金。风险投资(Venture Capital Investment, or VC)恰好能提供资金。它和以往需要有抵押的贷款有本质上的不同。风险投资不需要抵押,也不需要偿还。如果投资成功,风投资本家将获得几倍、几十倍,甚至上百倍的回报。如果不成功,钱就打水漂了。

风险投资一般是大手笔,一般只会投资已经发展起来、初具规模的公司。对于初创的小公司,甚至尚未成立公司的创业团队,是由一类特殊的风险投资商——天使投资人来进行投资。天使投资(Angel Investment)本质上是早期的风险投资。

创业与投资的过程

这是一个比较接近实际的创业例子,其实也是风险投资的过程。

在美国,一个新兴的科技公司(Startups)的创业过程通常是这样的:来自思科公司的工程师山姆和IBM公司的工程师强尼发明了一种无线通信的技术,当然这种技术和他们所在公司的核心业务无关,两人觉得这种技术很有商业前景,他们就写了个专利草案,又花五千美元找了个专利律师,向美国专利局递交了专利申请(关键之一,知识产权很重要)。两个人下班后以及周末的所有时间全泡在山姆家的车库里用模拟软件Matlab进行模拟,证明这种技术可以将无线通信速度提高五十倍(关键之二,是否有数量级的提高是衡量一项新技术是革命性的还是革新性的关键。)两个人想了好几种应用,比如代替现有的计算机Wifi,或者用到手机上,于是在原有的专利上又添加了两个补充性专利。强尼和山姆于是拿着自己做的Powerpoint投影胶片、实验结果和专利申请材料到处找投资者,在碰了七八次壁以后,找到了山姆原来的老板,思科早期雇员亚平。亚平从思科发了财后不再当技术主管了,自己和几个志同道合的有钱人一起在做天使投资人。亚平和不下百十来个创业者谈过投资,对新技术眼光颇为敏锐,发现山姆和强尼的技术很有独到之处,但是因为山姆和强尼讲不清楚这种技术的具体商业前景在哪里,建议他们找一个精通商业的人制定一个商业计划Business Plan(关键之三,商业计划很重要)。

强尼找到做市场和销售的朋友迪克,并向迪克大致介绍了自己的发明,希望迪克加盟共同开发市场。迪克觉得和这两个人谈得来,愿意共同创业。这时出现了第一次股权分配问题。

到目前为止,所有的工作都是山姆和强尼做的,两个人各占未来公司的50%股权和投票权。迪克加盟后,三个人商定,如果迪克制定出一个商业计划书,他将获得20%的股权,山姆和强尼将减持到40%。迪克经过调查发现,山姆和强尼的发明在高清晰度家庭娱乐中心的前景十分可观,于是制定了可行的商业计划书,并得到了20%的股权。三个人到目前为止对今后公司的所有权见下表。

股权分配1

三个人再次找到亚平,亚平请他的朋友,斯坦福大学电机工程系的查理曼教授作了评估,证实了山姆等人的技术是先进的并有相当的复杂度,而且有专利保护,别人不易抄袭模仿。亚平觉得可以投资了,他和他的天使投资团觉得山姆、强尼和迪克的工作到目前为止值(未融资前)一百五十万美元,而三个创业者觉得他们的工作值二百五十万,最后商定定价二百万(注:对公司的估价方法有按融资前估价,即Pre-Money,和融资后估价,即Post-Money两种。从本质上讲,这两种方法是一样的,我们这里的估计都以Pre-Money来计算)。亚平和他的投资团投入五十万,占到股份的20%。同时,亚平提出下列要求:

  1. 亚平要成为董事会成员;
  2. 山姆、强尼和迪克三人必须从原有公司辞职,全职为新公司工作,并且在没有新的投资进来以前,三个人的工资不得高于每月四千美元;
  3. 山姆等三人的股票必须按月在今后的四年里逐步获得(Vested),而不是在公司成立时立即获得。这样如果其中有人离开了,他只能得到一部分股票;
  4. 如果有新的任何融资行为必须通知亚平的天使投资团。

现在山姆等人就必须正式成立公司了。为了将来融资和开展业务方便起见,他们在特拉华州注册了赛通科技有限公司。山姆任董事会主席、迪克和亚平任董事。山姆任总裁,强尼任主管技术的副总裁兼首席技术官,迪克任主管市场和营销的副总裁。三个人均为共同创始人。公司注册股票 1500 万股,内部核算价格每股 0.2 美元。

在亚平投资后(的那一瞬间),该公司的内部估计已经从两百万增加到二百五十万,以每股二十美分计算,所有股东的股票只占到1250万股(250万/0.2=1250万)。那么为什么会多出来250万股,它们并没有相应的资金或者技术做抵押,这些股票的存在实际上稀释了(Dilute)所有股东的股权。为什么公司自己要印这些空头钞票呢?因为它们必须留出来给下面的用途:

  1. 由于山姆等人的工资很低,他们将根据自己的贡献,拿到一部分股票作为补偿;
  2. 公司正式成立后需要雇人,需要给员工发股票期权;
  3. 公司还有一些重要的成员没有进来,包括CEO,他们将获得相当数量的股票。

现在,该公司各位股东股权如下:

请输入图片描述

接下来,山姆等人辞去以前的职务,全职创业。公司很成功,半年后做出了产品的原型(Prototype)。但是,50万投资已经花完了,公司也发展到20多人。250万股票也用去了150万股。这时,他们必须再融资。由于该公司前景可观,终于得到了红杉风投的青睐。红杉风投为该公司作价1500万美元,这时,该公司的股票每股值1美元了,比亚平投资时涨了四倍。红杉同意投资500万美元,占25%,这样总股数增加到2000万股。同时,红杉风投将委派一人到该公司董事会任职。山姆等人还答应,由红杉风投帮助寻找一位职业经理人做公司的正式CEO。双方还商定,融资后再稀释5%,即100万股,为以后的员工发期权。现在该公司股权如下:

请输入图片描述

读者也许已经注意到,红杉风投现在已经成为了最大的股东。

两年后,该公司的样品研制成功,并获得东芝公司的订单,同时请到了前博通公司的COO比尔出任CEO。比尔进入了董事会,并以每股三美元的价钱获得100万股的期权。当然新来的员工也用去一些未分配的股票。这时该公司的股价其实比红杉风投投资时,已经涨了两倍。比尔到任后,公司进一步发展,但是仍然没有盈利。于是,董事会决定再一次融资,由红杉风投领头协同另两家风投投资一千五百万。公司在投资时作价一亿五百万,即每股五美元。现在,该公司股权变为:

请输入图片描述

这时,投资者的股份已占到44%,和创始人相对,即拥有了一半左右的控制权。又过了两年,该公司开始盈利,并在高盛的帮助下增发六百万股,在纳斯达克上市,上市时原始股定价每股25美元。这样,一个科技公司在VC的帮助下便创办成功了。上市后,该公司总市值大约七亿五千万美元。该公司股权如下:

请输入图片描述

这时,创始人山姆等人成了充满传奇色彩的亿万富翁,其员工共持有价值近五千万美元的股票,不少也成了百万富翁。但是,山姆等全体公司员工只持有44%的股份,公司的所有权的大部分从创始人和员工手里转移到投资者手中。一般来讲,一个创始人在公司上市时还能握有10%的股份已经很不错了。

作为最早的投资者,亚平的天使投资团收益最高,高达一百二十四倍。红杉风投的第一轮获利二十四倍,第二轮和其它两家风投均获利四倍。显然,越早投资一个有希望的公司获利越大,当然,失败的可能性也越大。一般大的风投基金都会按一定比例投入到不同发展阶段的公司,这样既保证基本的回报,也保证有得到几十倍回报的机会。

我不厌其烦地计算每一个阶段创始人和投资人的股权和价值,是想为那些想求助于风险投资创业的人提供一个参考。我遇到了许多创业者,他们在接触投资人时几乎毫无融资的经验,有些漫天要价,有些把自己贬得一钱不值。我们从这个例子中可以看到,风险投资必须是渐进的,在每一个阶段需要多少钱投入多少钱,这样对投资者和创业者都有好处。对投资者来讲,没有任何一家投资商会在刚开始时就把今后五年的开销全包了的,这样风险太大。对创业者来讲,早期的公司股价都不会高,过早大量融资会使得自己的股权占得太低,自己不但在经济上不划算,而且还会失去对公司的控制,甚至在创业的一半就被投资人赶走。在上面的例子中,天使投资人和风投一共投入两千零五十万美元,在上市前占到43%,三个创始人和其他员工占57%。如果在最初公司估价只有两百万时就融资两千多万,到上市前,投资方将占股份的80%以上,而创始人和员工占不到20%。

上面的情况是一个简化得不能再简化的投资过程,任何一个成功的投资都会比它复杂得多。比如,通常天使投资人可能是几家而不是一家,很多人都会要求坐到董事会里去,这样在真正风险投资公司投资时,董事会已经变得很庞大。在这种情况下,风投公司通常会以当时合理的股价(Fair Market Value)从天使投资人手中买回股权,并把他们统统从董事会中请出去。否则每次开董事会坐着一屋子大大小小的股东,大家七嘴八舌,还怎么讨论问题。大部分天使投资人也愿意兑现他们的投资收益,以降低自己的投资风险。

上面这个例子是一个非常理想的情况,该公司的发展一帆风顺,每一轮估价都比前一轮高,实际情况可能并非如此。不少公司在某一轮风险投资资金用完的时候,业绩上并没有太大的起色,下一轮融资时估价还会下降。我的一个朋友曾经在这样一家半导体公司工作,他们花掉了近亿美元的投资仍然不能使公司盈利,这样必须继续融资,新的风投公司给的估价只有前一次估价的三十分之一,但是创始人和以前的投资人不得不接受这个估价,以避免公司关门,那样他们的投资一分钱也拿不回来。

创业者与投资人的关系

风投公司一定会想办法帮助创始人把自己投资的公司办好,毕竟他们已经上了同一条船。风投公司介入一个新兴公司后的第一个角色就是做顾问。这个顾问不仅需要在大方向,比如商业上给予建议,而且还要在很多小的方面帮助创始人少走弯路。总的来讲,好的风投是创业的伙伴。

当然,风投不可能替公司管理日常事务。这就有必要替公司找一个职业经理人来做CEO(当然,如果风投公司觉得某个创始人有希望成为CEO,一般会同意创始人兼CEO的职位)。风投公司还会帮助被投资的公司开展业务。自己开公司的人都知道,一个默默无闻的小公司向大客户推销产品时,可能摸不对门路。这时,“联系”广泛的风投公司会帮自己投资的小公司牵线搭桥。越是大的风投公司越容易做到这一点。

风投是新兴公司的朋友和帮手,因为它们和创始人的基本利益是一致的。但通常也有利益冲突的时候。任何一家公司的创办都不是一帆风顺的,当一个被投公司可能前景不妙时,如果投资者对它是控股的,可能会选择马上关闭或贱卖掉,以免血本无归。这样创始人就白忙一场,因此创始人一定会倾向于继续挺下去,这时就看谁控制的股权,更准确地讲是投票权(Voting Power)多了。当一家公司开始盈利有了起色时,风投会倾向于马上上市收回投资,而一些创始人则希望将公司做得更大后再上市。投资人和创始人闹得不欢而散的例子也时常发生,投资人甚至会威胁赶走创始人。比如乔布斯就曾经被董事会赶出公司,杨致远也被雅虎的新董事会请了出去。

说明

本文节选自吴军先生的《浪潮之巅》。

浪潮之巅的 IT 公司

本文是阅读吴军先生的《浪潮之巅》读书笔记。我摘取一些片断,是大家熟知的、但又没看到其真容的公司。

安迪-比尔定律和反摩尔定律

大家所熟知的摩尔定律讲的是,每 18 个月,计算机等 IT 产品的性能会翻一番,但价格会降一半。

反过来看,就有了“反摩尔定律”:一个 IT 公司如果今天和 18 个月前卖掉同样多的同样的产品,它的营业额要降一半。因此反摩尔定律逼着硬件设备公司必须赶上摩尔定律的更新速度。

那么,为什么我不等 18 个月后再买看中的电脑呢(现在换成手机也可以)。这就是安迪-比尔定律揭示的现象。形象地解释,比尔要拿走安迪所给的。安迪是原英特尔公司 CEO 安迪·格罗夫,比尔就是大家熟知的微软创始人比尔·盖茨。在过去 30 多年里,英特尔处理器的处理速度每 18 个月翻一番,计算机内存和硬盘容易以更快的速度在增长。但是微软的操作系统等应用软件越来越慢,也越做越大,硬件所提升的性能,都被操作系统以及应用软件吃提了。所以,人们几年时间就要换电脑。手机更换的速度就更快了,据统计平均时间为一年。

苹果公司

传奇人物乔布斯在 20 岁时创立了苹果公司,通过低价策略打入市场。十年后,苹果公司拥有超过 4000 名员工,股票市值超过 20 亿美元。然而此时,乔布斯和他请来的 CEO 斯卡利(原百事可乐公司总裁)在诸多方面产生分歧,最终董事会站在斯卡利这一边,并把乔布斯踢出了苹果公司。

由于斯卡利对市场估计失策以及公司管理混乱,苹果电脑的市场被微软系的兼容机挤得越来越小,并且公司开始出现亏损,差点卖给 IBM 和太阳公司。

在乔布斯离开 12 年后,苹果公司董事会不得不把当年赶走的乔布斯请回来,执掌“底下有个大洞的船”的苹果公司。乔布斯上台后,推出一些样子很酷的 PC 机,往高端时尚的方向发展。此后的 iPod 颠覆了音乐产业,iPhone 颠覆了手机行业,以及 iPad 重新定义平板电脑。

思科公司

思科公司正好赶上了互联网的大潮,通过生产路由设备,连接起了分布在世界各地的局域网,极大地推动了互联网的发展。

一家公司大到一定程度后,每个人的贡献就不容易体现出来,大锅饭现象几乎是全世界的通病。导致有才能的员工有好的想法,宁可自己出去创业,也不愿贡献给所在的公司。思科的做法是,如果公司有人愿意自己创业,公司又觉得他们做的东西是好东西,就让他们留在公司内部创业。而思科会作为投资者而不再是管理者来对待这些创业的人。一旦这些小公司成功了,思科有优先权把它们买回来,思科的地盘就得到扩大,创业的员工也得到了很高的回报。

摩托罗拉

现在的摩托罗拉,就像没落的贵族,辉煌不再。它的品牌起源于二战,为美军生产当时领先于世界的无线通讯设备,并随着美军传播到全世界。一直到20世纪90年代初,它在模拟无线通信方面没有任何公司可以比拟,并且创造出多项世界第一。当然,摩托罗拉对世界最大的贡献是它在20世纪80年代初发明的民用蜂窝式移动电话,也就是早期说的大哥大,现在说的手机。

第一代移动通信是基于模拟信号的,天线技术和模拟信号处理技术的水平决定了产品的好坏,而产品外观样式十分次要。在技术方面,没有公司能挑战摩托罗拉。因此摩托罗拉手机虽然卖得贵(那时中国一个好的手机要两万元),它仍然占领了世界 70% 的市场。

然而在第二代移动通信上,摩托罗拉的霸主地位被撼动了。采用第二代移动通信标准的数字手机,体积小、效率高,替代模拟手机是必然趋势。摩托罗拉并不是不知道这一点,而是很不情愿看到这件事情发生。作为第一代移动通信最大的受益者,摩托罗拉要尽可能地延长模拟手机的生命期,推迟数字手机的普及,因为它总不希望自已掘自己的坟墓。结果,摩托罗拉在数字手机上比别人慢半拍,从而错过了第二代移动通信的浪潮。

后来铱星计划的失败,在 3G 技术上没有领先的技术,过长的产品线等等,导致摩托罗拉沦为一个平庸的公司。

Google

华尔街对于任何上市公司都会指手画脚,要求它们达到营收预期,甚至可能干预公司的运作。Google 当时学习了巴菲特的伯克希尔-哈撒韦公司,将股票分为投票权完全不同的两种。Google 规定 2002 年以前发行的股票(B股)每股拥有 10 个投票权,而此后的称为 A 股(包括所有公开交易的)每股只有 1 个投票权。B 股(大多数掌握在创始人和高管手里)不能流通,只能换成 A 股才能出售,而 A 股则永远不能转化回 B 股。其结果是不管一个投资人在市场上购买多少 Google 的股票,只要它的创始人持有 10% 的股票就可以拥有绝大多数的投票权。后来百度也从 Google 身上学到了双重股权的办法。

在 Google 还没有盈利甚至还没有成立时,两位创始人就体会到互联网时代,让所有人免费并且方便地找到自己想要的东西,必将成为互联网时代之王。和微软一样, Google 的东西必须是面向大众的,并且便于使用。免费和方便让 Google 早期就得以普及,通过广告挣钱也就是时间的问题。这就是 Google 的商业模式。

由于计算机算法总是不可避免地存在这样或者那样的缺陷,Google 的网页排名也不是十分完美。针对这种情况,最简单的办法就是通过手工把明显的错误改过来。很多搜索引擎就是这么做的,但是 Google 没有。Google 的创始人佩奇和布林知道,一旦开了手工调整搜索结果的先例,以后就难免不依照个人好恶对网页进行主观的排名。从长期来看,这样将使搜索引擎失去公正性,并失去用户的信赖。为了能让搜索结果让用户满意,Google 长期在研究和工程上投入大量的人力和财力,不断改进搜索排名算法。

3M公司

每个人了解 3M 的途径各不相同。很多人了解 3M 公司是由于它的思高(Scotch)胶带,而早期使用 PC 的人是因为它的软盘,家庭主妇们可能是通过它的洗碗布知道 3M 的,而消费电子商品的各种从业者可能知道它是今天世界最大的液晶生产厂商之一。它是世界上公认的最具创新能力的公司,在不断变迁的世界经济发展中不断发展的常青树。

发明胶带的是 3M 公司的一位普通员工迪克·卓尔,他从汽车喷漆工人们抱怨中了解到他们遇到的问题,然后私下里研究起胶带。老板看到他“不务正业”也没说什么,由他按自己的想法去做。很快,卓尔发明了一种不干胶带,很好地解决了喷漆工人们的麻烦。这种胶带在全世界流行起来,成为 3M 公司的主要业务。后来研制出各种各样适用于不同场合的胶带。

3M 公司允许员工用 15% 的工作时间干任何自己喜欢做的事,后来这个做法被 Google 学去了,变成了 Google 的“20%项目”。在最具有创新的公司里,3M 的排名竟在 Google 和苹果这些以创新而闻名的公司前面。

3M 公司在适当的时候强制淘汰一些看似赚钱但前景不是很好的产品。这是很多人无法理解,也很难做到的。旧的业务部门的主管们因为一直在为公司赚钱,因此在公司里发言权很大,很可能为了自己部门的利益,妨碍公司转型。因此,有长远发展眼光的公司会把一个发展前景不是很美妙的部门在它还值钱的时候卖出去。

最后

每天读一章,我大概花了一个月的时间,读完了这本书,收获良多。IT 行业,尤其是互联网从业者,想创业的朋友,我极力推荐你阅读这本书《浪潮之巅》。