zoukankan      html  css  js  c++  java
  • 阅读笔记五——如何成为优秀架构师

    第一、知识面要广

    其实我认为做架构师的,从来都是CTO储备,因为需要涉及的能力太广。

    做架构,其实最简单的理解就是一句话,就是在有各种限制的情况下想办法解决问题。

    所谓的限制就是性能、稳定性、开发效率、可维护性等因素。

    例如,百度贴吧这种应用场景,每天可能有几十亿次的访问,几千万甚至上亿次的写入。肯定是性能要求为先,可能为了做性能的提升牺牲一部分开发的效率。

    再如,银行的应用场景,不是非常在意用户的体验和访问延迟,但是对于数据的安全性和一致性非常非常重视。这种时候,肯定是安全和稳定优先,性能后面考虑。

    在限制中做权衡,也就是意味着要做大量的选择。但做选择那首先你得知道有哪些选择。

    所谓的性能和安全,除了这几个字之外,具体的技术实施上,总得知道都有哪些方案吧。

    1.例如java体系、php体系、c体系、还有python/nodejs/golang等,各自有各自的优势劣势,你总得有过相关开发经验才能做出正确的选择吧。道听途说是没有发言权的。

    2.虽然现在数据库用的最多的是mysql,但是oracle/pgsql也都有其优势。

    3.现在项目几乎没有不用到大数据的,那么大数据的算法至少得有些理解吧,大数据的平台得有些经验吧。

    4.玩转整体项目还有许多许多的点,例如代码如何管理、上线部署,如何测试保证bug率,系统的监控,服务器部署,灰度发布等等。

    不要听那些一提架构师就好像多么高大上,做的都是些设计师类似的工作,系统设计、软件设计等。那些都是人云亦云YY出来的。

    没有哪个互联网公司让你去专门做设计,因为互联网公司领导们统统无一例外需要都是功能的实现,战略战术想法的实现。

    所有的大型系统架构,全部都是基于面临的问题一步一步解决迭代出来的。没有场景会让人一步到位(甚至哪怕提前一段提前量)去设计一套牛逼系统的,因为世界变化太快,项目如果不赶紧实现,明天可能就挂了,哪有那些闲心去给未来几年做设计。

    所以,做架构师最关键的是对整个项目的把控能力,可以让项目高效率的运转。

    第二、卓越的代码能力

    想要成为架构师,首先得是一个优秀的程序员。怎么样才算优秀的程序员呢?

    光写代码不思考、不学习肯定是不行的。

    最明确的,就是得深入掌握各类数据结构、各类设计模式、计算机网络、操作系统、各种常见的架构模式等。这些提的非常多,但是能做到深入理解的我感觉可能没几个人。

    包括我自己,当年刚开始看设计模式的时候,1个多月就感觉已经全部理解了。但是之后每次或者复习的时候,或者看到写的非常好的代码的时候,重新去温故此方面的知识,都能感到有新的收获、都会有更深的领悟。

    而且,理解也仅仅是开始。如何完完全全的融入自己的代码中,才是关键。

    写代码经常也同样充斥着架构设计的感觉。其实我认为,程序员写代码叫编码或coding,而架构师写代码就叫架构设计。

    因为两者写代码时考虑问题的角度完全不同。程序员可能更多考虑的是如何实现功能,而优秀的程序员才可能会考虑的例如性能、可读性、可维护性的问题。

    而这些对于架构师来说则是必须考虑的,考虑的纬度经常还会更多一些。

    所以,不要想着一步到位的跳过优秀程序员而直接成为架构师。不现实。

    第三、对某些相关领域要有深度

    刚才讲了技术的广度,但是如果什么都知道,但是什么也不善长,没有什么精通的。那依然只能做个程序员。

    那么哪些领域算是关键的领域呢?

    到此基本就由业务方向的不同而区分不同的架构师了。

    例如金融领域的架构师,可能需要金融知识。

    大数据领域,可能对hadoop/spark/hive之类的大数据领域知识要求深一些。

    再如高并发领域,可能对整个系统的性能优化,分布式系统设计等更深入一些。

    第四、要有技术洞见

    这个技术洞见是借用《重新定义公司》里的词。换个易理解的词,就是技术上的远见卓识。

    以事后诸葛亮的方式举几个例子:

    1.当年的京东如果选用的不是windows平台,可能发展比现在好不少。

    2.百度如果不是李XX的目光短浅,总是比市场慢几拍,现在也不致于被AT远远甩开。

    这种事太多太多。

    不要感觉好像很虚幻,如果你现在身为一个创业公司的架构师,你现在的一个貌似正确的决策可能直接导致未来公司的大量损失,甚至倒闭。

    第五、管理能力

    架构师少有不带项目、不带人的,所以管理能力肯定也是必须。

    但管理能力是个很大的主题,这里就不多说了。

  • 相关阅读:
    Educational Codeforces Round 85 D. Minimum Euler Cycle(模拟/数学/图)
    Educational Codeforces Round 85 C. Circle of Monsters(贪心)
    NOIP 2017 提高组 DAY1 T1小凯的疑惑(二元一次不定方程)
    Educational Codeforces Round 85 B. Middle Class(排序/贪心/水题)
    Educational Codeforces Round 85 A. Level Statistics(水题)
    IOS中的三大事件
    用Quartz 2D画小黄人
    strong、weak、copy、assign 在命名属性时候怎么用
    用代码生成UINavigationController 与UITabBarController相结合的简单QQ框架(部分)
    Attempting to badge the application icon but haven't received permission from the user to badge the application错误解决办法
  • 原文地址:https://www.cnblogs.com/cc-9878/p/11052961.html
Copyright © 2011-2022 走看看