lushang 发布的文章

原文链接:https://www.theamericanconservative.com/chinese-social-darwinism-chinese-translation/
发布时间:Mar 18, 2013 10:48 PM

社会达尔文主义如何造就了现代中国

“中原国家”的千年任人唯贤

作者:Ron Unz

邓小平于1978年启动改革以来,30年间中国经济持续增长,经济规模以人类历史上最快的速度翻了40倍,目前蓄势待发,即将超越美国,成为全球最大的经济体。十亿华人在短短一代人的时间里,将自己的经济生活从用牛耕作、骑车出行,提升到汽车即将普遍走入千家万户。

中国人的学业成就也同样惊人。根据2009年“国际学生评估项目”(Program for International Student Assessment,简称PISA)的测试结果,上海(总人口1500万的大都市)学生雄踞全球之冠。1 中国其余地区的PISA结果显示,那些地区的学生的优异表现也相差无几,中国广大农村数以亿计的学生(大多出自年收入低于2000美元的农民家庭)的平均成绩足以与欧洲最发达国家(如德国、法国、瑞士)的学生相匹敌,甚或超过,与美国比较更是远远胜出。2

ChinaGDP_2e.jpg
Per capita GDP growth

在上一代,邻近中国的多个小型华人国家或地区(比如台湾、香港、新加坡)也取得了类似的经济和技术成就。而在以白人为主导的国家(如美国、加拿大、澳大利亚),规模较小的华裔少数族群同样取得了巨大的学术和社会经济成就。中国大陆不甘示弱,尾随其后,取得了上述成就。黄帝的子孙看来注定要在人类未来的舞台上扮演重要角色。

对于20世纪中叶的西方人来说,他们更加熟知的是中国的赤贫与毛泽东思想的革命狂热,故而中国新近的这些成就可能会令其吃惊,但对于100年前的杰出思想家来说,它们就远不是那么出乎意料了。当时的很多人都曾经预言,中国终将重新跻身一流大国之列。比如美国早期最伟大的社会学家之一A.E. Ross就曾在其著作The Changing Chinese(变化中的中国人)中忽略彼时中国的贫穷、痛苦、腐败,而把目光投向了未来的现代化中国,预测其科技实力将足以匹敌美国及欧洲领先国家。当时的公共知识分子也广泛赞同Ross的观点,比如Lothrop Stoddard就预言,中国若从长达几个世纪的沉睡中醒来,则必将对欧美国家长久以来享有的世界霸权构成挑战,而这一天也不会太遥远。

中国现下取得的广泛成功的可能根源,在当今西方的主要媒体上鲜见深入探讨。这些媒体倾向于避开对华人民族特点的关注,而对其机构体系、政府形式更感兴趣。不过,尽管后者的作用显然至关重要(比如在经济成就上,毛泽东时代的中国就显然要远远逊色于邓小平领导下的中国),我们需要记住,中国人的上述成功故事所发生的社经/政治制度等背景多种多样,并不是单一的。

举例来说,数十年来,香港拥有世上最为自由的市场之一,其经济体系接近于毫无政府干预的纯自由主义状态;而与此同期的新加坡则处在李光耀及其社会主义性质的政党——人民行动党的严密控制之下,是一党专政的国家,政府的指引与控制随处可见。但两地的人口均大多是华人,两地也都经历了几乎齐头并进的快速经济发展,均在50年间就从战后的一片破败凄凉、处处难民窟的景象,迅速转变为全世界最为富裕的地区之一。台湾的华人人口更多,它走的是中庸的发展路线,同样取得了类似的经济成就。

在美国,尽管华人经历了长久的种族歧视与虐待,但那里的小型华人群体现在也同样兴旺发达,华人人数甚至在1965年移民法案通过后快速增长。近年美国的顶尖学子中,无论是按客观标准,比如在奥林匹克数学竞赛或英特尔科学大赛中获奖的比例,还是按较为主观的标准,比如常青藤学院的入学率,华人均占了相当数量。从具体数字来看就更加惊人:尽管美国每年的高中毕业生中仅有1%是华裔,姓氏分析表明华人在尖子生中的比例占到了近15%,这一数字是犹太裔美国人(学业表现最佳的白人族群)所占比例的4倍多。3 在世界各地,无论来自什么经济制度和文化背景,华人似乎都在繁荣兴盛。

20世纪60年代或70年代美国的顶尖学者几乎无一人能预见这些新形势,而其后继者尽管就生活在这个风起云涌的时代,却同样没能认清形势。学者有多鼠目寸光,于首屈一指的发展经济学家Daron Acemoglu及James Robinson的著作中可见一斑。其著作中对中国经济升至世界主导地位的描述着墨不多,且认为这种繁盛不过是昙花一现,很快便要曲终人散,仅仅因为中国遵循的机构体制与两位作者所推荐的“超级自由市场新自由主义”大不相同。4中国政府在引导经济决策方面卷入过深,故而必将失败,虽然所有证据都截然相反;而美国高度金融化的经济必将成功,尽管我们的失业率高企,增长乏力。按Acemoglu和Robinson的看法,国际间的竞争成败取决于政府体制,由于中国现有体制不对,故而必将失败,尽管现在似乎没有任何失败迹象。

也许这些学究会被证明是对的,中国的经济奇迹将如他们所预测的那样土崩瓦解。但如果这种事情没有发生,假如过去35年间一直持续的国际趋势再继续维持5到10年,那我们就应该转而向那些久已为人遗忘的思想家(如Ross和Stoddard这样的个人)寻求解释:他们实际已经预见了我们今天所经历的世界发展形势。日本侵华、二战、内战致使中国蒙受大范围破坏,随后毛泽东思想又带来了经济上的破败,这些使先贤预测的中国崛起向后推迟了一两代人,但除去这些意外,他们对中国潜力的分析看来极具先见之明。比如,Stoddard曾心有戚戚地引用了维多利亚时代的Charles E. Pearson教授的预言:

终有一天,中国将从其煤矿中开采出廉价的燃料,用铁路和轮船实现廉价的交通运输,设立技术学校,发展工业,而这一天已近在咫尺了。对于这一点,有人怀疑吗?不管那一天何时到来,到时,中国将从英国和德国手中,夺走世界市场(特别是全亚洲市场)的控制权。5

困境铸就的民族

与今天相比,百年前的西方学术界相当不同,具有与当今截然相反的信条和禁忌,其时代精神也自然给当时的领头学者烙下了深深的印迹。种族主义——即认为“不同民族所经历的独特历史,往往会给该民族留下与众不同的内在特质”的观点——在那时占据主导地位,几乎人人均将其奉为真理,并加于欧洲人及非欧洲人头上,有时所用方式相当粗暴。

对于华人,当时普遍的观点认为,中央集权式的中国社会在长达数千年间保持基本稳定而有序,在世界各民族中堪称独特,给华人留下了特有的烙印。尽管中国也出现过政治分裂局面,但为时短暂。实际上,这个东亚的罗马帝国从未真正沦陷,东方也因此得以免遭罗马灭亡后西方所遭受的长达千年的野蛮蒙昧、经济崩溃、科技退步的命运。

而其不利一面在于,最近数百年来,庞大的人口增长逐渐使中国极为高效的农耕体系疲于应对,使得大多数中国人的生活离马尔萨斯描绘的饥荒仅一步之遥;这些压力和困顿据信也反映在华人身上。比如,Stoddard写道:

中国大地人口密集,在巨大经济压力的重重逼迫下,人人艰难求存,如大浪淘沙,举世罕见。在国内,普通中国人的生活几近食不果腹。因此,离开故土来到其他较宽容的环境中后,中国人依然勤奋努力,常常令其竞争对手瞠目结舌。6

为支持他本人的这些生动用词,Stoddard还大量引用了其他重要观察家(有西方人,也有中国人)的详细描写。Ross的描写要更加谨慎、更富经验性,写作风格没那么文学化,但其分析也颇为类似。在他关于中国人的专著中,有超过40页用于描绘中国人日常挣扎求生的动人细节,这部分内容的标题颇为耸人听闻:“中国人的挣扎求存”(The Struggle for Existence in China)。7

在20世纪后半叶的美国,种族主义成了思想理念上的禁忌话题,很少能在公共演讲中听到诸如“若某个民族置身于某个特定环境中长达数千年,将会给该民族烙上不可磨灭的印迹”这样的观点。但随着新千年的到来,在权威性学术季刊上又能再度看到这种看法。

其中一个典型例子,要数A Farewell to Alms(别了,救济)。作者Gregory Clark在其发表于2007年的这篇文章中分析了英国工业革命的深层次根源。该文在精英圈子中广受评点与赞誉,《纽约时报》的经济学专栏作者Tyler Cowen称其可能将是“经济学中下一个热点”,加州大学伯克利分校的经济学家Brad DeLong称其“精彩”。

Clark在文中虽然着墨于多个方面,但最受关注的要数他从人口构成角度对英国历史所做分析。分析依据的是他对流传下来的个人记录的一番审视。Clark发现,有证据显示,在数百年间,较富有的英国人的后代数量要远远多于穷人的后代,因此,前者的后代在人口中所占比例随每一代人而递增。可以想见,这是由于他们有财力早早结婚,并且由于营养较丰富、生活条件较好,他们本人及家人的死亡率因此降低。确实,当时的普通英国人大多接近马尔萨斯描绘的饥寒境况,故而,穷困的下层人民往往无有子嗣,其位置逐渐为富人子孙中境遇不佳者所取代。由于个体的经济境况可能在一定程度上取决于诸如是否勤奋、节俭、能干等特质,Clark认为,这些特质逐渐扩散,在英国人中变得较为普遍,为英国后来的经济成就打下了人的基础。

姑且不论历史证据是否支持Clark的假说——经济学家Robert C. Allen就发表了一篇措辞激烈且相当有说服力的文章,与之针锋相对8——他提出的理论架构看来相当言之成理。尽管文风不同、数字例证详略不同,但Clark就英国的分析显然与Stoddard、Ross等人对中国的分析遥相呼应。也许因此可以探讨一番,看看对于中国人,我们是否也能套用一下Clark的那种分析方法。

有趣的是,Clark本人也用了几页篇幅探讨这个问题。结论是,与英国不同,中国富人的子嗣并不多于穷人,因此不会在中国出现类似的某种特质逐代越发明显的趋向。9但Clark并非中国专家,他的简短分析所依据的是皇家凤子龙孙的出生记录,完全无法代表更广大的普通民众。事实上,只要对来自中国的资料再细看一遍,就可找到极具说服力的证据,可以证明直接与经济状况有关的中国家庭子女人数的严重不对称,而且这种模式甚至比在英国或其他任何国家都更加明显。

更有甚者,中国传统社会的某些特点可能还对这种效应起到了维持和强化作用,其机制也完全不同于在欧洲或其他很多地方可见的同类机制。的确,中国可能要算人类历史上规模最大、持续时间最久的一个极端“社会达尔文”社会,这个因素在塑造现代中国人的过程中具有非常重要的影响10。

传统中国的社会经济

中国社会以其稳定、长久而著称。从隋(589-618)唐(618-907)时期官吏政治制度逐渐建立,到1949年的共产党革命,千年间同一种社会经济关系一直挥之不去,仅在因王朝更替、军事征服,导致政府上层建筑出现周期性变化的时候才略有演化。

该官吏制度的中心特点,就是中央政府通过优胜劣汰的科举考试,选拔人才,任命为地方官员,以此替代贵族对地方的统治。究其本质,中国早早便摒弃了世袭封建领主及其所代表的社会结构(比欧洲国家要早一千多年),代之以“除身为统治者的皇帝及皇族之外,几乎人人均具有平等法律地位”的制度。

科举制度具有极大社会重要性,其作用相当于欧洲直至现代之前一直采取的、根据血统来决定某人可否迈入统治精英圈子的做法,其渗入本国大众文化的程度也有过之而无不及。法国或德国的大贵族家族也许能将其历史追溯到查理曼大帝或巴巴罗萨时代,他们的祖先在那时被提升为贵族,随后其后裔的社会及经济地位在历史长河中起起伏伏。而在中国,一个家族会自豪地一一列举历朝历代该家族中曾出过的状元,还有他们因此被任命的重要官职。在欧洲,像“英勇的平民小伙为国王立下汗马功劳,并因此获封骑士或更高等贵族”的传奇故事虽广为流传,但这些故事直至法国大革命也只是故事。但在中国,即便是最伟大的书香世家,其根源也几乎均出自普通农耕家庭。

中国是第一个利用书面考试来实现优胜劣汰的国家,不仅如此,世界其他地方所采用的类似做法,归根到底也很可能是模仿中国。比如,在18世纪、19世纪,以中国的制度为样板,英国及其他欧洲国家建立了唯才是用的公务员制度,使效率有了革命性提高。更有极具说服力的历史证据表明,甚至连大学入学考试以及荣誉学位考试,也是借鉴中国的科举考试。剑桥大学著名的Math Tripos(数学荣誉学位考试)便是最早的范例11。现代的书面考试可能跟筷子一样,是典型的中国产物。

既然在过去1500年间的大部分岁月中,中华文明均通过考试来选拔人才去占据具有全国性权势的位置,有时不免让人猜测,可能考试的能力已经溶入中国人的血脉,不仅在文化层面如此,即便在生理层面也是如此。不过,虽然这种猜测也许有一点真实成分,但它所描述的机制不大可能会有什么重要意义。在科举时代,中国的人口达好几千万,并且不断稳定增长,从公元900年之前的6千万人口一路增长到1850年的远超4亿人口。但在过去600年间,得以参加科举中最高级的殿试、成为进士的中国人数目,每年却常常少于百人。其中要数宋代(960-1279)的进士最多,但人数也仅超过每年200名。即便我们加上低于进士的举人,这些高等书生的人数可能举国也不过寥寥数万12,占全国总人口的百分之一都不到,远低于工匠、商人的人数,更别提占据人口绝大部分的务农者了。考试选才制度具有庞大的文化影响,但其直接的基因影响应可忽略不计。

同样是这种相对比例上的不对称,令任何拿生物进化模型去套中国的做法都困难重重。Gregory Cochran和Henry Harpending令人信服地用进化论解释了欧洲Ashkenazi犹太人高智商的成因。13这些犹太人人数不多,不与外界通婚,绝大多数人从事很需要高智商的商业与金融业工作,仅有无足轻重数量的基因来自从事其他行业的外族。与之相对的是,并无证据显示成功的中国商人或学者会不乐意从普通民众中娶妻;而每代人中仅需些许此类婚姻出现,就会令有助于商业成功或学业成功的基因稀释。若想找到可以与Clark关于英国假说中所述相提并论的机制,就必须仿效前面提到的19世纪观察家们的做法,把目光投向中国数目广大的乡间农民的生活环境:他们在数百年间均占人口的百分之90以上。

阶层不固定,可流动变化

事实上,尽管西方的观察家往往把目光集中在中国惊人的贫困上,中国的传统社会其实具有某些非同寻常、甚至是独一无二的特点,可能在塑造中国人的过程中起到了相当大的作用。也许其中最为重要的特点,要算这样一个事实,即中国社会几乎没有固定阶层,不同经济阶层之间具备极强的流动性。

早在法国大革命之前1000来年,中国的封建制度就已经宣告终结,在法律面前几乎人人平等。14士大夫——通过科举获得秀才或更高功名者——拥有某些特权,而小人——娼妓、乐伎、奴仆及其他各种社会底层人士——则遭受法律歧视。但这两种阶层均很小,各占据人口的百分之一不到,而平民——其他所有人,包括农夫——则完全享有平等的法律地位。

不过,法律地位的平等并不意味着经济地位上的平等,在社会的各个角落都能看到极为悬殊的贫富之差,即便是同宗的小村庄也不例外。在20世纪的大部分时间里,根据传统的马克思主义阶级分析,中国的农村居民按其财产的多寡、按其“剥削”收入的多少,被分为:地主(他们的大部分收入或全部收入均来自地租,或剥削自雇工)、富农、中农、贫农。他们的财产及地租收入依次递减,出卖自己劳动力的必要性依次递增。此外还有雇农,他们拥有的土地可以忽略不计,将近全部收入均依赖出卖劳动力。

若时势艰难,财产的多寡很可能就意味着生与死的差别。但人人都认同,这种划分只是经济层面的划分,而且并非固定不变:若地主丧失其土地,就会变成贫农;而发了财的贫农就大可与地主平起平坐。在革命斗争时期,中国共产党宣传说,地主与富农仅占人口的百分之十,却占有百分之70到80的土地,而占人口绝大多数的贫农与雇农仅占百分之10到15的土地。立场中立的观察家认为,这些说法为宣传效果而夸大了事实,但离严酷的事实也不是很远。15

法律地位上的完全平等,再加上经济地位的天差地别,两者合一,造就了有史以来羁绊最少的自由市场体系,并不仅仅在城市如此,更重要的是,在中国广大的农村也是一样(在传统中国,几乎全部人口均居于农村)。土地这一主要财富形式可被自由买卖、交易、出租、转租、抵押。金钱借贷、粮食借贷,两者均随处可见,特别是在荒年。利息通常高得有如高利贷,往往超过每月百分之十的复利。在极端情况下,甚至出卖妻儿换取钱粮的做法也不鲜见。若无亲戚接济,无地无钱的农民常常饿死。与此同时,那些境况较佳的农民往往投身极为商业化、极具企业色彩的农业活动,常常涉及复杂的商业安排。16

几百年来,中国农村日常生活中一个不争的事实就是人口密度极高。随着中国人口在1850年之前的5个世纪里从6500万增长到4.3亿17,几乎所有土地最终都被开垦出来,用于高效耕种。尽管中国社会是以农业为主的农村社会,在1750年,山东省的人口密度即已达到荷兰的两倍以上,虽然荷兰是当时欧洲城市化程度最高、也是人口密度最高的地区。在工业革命早期,英国的人口密度更是仅有江苏省的五分之一。18

中国的农业生产方式向来极为高效,但到了19世纪,随着中国人口的不断增长,在当时科技水平与经济制度的局限下,农业体系的绝对马尔萨斯负荷容量终于被人口赶上并超越。19人口的进一步增长受到死亡率(包括高婴儿死亡率)、因营养不良所致的生育率下降、疾病、周期性的地区性饥荒等因素的极大制约,而地区性饥荒平均消灭占人口百分之五的生命。20甚至连中文都演变成以食物为中心,比如传统上打招呼的用语是“吃了吗?”,再比如人们常常用“去吃酒”来表示去参加婚礼、葬礼或其他重要社交场合。21

文化与思想观念对中国社会的制约,也使得这种无休无止的生命悲剧更加难以终结。尽管与此同期的欧洲贫民无论男女,都很晚结婚,甚至一生单身,但中国人生活的一大主题就是尽早成家,生儿育女。亚圣孟子有云,不孝有三,无后为大。的确,娶妻生子成了长大成人的标志。另外,只有儿子才能继承香火,在父母百年后给父母及祖先上供。为了预防夭折,还得生育多个儿子以防万一。从实用角度来说,若生的是女儿,嫁出去后便成了夫家的人,父母老来只能依赖儿子。

几乎所有农业社会都强调孝顺父母、娶妻成家、生儿育女的重要性,并将儿子置于女儿之上,但在传统中国社会,这种趋势显得特别强烈,成为生存之外在日常生活中的中心主题。由于极端贫困,为人父母的常常要做出残酷的选择,将女婴杀死(包括任其自生自灭)的事情并不罕见,成为穷人的主要生育控制手段。这导致婚龄妇女的数量往往比婚龄男性要少百分之10到15。因此,为求得这些女性青睐,育龄男性竞争激烈。这些女性往往二十不到便名花有主,几乎无一漏网。随之而来的必然结果便是人口总数自然而稳定地大增,直到各种因素导致死亡率上升,将增长的势头遏制住。

出人头地与逆水行舟

虽说大部分中国人都是贫农,但在中国这个基本无固定阶层之分的社会里,只要有能力也有运气,就大有向上攀爬、出人头地的机会。每个村子里的富人都会出钱让孩子读书,学习四书五经,预备科举考试。若有哪个富农或小地主家的儿子很聪明,读书又用功,就可能通过科举,获得秀才乃至更高的功名,大有机会去把握政治权力与财富。

明(1368-1644)清(1644-1911)两代留下了考取进士(最高等的科举功名)之人的出身记录。从这些记录可以看出,中国传统社会具有极强的向上流动性,举世罕见,任何西方社会,无论是现代还是现代之前,都无法与之相匹敌。这些进士中超过百分之三十来自平民家庭,祖上三代未曾有人做过高官。在两个朝代早期,这些“暴发户”的比例更高达百分之84。这个数字要远高于剑桥大学自成立以来的同类数字,即便与美国常青藤学院的同类数字相比也毫不逊色,无论是现在还是以前。与此同时,即便是居于社会最高层的名门望族,也常常于云端滑落,泯灭于默默无闻。比如综合来看,在明清两代约600年间,每个时代的统治精英中,只有百分之6的人是出自前一代统治精英的家门。22

现代西方社会的主导理念是“人人平等”,而奉行儒家思想的中国传统社会,则信奉人人生而不平等,正好与之截然相反。但在事实上,后者似乎将前者的理念发挥得更好。极具开拓精神的美国人传诵生于小木屋的平民总统的故事,但多个世纪以来,统治中国的官员中有很大一部分人确实是出自乡下的稻田。像这种事,如果放在大革命时代之前的欧洲,是完全不可想象的,甚至在大革命时代之后很久也是如此。

这种出人头地、迈入中国统治精英圈的可能性确实值得称道,不过,在中国,另一个更为重要的因素是,即便是普通农民,只要足够勤奋、勇于奋斗,就可以积累财富,在地方上崭露头角。颇为讽刺的是,共产主义革命领导人毛泽东曾如此描述他的父亲是如何从无地的贫农变成富农的,由此提供了向上流动的一个典型例子:

我父亲原是一个贫农,年轻的时候,因为负债过多而只好去当兵。他当了好多年的兵。后来,他回到我出生的村子,做小生意和别的营生,克勤克俭,攒积下一点钱,买回了他的地。

这时我家有十五亩田地,成了中农,靠此每年可以收六十担谷。一家五口一年共吃三十五担——即每人七担左右——这样每年还有二十五担剩余。我的父亲利用这些剩余,又积蓄了
一点资本,后来又买了七亩地,这样我家就有‘富’农的地位了。那时候我家每年可以收八十四担谷。

当我十岁家中只有十五亩地的时候,一家五口人是:我父亲、母亲、祖父、弟弟和我。我们又买了七亩地以后,祖父去世了,但又添了一个弟弟。可是我们每年仍然有四十九担谷的剩余,我的父亲就靠此渐渐富裕起来。

我父亲还是一个中农的时候,就开始做贩运谷子的生意,赚了一些钱。他成了‘富’农之后,就用大部分时间做这个生意了。他雇了一个长工,还叫孩子们和妻子都到地里干活。我六岁就开始干农活了。我父亲做生意并没有开铺子,他只是从贫苦农民那里把谷子买下来,然后运到城里卖给商人,在那里得到个高一些的价钱。在冬天碾谷的时候,他便多雇一个短工干活,那时我家就有七口人吃饭。我家吃得很俭省,不过总是够吃的。23

毛泽东的话里没有只字片语会让人觉得他认为自己家的崛起有什么特殊之处;他的父亲显然干得很好,但可能在同一个村子里,就有很多其他家庭也同样在短短一代人的时间里就由贫转富。像这种社会阶层间快速流动的可能性,在同期的其他任何封建制或阶层僵化的社会均不可能出现,无论是欧洲还是世界上其他大部分地区。

然而,在农民有机会跻身上流出人头地的同时,是可能性远大于此的向下流动。境况愈下的可能性极大,这种可能性也许是塑造现代中国人的各种因素中影响最大的一个。每一代人中,少数能干的幸运儿得以提升其经济地位,但绝大多数人的经济地位总是会下滑,而那些原本就靠近底端的家族则完全消失于世间。在传统的中国农村社会,几乎人人均无可避免地要往下坠落:数百年间,几乎每个中国人到头来均要比其父辈更加贫穷。

历史学家Edwin E. Moise在约25年前发表了一篇重要文章,有力地展现了中国传统社会的这种趋势。24可惜的是,这篇文章白璧蒙尘,不大受人关注,这可能是因为20世纪70年代后期的学术氛围使得读者难以赞同其中呈现的进化论观点。

在很多方面,Moise对中国人口的分析都奇妙地与Clark后来对英国所做分析相吻合,比如他指出,在中国农村,由于女婴遇害屡见不鲜,再加上其他因素,导致育龄女性的人数通常要比男性少百分之15,只有最富有的人家才能负担得起为儿子娶妻的花销。因此,村子里最穷的那些人往往无法生儿育女。另外,若有人家的经济境况由好转坏,随之而来的贫困与营养不良通常也会导致生育率降低、婴儿死亡率升高。与此同时,村子里最富有的人则是妻妾成群,百子千孙。每一代人中最穷苦的人断子绝孙,穷人的数量无从自行补充,金字塔的底层被富人成堆的子嗣中不擅经营或经营不善者所替换、填满。

这是中国农村生活的基本事实,对于中国农民来说显而易见,对于外部的观察家来说也同样如此。文献中可见大量轶事,可作为描绘这一基本事实的证据,有的可见于Moise的文章,别处也比比皆是,比如以下几个例子:

‘村子里又有谁能说自己家是三代贫农呢?贫农可拿不出给儿子讨媳妇的彩礼;如果连媳妇都没有,又哪来的第三代呢。’25

……因为男多女少,总是有很多光棍汉。比如长工就大多打光棍……最穷困的家庭因为没办法给儿子娶妻,只能断子绝孙。新一代穷人往往是破产的中农、富农、地主的后代。26

……在家境金字塔的再下层,是很多穷困家庭,他们的儿子虽早已过了普通的婚龄,还仍然打光棍,因此家里人口有限。黄米(音,Wong Mi)是个典型例子。他现年23,父母已经年过六十五、六;但一家人只能租种一亩薄田,无力给他娶妻。所以,他与年老的父母同住,一家仅三口人。黄春(音,Wong Chun)年过四旬,无地,务农。十年前他也出于同样的原因与父母同住。现在父母均已过世,他孤身一人。村子里总共有约10到15户人家的儿子还在打光棍。27

……如前所述,南京有约20户人家是完全没有土地的,按土地拥有量来算,他们处于金字塔底层。其中几户人家是佃户,但大多数连工具、肥料、种子都买不起,只能给人当长工,一干就是一年。他们一年的收入一般是1000斤谷子,如果没房子,东家还提供住宿。如果他们自己租种一小块地的话,收入也许仅仅跟现状持平,甚至可能还比不上,但做长工的收入确实不够支持一个普通大小的家庭,除非家里其他人也出去找活干。因此,很多长工终生未婚,无地农民中光棍的比例是最高的。黄图恩(音,Wong Tu-en)是无地农民,他替一家富农做工已经有近10年。虽已年过五十,依然光棍一条;村子里还有其他人也跟他一个情形。有家室的村人取笑他们,也可怜他们。28

另外,中国农村社会这种向下流动的趋势也因“分家”这一传统继承制度而强化。分家的时候,父辈的财产在所有儿子之间均匀分配,完全不同于欧洲人普遍实施的长子继承制度。

如果父辈的全部或大部分财产都为长子所继承,那么较为富有的农民家庭的香火必可长久延续,除非继承人是个纯粹的败家子,或运气特别不佳。但在中国,文化上的压力迫使富人多多生子,农村的富人往往留下2个3个乃至更多的男性继承人,每人在经济独立的时候只能获得父辈的一部分财产。所以,若是哪个富有的地主子嗣特别众多,他的儿子可能就要沦为富农了(除非他们有办法让自己继承来的财产翻上几番)——而他的孙子,可能就会变成忍饥挨饿的贫农。29因此,若有某些家族的财富是偶然得天之幸而来,或因某些不持久、还不曾深深在其行为特征中留下烙印的特质而来,那他们的富有就不过是昙花一现,他们的子孙终将因贫困而从村民的名单中消失。

富有的家族若想保住其经济地位,而不是随时光推移被风吹雨打去,其每一代人就都得发挥极高聪明才智,利用极其敏锐的商业触觉,努力工作,勤奋不懈,从拥有的田地及他人处榨取大量的财富,才能做到这一点。若在商业运作上出现大的失误,或是懈怠不努力,将面临个人丧身失命、甚或断子绝孙的下场。美国观察家William Hinton栩栩如生地写道:

在一片悲惨饥饿困苦的可怕汪洋中,安全、相对的舒适、权势、闲暇,这些都是奢侈的孤岛。任何家族,如果放松了警惕、对穷困的邻人施以怜悯、未能将租金与利息的最后一枚铜板都榨取出来、或是在积累粮食与钱财的过程中有片刻松懈,则即刻面临被这片汪洋吞噬的威胁。不进则退,退则往往以坟墓为终点,至少也是妻离子散的结局。30

不过,若是顺风顺水,商业上大获成功的家族也许会兴旺发达、代代添丁,逐渐将地方上那些竞争力不够的邻人都排挤出去,最终整个村庄的居民几乎都会属于同一家族。比如,曾经有一对贫寒的杨姓兄弟,到异乡做雇农。在100年之后,其子孙后代在一个村子里占据了80到90户人家,邻近的一个村子里的居民更全部是其后代。31广东某地的一个村子里,有一户黄姓商户迁入,不断买地,繁衍生息,而原村民则越发贫穷,最终消失。数百年后,村民不论贫富,大部分(74%)都已是黄姓商户的后代。32

对华人种族、对美国理念的意义

从很多方面来看,种种历史记载及社会学记录中所描绘的中国社会似乎必然会在其居民的特质中深深烙上独有的印迹。即便是在当今毫不留情的发展进程开始之前,中国早已雄居世界上最先进的经济与科技大国之一的位置达数千年之久了。公元6世纪末期以来建立的社会经济制度在长达千余年的时间里基本保持稳定,变化甚少,造就了传统中国稳定的法制社会,顺之者繁荣昌盛,逆之者莫不消亡。在千余年间的大部分时期,因人口过多,每个家庭都承受着巨大的经济压力,挣扎求存。在另一方面,强大的文化传统强调把多多繁衍后代——特别是儿子——作为人生的最大目标,即便下一代会因此变得贫困也在所不惜。农业生产具有极高的效率,但要求投入极大的努力、需要辛勤耕耘,农民面临复杂的经济决策——如何管理田地,选择何种作物,将资源投入哪个方面——这些问题远较世界其他地方的农奴所面临的问题为复杂,决策成功或失误带来的回报或惩罚也极为巨大。中国庞大的人口、统一的文化,都理应会使有利的新事物快速出现并不断扩散,包括在纯生理层面出现的变化。33

但需要明白的是,尽管是否具备良好的商业能力关系到一家中国农户能否久远传承香火,不过其中涉及到的制约因素大异于那些会对固定的商业阶层——如东欧的Ashkenazi犹太人,或印度的Parsis——造成影响的同类因素。这些固定的商业阶层所占据的是高度专业化的经济生境,个人要成功发财,所需的可能只是一个对数字敏感的头脑,或是无情的商业触觉。但在中国农村里,即便是较富有的人,其一生大部分时间通常也在从事繁重的体力劳动,要与家人及雇农一道在田地里劳作。头脑聪明,对想发财的农夫自然是有利无害,但他们还需要具备干好重体力活的能力、要有毅力、勤奋,甚至连皮糙肉厚胃口好等纯生理方面的特质也包括在内。由于存在这么多种制约因素,任何单一因素的扩散速度就会比在该因素本身即可决定成败的情形下要慢得多,要看到显著的结果,需要以世界上最庞大的人口为基数,优胜劣汰长达几个世纪才会可见。

这个优胜劣汰的过程如此激烈,必然会在多个层面体现出来。文化等软件方面更灵活、反应更灵敏,因此受影响更大,而较固定的生理层面的变化就缓慢得多。要从中国人的行为表象来判断是软件方面的机制在起作用,还是有其生理基因层次的原因,显然会是令人望而生畏的艰难任务。但是,中国人在上千年间一直面临这种无休无止的淘汰压力,要说这个过程完全没有在较深的生理基因层面留下其痕迹,那应该是说不过去的。如果对这种重要的可能性嗤之以鼻,显然不是理性的做法。但这种非理性的做法似乎正符合过去两三代西方学者的主流思想。

有时候,要发现自己的理念盲点,最佳方式莫过于认真研究一番“身在庐山外”之人的看法。就西方社会来说,八九十年前的大多数著名知识分子正好都可以算山外人。多亏了神奇的因特网,我们现在又可以对他们的思想有所了解。的确,在某些方面,他们的看法相当幼稚,对某些观点的展开也相当粗糙,但在更多情况下,他们的分析极为准确、符合科学、极有洞察力,对当代的某些误以为的真理可以起到借鉴、修正的作用。而在某些事情上,最突出的比如预测中国这一世界第一大国的经济发展轨迹,他们几乎就有未卜先知的本事了。而过去50年间,在他们的后继者中,对此却几乎无一人曾梦见过。这些应足以令我们停下脚步思索一番了。

另外也可看看Bruce Lahn的例子。他是华裔,才华横溢,在芝加哥大学研究基因学。几年前,在一次访谈中,他提到,大多数当代中国人似乎都很顺服,这可能是由于在过去2000年间,更具有叛逆精神的人都被执政者周期性地消灭掉了。这个看法在世界各地都会被认为是显而易见且无害的,并得到认同,唯有过去半个世纪以来的西方社会除外。就在那次访谈之前不久,Lahn有了一项突破性的发现:他发现,某些基因可能是人类文明诞生的根源。Lahn由此广受赞誉,名声大噪,但随后他的发现引发了激烈争论,他选择了停止研究。35

不过,尽管身在美国的华裔科学家愿意遵循美国社会的理念约束,中国国内的华人科学家可不用理会那些。因此,北京基因组研究所(Beijing Genomics Institute)会在人类基因组研究方面领先全球,也就不足为奇了。与之形成鲜明对照的是美国的同类机构,尽管花了数十亿的研究经费,但因为受思想理念上的局限,不敢越雷池一步,只能落乎其后。

在冷战时期,苏联政府在多个领域投入巨额资金,但成果寥寥,因为他们当时的思想理念僵硬、不容辩驳,归根到底又完全不合乎现实。随着思想理念与现实之间的差距越拉越大,苏联政府最终轰然垮台,看似万世不易的庞大政权于瞬息间分崩瓦解,距今已有20多年。美国的领导人应引以为鉴,决不能固执地遵循不符合科学的错误思想理念,若不然,很可能会令我们的国家重蹈苏联的覆辙。

主要参考书目

Daron Acemoglu及James A. Robinson,Why Nations Fail(国家何以衰败),2012年

Robert C. Allen, “A Review of Gregory Clark’s A Farewell to Alms: A Brief Economic History of the World,”(评Gregory Clark的〈别了,救济〉:世界经济简史)Journal of Economic Literature (2008) (经济文献杂志,2008年)第946-973页

John Lossing Buck,Land Utilization in China(中国的土地利用),1964年

Tommy Bengtsson、Cameron Campbell、James Z. Lee,Life Under Pressure: Mortality and Living Standards in Europe and Asia, 1700-1900(重压下的生活:1700—1900年间欧亚的人口死亡率与生活水平),2004年

T’ung-Tsu Ch’u,Law and Society in Traditional China,(传统中国的法律与社会) ,1965年

Gregory Clark,A Farewell to Alms,(别了,救济),2007年

Gregory Cochran、Henry Harpending,The 10,000 Year Explosion(万年大爆炸),2009年

Isabel 和 David Crook,Revolution in a Chinese Village: Ten Mile Inn(中国一个村庄里的革命:十里店),1959年

Mark Elvin,The Pattern of the Chinese Past(中国历史的模式),1973年

费正清,The United States and China(美国和中国),1948年/1979年

Susan B. Hanley,Everyday Things in Premodern Japan(前现代日本的日常事物),1997年

韩丁(William Hinton),Fanshen(翻身),1966年

何炳棣,“Aspects of Social Mobility in China, 1368-1911”(1368—1911年间中国社会流动性面面观),Comparative Studies in Society and History (Jun. 1959)(社会历史比较研究,1959年1月刊)第330-359页

何炳棣,The Ladder of Success in Imperial China(中国皇朝时代的成功阶梯),1971年

Philip C.C. Huang、Lynda Schaeffer Bell、Kathy Lemons Walker ,Chinese Communists and Rural Society, 1927-1934(1927—1934年间的中国共产党与农村社会),1978年

Philip C.C. Huang,The Peasant Economy and Social Change in North China(中国北方的小农经济与社会变迁),1985年

Philip C.C. Huang,The Peasant Family and Rural Development in the Yangzi Delta, 1350-1988(1350—1988年间长三角流域的小农家庭与农村发展),1990年

Charles O. Hucker,China’s Imperial Past(中国皇朝史),1975年

James Z. Lee、Wang Feng,One Quarter of Humanity(人类的四分之一),1999年

Dwight H. Perkins,Agricultural Development in China, 1368-1968(1368—1968年间中国农业发展史),1969年

James Z. Lee、Cameron Campbell,Fate and Fortune in Rural China(中国农村的命运与财富),1997年

Ts’ui-jung Liu、James Z. Lee、David Sven Reher、Osamu Saito、Wang Feng,Asian Population History(亚洲人口史),2001年

David S. Landes,The Wealth and Poverty of Nations(国家贫富论),1998年

Edwin E. Moise,“Downward Mobility in Pre-Revolutionary China”(革命前中国的向下流动性),Modern China (Jan. 1977)(现代中国,1977年1月刊),第3-31页

彭慕兰,The Great Divergence(大分流),2000年

Heiner Rindermann、Michael A. Woodley、James Stratford,“Haplogroups as evolutionary markers of cognitive ability”(以单倍群作为认知能力的进化标记),Intelligence 40 (2012)(智力40,2012年刊),第362-375页。

Edward A. Ross,The Changing Chinese(变化中的中国人),1911年

David C. Schak,“Poverty”(贫困),Encyclopedia of Modern China(现代中国百科全书),2009年

Franz Schurmann、Orville Schell,Imperial China(皇朝时代的中国),1967年

Franz Schurmann、Orville Schell,Republican China(共和时代的中国),1967年

Arthur Henderson Smith,Village Life in China(中国农村生活),1899年

Thomas C. Smith,The Agrarian Origins of Modern Japan(现代日本的农业国起源),1959年

埃德加·斯诺,Red Star Over China(红星照耀中国),1938年/1968年

Clark W. Sorensen,“Land Tenure and Class Relations in Colonial Korea”(朝鲜殖民地时代的土地使用权和阶级关系),Journal of Korean Studies (1990)(韩国研究杂志,1990年刊),第35-54页。

Lothrop Stoddard,The Rising Tide of Color Against White World-Supremacy(有色人种崛起并夺取白人世界霸权的趋势),1921年

Ssu-yu Teng,“Chinese Influence on the Western Examination System”(中国对西方考试制度的影响),Harvard Journal of Asiatic Studies (Sep. 1943)(哈佛亚洲研究学报,1943年9月刊),第267-312页。

Noriko O. Tsuya、Wang Feng、George Alter、James Z. Lee,Prudence and Pressure: Reproduction and Human Agency in Europe and Asia, 1700-1900(审慎与压力:1700—1900年间欧亚人口繁衍研究),2010年

Martin C. Yang,A Chinese Village: Taitou, Shantung Province(山东台头,一个中国村庄),1945年

C.K. Yang,A Chinese Village in Early Communist Transition(往共产主义过渡早期的一个中国村庄),1959a

C.K. Yang,The Chinese Family in the Communist Revolution(处于共产主义革命时期的中国家庭),1959b

尾注

1 Sam Dillon,“Top Test Scores From Shanghai Stun Educators”(上海学生的杰出成绩令教育人士震惊),The New York Times(纽约时报), 2010年12月7日号,A1:https://www.nytimes.com/2010/12/07/education/07education.html

2 Sean Coughlan,“China: The world’s cleverest country?”(中国人:全世界最聪明的民族?),BBC News (BBC新闻),2012年5月8日:https://www.bbc.co.uk/news/business-17585201。在BBC的访谈中,OECD的PISA测试主任Andreas Schleicher强调说,结果不仅显示上海学生的得分雄冠全球,即便中国各大省份的得分也“相当高”,其中包括农村地区及落后地区。这些省份的分数并未公布。随后,博客作者Anatoly Karlin发现,在中国网站上可以找到这些分数,并做了详细探讨。见Anatoly Karlin,“Analysis of China’s PISA 2009 Results”(对中国学生2009年PISA测试成绩的分析),2012年8月13日:https://akarlin.com/2012/08/13/analysis-of-chinas-pisa-2009-results/ 及Ron Unz,“Race/IQ: Irish IQ & Chinese IQ”(种族与智商:爱尔兰人的智商与中国人的智商),The American Conservative(美国保守派),2012年8月14日:https://www.ronunz.org/2012/08/14/unz-on-raceiq-irish-iq-chinese-iq/

3 Ron Unz,“The Myth of American Meritocracy”(美国任人唯贤的神话),The American Conservative(美国保守派),2012年12月号,第14-51页,附录E:https://theamericanconservative.com/articles/meritocracy-appendices/#5

4 Acemoglu,第436-443页,2012年

5 Stoddard (1921) 第 页

6 Stoddard,第28页,1921年

7 Ross,第70-111页,1911年

8 Allen,2008年

9 Clark,第266-271页,2007年

10 本文接下来的大部分观点呈现于1983年为哈佛大学的E.O. Wilson而写的一篇论文中,该论文并未发表。2010年,我将该论文放上网,得到一定关注。Rindermann发表于2012年的一篇学术评论文章中将我的论文称作是关于特定人群中高智商现象的演化理论的最早范例。我因此决定将论文补充更新,改掉原来过于自我中心的文句,发表于此。我要特别感谢人类学家Peter Frost,是他鼓励我将原论文从本科时代的文档中翻找出来。还要感谢理论物理学家Steve Hsu,是他在博客上发表文章,引起了大家对我的原论文的兴趣。请见https://www.ronunz.org/1980/04/01/social-darwinism-and-rural-china/https://infoproc.blogspot.com/2011/02/sociobiological-implications-of.html

11 Teng,1943年

12 Hucker,第318-320页,1975年。最初级的科举功名称作生员,他们不享有太多直接特权,仅能免除徭役,但即便我们把生员人数也包括在内,获得科举功名之人的总数可能也不过数十万而已。见何炳棣,第340-343页,1959年。即便在总人口超过4亿之后,帝国官员——有科举功名、因学业而获益之人中最直接者——的总人数依然略少于2万人。见费正清,第38页,1948年/1979年。

13 Cochran,第187-224页,2009年。

14 Elvin (1973) pp. 235-267中列举了诸多证据,表明一种“领主-雇农/佃户”的土地租赁体系(有时候雇农或佃户的工作条件可比农奴)直至清朝早期依然可见于中国大部分地区。但他认为这种体系是清早期之前中国最主要的土地拥有模式。他的这一观点似乎属于现代学者中的少数派。

15 Yang,第41页、第45-46页,1959a;Hinton第27页,1966年。

16 见Elvin第129、167、177页,1973年。另请见Huang(1985)及Huang(1990年)。其中详细探讨了可称作“管理型农民”的生产模式。这种模式在中国很多地区都是农村生活的重要内容。

17 见何炳棣,第219页,1971年。另外,某些地区的人口增长速度远超全国平均值,比如河北,从1393年到1790年间增长了约1100%。请见Huang,第321-325页,1985年。

18 Pomeranz,第33页,2000年;Clark,第141页,2007年。Smith第18-19页(1899年)中也估计,在他那个时代,中国很多农村地区的人口密度是比利时的四倍。比利时是当时欧洲人口最密集的国家。

19 欧洲何以能借工业革命逃脱马尔萨斯陷阱,而中国却没有,这是一个很有意思的重要问题。Pomeranz(2000年)中给出了一个很有说服力的假说。

20 Moise,第5页,1977年。

21 Hinton,第25页,1966年;Smith,第196页,1899年。

22 何炳棣,第342-348页,1959年。

23 访谈记录见于Snow(斯诺)出版于1938年/68年的著作,第130-131页。

24 Moise,1977年。

25 Crook,第133页,1959年。

26 Crook,第11页,1959年。

27 Yang,第18页,1959a。

28 Yang,第51页,1959a。

29 William Hinton用第一手资料记录下了共产党“割封建主义尾巴”活动(这个活动所针对的是地主及其他剥削者的后代)所面临的这个必然难题:“在中国社会里,由于存在着将父辈家产平分的做法,财富总是趋于分散。因此,没几个人能毫不犹豫地说,自家祖上从未剥削过别人。”请见Hinton发表于1966年的著作,第203页。

30 Hinton,第38页,1966年。

31 Yang,第13页,1945年。

32 Moise,第20页,1977年。事实上,Yang (1945) p. 12中明确将农村历史表述为“宗族的生态更替”。更替的过程是:较成功的家族人丁兴旺,越来越大,逐渐将在竞争中处于劣势的家族“挤出”去,令其最终消失于世。

33 根据进化论中的加速演化说,种群基数越大,则有益突变的出现几率也随之成正比增长。在中国有史以来的大多数时期里,这个国家可被视作是庞大的单一人口池,占据了全人类总数的1/4强。见Cochran,第65-76页,2009年。

34 如此解释当今中国人何以成就出众虽说得通,但要将这种逻辑套在其他高度成功的东亚民族身上就困难重重,这也成了该因果模型最大的反面证据。日本人与韩国人在经济发展、科技进步领域都成果卓著。他们在美国及其他地方的移民小群体也很混得开。但是,若说这两个国家的农村社会与中国农村共享某些对中国历史的塑造可能起到了极大作用的特点,比如无固定的封建阶层、农业产品与土地租种活动的高度商业化、因儿子均分父辈财产导致的向下流动,却毫无证据可予以支持。确实,日本社会一直为固定的贵族武士阶层所统治,而中国的统治精英出自唯才是举的科举考试,两者完全不同。所以,有鉴于(即便)现代日本人与韩国人的行为与成就均跟中国汉族人不相上下,我们必须另找(文化、经济、基因等方面的)原因去解释这种雷同(比如Richard Lynn及其他人提出的“冷冬”假说),而不是照搬本文中所探讨的传统社会经济体制来加以解释。见Rindermann,第363页,2012年。

35 “Scientist’s Study of Brain Genes Sparks a Backlash”(科学家对脑基因的研究引发强烈反对),作者Antonio Regaldo,见于The Wall Street Journal(华尔街日报),2006年6月16日号,A1:https://online.wsj.com/public/article/SB115040765329081636-T5DQ4jvnwqOdVvsP_XSVG_lvgik_20060628.html

什么是 Docker

Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

docker-on-linux.png

什么是 Docker 仓库

仓库(Repository)是集中存放镜像的地方。
一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 docker.io/ubuntu 来说,docker.io 是注册服务器地址,ubuntu 是仓库名。
大部分时候,并不需要严格区分这两者的概念。

什么是 Docker 私有仓库(Registry)

一般情况下,我们可以通过Docker Hub在整个网络中下载或者分享Docker镜像。同时相比Docker Hub这样的公共仓库,用户可以创建私有仓库供私人使用。

官方提供了docker-registryDocker镜像用于构建私有的镜像仓库。目前是 v2.x 版本。

搭建Docker私有仓库的步骤

一般需要以下几个大致的步骤:

  1. 从Docker Hub拉取docker-registry镜像
  2. 创建docker-registry配置文件,并启动docker-registry
  3. 通过nginxdocker-registry发布到互联网。(内部使用可忽略此步骤)

搭建 Docker 私有仓库Web管理平台

使用docker-compose一次性完成所有搭建

参考

  1. Docker私有仓库搭建与界面化管理
  2. 私有仓库

Managed Package有许多限制,比如无法在外部/本地代码中序列化受控包中的Apex Class

JSON Support Considerations

Only custom objects, which are sObject types, of managed packages can be serialized from code that is external to the managed package. Objects that are instances of Apex classes defined in the managed package can't be serialized.

假如有个包Px,命名空间Px。我们有个Apex Class需要调用里面的对象并JSON序列化。

直接JSON序列化是不行的

包中代码:

//Inside package Px
global class C {
  global String stringA;
  global Integer StringB;
}

本地代码调用,会失败:

@isTest
private class TestFromLocal {
    @isTest static void testSerialize() {
    try{ 
      JSON.serialize(new Px.C());
      System.assert(false,'This should fail');
    } catch (Exception ex) {
      System.assertEquals('Cannot serialize type from package: Px.C',ex.getMessage());
    }
  }
}

但是可以通过扩展Apex Class来序列化

我们可以利用扩展(extends)一个虚拟类(virtual class)来实现序列化!

1. 保证需要序列化的Class是virtual

包中代码:

//Inside package Px
global virtual class C {
  global String stringA;
  global Integer StringB;
}

2. extends it!

@isTest
private class TestFromLocal {

class Ext extends Px.C { }

@isTest static void testSerialize() {
  Ext virt = new Ext();
  virt.stringA = 'bla';
  virt.IntgerB = 1;
  System.assertEquals('{"stringA":"bla", "IntgerB": 1}',JSON.serialize(virt));
}

}

这样就可以正常调用了!

参考

1.Salesforce: Serializing Objects from a Managed Package

软件测试是一个工程

属于软件质量控制、质量保证的一部分。由于软件的复杂性,软件测试需要分出层次来,并由不同的人完成不同的测试任务,在不同层面不同维度和角度保证软件按照设计和预期运行。

软件测试并不是银弹,不能保证软件100%没有问题。但是组织良好的软件测试工程,相比随意和混乱的测试甚至不测试,能够以比较低的成本发现大部分的软件缺陷,保证软件质量。

软件测试按照不同的层级,分为:单元测试, 系统(功能)测试, UAT测试, 生产测试, 回归测试

单元测试

单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。这部分测试过程由负责开发相应软件模块单元的开发人员执行,一般软件都会要求在源代码层面,单元测试能够测试(覆盖)到大部分的软件源代码。比如Salesforce要求部署到生产环境的代码必须有75%的代码覆盖率。

系统(功能)测试

一般会把功能测试和系统测试分开,但是实际上这些测试过程都由软件测试工程师执行。功能测试偏向每个功能运行的正确和准确,是从细节的角度解读测试;而系统测试则偏向整个软件系统的整体运行,包含一些非功能性测试(例如响应时间、安全等),是从整体的角度解读测试。但是不论功能测试或者系统测试,都是从逻辑的层面确保软件的每个功能和整个软件系统的正常运行。

UAT测试

UAT测试,即用户认可测试,必须由将使用软件的最终用户进行。测试将模拟业务中的实际事件和日常使用情况,因此您可以确认该软件是否满足用户的需求。UAT测试是从业务的层面出发,保障系统的满足实际业务需求。

生产测试

在生产环境中重复进行系统(功能)测试的一部分测试,这将确认代码和配置是否已从测试或沙盒环境正确转移到生产环境中中。建议在此步骤后重复进行 UAT 测试。

回归测试

一旦发布并安装了新的软件更新,或者检测到并修复了错误,都应该进行回归测试。即从头到尾对受升级或者修复错误影响的软件部分从头到位测试一遍(回归)。它确保所有以前的使用和过程在进行更改后仍然正常有效地运行。

可以看到,不同层次和类别的测试,有不同的角度和目的,也由不同的人员执行。让软件开发人员或者最终用户直接完成所有的测试工作,都是不可靠的。因为他们掌握的知识技能和他们的背景以及经验,不足以应对整个复杂的分层次的软件测试工程。

2GP Managed Package

Salesforce 第二代管控包(Second-Generation Managed Packages)是Salesforce最新推广的最佳实践。通过Salesforce CLI,我们可以很方便的制作和部署第二代管控包。本文只是简略的将核心步骤展示出来:

涉及的各种环境

整个第二代管控包需要用到4类org:

  1. Dev Hub Org:承载所有二代包。可以将各个命名空间的二代包链接到这个org。最好是PBO
  2. Namespace Org:一般是Developer org,在其中申请相应的命名空间,由于命名空间一旦申请便与该org永久绑定且不可修改,申请时请慎重。
  3. Scratch Orgs:在开发测试中使用。
  4. Production Orgs:按照和使用包的生产环境。

2GP Packages.drawio.svg
相关org关系示意图。

10步完成制作

  1. 创建一个 SFDX 项目

    sfdx force:project:create --outputdir expense-manager-workspace --projectname expenser-app
  2. 授权Dev Hub环境,该环境必须启用Dev Hub功能和未锁定包和第二代管控包功能

    sfdx auth:web:login -d -a devHub
  3. 创建一个草稿环境(scratch org)并在其中开发包

    sfdx force:org:create -f config/project-scratch-def.json -u scratchOrg1
  4. 保证所有要打包的组件都已经在当前的项目文件夹内
  5. sfdx-project.json文件中,使用命名空间属性指定命名空间。例如:“namespace”:“exp-mgr”
  6. 从 SFDX 项目文件夹,直接创建管控包:

    sfdx force:package:create --name "Expense Manager" --path force-app --packagetype Managed
  7. 检查项目文件夹中的sfdx-project.json文件,CLI 会自动更新项目文件,使其包含上一步创建的包的信息:

    {
    "packageDirectories": [
       {
          "path": "force-app",
          "default": true,
          "package": "Expense Manager",
          "versionName": "ver 0.1",
          "versionNumber": "0.1.0.NEXT"
       }
    ],
    "namespace": "exp-mgr",
    "sfdcLoginUrl": "https://login.salesforce.com",
    "sourceApiVersion": "51.0",
    "packageAliases": {
       "Expense Manager": "0Hoxxx"
    }
    }
  8. 创建一个包的版本,Salesforce CLI会自动处理包的版本号等

    sfdx force:package:version:create --package "Expense Manager" --installationkey test1234 --wait 10
  9. 在另一个创建好的草稿环境中,安装并测试这个版本的包:

    sfdx force:package:install --package "Expense [email protected]" --targetusername MyTestOrg1 
    --installationkey test1234 --wait 10 --publishwait 10
  10. 安装包后,打开scratch org查看包:

    sfdx force:org:open --targetusername MyTestOrg1
\frac{a}{b^2}

参考:

  1. Salesforce DX Developer Guide
  2. Link a Namespace to a Dev Hub Org
  3. Create and Register Your Namespace for Second-Generation Managed Packages
  4. Workflow for Second-Generation Managed Packages