美国GDP,神奇数据背后,隐藏着对中国的焦虑。

关于中美GDP,很多人都听说过“美国GDP被严重高估,中国GDP被严重低估”这样一句话,那么这是不是事实呢?如果是事实,又具体体现在哪些方面呢?

今天我们给大家转载一篇文章,该文作者长期旅美,用切身体会感受到中美之间的差异。

本文来源公众号:茶狐看世界(TeaFoxWorld),经授权转载,原文略有修改,版权归原作者所有。

我去过美国47个州,访问过的地方,可能比绝大多数美国人还多。关于美国,我心中一直有个谜团,那就是美国的GDP。

2021年,美国GDP为23万亿美元,中国为17.7万亿美元。美国、中国的人均GDP分别是6.94万美元、1.25万美元。论总量,美国超过中国,论人均,美国几乎是中国的6倍。

如果说,美国依然比我们强大、富裕,我可以接受。而当身临其境观察美国,这6倍人均GDP的差距,别说大人理解不了,连小朋友都有类似的疑问。

疫情前,我带读小学的儿子去纽约,涉世未深的他问了我三个问题:

为什么纽约人喜欢睡在大马路上?

为什么纽约地铁的空调不开?省钱吗?

为什么纽约的公交车那么吵?那么臭?

他从小在宁波长大,的确没有见过homeless(流浪汉),他坐过的中国地铁都是有空调的,但并不意味着美国的地铁都有空调。中国普及了电动公交车,但美国的大巴,依然以柴油车为主,确实又吵又臭……

纽约地铁
最让我震撼的,并不是这三个问题本身,而是一个中国儿童,居然在美国最有钱的城市,问了家长这三个问题,他的人生经验和同龄的美国人完全不同。不知不觉,中国成了例外,而外国成了常态。
很多去过美国的人,都和我一样,不禁会问:美国的钱,到底都花在哪儿了?!
对一个地方的理解,从普通中国人的角度出发,无非就是「衣、食、住、行」。
01
对我来说,美国最富裕的那一面,就是飞机降落前的那一段时间,机窗外的景观。你可以俯视整个城市,无论是洛杉矶,还是旧金山、华盛顿DC、休士顿、迈阿密,独门独院的房子延绵几十公里,甚至上百公里,草坪、游泳池、树木,点缀其间,这可能是很多中国人梦寐以求,一辈子都无法拥有的「豪宅」。
欧洲城市的郊区也有成片的房子,但规模完全没法和美国相比。并不是欧洲比美国穷,而是美国的自然条件好,人口密度低……房子要消耗大量能源和土地,只有美国这样的国家才能养得起。放眼全世界,也许只有加拿大、澳洲的自然条件,可以和美国媲美,其它国家望尘莫及。
论价格,美国的房子并不比中国的房子贵。根据美国最大房产中介Zillow的数据,2021年,美国房子的中位数价格是每套28万美元,差不多200万人民币。根据国家统计局公布的数据,2021年3月,中国平均房价为1.1万/㎡。大部分美国房子也就几十万美元一套。卖掉一套中国房子,完全可以去美国置换一个房子。
论实际造价,美国的房子远看像砖混结构,其实几乎都是木结构,工厂里流水线生产,像搭积木一样造房子,成本低,速度快。相反,中国的高楼反而成本高,打地基就要花很多钱,钢筋水泥一样都少不了。
大别墅、大草坪、游泳池,大部分中国人,小住几天,尝尝鲜可以,时间一长,先不说「好山、好水、好寂寞」,打扫保养房子就是一个巨大的体力负担。虽然也可以请「老墨」代劳,但价格不菲,一般普通美国中产也承受不起。为啥很多美国男人都有一个工具房,是他们热爱手工活吗?想多了,大部分人都是为了省钱而已。如果有钱到可以在美国请佣人的程度,那么还是不错的。
美国人住得通透,散发着仙气,中国人住得热闹,缭绕着烟火气。生活就像围城,城里的人想出去,城外的人想进来。与其说是差距,不如说是差异。
02
我去过美国最大的购物中心,Mall of America,翻译过来就叫「美国购物中心」,位于明尼苏达州。那里有的东西,中国都有,但中国有的东西,美国却不一定有,比如餐饮。
中国购物中心的餐厅,可谓是种类繁多,推陈出新。有专门吃牛蛙的,吃龙虾的,吃烤鱼的,吃羊蝎子的,吃潮汕牛肉火锅的……有美式快餐,英式茶点,日式料理,韩式烤肉,港式烧腊……只要你想得到,就能吃得到。而「美国购物中心」完全没有那么多选择。
一方面,美国人天生就不是吃货;另一方面,个性餐厅价格高,普通美国人也做不到餐厅的消费自由。这两方面原因导致了,美国的餐饮市场远不如中国繁荣。
美国人基本不存在夜生活,绝大多数人下班也就回家了,而中国别说一二线大城市,连山西大同这样的城市,夜市也相当火爆。
而在美国,咖啡就喝星巴克,吃饭就是麦当劳、肯德基、Subway,Tacobell,wendy,Burger King……几乎都是千篇一律,就算你想花钱吃点特别的,也没得选。美国和他的祖宗英国一样,都是食物充足但美食极度贫乏的国度。
03
如果你去美国的大街上走走,你就会发现,除了极个别的大城市,美国人的穿着,说好听一点,是随意,说难听一点,是邋遢。
从外表看,你完全看不出,中美之间6倍的人均GDP差异。
04
20万以下的汽车,中国便宜;20万以上的车,美国便宜。就算便宜,美国大街上的所谓豪车,比例也远不如我们。中国不仅是世界上最大的汽车市场,也是最大的豪车市场。
2021年,世界汽车年销量为8100万辆,中国销量2608万辆,世界占比在30%左右。美国1500万辆,欧盟970万辆,欧美相加,都不如中国一家销量大。
2021年,BBA的全球销量分别为:宝马221万辆,奔驰205万辆,奥迪168万辆,而BBA在中国的销量为宝马84万辆,奔驰75万辆,奥迪70万辆,中国市场占比分别为38%、37%、42%。中国豪车市场的规模,已经连续数年稳居世界第一。
另外,美国买车几乎都是贷款,中国人买车,尤其是20万以下的汽车,贷款比例不高。看着美国马路上奔跑的汽车,我不禁要问,美国人的钱都花到哪里去了?
美国的公路,我只能勉强说「还可以」,但绝对配不上世界第一经济大国的地位。最大的硬伤在于桥梁。我在美国经历过的危桥数不胜数,老态龙钟、锈迹斑斑、咯吱作响。
美国公路和运输建筑商协会(ARTBA)表示,全美有接近5.6万座桥梁存在结构性缺陷,这些桥每天会通过约1.85亿车次。
如果你说美国的公路路况不如中国,就一定会有人跳出来教育你,不要得意忘形,我们只不过占了后发优势的便宜,美国公路建得早,当然不如我们。说这话的人应该没有去过德国,世界上最古老的高速公路autobahn,就诞生在德国,路况堪称世界第一,绝对可以碾压美国。
至于美国的公共交通,完全是第三世界标准,连印度新德里的地铁,都比纽约地铁好。美国的地铁,连最基本的「干净、准时、安全」都做不到。同样是百年地铁,日本东京的银座线,堪称世界典范,美国纽约地铁,简直就是人类工业文明的耻辱。
如果以泰国的经济指标衡量,美国的公路并不差,但美国人均GDP世界第一,是泰国(0.7万美元)的10倍,是中国(1.25万美元)6倍,是德国人均(4.5万美元)的1.33倍。基础设施这一块,美国的钱完全都是花在了刀背上。
作为发展经济和人民生活的最基础的交通建设,为何美国如此落后?美国的钱都花到哪里去了?
疫情前的好几年,中国都是全世界消费最高的游客来源地。在欧洲的景点,看到中国人的概率远高于美国人;美国城市出现中国游客的概率更是高于在中国看到美国游客的概率……
十几年前,我第一次去美国的时候,飞机上华人美国人,差不多各占一半。而在疫情前的几年,无论中国航司或者美国航司,80%以上的乘客都是中国人。我上次去阿拉斯加的育空营地,方圆几十公里,人迹罕至,就在那个小屋里,90%的人讲普通话,里面卖的主食就是中国面条,配料是当地野生的三文鱼。
根据世界旅游组织2018年的报告,中国游客的消费总额是2580亿美元,远超过美国的1350亿美元,几乎是2~4名的总和。每次看到这样的数据,我都会问,美国人的钱,都花到哪儿了?
美国GDP,神奇数据背后,隐藏着对中国的焦虑。
总之,如果你说美国是发达国家,比中国富裕,我赞同;如果你说,美国一年创造的财富比中国多,我就有点怀疑;如果你说美国人均财富是中国人的6倍,那绝对是挑战我认知能力的底线!一定是在什么地方出了问题,要么是统计的漏洞,要么是标准的差异。

 

让我们仔细分析一下,谜一般的美国GDP。
首先,美国的GDP特征是服务业占比极高,超过80%,与此同时,产生物质财富的制造业,只占GDP的10%。
2018年,中国制造业产值为4万亿美元,而美国为2.3万亿美元,日本为1万亿,德国为0.8万亿,中国制造业产值几乎是美、日、德的总和。
最近我还看到一张让我印象深刻的图表:2022年,全世界前50大港口排名,前5名全部来自中国,前10大港口中国独占8个,前50大港口中国占29个,前50名,美国只有4个,整体排名,比韩国还落后。
美国GDP,神奇数据背后,隐藏着对中国的焦虑。
美国经济「脱实向虚」的程度,已经病入膏肓。
美国GDP的秘密,都藏在服务业里。
让我举几个例子。
1、会计
美国最诡异的事情,就是报税。
我一直很想不通,就是在这么一个大部人连加减乘除都搞不清楚的地方,报税的过程为何如此复杂? 各种「税码」犹如天书。
基本上,报税就是两部分,一部分是清点自己的收入所得,一部分是算出各种可以抵税的额度(巧立名目,非凡人所能理解),二者之差就是用于计算个税的收入。
家庭可以一起报税,也可以分开报税。不同的方式有不同的减免办法;另外,免税额度本身也有多种计算方式,而且税法到这种复杂程度,也有不少漏洞可钻,所以最后算下来,不同的报税方式可能有很大区别。
美国每年有超过一亿五千万份个人所得税单,很难有两份完全相同。以中国人的思路,报税如果有麻烦,那直接打政务热线12345不就行了?
你想得太多了,美国各州的税务局,热线电话简直难如登天,我曾经打过田纳西州税务局的电话,足足等了25分钟,然后一个女话务员用西班牙语口音的英语,照本宣科,对我毫无帮助,纯粹大家互相浪费时间。
这里要插一嘴,在美国,肉眼可见的腐败确实很少,但行政效率之低,令人发指!如果你体验过国内「最多跑一次」的服务,对美国的各级衙门,绝对是忍无可忍。
在美国,正因为复杂的税制,普通人根本无法驾驭,美国才有了一个规模庞大的会计师队伍,协助纳税人报税。截至2020年9月,根据AICPA(美国注册会计师协会)统计,美国有65万名注册会计师。他们的年平均薪水为7.9万美元,这比美国的平均薪资水平高出近50%。与此同时,截至2020年3月,中国注册会计师协会,有注册会计师10.8万人。
中国人口是美国的4.3倍,会计师却只有美国的六分之一。也就是说,美国人均供养的会计师,是中国的24倍。会计师是不产生物质财富的行业,按照7.9万平均工资,65万律师,一年的工资就是513亿美元。他们背后,就是65万个美国中产以上的家庭,总人口至少200万。
很多美国华人疑惑,中国的报税APP这么好用,美国人为啥就不抄一个?其实,美国也有付费的报税软件,但体验和中国的报税app相差太大。美国官方也有电子报税渠道,那就是IRS的E-File报税系统,我曾经体验过,和中国的手机报税相比,那简直就是石器时代的产物。
在资本主义市场经济,「钞能力」的硬核逻辑,才是一切现象背后的本质。如果美国用了中国这一套体系,你让那么多高收入的会计师去哪儿凉快去?这些可都是脑袋聪明的有钱人,他们的组织势力庞大,可以雇佣游说团体去国会疏通关系。
总之,美国有一条看不见的潜规则,在无形中保护着美国的服务业。现有高端服务行业,是一个「针插不进、水泼不进」的体系,哪怕是科技进步,也阻止不了他们把服务业「做大做强」!
2、律师
单单法律服务业,美国每年将近产生2700亿美元的财富!中国呢?我查不到具体数据,但可以推导,结果应该也八九不离十。
从律师人数上来看,2021年,中国有57万律师,2015年,美国就有130万律师,美国供养的律师是中国的2.7倍。
按照人均GDP的差距,美国律师收入至少是中国的6倍,那么,按此推论,中国法律服务业的规模,大约为美国的二十分之一。美国2700亿美元,中国最多也就1500亿人民币。
3、虚拟房租
大家如果有兴趣,可以研究一下「美国经济分析局」的网站www.bea.gov。里面有一句话,让我大开眼界:Households with housing are officially regarded as the owners of unregistered enterprises, which produce housing services for household consumption.”「拥有住房的家庭被视为未注册企业的所有者,这些企业生产家庭消费的住房服务。」
嗯,说人话就是,美国人人都是企业家!不仅自住房屋的「虚拟租金」算入经济总量,连家庭主妇在家干家务,也要纳入GDP。从照顾老人到看护孩子,从洗衣做饭到修建草坪,也算是事无巨细了。
网上流传一个很有名的数据,那就是美国GDP算了私人住宅的「虚拟租金」,而中国却没有算。这一块,一年就相差1.5万亿美元。
其实,这种说法只对了一半。中美两国的GDP统计法则,基本都是和国际接轨,但在具体的操作上,也要按照各国情况,因地制宜。
「虚拟租金」的意思就是:如果你有房子,就算自己住,或者空着,也要按照市场价值估算租金,然后计入GDP。
我国采用折旧法来计算房屋的「虚拟租金」。农村居民每年的「虚拟租金」规定为建造成本的2%,城镇居民则为4%。北京市平均建筑成本大约为每平米3000元,依照这一方法计算的一套60平米住宅的“虚拟房租”为约每月600元,大大低于市场租金。据统计,我国住房自有率超过85%,这一「虚拟房租」的计算方法大大低估了我国的GDP。
4、医疗行业
美国医疗占GDP的比例也高得不正常,达到了16.9%,这个数字比绝大多数发达国家都要高。与此对应的,是美国在发达国家中最低的人均预期寿命,如今,美国人的预期寿命比中国人还低。由此可见,美国在医疗方面的高支出,并没有带来相应的回报。
关于美国差劲的医疗,普遍的看法是,在无限制的自由市场体制下,医疗机构和保险公司形成了垄断利益集团,推高了医疗价格。

美国GDP,神奇数据背后,隐藏着对中国的焦虑。

美国人均预期寿命,已经低于中国

5、火灾行业
美国最大的服务业就是所谓「火灾行业」,也就是「保险、金融、地产服务」的统称。(FIRE Sector)Finance, insurance, real estate, rental, and leasing。火灾行业是最典型的,不产生实际物质财富的食利经济。
「火灾行业」2019年共创造了45418亿美元的价值!
4.5万亿美元,占美国GDP的21.2%!
与此同时,我国金融,房地产,租赁和商务服务,2019年增加值约为2.6万亿美元,也占我国GDP的18.1%。仅仅这一项,就比中国多出1.9万亿美元!
6、建筑业
2018年美国建筑业GDP增加值为8400亿美元,中国建筑业GDP增加值为9340亿美元,仅仅比美国多10% 而已。看到这里,相信很多人都会感到惊讶,号称“基建狂魔”的中国建筑业和美国相比,规模上居然没有什么优势。
我们来比较一组数据:2018年,中国水泥产销量22亿吨,美国为8850万吨,是中国的二十五分之一;中国粗钢产量9.3亿吨,美国9500万吨,中国是美国的10倍……
中国每年建成4000多公里的铁路,5000多公里的高速公路,上万座桥梁。这几个数字在美国几乎都接近零。
2018年中国建筑业房屋竣工面积413508万平方米,美国只查到2016年的数据是18780万平方米,仅为中国的不到5%。
这些核心建筑业的产出数据中国都是美国的几十倍甚至几百倍,然而美国建筑业竟然贡献了和中国相当的GDP,可以想见其建筑成本的离谱程度。
总之,服务业占美国GDP高达80%。美国人开支的大头,并不是「衣、食、住、行」,而是「算账、看病、打官司」,当然,最大头还是一切背后的「金融服务」。
另外,给人的感觉是,中国总是想方设法把GDP压低,让美国继续当老大,因为当老二,压力小,多好。而美国呢,想方设法把GDP吹大,因为,他实在承受不起失去老大地位的后果。

 

05
总结
写到这里,我并不是想说,美国有多么衰落。其实经济发展到一定程度,必定是虚拟化和服务化,也许若干年后,中国的经济结构,也会像现在的美国一样,这是经济发展的客观规律。
作为统治世界的超级大国,美国本来可以沿着虚拟化的道路,悠哉前行。但万万没想到,一觉醒来,眼前出现一个庞然大物。一旦美国霸权旁落,美国要面对的可不仅仅就是衰退的问题,甚至可能是分崩离析。要让舒服习惯了的傻白甜,重新回到工厂上班,比登天还难啊!
美国不甘心让出第一的宝座,那么就只能和东方大国死磕,但转念一想,美国现在的经济结构,已经不是冷战时期的天下无敌。以前,美国的贸易战「见佛杀佛,见神灭神」,连日本都瑟瑟发抖,登门求饶。特朗普发动贸易战的时候,我们国内也有很多人非常悲观,但万万没想到,3年之后,美国开启的贸易战,居然让美国骑虎难下。用压力测试让中国知道,自己的制造业有多么强大。
「和平年代」的GDP与「对抗年代」的GDP的重点不同。从目前结构来说,中国的GDP结构更适合对抗。但中国不希望对抗,我们希望和平发展,因为时间在我们这一边。
美国的律师和会计服务业,在战争和贸易战时候是没用的;好莱坞的电影和NBA的球星,更加没用;3nm的芯片用于手机,当然好,但对于战斗机,100nm也不落后。比如F22,80年代立项,2000年定型,因此它的芯片大概率是九十年代的技术,F35战斗机用的芯片都是180nm制程的……
2022年6月,美国空军少将卡梅隆·霍尔特(Cameron Holt)说:“以购买力平价计算,中国花费1美元就能获得我们花费20美元才能获得的同等能力。如果我们不知道如何降低成本,提高国防供应链,我们就会输。”
20倍,我觉得太夸张了,就算只有2倍,美国也会被中国的制造业拖垮。这样的剧情刚好和当年相反,当时,美国用制造业优势拖垮苏联。
美国的焦虑是,在和平与对抗之间,举棋不定。如果不和东方巨龙死磕,时间不在美国那一边,眼看着霸权旁落,他不甘心;如果要死磕到底,手里的牌越出越少,力不从心,于是就陷入焦虑。
也许,这就是美国霸权的更年期综合症吧。

转自:https://mp.weixin.qq.com/s/rsnKxybJuXf6ciYdw7aJgg

兽爷丨有人帮你体面

兽爷丨有人帮你体面

今年三月的一天,十三四个人呼啦冲进了郑州恒大都市广场,那是恒大河南公司总部。他们上来就将步梯和电梯全部堵住,另外有七八个人目的明确,迅速包围了公司资金部。

恒大员工被勒令交出手机,全部进入会议室等待。

办案人员搜查办公室的时候,还不忘找一位资金部女员工在旁监督。很快,他们便在恒大的办公室,翻出许多公章。有合作方的,还有总包单位的。

恒大手里这些章:

都是假的。

按规定,房地产项目监管账户资金需要按照工程进度发放。确认工程进度,离不开项目施工方。为方便转移监管账户资金,私刻假公章过去是恒大的家常便饭,内部称为:

资金盘活。

谁也没想到,有一天警方会动真格,从天而降搜查办公室。

河南恒大负责资金的主要领导战战兢兢。但出乎意料的是,当天被警方带走的,只有资金部门一位普通员工。还不到48小时,人就被放回来了:

公章没收了。

这次特别行动,显然对河南籍企业家有了一些触动。三月下旬,恒大会议室里,一个红色横幅前,老板喊出了“大干三个月实现恒驰5量产”的口号。

三月之后又三月。到了九月中旬,同一个会议室同一个机位,横幅换成了:

大干苦干拼命干,复工复产保交楼。

公章事件后,恒大成了河南保交楼最卖力的房企。

我看过恒大河南公司内部一份文件,他们将河南37个需要保交楼的项目逐一梳理,每个项目都按实际情况设计了保交楼方案,和滚动开发等回款计划。每一版保交楼方案,他们都会反复和各地政府专班汇报沟通,不少项目方案当时就得到了认可。

后来郑州有传言说,警方开始大规模抓捕挪用监管账户资金的开发商了。兽爷的朋友子姨写了一篇“陪斩”的故事,告诉大家警方已经成立了专案组,且掌握了大量证据。

1

9月21日深夜,郑州宣布对5家开发商21位犯罪嫌疑人采取了刑事强制措施。

经历过轰动全国的河南储户事件、集体断贷潮后,河南对烂尾地产商的耐心,终于熬干了。

被抓人的五家开发商中,有两家在郑州很有名。

一个是前面提到的啟福城项目。胆敢把烂尾楼卖给房管局、派出所、电视台等机关单位,老板卢一博早在今年四月就被抓了。

啟福城也是郑州复工最早的项目。上个月,烂尾五六年的啟福城开启后续工程建设施工招标。出这笔工程款的是:

河南省财政厅子公司。

另一个项目,就是永威金桥西棠,号称“郑州最高学历烂尾楼”,据说业主有超过500位硕士和博士,很多都是大学老师。

2000多年前,伍子胥就用鞭尸行动告诉大家,惹谁都别惹你老师。他们认识的领导太多了。

西棠项目的股东是两家,金桥和永威。项目其实还有钱,但因为双方有纠纷,就一直磨蹭不复工。他们显然没看清形势。所以就在最近一周,金桥和永威的财务都被带走了。

所以这次抓人,不看你监管账户里有没有钱,而是态度决定一切。你看郑州融创,房子卖完了,钱也花完了,但现在人一点事也没有。

再比如停工一年多的锦艺金水湾。

在成为郑州市纾困基金救助的首批七个项目后,纾困基金入局,将一部分钱汇入指挥部账户。项目包括车位、储藏室和未开发土地在内的可售货值还有15.22亿。减去完成交付任务资金9.21亿,再减去5.63亿元前期负债:

还能有点盈余。

在业主们的帮助下,金水湾将均价8万的车位按6万卖掉,加上郑州市地产集团收并购未开发土地,又凑了1.21亿。金水湾就这样开始复工了。

这是郑州想让大家学习的榜样。

除了本地纾困基金之外,郑州还和国开行签订了3000亿元协议,其中1600亿元用于棚改贷款。然后一份落款9月13日的问题楼盘专项资金申请清单开始流传,里面足足有95个项目。

郑州放下面子借这点钱不容易。所以,申请国开行信贷资金也有严格的申请条件。它要求项目:

资产负债平衡,无复杂官司;

资金拨付渠道走政府平台公司,县区政府要承诺确保资金安全。

救护原则简单又残酷的:将烂尾楼盘分成三等,先轻后重,最后抬尸。

我看了一眼95个申请专项借款的项目清单,但凡入选的都是有存货或者有后续土地的。先期的50亿专项资金已经到郑州地产集团的账上了,听说郑地集团的人为了尽快把钱发下去,最近几天一直在加班:

盖章。

2

领导们的要求,其实在9月7日就对着60多家房企说了,让他们砸锅卖铁保交付。这个代号“大干”的行动前面,还加了一个期限:

30天。

郑州现在是中国烂尾项目最多的省会城市。有数据统计,现有106个问题楼盘,涉及居民超过60万。几乎每卖出3套,就有1套不能按时交付。

9月7号那天,这个城市立下了军令状。为避免开发商表演式复工,他们祭出一个杀器:

不配合的房企核查偷漏税;

挪用资金的公安机关抓人。

刚开始,房企们都以为是闹着玩的。老李和他的邻居也看见了那条消息。和房企的反应不一样,那一天,他们觉得自己看到了一点希望。

老李是郑州明星楼盘名门翠园的业主。作为金水区最大的城中村改造项目,名门翠园的地产商资金链断了,去年八月合作方退出,债主中融信托接盘,项目彻底停工,成为郑州最大的烂尾项目之一。

八月底一个上午。郑州市领导到名门翠园,视察项目烂尾的情况。他们在工地停留了十来分钟,听区领导做了一个简短的报告。有一块展板放在了他们面前,名门翠园的造价核算,资产评估,复工资金来源,展板上写得很清楚。

市领导走后,展板马上被撤走,不知所踪。

是听说这件事后,业主们非常激动,他们一家家去敲广告板制作商家的们,想从商家那获得一点点信息。

为了自救,他们有的自学财务,有的自学工程造价。现在,他们又成了福尔摩斯。

听说郑州要“大干三十天”后,老李们很激动,连夜学习会议精神。现在,时间过去一半了。老李们的家终于开始复工了,虽然工地上人还是很少。

郑州努力圈定了一个小范围的安全圈。虽然每个项目分到的钱真不多,但政府的确在努力推动了。和许老板的口号不一样,郑州也真的用上了雷霆手段了。

开发商要是不体面,那就帮他体面。

郑州的朋友告诉我,大干行动能否实质性地推进开始是未知数。政府只是给了部分资金让施工方开工,一边干一边研究,后续资金怎么说还没定。

朋友觉得,纾困那点钱,要是去年就放出来,可能就足够用了。

3

河南今年已经拿出过很多钱拯救房地产行业了。

去年的这个时候,河南带头大哥建业一份求助信广为流传。

他们在信里铺陈了很多经营困难的话,最后落实的请求事项里,最重要的一项是恳求省里协调有关市县区,尽快偿还多年来拖欠的各类款项:

超过50亿。

建业之后,河南房企永威、正商、鑫苑、康桥有样学样,都给政府写了求援信。

信的确起了作用。政府给了一部分钱。这次保交付行动里,郑州还计清偿欠5家头部房企的53亿元欠款,来支持他们复工。

清偿的钱,是郑州的国企平台公司从郑州银行、中原银行借的专项贷款。房企的朋友说,欠款的确到了一部分,但没有全到。

一口气拿出53亿,郑州肯定是没有这么多钱的。

老李买名门翠园的2018年,是郑州楼市最好的时刻。那一年郑州卖地收入是1436亿元,在全国排名第六,仅次于杭上北广重。到了今年,郑州昨天刚刚结束第二轮集中供地,算上之前的一拍,总共就卖了200亿出头的土地。

上半年郑州财政收入为697亿,增速为-4.70%,是河南省唯一一个负增长的城市。

前几天郑州的土拍,除了保利之外,拿地的全是政府平台公司。政府平台拿地,其实也是用的银行贷款。在过去,因为并不擅长开发,他们通常拿到项目后就会遍地寻找合作方。

我问过建业的朋友,他们说今年连土地测算都没有做。

目前,河南最著名几家本土房企,都在大幅裁员降薪,很多连发工资都困难了。今年前8个月,郑州主城区二手房成交面积下降了6%,而新房成交面积同比下降了:

一半。

即便把二套首付比例从六成降到了四成,也依旧挡不住下降。

七月,新房销售套数还是7600套,房价还是1.3万每平米;到了八月,就掉到了5900套,均价1.2万。

有人判断,如果继续现在的行情下去,能撑到年底的郑州民营房企不超过:

5家。

郑州面临的问题,是未来一年中国大多数城市将面临的。受交易萎缩影响,资产贬值开始了,中国50个主要城市中,28座城市房价回到三年前。

郑州去年用时间换空间的处理方式,也行不通了。越拖下去,资产贬值让窟窿越来越大。

这一轮救市,很多城市的主体思路是救项目不救主体,救行业不救企业,靠地方不靠中央,靠市场化手段不靠行政性干预。

但皮之不存。市场主体都不在了,项目和行业谈何救起。

佛山政府知道这一点,碧桂园资金最危急的时刻,佛山两家城投公司为它做担保,发行15亿中票。

4

我以前写过,过去中国只有两家房企暴雷后起死回生。

一家是绿城,因为央企变成了它的大股东。虽然没怎么给钱,但起码给了信用背书。

另一家是佳兆业。当年他们卷入贪腐案,中纪委2015年查封了佳兆业旗下房子和土地。没想到风波过去,他们深圳房子和土地涨了一倍,信用等级反而上升了。

房价上涨,是可以解决一切问题的;同样的道理,价格下跌,不是问题的问题,都会暴露出来。

9月16日的早晨,一些上海的年轻人坐车去苏州。那几天,苏州工业园区和高新区宣布,没有社保的外地人也可以买首套住房。这意味着,苏州主城区全面放松限购。

这些上海来的年轻人,响应政府号召去苏州看房。没想到刚刚下车,便看到新闻弹窗:

苏州取消了取消限购政策。

同样的事,在南京、在宁波,在青岛,在很多二线城市都发生了,或正在发生。在房地产这盘大棋的棋盘上,有人在反复犹豫。

包叔说,郑州是房地产的底。

郑州其实是一个很好的观察窗口。一座城市在掀起城改大开发后,突然踩下刹车,并以前所未有的力度打压。最终,市场会走向什么极端情况。

而要把它恢复正常,现在要付出多大的代价。


转自:https://mp.weixin.qq.com/s/Yng11Cjum6xufdLmOK2Wzg

C++最佳实践 | 1. 工具

本系列是开源书C++ Best Practises[1]的中文版,全书从工具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第一篇。

 

C++最佳实践:

1. 工具(本文)

2. 代码风格

3. 安全性

4. 可维护性

5. 可移植性及多线程

6. 性能

7. 正确性和脚本

前言

C++最佳实践: 支持Fork的编码标准文档

本文档旨在收集对C++最佳实践所进行的协作性讨论,是《Effective C++》(Meyers)《C++ Coding Standards》(Alexandrescu, Sutter) 等书籍的补充。在讨论如何确保整体代码质量的同时,补充了一些没有讨论到的较低级别的细节,并提供了具体的风格建议。

在任何情况下,简单明了都是首选。本文所举示例是为了说明为什么一种选择比另一种更受欢迎。在必要情况下,也会用文字说明。

本文档由Jason Turner编写,根据知识共享署名-非商业4.0国际许可协议[2]授权。

免责声明

本文档的编写基于个人经验,你不需要完全同意其中的观点。本文档保存于GitHub[3]上,任何人都可以fork供自己使用,或者提交修改建议与大家分享。

本文档启发O’Reilly发布了视频: Learning C++ Best Practices[4]

工具

应该在开发过程的早期建立用于执行这些工具的自动化框架,检出源代码、构建和执行测试所使用的命令不应超过2-3个,一旦测试完成,应该对代码的状态和质量有接近完整的了解。

源码管理

对于任何软件开发项目来说,源码管理都是绝对必要的,如果还没有,那就开始使用。

  • GitHub[5] —— 允许无限制的公共存储库和私有存储库,支持最多3个协作者。
  • Bitbucket[6] —— 允许无限制的私人存储库,最多5个协作者,免费。
  • SourceForge[7] —— 仅支持托管开放源码。
  • GitLab[8] —— 免费提供无限的公共和私有存储库,包括无限的CI执行器(CI Runner)。
  • Visual Studio Online[9] (http://www.visualstudio.com/what-is-visual-studio-online-vs) —— 无限的公共存储库,私有存储库收费,支持git或TFVC。另外提供: 问题跟踪、项目计划(包括Scrum等多个敏捷模板)、集成托管构建,所有特性都可以集成到Microsoft Visual Studio中,仅支持Windows。

构建工具

使用广泛接受的行业标准构建工具,可以防止在做探索、链接新库、打包产品等等工作时重复发明轮子。例子包括:

  • CMake[10]
    • 对于构建性能,请考虑: https://github.com/sakra/cotire
    • 对于增强可用性,请考虑: https://github.com/toeb/cmakepp
    • 使用 https://cmake.org/cmake/help/v3.6/command/target_compile_features.html 作为C++标准flag
    • 考虑使用 https://github.com/cheshirekow/cmake_format 自动格式化CMakeLists.txt文件
    • CMake特定最佳实践请参考后续的延伸阅读[11]部分
    • cmake --build提供了平台无关的通用编译接口
  • Waf[12]
  • FASTBuild[13]
  • Ninja[14] —— 可以极大优化大型项目的增量构建时间,可以作为CMake的target。
  • Bazel[15] —— 基于网络工件缓存和远程执行的快速增量构建
  • Buck[16] —— 类似于Bazel,对iOS和Android有很好的支持
  • gyp[17] —— 谷歌chromium的构建工具
  • maiken[18] —— 具有maven配置风格的跨平台构建工具
  • Qt Build Suite[19] —— 基于Qt的跨平台构建工具
  • meson[20] —— 快速、对用户友好的开源构建系统
  • premake[21]

请记住,这不仅是构建工具,也是编程语言。请尽量维护良好整洁的构建脚本,并遵循正在使用的工具的推荐实践。

包管理器

包管理是C++的重要主题,目前还没有明确的赢家。请考虑使用包管理器来帮助跟踪项目的依赖关系,从而帮助新人更容易开始参与项目。

  • Conan[22] —— 跨平台C++依赖管理器
  • hunter[23] —— CMake驱动的跨平台包管理器,适用于C/C++
  • [C++ Archive Network (CPPAN)](https://cppan.org/ “C++ Archive Network (CPPAN “C++ Archive Network (CPPAN)”)”) —— 跨平台C++依赖管理器
  • qpm[24] —— Qt的包管理器
  • build2[25] —— 类Cargo的C++包管理器
  • Buckaroo[26] —— 真正去中心化的跨平台依赖管理器,适用于C/C++等等
  • Vcpkg[27] —— 微软C++库管理器,支持Windows, Linux和MacOS

持续集成

选择了构建工具之后,接下来需要设置持续集成环境。

在更改被推送到存储库时会触发持续集成(CI)工具自动构建源代码,可以私有部署CI工具或使用托管的CI系统。

  • Travis CI[28]
    • 能很好的与C++一起工作
    • 设计与GitHub一起使用
    • GitHub公共存储库可以免费使用
  • AppVeyor[29]
    • 支持Windows、MSVC和MinGW
    • GitHub公共存储库可以免费使用
  • Hudson CI[30] / Jenkins CI[31]
    • 需要Java应用服务器
    • 支持Windows、OS X和Linux
    • 可以通过许多插件进行扩展
  • TeamCity[32]
    • 对开源项目免费
  • Decent CI[33]
    • 简单持续集成,可以将结果发布到GitHub
    • 支持Windows、OS X和Linux
    • 使用ChaiScript[34]
  • Visual Studio Online[35] (http://www.visualstudio.com/what-is-visual-studio-online-vs)
    • 与Visual Studio Online的源代码库紧密集成
    • 使用MSBuild (Visual Studio的构建引擎),可在Windows、OS X和Linux上使用
    • 提供托管的构建代理,也允许用户提供构建代理
    • 可以在Microsoft Visual Studio中控制和监控
    • 通过Microsoft Team Foundation Server进行内部安装
  • GitLab[36]
    • 使用自定义Docker镜像,因此可用于C++
    • 有免费的共享执行器
    • 提供简单的覆盖率结果分析

如果在GitHub上有开源、公开托管的项目:

  • 现在就把Travis Ci和AppVeyor整合起来。关于如何在基于C++ cmake的应用程序中启用的简单示例,请参考: https://github.com/ChaiScript/ChaiScript/blob/master/.travis.yml
  • 启用覆盖工具(Codecov或Coveralls)
  • 启用Coverity Scan[37]

这些工具都是免费的,设置起来也相对容易。一旦把它们都设置好,就可以对项目进行持续的构建、测试、分析和报告,并且免费。

编译器

启用所有可用、合理的告警选项,有些告警选项只在启用了优化的情况下才有效,或者优化级别越高,效果越好,例如GCC中的-Wnull-dereference

应该使用尽可能多的编译器,每个编译器对标准的实现略有不同,支持多个编译器将有助于确保实现最可移植、最可靠的代码。

GCC / Clang

-Wall -Wextra -Wshadow -Wnon-virtual-dtor -pedantic

  • -Wall -Wextra 合理、标准
  • -Wshadow 如果变量声明覆盖了父上下文中的变量,则警告用户
  • -Wnon-virtual-dtor 如果带有虚函数的类有非虚析构函数,则警告用户,有助于捕获难以跟踪的内存错误
  • -Wold-style-cast 对C风格的类型转换发出警告
  • -Wcast-align 警告有潜在性能问题的强制类型转换
  • -Wunused 警告任何未使用的东西
  • -Woverloaded-virtual 如果重载(而不是覆盖)虚函数,则发出警告
  • -Wpedantic 如果使用了非标准的C++则发出警告(所有版本的GCC, Clang >= 3.2)
  • -Wconversion 对可能丢失数据的类型转换发出警告
  • -Wsign-conversion 对影响到符号的类型转换发出警告(Clang所有版本,GCC >= 4.3)
  • -Wmisleading-indentation 如果代码中有缩进,但没有对应的代码块,则发出警告(仅在GCC >= 6.0中)
  • -Wduplicated-cond 如果if/else分支有重复条件,则发出警告(仅在GCC >= 6.0中)
  • -Wduplicated-branches 如果if/else分支有重复的代码,则发出警告(仅在GCC >= 7.0中)
  • -Wlogical-op 在可能需要按位操作的地方使用逻辑操作时发出警告(仅在GCC中)
  • -Wnull-dereference 如果检测到空解引用将发出警告(仅在GCC >= 6.0中)
  • -Wuseless-cast 如果执行强制转换到相同的类型,则会发出警告(仅在GCC >= 4.8中)
  • -Wdouble-promotion 如果float隐式提升为double则发出警告(GCC >= 4.6, Clang >= 3.8)
  • -Wformat=2 对输出格式化函数(即printf)的安全问题发出警告
  • -Wlifetime 显示对象生命周期问题(目前只有Clang的特殊分支)

考虑使用-Weverything,并且只在需要的情况下禁用少数警告。

-Weffc++警告模式可能太吵了,但如果对项目适用,也可以使用。

MSVC

/permissive- —— 执行标准一致性[38]

/W4 /w14640 —— 使用并考虑以下内容(参见下面的描述)

  • /W4 一切合理的警告
  • /w14242 ‘identifier’: 从’type1’到’type1’的转换,可能丢失数据
  • /w14254 ‘operator’: 从“type1:field_bits”到“type2:field_bits”的转换,可能丢失数据
  • /w14263 ‘function’: 成员函数不重写任何基类虚成员函数
  • /w14265 ‘classname’: 类有虚函数,但析构函数不是该类的虚实例,可能无法正确析构
  • /w14287 ‘operator’: 无符号/负常数不匹配
  • /we4289 nonstandard extension used: ‘variable’: 在for循环中声明的循环控制变量在for循环作用域之外使用
  • /w14296 ‘operator’: 表达式总是’布尔值(boolean_value)’
  • /w14311 ‘variable’: 指针从’type1’转换到’type2’时被截断
  • /w14545 逗号前的表达式计算的是缺少参数列表的函数
  • /w14546 逗号前的函数调用缺少参数列表
  • /w14547 ‘operator’: 逗号前的运算符无效,预期运算符有副作用
  • /w14549 ‘operator’: 逗号前的运算符无效,想要“运算符”吗?
  • /w14555 表达式没有效果,表达式预期带有副作用
  • /w14619 pragma warning: 没有警告号码
  • /w14640 在线程不安全的静态成员初始化时启用警告
  • /w14826 从’type1’到’type_2’的转换会扩展符号,可能会导致意外的运行时行为
  • /w14905 宽字符串字面量转换为’LPSTR’
  • /w14906 字符串字面量转换为’LPWSTR’
  • /w14928 非法的拷贝初始化,已隐式应用多个用户定义转换

不建议

  • /Wall 会对标准库中包含的文件发出警告,有太多额外的警告,因此没什么用。
通用

一开始就设置非常严格的警告,在项目开始后试图提高警告级别可能会很痛苦。

考虑使用将警告视为错误的设置,例如MSVC中的/Wx,以及GCC/Clang中的-Werror

基于LLVM的工具

基于LLVM的工具与能够输出编译命令数据库的构建系统(例如cmake)配合得最好,例如:

$ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .

如果没用这样的构建系统,可以考虑Build EAR[39],它可以与现有构建系统挂钩,并生成编译命令数据库。

CMake现在也提供了在正常编译期间调用“`clang-tidy“`[40]的内置支持。

  • include-what-you-use[41], 示例结果[42]
  • clang-modernize[43], 示例结果[44]
  • clang-check[45]
  • clang-tidy[46]

静态检查

最好的选择是将静态分析器作为自动化构建系统的一部分运行,cppcheck和clang可以满足免费选项的要求。

Coverity Scan

Coverity[47]提供免费(开源)静态分析工具包,可以用于与Travis CI[48]AppVeyor[49]集成的每个提交。

PVS-Studio

PVS-Studio[50]是用于检测用C、C++和C#编写的程序源代码中的bug的工具,对个人学术项目、开源非商业项目和个人开发者的独立项目都是免费的,可以在Windows和Linux环境下工作。

Cppcheck

Cppcheck[51]是免费、开源的。它努力争取零误报,并且做得很好。因此,应该启用所有警告: --enable=all

备注:

  • 为了正确工作,需要格式完整的头文件路径,所以在使用前不要忘记传递: --check-config
  • 查找未使用的头文件时-j不能大于1。
  • 如果需要检查所有的代码,请记住为带有大量#ifdef的代码添加--force
cppclean

cppclean[52]是开源静态分析器,专注于发现C++源代码中导致大型代码库开发缓慢的问题。

CppDepend

CppDepend[53]通过分析和可视化代码依赖关系、定义设计规则、进行影响分析以及比较不同版本的代码,简化了对复杂C/C++代码库的管理,对开源贡献者是免费的。

Clang的静态分析器

Clang的分析程序的默认选项适用于各个平台,可以直接通过CMake使用[54],也可以通过基于llvm的工具[55]中的clang-checkclang-tidy调用。

此外,CodeChecker[56]可以作为clang的静态分析前端。

clang-tidy可以通过Clang Power Tools[57]扩展轻松的和Visual Studio一起使用。

MSVC的静态分析器

可以通过/analyze命令行选项[58]启用,可以使用默认选项。

Flint / Flint++

Flint[59]Flint++[60]是根据Facebook编码标准分析C++代码的linter。

OCLint

OCLint[61]是免费、自由、开源的静态代码分析工具,可以通过许多不同的方式提高C++代码的质量。

ReSharper C++ / CLion

这两种来自JetBrains[62]的工具都提供了一定程度的静态分析和自动修复功能,为开源项目负责人提供了免费许可证选项。

Cevelop

基于Eclipse的Cevelop[63] IDE提供了各种静态分析和重构/代码修复工具。例如,可以用C++的constexprs替换宏,重构命名空间(提取/内联using,限定名称),并将代码重构为C++11的统一初始化语法。Cevelop是免费的。

Qt Creator

Qt Creator可以插入clang静态分析器。

clazy

clazy[64]是基于clang的分析Qt使用情况的工具。

IKOS

IKOS[65]是开源静态分析器,由NASA开发。它以抽象解释为基础,用C++编写,使用LLVM为C和C++提供了分析器。源代码可以在Github[66]上找到。

运行时检查

代码覆盖率分析

覆盖率分析工具应该在测试执行时运行,以确保整个应用程序都被测到。不幸的是,覆盖率分析需要禁用编译器优化,这将导致测试执行时间大大延长。

  • Codecov[67]
    • 与Travis CI和AppVeyor集成
    • 对于开源项目免费
  • Coveralls[68]
    • 与Travis CI和AppVeyor集成
    • 对于开源项目免费
  • LCOV[69]
    • 有很多配置项
  • Gcovr[70]
  • kcov[71]
    • 可与codecov和coveralls集成
    • 不需要特殊的编译器flag,只需要debug符号,就可以输出代码覆盖率报告
  • OpenCppCoverage[72]
    • Windows上的开源代码覆盖率工具
Valgrind

Valgrind[73]是运行时代码分析器,可以检测内存泄漏、竞争条件和其他相关问题,支持各种Unix平台。

Dr Memory

和Valgrind类似。http://www.drmemory.org

GCC / Clang Sanitizers

这些工具提供了许多与Valgrind相同的特性,但内置在编译器中,易于使用,并提供问题报告。

  • AddressSanitizer
  • MemorySanitizer
  • ThreadSanitizer
  • UndefinedBehaviorSanitizer

注意可用的sanitizer选项,包括运行时选项。https://kristerw.blogspot.com/2018/06/useful-gcc-address-sanitizer-checks-not.html

Fuzzy分析器

如果项目接受用户定义的输入,可以考虑运行模糊输入测试。

这些工具都使用覆盖率报告来寻找新的代码执行路径,并尝试为代码提供新的输入。它们可以发现崩溃、挂起以及一些没有被考虑到的输入。

  • american fuzzy lop[74]
  • LibFuzzer[75]
  • KLEE[76] —— 可以为单独的函数提供模糊测试
变异测试

这些工具获取在单元测试运行期间执行的代码,并改变执行的代码。如果测试在有突变的情况下仍然通过,那可能意味着在测试套件中存在有缺陷的测试。

  • Dextool Mutate[77]
  • MuCPP[78]
  • mull[79]
  • CCMutator[80]
控制流保护

MSVC的[控制流保护(Control Flow Guard)](https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 “控制流保护(Control Flow Guard “控制流保护(Control Flow Guard)”)”)增加了高性能的运行时安全检查。

检查STL实现
  • _GLIBCXX_DEBUG与GCC的libstdc++的实现。参见Krister的博客文章[81]
堆分析
  • https://epfl-vlsc.github.io/memoro —— 一个详细的堆分析器
忽略警告

如果团队一致认为编译器或分析器对不正确或不可避免的错误发出警告,则团队需要尽可能只在最小的范围内禁用特定的错误警告。

在对一段代码禁用该警告后,请确保重新启用该警告,没人希望禁用的警告被泄露到其他代码中[82]

测试

上面提到的CMake有一个用于执行测试的内置框架,请确保使用的任何构建系统都能够执行内置测试。

为了进一步帮助执行测试,请考虑使用某个单元测试库,如Google Test[83]Catch[84]CppUTest[85]Boost.Test[86],以帮助组织测试。

单元测试

单元测试针对的是可以独立测试的小代码块和独立功能。

集成测试

对于提交的每个特性或bug修复,都应该启用测试。参见上文介绍的代码覆盖率分析。这些测试比单元测试级别更高,但仍然应该被限制在单个特性的范围内。

逆向测试

不要忘记确保测试代码中的错误处理,并且确保其能够正常工作。如果目标是100%的代码覆盖率,很明显这些错误场景也需要被覆盖的。

调试

uftrace

uftrace[87]可以用来生成程序执行的函数调用图。

rr

rr[88]是一个免费、开源的反向调试器,支持C++。

其他工具

Lizard

Lizard[89]提供了针对C++代码库运行复杂性分析的非常简单的接口。

Metrix++

Metrix++[90]可以识别并报告代码中最复杂的部分,从而帮助我们减少复杂代码,帮助编译器更好的理解和优化代码。

ABI Compliance Checker

ABI Compliance Checker[91] (ACC)可以分析两个库版本,并生成关于API和C++ ABI变化的详细兼容性报告,可以帮助库开发人员发现无意的破坏性更改,以确保向后兼容性。

CNCC

Customizable Naming Convention Checker[92](可自定义的命名约定检查器)可以报告代码中不遵循特定命名约定的标识符。

ClangFormat

ClangFormat[93]可以自动检查并纠正代码格式,以匹配组织约定。可以参考关于clang-format的系列文章[94]

SourceMeter

SourceMeter[95]提供了免费版本,可以为代码提供许多不同的度量,也可以调用cppcheck。

Bloaty McBloatface

Bloaty McBloatface[96]是用于类unix平台的二进制大小分析器。

微信公众号:DeepNoMind

参考资料

[1]

 

C++ Best Practises: https://lefticus.gitbooks.io/cpp-best-practices/content/

[2]

知识共享署名-非商业4.0国际许可协议: http://creativecommons.org/licenses/by-nc/4.0/

[3]

GitHub: https://github.com/lefticus/cppbestpractices

[4]

Learning C++ Best Practices: http://shop.oreilly.com/product/0636920049814.do

[5]

GitHub: https://github.com/

[6]

Bitbucket: https://bitbucket.org/

[7]

SourceForge: http://sourceforge.net/

[8]

GitLab: https://gitlab.com/

[9]

Visual Studio Online: https://visualstudio.com/

[10]

CMake: http://www.cmake.org/

[11]

延伸阅读: https://lefticus.gitbooks.io/cpp-best-practices/content/10-Further_Reading.md

[12]

Waf: https://waf.io/

[13]

FASTBuild: http://www.fastbuild.org/

[14]

Ninja: https://ninja-build.org/

[15]

Bazel: http://bazel.io/

[16]

Buck: http://buckbuild.com/

[17]

gyp: https://chromium.googlesource.com/external/gyp/

[18]

maiken: https://github.com/Dekken/maiken

[19]

Qt Build Suite: http://doc.qt.io/qbs/

[20]

meson: http://mesonbuild.com/index.html

[21]

premake: https://premake.github.io/

[22]

Conan: https://www.conan.io/

[23]

hunter: https://github.com/ruslo/hunter

[24]

qpm: https://www.qpm.io/

[25]

build2: https://build2.org/

[26]

Buckaroo: https://buckaroo.pm/

[27]

Vcpkg: https://github.com/microsoft/vcpkg

[28]

Travis CI: http://travis-ci.org/

[29]

AppVeyor: http://www.appveyor.com/

[30]

Hudson CI: http://hudson-ci.org/

[31]

Jenkins CI: https://jenkins-ci.org/

[32]

TeamCity: https://www.jetbrains.com/teamcity

[33]

Decent CI: https://github.com/lefticus/decent_ci

[34]

ChaiScript: http://chaiscript.com/ChaiScript-BuildResults/full_dashboard.html

[35]

Visual Studio Online: https://visualstudio.com/

[36]

GitLab: https://gitlab.com/

[37]

Coverity Scan: https://scan.coverity.com/

[38]

执行标准一致性: https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance

[39]

Build EAR: https://github.com/rizsotto/Bear

[40]

正常编译期间调用clang-tidy: https://cmake.org/cmake/help/latest/prop_tgt/LANG_CLANG_TIDY.html

[41]

include-what-you-use: https://github.com/include-what-you-use

[42]

示例结果: https://github.com/ChaiScript/ChaiScript/commit/c0bf6ee99dac14a19530179874f6c95255fde173

[43]

clang-modernize: http://clang.llvm.org/extra/clang-modernize.html

[44]

示例结果: https://github.com/ChaiScript/ChaiScript/commit/6eab8ddfe154a4ebbe956a5165b390ee700fae1b

[45]

clang-check: http://clang.llvm.org/docs/ClangCheck.html

[46]

clang-tidy: http://clang.llvm.org/extra/clang-tidy.html

[47]

Coverity: https://scan.coverity.com/

[48]

Travis CI: http://travis-ci.org/

[49]

AppVeyor: http://www.appveyor.com/

[50]

PVS-Studio: http://www.viva64.com/en/pvs-studio/

[51]

Cppcheck: http://cppcheck.sourceforge.net/

[52]

cppclean: https://github.com/myint/cppclean

[53]

CppDepend: https://www.cppdepend.com/

[54]

通过CMake使用: http://garykramlich.blogspot.com/2011/10/using-scan-build-from-clang-with-cmake.html

[55]

基于llvm的工具: https://lefticus.gitbooks.io/cpp-best-practices/content/02-Use_the_Tools_Available.html#llvm-based-tools

[56]

CodeChecker: https://github.com/Ericsson/CodeChecker

[57]

Clang Power Tools: https://clangpowertools.com/

[58]

命令行选项: http://msdn.microsoft.com/en-us/library/ms173498.aspx

[59]

Flint: https://github.com/facebook/flint

[60]

Flint++: https://github.com/L2Program/FlintPlusPlus

[61]

OCLint: http://oclint.org/

[62]

JetBrains: https://www.jetbrains.com/cpp/

[63]

Cevelop: https://www.cevelop.com/

[64]

clazy: https://github.com/KDE/clazy

[65]

IKOS: https://ti.arc.nasa.gov/opensource/ikos/

[66]

Github: https://github.com/NASA-SW-VnV/ikos

[67]

Codecov: https://codecov.io/

[68]

Coveralls: https://coveralls.io/

[69]

LCOV: http://ltp.sourceforge.net/coverage/lcov.php

[70]

Gcovr: http://gcovr.com/

[71]

kcov: http://simonkagstrom.github.io/kcov/index.html

[72]

OpenCppCoverage: https://github.com/OpenCppCoverage/OpenCppCoverage

[73]

Valgrind: http://www.valgrind.org/

[74]

american fuzzy lop: http://lcamtuf.coredump.cx/afl/

[75]

LibFuzzer: http://llvm.org/docs/LibFuzzer.html

[76]

KLEE: http://klee.github.io/

[77]

Dextool Mutate: https://github.com/joakim-brannstrom/dextool/tree/master/plugin/mutate

[78]

MuCPP: https://neptuno.uca.es/redmine/projects/mucpp-mutation-tool/wiki

[79]

mull: https://github.com/mull-project/mull

[80]

CCMutator: https://github.com/markus-kusano/CCMutator

[81]

Krister的博客文章: https://kristerw.blogspot.se/2018/03/detecting-incorrect-c-stl-usage.html

[82]

泄露到其他代码中: http://www.forwardscattering.org/post/48

[83]

Google Test: https://github.com/google/googletest

[84]

Catch: https://github.com/philsquared/Catch

[85]

CppUTest: https://github.com/cpputest/cpputest

[86]

Boost.Test: http://www.boost.org/doc/libs/release/libs/test/

[87]

uftrace: https://github.com/namhyung/uftrace

[88]

rr: http://rr-project.org/

[89]

Lizard: http://www.lizard.ws/

[90]

Metrix++: http://metrixplusplus.sourceforge.net/

[91]

ABI Compliance Checker: http://ispras.linuxbase.org/index.php/ABI_compliance_checker

[92]

Customizable Naming Convention Checker: https://github.com/mapbox/cncc

[93]

ClangFormat: http://clang.llvm.org/docs/ClangFormat.html

[94]

关于clang-format的系列文章: https://engineering.mongodb.com/post/succeeding-with-clangformat-part-1-pitfalls-and-planning/

[95]

SourceMeter: https://www.sourcemeter.com/

[96]

Bloaty McBloatface: https://github.com/google/bloaty

 

– END –

转自:https://mp.weixin.qq.com/s/_ZC1t0wMu8fjTq-1HgKrrA

世上只有贝塔好,没贝塔的阿尔法像根草?

贝塔与阿尔

1/5

贝塔与阿尔法

星球上有同学提问:立讯从公布二季报跳空高开后,一直阴跌。从大逻辑上战略很清楚,业绩也是重回高增长向上趋势。想加仓,但不知道短线市场在担忧什么?

其实答案也很简单,现在市场上的个股可分为两种,有妈的和没妈的……,不,有贝塔的和没贝塔的,而立讯现在就是没有贝塔的。

先解释一下贝塔和阿尔法。

这是一组相对的概念,意义并不唯一,这里用来表示公司与行业的关系,贝塔代表行业涨幅,阿尔法代表个股超过行业的涨幅。

个股与板块的关系,就像一个人在一列列车中奔跑一样,如果列车停了甚至倒退,那你跑得再快也没有用。

消费电子受需求萎缩、创新不足、库存高企等多个因素叠加,处于下行周期。虽然立讯已经分布了三季报预报,今年的业绩确定性很高,可这只是个股的阿尔法强,无奈整个行业下行杀估值,它能够横盘不创新低,归功于长线抄底资金的对冲,已经是自身阿尔法强的表现了。

大部分人之所以知道立讯,也是因为这是2018-2020年的两年10倍的大牛股,而那时,它正是叠加了AirPods的板块贝塔的阿尔法。

而立讯今年七月份的那一波上涨,交易的是二季报超预期和苹果新机发布,所以总体上不是很强,进来的资金也是博一个中短线收益,发布会之前就撤了,加上苹果新机在华销售一般,自然股价就回落。

很多人用失败的血泪总结出一个经验:千万不要到向下的贝塔里去找向上的阿尔法。没有贝塔的强阿尔法公司,股价更多在财报公布前后表现得比较好,其他时候很容易被杀估值,所以说股价“像根草”,随风飘啊飘。

反过来说,有贝塔的阿尔法就像个宝,投进贝塔的怀抱,幸福享不了……

2020年以来的这三年,从机构抱团到全民赛道,都是追求强贝塔的结果,以至于很多人现在只看几个赛道的公司,资金在几个赛道中“内循环”,其他公司一律删除自选股。

评价一个现象的对错在投资的战场上毫无意义,我今天想讨论的问题是:

强贝塔真的更容易赚钱吗?

弱贝塔的阿尔法真的像根草吗?

2/5

贝塔收益的三大来源

个股涨了10%,板块涨了8%,贝塔是8%,代表其中8%的收益是板块上涨带来的,阿尔法就是2%,代表你选股的收益。

在研究行业配置时,这可以用于分析账户的收益归因:

如果阿尔法为正,说明你擅长挖掘个股阿尔法,赚钱主要靠研究能力,这是一项长期而稳定的收益;

如果阿尔法为负,说明你主要赚的是行业贝塔,选股反而拖累了业绩,那就有点问题了,因为贝塔收益来源比较复杂,并不完全代表个人能力。

通过贝塔赚到的钱由三部分构成:

第一部分:板块本身的高速成长

能够出贝塔的板块或行业,其整体业绩增速一般都高于其他板块,这是贝塔收益的基础。

第二部分:流动性溢价

贝塔收益并不完全是EPS增长驱动,一般都有估值的上升,属于高关注度带来的流动性溢价。

在总体资金不变或增长的情况下,景气或确定性高的板块越少,资金对其的追逐就越猛烈,集万千宠爱于一身,最后形成机构抱团或赛道股投资,由这个原因形成的涨幅,就是流动性溢价。

从2020年开始,连续三年都出现了明显的机构抱团或赛道股的现象,因为这三年的经济环境大部分时候都处于不正常的状态,只有少数板块增速特别亮点。

第三部分:确定性溢价

有人给你推荐了一家公司,理由是业绩未来两年有50%以上的高增长,你一看是新能源相关业务,首先就信了三分;但如果是医药股,你首先想到的是这玩意儿会不会被集采,增速先打了对折;如果是建材股,你首先想到的是房地产还要下行多久,有没有烂账,估值先打个六折——前者就是行业贝塔带来的确定性溢价。

很多人可能觉得,不管阿尔法的钱还是贝塔的钱,都是凭本事赚钱,为什么要做这种区分?

因为确定性溢价并不是公司的确定性,而是行业的确定性,公司的确定性,来源于管理能力、治理结构、经营壁垒,是可持续的,而赛道行业的确定性,是需求爆发带来的,没有持续性。

流动性溢价也是如此,投资者不可能永远关注某一个行业,流动性溢价终究是镜花水月,难以久留。

这两种溢价赚到的钱,本质上是击鼓传花,最终是由下一家承担的,都是属于博弈的钱。

所以,关于贝塔收益,我的看法是这样的:

如果你在板块贝塔刚刚形成,没有形成共识没有溢价时,通过分析行业供需、政策走向、周期特点,认定某行业将有贝塔行情,那跟赚阿尔法是一样的;

但如果你是在市场上都看好这个行业之后,再去追求这种贝塔的确定性,那么你实际上是在赌贝塔溢价在你卖出前,暂时不会消失。

很多人认为,只要保持高增速,估值就不重要,贝塔就会一直存在,股价就跌不下来,这正是资金抱团赛道股的核心理论。

实际上,贝塔的钱并不好赚。

3/5

贝塔的钱不好赚

有对历史数据的回测表明,板块利润增速超过30%时,年度涨幅都是前列的,这也是很多人认为贝塔行情不需要看估值的原因。

但回测成立的策略,不代表交易上也可以把握,最重要的是它是否有先导指标;事实上,大部分贝塔行情的消失都先于行业增速的下降,当然也有滞后的,所以贝塔行情并不存在稳定的交易胜率。

这一轮半导体周期见顶是在今年年初,但贝塔行情早在去年7月就见顶,此时已经普遍下跌了30~50%;CXO的行业增速见顶是今年二季度,但板块的贝塔行情见顶是去年6月,此时已经普遍腰斩。

而2020年的消费股贝塔则相反,消费品高频数据三季度已经出现拐点,板块贝塔行情却在公募基金的超发背景下进入主升浪,一直到春节后才结束。

板块基本面与贝塔行情的脱节,原因是A股长期流动性过剩,底部与顶部都是由博弈资金主导有关,所以它提前见顶的时间也不确定。

有研究实力的大机构,可以设计一些有先导意义的高频数据,通过交叉分析,预测行业拐点,但绝大部分散户做不到。

此外,一致性预期的强贝塔行业,就算年度涨幅居前,可其中大部分成交量都堆在高位,追涨行为很容易“赚指数亏账户”。

再加上散户信息滞后,行情开头的钱赚不到,鱼尾的钱会吐掉,只有那种持续两年以上的贝塔,类似新能源行情,才容易赚钱。但回顾A股,近二十年至少一半以上的年份都缺乏这种持续性的板块贝塔。

所以说,想要稳定提高收益,还是要靠阿尔法。

4/5

追逐阿尔法的能力

强贝塔的行情随时可能结束,为了弥补这种不确定性,投资高手的方法是,在强贝塔之上寻找阿尔法,就是开头说到的,不要在向下的贝塔的方向上寻找阿尔法。

一个典型“贝塔+阿尔法”的双重要求,包括:

一、出身于或正在“投靠”有贝塔的板块

二、自己有阿尔法

贝塔是中线投资的前提,阿尔法是中线投资的灵魂,中线阿尔法包括但不限于:

1. 热点板块内估值落后的标的,等待不确定性落地

2. 有大订单和新业务且没有体现在股价上,等待后知后觉的资金挖掘

3. 极具想象空间但确定性一般的新出强逻辑

4. 预期本季财报业绩会超预期

……

这里我们发现,贝塔之上的阿尔法与我们平时说的长线投资的阿尔法,无论是研究方法还是对资源的要求,差异都很大。

中线阿尔法,要么是预期差驱动,包括板块内的相对性价比、业绩预期差,要么是事件驱动,包括经营上的催化剂事件、情绪性的股价激励事件、上市公司的重大经营事件,等等。

而长线阿尔法还是传统的行业空间分析,竞争格局分析,战略管理分析,等等。

前者更侧重于边际分析与定量分析,要求有强大的产业链跟踪能力;后者更侧重于总量分析和定性分析,要求有可靠的分析框架和对企业价值的洞察。

所以,中线阿尔法并不是真正的阿尔法,本质只是贝塔的波动,无论是预期差,还是事件,都是博弈,赚的都是其他人亏的钱。

当然,有人要说了,贝塔的钱虽然不好赚,可总比没有贝塔的板块钱好赚吧。

问题在于,没有贝塔的阿尔法,真的像根草吗?

5/5

没有贝塔的阿尔法也是个宝

2020年的贝塔是高确定性的蓝筹龙头和消费白马,绩优小票个个都成了没贝塔的阿尔法,很多业绩高速,股价却往死里跌,特别是下半年。

可是,如果没有这一段没贝塔的悲惨时光,哪有2021年到现在为期两年的小市值公司的贝塔风光?

没有贝塔的阿尔法,对于长线投资者而言,无疑是捡到宝了。

相反,新能源公司的中报一出来,财务数据个个喜气洋洋,但这都是行业贝塔带来的,其风光的背后,订单外溢、资本追捧、新玩家进入、技术扩散、壁垒消除、库存虚高,必然会带来竞争格局的恶化和龙头地位的下降,越是头部企业,其长期确定性反而越是下降。

锂电池中游材料,板块仍然是高增速,但今年一直在杀估值,去年的全民扩产已经让贝塔率先消失了。

投资方法也是有周期的,用的人多了,大概率是在往周期顶部走,离未来失灵的日子也就越来越近了。

大级别的反转总有一些提前预警的行情,比如今年1-4月份,“风光储锂”只是高频数据稍稍不及预期,就纷纷从赛道股变成那段时间最惨的板块,最后虽然是个“假摔”,但也可以看成是未来板块崩溃行情的预演。

很多人认为,新能源是十年大趋势,只要牢牢抱团不放松,赚钱是肯定的,可老股民应该还记得,类似的说法在09年的有色、14-15年的TMT,20年的龙头白马中,也都出现过。

一路持有贝塔的板块,体验感很好,但投资永远是困难的,追求持有体验无非是把困难放在日后,累积成灾难。

如果到了不研究不跟踪,看准一个方向加杠杆干就能躺赢的时候,这种贝塔才是十分危险的。如果你习惯了追着贝塔赚钱,结果很可能你都不知道自己的阿尔法到底是亏是赚,到了板块贝塔逆转,大概率会把自己贝塔的钱也全部亏掉。

转自:https://mp.weixin.qq.com/s/VmSss5ye129fvZnxJXgM3Q

教育部答复降低英语教学比重建议

教育部答复降低英语教学比重建议

教育部网站9月23日公布对“关于增强文化自信增加中国文化内容教学改革和降低英语教学比重的建议”的答复。

 

答复显示,根据规定,外语课时占比为6-8%,明显低于语文、数学、体育、艺术等学科,外语是学生德智体美劳全面发展的重要组成部分,有助于培养和发展学生语言能力、文化意识、思维品质、学习能力等核心素养,培养学生中国情怀、国际视野和跨文化沟通能力。

 

教育部答复降低英语教学比重建议

 

答复全文:

 

您提出的“关于增强文化自信增加中国文化内容教学改革和降低英语教学比重的建议”收悉,现答复如下。

 

一、关于“用英语教学降下来的时间,去增加或者加大对中国传统文化的教学,比如琴棋书画,让孩子们在世界观形成的关键时候,去接触到我们的中国文化,从小就增加我们的文化自豪感和文化自信”的建议

 

中华优秀传统文化是中华民族的根与魂,中华优秀传统文化教育对于“培养什么人”具有重要意义。教育部历来高度重视中华优秀传统文化教育,引导学生继承和弘扬中华优秀传统文化,坚定文化自信。

 

1.加强中华优秀传统文化教育系统设计。2021年,教育部研制印发了《中华优秀传统文化进中小学课程教材指南》(以下简称《指南》),对中小学课程教材落实中华优秀传统文化教育要求进行统筹设计和科学安排,明确基本原则、总体目标、主要内容、载体形式、学段和学科要求等。中小学课程形成了以统编三科为主、艺术(音乐、美术等)、体育与健康学科有重点纳入,其他学科有机渗透的“3+2+N”学科结构安排。

 

2.以语文、道德与法治(思想政治)、历史等学科为重点有机融入中华优秀传统教育。为落实《指南》要求,义务教育和普通高中课程教材进一步强化中华优秀传统文化教育。2022年,教育部修订印发义务教育课程方案和课程标准。其中,语文明确“中华优秀传统文化”主题的主要载体有汉字、书法、传统节日等;道德与法治鼓励学校开展传统节日、服饰、建筑等交流展示活动,让学生了解我国灿烂的文化;历史注重通过让学生了解甲骨文、都江堰工程、“四大发明”等,培养学生对中华优秀传统文化的认同感;艺术引导学生欣赏剪纸、皮影、年画等中国民间美术作品;体育与健康专门设置“中华传统体育类运动”课程内容;物理引导学生了解我国古代青铜器、铁器制造技术及其对社会进步的推动作用。现行统编语文教材中编排《三字经》《弟子规》《论语》等著名篇目;道德与法治教材中引用《礼记》《荀子》《格言联璧》等古代典籍,引导学生从小立志努力学习;历史教材中通过介绍引用《史记》《汉书》等,培养学生史料阅读能力。普通高中语文将中华优秀传统文化内容贯串必修、选择性必修、选修;思想政治课程引导学生学会辩证地看待传统文化,教材中通过引述“邯郸学步,失其故行”的典故,引导学生坚定“四个自信”;美术必修课程要求理解中国优秀传统书画和民间美术的造型语言、创作观念及文化内涵,并能够综合运用;物理必修课程让学生了解我国古代对磁现象的认识和应用及其对人类文明的影响。此外,中小学综合实践活动课程推荐“我们的传统节日”等主题活动,增强学生中华优秀传统文化教育实践体验。

 

3.马工程重点教材有机融入中华优秀传统文化教育。在《中国古代文学史》《中国美学史》《中国戏曲史》等教育部马工程重点教材中,结合各学科实际,从历史、文学、美学等不同角度,系统阐述中华优秀文化的起源发展、历史脉络,充分体现中华优秀传统文化的丰富内涵和宝贵经验。

 

4.将中华优秀传统文化纳入高考。重视高考考试内容改革,高考命题依据高中课程标准和高校人才选拔要求,构建起德智体美劳全面考查的内容体系。近年来,注重通过多种形式考查中华优秀传统文化相关内容,引导学生增强国家认同感和民族自豪感,坚定理想信念。

 

二、关于“降低英语教学比重、在考试中占分比重。英语学习是有必要的,但是没必要占用那么长的时间,重视到甚至有点畸形的程度”和“改革英语教学方法,不再以考高分为唯一目的,而是以口语对话、生活运用为主”的建议

 

1.中小学外语课时占比低于语文等学科。外语是学生德智体美劳全面发展的重要组成部分,有助于培养和发展学生语言能力、文化意识、思维品质、学习能力等核心素养,培养学生中国情怀、国际视野和跨文化沟通能力。《义务教育课程方案(2022年版)》规定,各科目课时比例为:语文20%-22%,数学13%-15%,体育与健康10%-11%,外语6%-8%,等等。根据《普通高中课程方案(2017 年版 2020 年修订)》,普通高中外语必修学分课时比例约占必修总学分课时的7%。外语课时明显低于语文、数学、体育、艺术等学科。

 

2.根据中央要求确定外语考试比重。2014年,国务院印发《关于深化考试招生制度改革的实施意见》,明确规定保持统一高考的语文、数学、外语科目不变,分值不变。现阶段外语统考安排是按照中央对高考改革顶层设计确定的。

 

下一步,教育部将加强中小学课程培训及实施指导,组织义务教育教材修订工作,持续推进大中小学教材建设规划和高校教材管理办法等落地实施,深化高考综合改革,进一步加强中华优秀传统文化教育,引导学生坚定文化自信,自觉弘扬中华优秀传统文化。

 

感谢您对教育工作的支持和关心!

 

教育部

2022年8月7日

转自:https://mp.weixin.qq.com/s/8ETDL5vxkxqJPiPtOk8cXg