image frame

架构师之路

1、前言

     沈剑老师09年入职百度做即时通讯,13年开始才有意识的转型架构师,从即时通讯转到支付系统,克服了种种困难,完成了58同城即时通讯平台,支付系统重构等相关工作,之后不断地学习和进步,最终成为一名优秀的架构师。沈剑老师“身经百战”,很多业务系统设计工作都做过,在这条路上有着自己独特的体会和丰富的经验。下图展示了沈剑老师的任职与所负责的业务经历。

沈剑老师的架构师成长之路

     根据自己十多年的架构师经历,沈剑老师把自己的架构师之路抽象为三个阶段:

     打基础

     寻突破

     建体系

     以下是沈剑老师对这三个阶段所面临的问题与需要注意的重点地方的一些分享。

2、阶段一:打基础

     一般为从业的前3、4年,很难直接成为架构师,毕竟见识与经验尚浅,在语言层面、设计模式层面、业务逻辑层面等等,需要学习的东西还很多。这段阶段以学习技术、积累经验、增加自己的核心竞争力为第一要点,主要是了解工具、了解模式、了解各种玩法。沈剑老师认为语言对做架构设计的影响没有那么大,技术架构的路是相通的。在这个阶段,如果要找一个好的公司,沈剑老师认为需要考虑三个要点:

     是否重视产研:如果公司对于产品技术不重视,不利于这个打基础的阶段。比如百度就是非常重视技术,公司内部有各方面的专家,是非常适合应届生起步的一个公司。

     什么技术体系:公司是否有相对领先的技术栈或者技术理念也需要考虑,有一些公司会固守老旧的技术栈或技术体系,害怕技术革新,这对新人打基础是非常不利的。

     团队成熟度:团队成熟度也非常重要,太年轻的技术栈团队对于职业生涯前两年是不利的。

3、阶段二:寻突破

     第二个阶段是寻突破的阶段。打了三四年的基础之后,在某个方向上可能是半个专家了,这个时候要考虑以后的方向了,是向业务方向发展,还是向管理方向发展,又或者向架构师方向发展。沈剑老师认为不管往哪个方向走,都没有错,但是不能放弃技术,要时刻关注技术,因为无论哪个公司,综合型的人才都是最稀缺的。如果在这个阶段,要考虑换公司,沈剑老师认为需要考虑以下三点:

     快速发展,比成熟稳定好:这个阶段,快速发展的公司一般要比成熟稳定的公司更好,这时候机会更多,成长会更快。

     业务与技术的匹配度:如果想成为技术专家,比如往高并发、大数据方向走,公司的业务与技术的匹配度就非常重要,因为只有在实践中才可以获得最快地成长,有平台才能施展自己的抱负。

     深度or广度:如果要往业务的方向走,需要多关注业务的扩展度。如果要往综合管理的方向走,需要考虑在公司是否有机会带小组,是否能学到业务以外的东西。深度和广度没有绝对的正确,一般来说我们要成为“π”型人才。“π”的两条腿一条腿是技术支撑,一定要在某一方面有深度,成为某一方面的专家;另一条腿是沟通和交流的能力,要有能力去带团队。这个阶段,自己去主导一些项目,做出一些成果,突破自己,证明自己是首先应该考虑的。

3、阶段三:建体系

     工作了8-10以后,不管是往哪个方向走,都要开始建立自己的体系了。在这个阶段,更多地要考虑就不仅仅是工作了,更多的是考虑自己的事业。这个时候注重以下三点:

     平台很重要;

     空间很重要;

     系统性思考,战略性思维。

     作为事业,平台能不能让你自己施展抱负,完成自己的事业、空间够不够大就很重要。这时候要系统性思考,要有战略性思维,要考虑自己未来的路,如何去完成自己的事业。

     总结来说,沈剑老师用一个“干”字总结自己的过去十几年。展开来说,首先就是需要持续学习,不断地去做新的业务,多去交流,多向其他人学习,打好基础,积累自己的核心竞争力。这个过程可能会压力很大,但是收获也会很丰富。其次,做各种业务系统,重要的是要积极主动的去承担工作,不要太在意工资,只要有相对公平的环境就可以,这时候要拼命地干,尽力而为是不够的,要全力而为。

一帮弱智,促成了互联网上最不可名状的低级狂欢

     在互联网时代,尤其是进入移动互联网以来的短视频时代,知识通过互联网走向“市场”,人们不再创造知识,而在“贩卖”知识;互联网也促使各种有害的知识或“伪知识”登上“舞台”甚至进入主流,因为人们衡量知识价值的标准成了金钱和流量。这最大后果是让一群低学历、低素质、无底线的人成为舆论的主流,让谣言、仇恨、戾气替代真相、正义、文明。

一帮弱智,促成了互联网上最不可名状的低级狂欢

不是读书无用,而是你无用

     每隔一段时间,“读书无用”的论调就会出现在人们的生活中。鼓吹者们言之凿凿地举出不少例子:隔壁村的张二,小学都没毕业,生意做得有模有样;刻苦用功十八年的老同学,还是个拿死工资、从牙缝里还房贷的小职员。底气之足,让我瞠目结舌。

     在众声喧哗的读书无用论中,我比较注意三种声音。

     一种读书无用论的鼓吹者,自己真没读过几天书,但或是其他能力突出,或是运气较好,也取得了不错的成就。你的旧友聚会,或许也有这样一种悲凉的酸楚:极没文化的发小,居然成了大款。我们这些读了十七八年书的,除了学位啥也没有。他们给你倒上茅台酒、递来中华烟,再送你一句加了冰块的风凉话:文化能当饭吃啊?不错,沟通能力、交际能力、执行能力,确实很重要,“成功者”不一定都是读书人,但读不读书,在很大程度上决定了一一个人究竟能够走多远。

     另一种读书无用论者,确实读过几年书,甚至还有相当漂亮、镶着金边儿的学历背景。你跟他聊哲学,他能把纯粹理性批判给你讲得头头是道;你跟他谈美学,他能把斯宾诺莎、海德格尔诸人的美学观梳理得脉络清晰。回翻他的在校表现,还真是可圈可点。但眼下,知识和财富之间的转化很不尽如人意,甚至在清贫愤懑、怀才不遇中挣扎。在功利意图的驱使下,读书不是为性情的雕琢、底蕴的贮藏、襟怀的开阔,完全是为换得利益,一旦变现受阻,就觉读书无用。

     这些人怯于面对的事实是: 不是读书无用,而是你自己无用。 你确实是不错的考试选手,确实从字里行间咂摸出了些墨水味,但失去了书本的荫蔽,你再没有半分优势。你的视角局限在那几本偏狭的书本里,却不知大千世界的无限可能。你只能在故纸堆里与前人对话,却不具备在现实世界里周旋的本事。种种无用中,最无用的是将自己的一事无成归结为读书所致——我失败不赖我,赖读书没用,要不是当初浪费那么多时间去读书,也许就有用了。读书无用论,给他们提供了那么舒适、有面子、有理由的庇护所,那么理直气壮地回避了自己的无能。

     种种读书无用的论调中,最可恶的一种是别有用心者。明知开卷有益,却巴不得周围所有人都沉浸在玩乐中虚掷青春。每个人的学生时代,都会有这么几个同学:熬夜的黑眼圈挂在脸上,偏偏大言不惭地告诉别人自己从来不学习。明知课堂所学东西的价值,非要激进地说这种填鸭式的教学毫无意义。他们几乎是人格分裂的——一边拼命地读书,一边一脸厌弃地说读书无用。

     在他们看来,如果读书无用论能大肆风行,那么每多一个信奉者,自己就少一个对手。如果班上的同学都不读书,那么寥寥几个的保研名额非他莫属。如果同年进单位的新人都不读书,那么获提拔擢升机会的更有可能是自己。目光灼灼盯着一己之位,置社会风气于不顾,是为自私。比自私更浓烈的,是自卑的心理底色。这种人看似很有“谋略”,其实最没用,他不敢光明正大地迎接任何一种透明公开的挑战与竞争,只能动用这样卑劣的手腕,遮掩迫切求胜的病态竞争心理。

     在这个涌动着反智情绪的社会中,读书无用论总轻易地受到众多赞扬、读书人的悲凉处境总是被带着嘲讽的态度围观,读书人的负面信息总是被满含鄙夷地放大。说实话,我也被无数次问过,你读北大出来能干什么?不还得跟我一样工作挣钱吗?读那么多书不还得嫁为人妇吗,有什么用?对此,我想说的是:哪怕我们做着同一份工作,我不会同你一样目光灼灼地盯着眼前得失;哪怕我们都将在家庭的琐碎中度过,我知道琐碎之中也有诗意与温情;哪怕我们都将面对生活的苟且,我会为我的子女在嘈杂中开辟一道安静的缝隙。

     而如果我一无所成,我绝不拿读书无用来遮掩我的无用。因为我读过书,油墨已融入骨肉里,而你没有。

底层巨婴父母,一辈子无药可救

     现在很多50,60多岁的父母,其实本质上是个巨婴,他们并不比孩子成熟到哪里去。

     《情深深雨濛濛》里,黑豹子陆振华就是典型的巨婴父亲,依萍因为家里揭不开锅跑去要生活费,因为几句话,结果换来了一顿毒打,最后依萍走投无路,去了歌舞厅上班。

     所谓的巨婴父母,他们只允许别人顺着他们,只喜欢听好话,否则就会脾气暴躁。巨婴父母没有处理冲突的能力,要么语言攻击,要么使用暴力,所以孩子在他们的教育下也很容易走极端,一根筋(庆幸自己没有成为这样的人,反思自己的整个过程,我认为读书和思考很重要,读书和思考几乎是普通人逆天改命唯一的途径了吧)。

     巨婴父母有三种典型特征,如果你不想自己成为巨婴父母,就一定要在生活中注意克制。

1、同理心很弱,觉得自己总是对的

     一般来说,读书太少的人,没有反思习惯的人,同理心都非常弱。上一代50后,60后因为所处时代问题,受教育程度很低,加上是在农村,社会分工不足,普遍同理心比较弱。

     同理心弱的表现是:他们无法理解别人,也无法真正认识自己。比如别人好心指出他的错误,他不会思考对方是不是对的,而是会开始恼羞成怒,甚至是开始破口大骂。

     古代有句话很经典:”唯女子和小人难养也。”因为在古代,女性基本不怎么读书,加上女性比较感性,所以跟他么讲道理基本等于对牛弹琴。而进入21世纪,读书普及后,这个现象好了很多。

     同理心弱的人,一般社会地位都比较低,因为他们不会处理人际关系。而那些敢于认错,敢于自嘲的,往往很受欢迎,所以最后他们混的都普遍不错。

2、对任何人都不尊重,包括孩子

     巨婴父母一般不会尊重任何人,但是他们很懂得欺软怕硬。

     在孩子很小的时候,巨婴父母经常口头谩骂,甚至暴揍孩子。他们是“棍棒底下出孝子”的忠实信徒,本质上他们根本不懂如何教育孩子,而使用暴力来欺负弱小的孩子,倒是从小耳濡目染。

     其实巨婴父母也挺可怜,他们的父母也是巨婴。所以巨婴父母培育巨婴父母,但是他们绝对不会认为自己是巨婴,而是认为自己是一个合格的普通父母。

     所以开头说,陆振华是巨婴父母,就是这个道理,他们本质上除了自己,谁也不放眼里。他们骨子里缺乏对生命的尊重,对孩子的尊重。他们很多人都把孩子当做是私有财产,想怎么处置怎么来。

     所以在这种高压环境下,巨婴父母的孩子长大后一般很缺爱,对人又比较冷漠,和那些正常有爱家庭的孩子,一眼就可以区别开来。

3、自卑懦弱,敏感而情绪化,缺乏自我控制力

     一般来讲,6岁以下的小孩缺乏情绪控制能力,但是如果父母会正面教育他们,给他们提供一个好的榜样,孩子也会慢慢成熟。12岁左右的小孩,情绪管理能力其实和成年人不会差距太大。

     而在巨婴父母的教育下,因为父母缺乏情绪管理能力,经常把负面情绪带给孩子,所以孩子的情绪也会经常波动。

     很多巨婴父母自卑懦弱又敏感,一旦被家人指责,就容易发脾气。然后他们还会把自己的情绪差怪罪给家人,其实家里所有人都是巨婴父母的受害者。

     很多人说娶老婆一定要娶一个原生家庭幸福的,情绪稳定的,因为娶一个情绪稳定的,这个家庭里的三代人也许不会大富大贵,但是起码拥有岁月静好。

     如果娶一个原生家庭父母天天吵架的,那么她的脾气大概率好不到哪里去。然后呢?你这个家庭里的三代人都会被她搞得鸡犬不灵。

4、最后的话

     这个世界最大的漏洞在于,生养孩子不需要任何资格和学习,所以才有那么多巨婴父母的产生。

     如果你的父母是巨婴,那么很遗憾,你这辈子想要改变命运,一定要远离巨婴父母,一定要多读书,多和成熟稳重的人来往,否则大概率是重复你的父母之路。

     如果父母是巨婴,那么尽量不要太早结婚,否则最惨的是无辜的孩子。

对于新岗位的苦恼

       最近岗位上发生了调整。原平台开发的主职不变,在项目上的兼职从手机银行调整为小程序平台的技术经理,主要任务是基于开发平台对小程序做技术架构改造。但是一周了解下来,外包公司开发人员的专业素质和职业素养令我感到担忧,我没有把握在这些人的配合下,能将这件事情做好。举例如下:

  • 网关作为一个全局性的流量收口,主要承担协议转换、限流熔断等服务治理、鉴权等功能。但是网关服务中,被堆积了大量的业务逻辑:

网管服务中的大量业务代码

  • 缺少准入校验导致的大量的数据权限越权访问:

准入校验

  • 编码风格惨不忍睹:

编码风格

  • 逻辑不清:

逻辑不清

一个非常好用的settings文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>pentaho</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<file.encoding>UTF-8</file.encoding>
</properties>
<repositories>
<repository>
<id>pentaho-public</id>
<name>Pentaho Public</name>
<url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>pentaho-public</id>
<name>Pentaho Public</name>
<url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>aliyun</id>
<properties>
<file.encoding>UTF-8</file.encoding>
</properties>
<repositories>
<repository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>activiti-repos2</id>
<properties>
<file.encoding>UTF-8</file.encoding>
</properties>
<repositories>
<repository>
<id>activiti-repos2</id>
<name>Activiti Repository 2</name>
<url>https://app.camunda.com/nexus/content/groups/public</url>
</repository>
</repositories>
</profile>
<profile>
<id>mvnrepository</id>
<properties>
<file.encoding>UTF-8</file.encoding>
</properties>
<repositories>
<repository>
<id>mvnrepository</id>
<name>mvnrepository</name>
<url>http://www.mvnrepository.com</url>
</repository>
</repositories>
</profile>
<!-- Spring Snapshot Profile -->
<profile>
<id>spring-snapshot</id>
<properties>
<file.encoding>UTF-8</file.encoding>
</properties>
<repositories>
<repository>
<id>spring-snapshot</id>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshot</id>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

<pluginGroups>
<pluginGroup>org.pentaho.maven.plugins</pluginGroup>
<pluginGroup>com.pentaho.maven.plugins</pluginGroup>
<pluginGroup>com.github.spotbugs</pluginGroup>
</pluginGroups>

<activeProfiles>
<activeProfile>aliyun</activeProfile>
<activeProfile>pentaho</activeProfile>
<activeProfile>activiti-repos2</activeProfile>
<activeProfile>mvnrepository</activeProfile>
<activeProfile>spring-snapshot</activeProfile>
</activeProfiles>
</settings>

星际穿越混剪

新装Ubuntu之后设置SSH的root登录

1、确定一下我们的root用户存在

1
2
# 输入命令后会提示你输入密码,不用管密码对不对,随便输入,如果没有此root用户他会提示你
su root

2、修改root密码

1
2
# 他会让你输入新密码,然后就是让你再次输入新密码
sudo passwd root

3、安装SSH

1
sudo apt-get install openssh-server openssh-client;

4、允许root用户通过SSH连接

1
2
# 编辑配置文件
sudo vim /etc/ssh/sshd_config

     作出如下修改:

1
2
3
#PermitRootLogin prohibit-password
# 下面这是我们新添加的一行
PermitRootLogin yes

5、重启SSH服务

1
service sshd restart
  • Copyrights © 2017 - 2025 杨海波
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信