`

谈谈对程序员的培养

阅读更多

这篇文字是我好久以来的想法,有一些感悟,有一些激烈的言辞,我很自豪我就是一名程序员,我希望给程序员或者前程序员们带来一点启发。也许你认可我的言辞,也许你不屑我的观点,无论如何,欢迎谈谈你的看法。

 

让程序员做更多种类的事

为什么有人说小公司锻炼人?在小公司,条件并不那么齐备,很多事情都需要程序员自己做,自己去澄清需求、自己做设计、自己搭建环境、自己测试,甚至自己上线、自己维护(这件事情在我们团队被称为“自己吃自己狗食”)。

然而到了某些公司,在一些正规的流程下,“人”反而显得不那么重要了:一个完、整的流程被切分成若干环节,程序员只能负责那小小的一环,更严重的是,他们显示出消极和片面的情绪,他们称自己码农,自嘲并且觉得在总做一些低级和毫无技术含量的事情。

 

关于“码农”——这似乎是一件很悲哀的事情,在美国,程序员是一个相当值得尊敬的行业,去年硅谷的技术员工年薪平均已经超过10万美元;在中国,教师的行业起码获得了人们口头上的尊敬(虽然实质上也许并没有获得应有的待遇),而程序员,往往只能看到自己给自己呐喊。

这里没有绝对的对错之分,但我一直在博客中强调软件开发实质是一种创造性的劳动,只是在一个流程严格控制的公司内,这样的创造的火花可能被扼杀,换来的好处是人员的流动中,代价最小化:谁都可以走、谁都可以代替谁,所有问题都被认为只是时间问题……那么,程序员,你的自我价值何在呢?

 

关于测试

我听到很多真实的声音,都在抱怨测试工作乏味、加班辛苦。我认为,国内大部分的测试,其实完全是程序员扭曲的工作形态导致的。

专职的测试人员去做专项测试、整个系统的集成测试等等,我都能理解,但是绝对不应当深入模块内部去测试开发人员的代码,绝对不应该去考虑所谓的代码覆盖率——因为这些,比如白盒测试,本都是程序员自己该完成的事情。程序员自己开发的程序,当然要自己验证功能,很多软件公司在一些项目流程里就是没有专职测试介入测试执行,原因很简单,难道自己拉了稀,让别人给你擦屁股?

另一方面,测试该掌握哪些技能?

我见过许多测试人员,他们抱怨工作总是被轻视,没有说话的分量,但是每天的工作就是了解开发的流程,根据流程完成用例的编写,然后执行那些用例,发现bug并填写bug report。如果一名测试只需要做这些事情,那么确实太没有技术含量了、太没有入门门槛了,太单调乏味了。

测试需要成长,既为自己考虑,也为团队中的程序员考虑。

做一名优秀的测试,除了要有分析能力、辨识能力等等软实力以外,基础技能如通信协议、脚本、编译原理、操作系统等等,亦视情况掌握,只有这样,才能和程序员从并不清晰的需求开始,一起去分析、设计、实现和质量保证、去和上上下下的环节做沟通、论证。微软的测试(SDET)都把算法和编码视为基础要求,敢问国内一些公司的测试人员,有几个敢这么说?

 

让程序员远离浮躁

去看看国内几家知名博客和论坛,多少浮躁的博文和帖子四处乱飞?多少人在骂公司狗血,在自嘲薪水,甚至在人身攻击?

浮躁的心态可能是造成这种现象的罪魁祸首,有一位同事说得好,很多具体的技术都可以学,但是执着的心和对技术的热爱是不容易学得的。

整个社会都在日益浮躁,ITEye本来也是一个有技术深度、氛围浓厚的网站,现在看起来有些鱼龙混杂;微博的流行正验证了社会浮躁的趋势,很多人没有时间和耐心去写完整的文章,但是两三句感慨、甚至一词半句的惊叹却容易得多;程序员像寻找速配男女一样,在这个概念翻飞的时代,茫然地寻找自己应该进入的领域,应该了解的技术,于是,很容易看到许多所谓的架构师和咨询师可以把这些东西讲得海阔天空、天花乱坠,这个概念、那个素语,但是——给他一个具体问题吧,要他写写实际代码吧,你会要了他的命

 

给程序员一点宽松和鼓励

都在说国内的IT环境不如欧美,大量劳动力的富余让人力成本变得无比廉价,能让青年付出卖肾代价以购买大部分配件都“Made In China”的iPhone,中国却只获得了1.8%的利润,这些都让人感叹,为什么中国做不出苹果系列这样的产品?为什么中国始终要给别人套上“廉价劳动力”的帽子?中国的程序员,你们的创造力呢?你们精彩的点子呢?

好吧,我听到有人在说是教育体制的问题。对于程序员的地位的思考有很多,可惜我们不是教育工作者,我们也没有那么大的影响力,不过,在团队中间,我们应当多给予这些脆弱的程序员们一点鼓励,让他们表达出自己的想法,特别是在设计上、实现上的想法,不要嘲笑任何人弱智,不要咒骂评审的代码狗屁,多一点沟通,把眼光放长远一些。

这些能表达出想法的人起码可以证明两点:有思考、有勇气,仅这两点,仅足以让旁观的人鼓掌。

一名优秀的Team Leader,不应该整天陶醉在跟踪项目进度和获取程序员工作反馈上。我们都明白,所谓一张一弛,在工作压力恰当的时候,是最适宜工作的,程序员的工作本来就需要创造性,没有适度宽松的环境,就没有思维的火花。

让程序员自己去布置工作台,给他们创造机会聊聊天,把各个团队、各个角色放到一起说说话,组织分享一些有趣的话题,做一些有意思的研究(最初程序员都很腼腆,得劳烦您多牵线搭桥了),Team Leader的工作,绝不仅仅是说“行”或“不行”

 

程序员的理想

1983年,乔布斯对百事可乐的CEO John Sculley说:“Do you want to sell sugar water for the rest of your life, or do you want to change the world?”(你想卖一辈子糖水,还是改变世界?)。

我们已经不在战火纷飞的年代,有多少程序员还愿意怀抱那些原始的理想,还能说出“做互联网的弄潮儿”、“用技术改变世界”这样的话来?

这个世界执着的人并不多,用这样的理念去吸引程序员的公司,则更少。

 

关于技术

我始终觉得,做软件的公司是需要依赖于技术的,当然国内可以称得上是“技术公司”的并不多,但是,优秀的技术能让程序员脱颖而出,也作为一种谋生的手段,为其觅得不错的回报。

做技术能不能一直有饭吃?我想答案是肯定的,有许多公司声称技术路线可以一直有发展的可行性,但是技术牛人还是转了管理或者一走了之,有一种粗暴但是易行的鉴别技术公司的办法,就是寻找里面又没有40岁,甚至50岁以上还在做实际设计和编码的人(不是那些脱离了具体实现向客户吹嘘的角色)。

世界上有两种最赚钱的人,一种是真正的生产者,他们用自己独一无二的聪慧、灵感和劳动创造了价值;一种是极其老道的投机者,专门从别人口袋里把钱掏出来放到自己口袋里。他们都受人尊敬、受人瞩目,后一种让自己的生活变得更美好,但是前一种,让整个世界更美好。

如果你不能在技术的道路上坚决地走下去,在大部分公司做市场、做管理、做咨询,顺便鄙视一下别的辛苦工作的程序员,那么也可以混得很好——毕竟,生活的解总是有很多种。

 

文章系本人原创,转载请注明出处和作者

 

注:本博客已经迁移到个人站点 http://www.raychase.net/,欢迎大家访问收藏,本ITEye博客在数日后将不再更新。

 

174
16
分享到:
评论
163 楼 Mybeautiful 2014-12-09  
Surmounting 写道
lulusw212 写道
Surmounting 写道
lulusw212 写道
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。

那么具体怎么做呢?有这么几个提示。
第一、自己主动写规范的文档注释。练多了就不慢了。这可能需要花费你半年时间。

第二、将自己的设计过程和编码过程分开。虽然都是你自己做,还是先做设计,做到一个别人能看懂的地步,然后再做编码。为了防止自己不经意间 * 作 * 弊 * ,也就是设计和编码混在一起,你可以同时做二个东西。两个设计都先做完,然后再回过头来编码。脑子清空之后你就会发现自己的设计哪些东西是只有自己才明白的。

第三、关注架构方面的事情。比如负载均衡软件、比如数据库集群软件Hadoop,什么的。有机会就试试。软件系统解决问题的方法,不光是编程。其实做系统更重要。

我们这的确是在做产品,我们做的这套产品上线还不到三年,一直修修补补的,改动很大。不过最近的确也在先设计后编码,有些生疏,有时候不知道该如何表达。流程图一直在练习画,uml的东西在慢慢应用,因为目前项目组技术人员有限,灵活使用的还没有,只能先慢慢练习着,hadoop这个肯定会在后期进行应用的,目前还没有去接触,需求有点多,要做的事情也比较多。但是去年的时候就规划出了系统今后要做的事情,其中包括了缓存,负载均衡这块,只是现在时间还不允许。谢谢你的提示 ,很有帮助。  还有你说的合作交流的问题,我觉得这个得在我有一定的技术基础以后才能更好的去交流,目前自己底子不够,捉襟见肘啊。不过我会先按着你的提示进行的,公司一直推流程规范,设计文档肯定是要做的。


好久不见啊。这么些年过去了,过得如何?
其实我做设计除了最开始刚入行的时候画 UML 的图,后来都更偏向于使用手在纸上画设计图,然后拍下来,照片传到项目管理系统里边去。如有必要,照片直接贴到设计文档里边。这是试验的各种方法中最高效的,特别是详细设计的逻辑流程。

我现在就是这么干的! 不过要写到正式文档中去,要是要用工具重画下。
162 楼 Surmounting 2014-12-01  
lulusw212 写道
Surmounting 写道
lulusw212 写道
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。

那么具体怎么做呢?有这么几个提示。
第一、自己主动写规范的文档注释。练多了就不慢了。这可能需要花费你半年时间。

第二、将自己的设计过程和编码过程分开。虽然都是你自己做,还是先做设计,做到一个别人能看懂的地步,然后再做编码。为了防止自己不经意间 * 作 * 弊 * ,也就是设计和编码混在一起,你可以同时做二个东西。两个设计都先做完,然后再回过头来编码。脑子清空之后你就会发现自己的设计哪些东西是只有自己才明白的。

第三、关注架构方面的事情。比如负载均衡软件、比如数据库集群软件Hadoop,什么的。有机会就试试。软件系统解决问题的方法,不光是编程。其实做系统更重要。

我们这的确是在做产品,我们做的这套产品上线还不到三年,一直修修补补的,改动很大。不过最近的确也在先设计后编码,有些生疏,有时候不知道该如何表达。流程图一直在练习画,uml的东西在慢慢应用,因为目前项目组技术人员有限,灵活使用的还没有,只能先慢慢练习着,hadoop这个肯定会在后期进行应用的,目前还没有去接触,需求有点多,要做的事情也比较多。但是去年的时候就规划出了系统今后要做的事情,其中包括了缓存,负载均衡这块,只是现在时间还不允许。谢谢你的提示 ,很有帮助。  还有你说的合作交流的问题,我觉得这个得在我有一定的技术基础以后才能更好的去交流,目前自己底子不够,捉襟见肘啊。不过我会先按着你的提示进行的,公司一直推流程规范,设计文档肯定是要做的。


好久不见啊。这么些年过去了,过得如何?
其实我做设计除了最开始刚入行的时候画 UML 的图,后来都更偏向于使用手在纸上画设计图,然后拍下来,照片传到项目管理系统里边去。如有必要,照片直接贴到设计文档里边。这是试验的各种方法中最高效的,特别是详细设计的逻辑流程。
161 楼 hw_imxy 2014-08-20  
写得很好。
世界上有两种最赚钱的人,一种是真正的生产者,他们用自己独一无二的聪慧、灵感和劳动创造了价值;一种是极其老道的投机者,专门从别人口袋里把钱掏出来放到自己口袋里。他们都受人尊敬、受人瞩目,后一种让自己的生活变得更美好,但是前一种,让整个世界更美好。这也是很多程序员走上这条路的初衷吧
160 楼 springFollower 2014-04-29  
我写了一年多的接口测试case,深深觉得写测试case不如直接去写开发代码
抛出异常的爱 写道
springFollower 写道
有追求的直接去开发了,何必测试呢
Surmounting 写道
话说……
最近我这边招聘白盒测试人员,这叫一个难招……


说实话没写过测试代码,没走查过别人的代码.学习效率会非常低

159 楼 抛出异常的爱 2014-04-28  
springFollower 写道
有追求的直接去开发了,何必测试呢
Surmounting 写道
话说……
最近我这边招聘白盒测试人员,这叫一个难招……


说实话没写过测试代码,没走查过别人的代码.学习效率会非常低
158 楼 springFollower 2014-04-25  
有追求的直接去开发了,何必测试呢
Surmounting 写道
话说……
最近我这边招聘白盒测试人员,这叫一个难招……

157 楼 zhuchao_ko 2013-08-08  
156 楼 lulusw212 2013-05-15  
Surmounting 写道
lulusw212 写道
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。

那么具体怎么做呢?有这么几个提示。
第一、自己主动写规范的文档注释。练多了就不慢了。这可能需要花费你半年时间。

第二、将自己的设计过程和编码过程分开。虽然都是你自己做,还是先做设计,做到一个别人能看懂的地步,然后再做编码。为了防止自己不经意间 * 作 * 弊 * ,也就是设计和编码混在一起,你可以同时做二个东西。两个设计都先做完,然后再回过头来编码。脑子清空之后你就会发现自己的设计哪些东西是只有自己才明白的。

第三、关注架构方面的事情。比如负载均衡软件、比如数据库集群软件Hadoop,什么的。有机会就试试。软件系统解决问题的方法,不光是编程。其实做系统更重要。

我们这的确是在做产品,我们做的这套产品上线还不到三年,一直修修补补的,改动很大。不过最近的确也在先设计后编码,有些生疏,有时候不知道该如何表达。流程图一直在练习画,uml的东西在慢慢应用,因为目前项目组技术人员有限,灵活使用的还没有,只能先慢慢练习着,hadoop这个肯定会在后期进行应用的,目前还没有去接触,需求有点多,要做的事情也比较多。但是去年的时候就规划出了系统今后要做的事情,其中包括了缓存,负载均衡这块,只是现在时间还不允许。谢谢你的提示 ,很有帮助。  还有你说的合作交流的问题,我觉得这个得在我有一定的技术基础以后才能更好的去交流,目前自己底子不够,捉襟见肘啊。不过我会先按着你的提示进行的,公司一直推流程规范,设计文档肯定是要做的。
155 楼 Surmounting 2013-05-14  
lulusw212 写道
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。

那么具体怎么做呢?有这么几个提示。
第一、自己主动写规范的文档注释。练多了就不慢了。这可能需要花费你半年时间。

第二、将自己的设计过程和编码过程分开。虽然都是你自己做,还是先做设计,做到一个别人能看懂的地步,然后再做编码。为了防止自己不经意间 * 作 * 弊 * ,也就是设计和编码混在一起,你可以同时做二个东西。两个设计都先做完,然后再回过头来编码。脑子清空之后你就会发现自己的设计哪些东西是只有自己才明白的。

第三、关注架构方面的事情。比如负载均衡软件、比如数据库集群软件Hadoop,什么的。有机会就试试。软件系统解决问题的方法,不光是编程。其实做系统更重要。
154 楼 Surmounting 2013-05-14  
lulusw212 写道
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。

怎么说呢。别做开发,好的软件人员,十年前就已经不该是开发工作者了。
  尽可能找到做产品,而不是项目的公司。如果是做项目的,最好也是直接出售源代码的那种。这样你受到的训练才正确。在国内这个糟糕的大环境中,最可靠的就是通过看书、看材料,来了解这个世界先进的生产方式是什么。自己逼着自己向这种方式靠拢。这需要你提供很强的意志力与你身边的世界做对。但不这样,你就会被同化。

  实际上工程学最大的讲究,就是与人合作。为此要做很多事情。这是主要的技术能力,就是让别人体会你的心思,并且能够比较容易地体会别人的心思。这种体会不光是通过说话了解身边的人,还包括网络远端异国的合作者们;不止是三四个人,而是上百人。
  能够跨国几百人联合作业,这才是软件人员现阶段的先进工作能力与方式。
153 楼 lulusw212 2013-05-10  
damoqiongqiu 写道
lulusw212 写道
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。

坚持。。。熬。。。
熬 是不是也得有个方式啊 熬 太宽泛了 怎么都能熬啊~
152 楼 damoqiongqiu 2013-05-10  
lulusw212 写道
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。

坚持。。。熬。。。
151 楼 lulusw212 2013-05-10  
快毕业一年了,自己一直在一个小公司里面跟着师傅做项目。跟身边的同学之前总是想多讨论些技术上问题,可是他们都很烦这个,觉得我挺奇怪,有时候我觉得自己是不是有点问题。没事的时候有时候会看看书。可是不知道为啥总是觉得学到的东西太少,总觉得差了很多很多。尽管项目一直很忙一直做不同的需求,现在很多需求师父都交给我了。我觉得也是个承认我的标志了,但是为什么总觉得学到的东西很少很少呢,有时候会迷茫。我很想坚持走这条路,但是身边的朋友觉得我现在又忙又累的,不如找家清闲的公司学。但是,我心里总是在劝自己要稳住,尽管这边很多不尽人意。可不知道为啥总有些舍不得。楼主给我指点指点吧,看你写的文章,估计在这行也有阵子了吧。指点指点小弟,如何选择,如何规划。
150 楼 baojunhu99 2013-04-02  
人才啊啊啊啊
149 楼 心杀心 2013-01-17  
世界上有两种最赚钱的人,一种是真正的生产者,他们用自己独一无二的聪慧、灵感和劳动创造了价值;一种是极其老道的投机者,专门从别人口袋里把钱掏出来放到自己口袋里。他们都受人尊敬、受人瞩目,后一种让自己的生活变得更美好,但是前一种,让整个世界更美好。
---这句话很不错,赞一个
148 楼 jinxiuwei 2012-11-21  
说地很实在,支持一下。
147 楼 Mybeautiful 2012-11-07  
remoteJavaSky 写道
显然有些理想化,我曾经也这么想,可是有些公司,仅仅是利用你的技能,帮他们培训一帮人,然后你可以出局了。虽然我现在依然像文中所说的那样做,但很迷惑啊

说的不错,尤其是公司没什么发展的公司;只想着找更便宜的程序员。
146 楼 remoteJavaSky 2012-11-07  
显然有些理想化,我曾经也这么想,可是有些公司,仅仅是利用你的技能,帮他们培训一帮人,然后你可以出局了。虽然我现在依然像文中所说的那样做,但很迷惑啊
145 楼 莫云哲 2012-11-06  
说地很实在,支持一下。
144 楼 Surmounting 2012-10-29  
话说……
最近我这边招聘白盒测试人员,这叫一个难招……

相关推荐

Global site tag (gtag.js) - Google Analytics