Loading...
墨滴

程序员阿菜

2021/07/03  阅读:38  主题:橙心

架构入门浅谈和书单推荐

架构是什么?怎么学?有哪些分类?有什么内容?

这些问题任何一个拿出来都够写一个月了。

本文主要简单介绍一些架构的前置知识,同时给出一系列涉及架构相关的书籍。

注意:文章源自个人认知,仅供参考,有不合理或者错误的地方,欢迎指出和讨论。

1 我认为的架构

架构就是在适当的时期,进行“分分合合”的过程。

怎么理解适当的时期

  • 大的方面来讲,根据企业发展和业务发展的诉求。举例来说:居委会说每个月有很多通知需要发给社区的居民,想委托你们做一款 APP 可以查看通知消息。这个时期,最要紧的是让居民能收到并且看到通知。而不是搞一个又可以聊天又可以视频,还可以开社区大会的东西出来。当然以后可能会有这些情况。

  • 小的方面来说,根据任务紧急程度,甚至是任务要求的上线时间。这也是需要考虑当前时期,做某些事情是不是合适。比如:上面说的这个通知 APP 能实现查看文字信息,工时仅需要三天,而查看视频需要十五天。这个时候,也是需要考虑当前时期的。

最重要的是,适当的时期,是进行架构时要考虑的首要条件。

怎么理解分合

围绕分而治之去解决复杂的问题,在适当的时候,也有合的操作。

架构怎么分

我们先来分一下“架构”。如果把架构简单分一下,我认为有两种架构。

一种是业务架构,另一种是服务架构。(或者称为系统架构)

  • 业务架构:根据一定的原则和方法论,抽象出业务的流程、模块、数据,把业务“造出来”。
  • 服务架构:利用软件、硬件来支持和保障业务的顺利运行,也就是让业务“跑起来”。

描述有些抽象?那你可以这么想。类似小时候玩的叠纸飞机。

业务架构就是:怎么叠,叠什么形状,能造出个纸飞机。系统架构就是:用什么纸,在哪里飞,如何扔,飞之前要不要哈一口气。让纸飞机真正可以飞起来。

  • 真实的业务架构内容:如何划分领域?如何组织各功能模块?最终呈现是小程序还是 APP?使用什么编程语言?什么框架,框架里面选用什么模式?如何承载数据?数据表如何设计?等等。

  • 真实的系统架构内容:包括使用物理机还是用云主机?自己买机器还是买阿里云的?需要不需要缓存?你的服务容量是多少?可承载多少人同时访问?要不要实时扩缩容?数据怎么保证不丢失?机房光缆挖断了,怎么保证用户依然能访问到?等等

而每种架构里面,核心操作就是分分合合

到底分合什么

分合具体的业务模块、机器资源、软件资源等等。

在业务架构中,比如:你决定开发上文说到的“通知 APP”,那么要做哪些模块?注册登录要不要做?推送服务要不要做?消息汇总列表要不要做?甚至再来说,查看的人可不可以发送消息?到数据层面,用户信息存到一个表合适吗?地址信息里的省市区怎么组织比较好?等等。这都是要考虑的点,做这些考虑的时候,是不是一个“分”的过程?

在服务架构中,支撑业务需要几台机器呀?比如电商场景,分给订单服务的是不是得比分给聊天的机器多呢?我们的服务部署到几个机房呢?能不能支持全球访问呢?这也有分的过程。

合的过程,从业务上来看,省市区信息是不是合并到地址服务比较好?那地址服务是不是合并到物流服务比较好?改昵称改头像的频率很小,是不是共享一些机器资源?降低成本呢?等等

到这里,之前不懂得人,是不是有了一些简单的认识?已经是大神的你,是同意还是觉得哪里有问题呢?无论如何,有思考有收获就好。

2 如何成为架构师?

没有捷径。

一定是从实践中成长起来的。理论结合实践是最好的,因为理论可以让你避开大部分别人踩过的坑。

最重要的,不要放过任何一个业务或者技术问题,都是你思考的好机会。

真实的职业发展路径,作为技术人员来讲,一定是从最底层小开发人员开始,改 bug,写小模块,写大模块,写一个系统,承担某个业务线,成为 CTO 或者专家,解决很多复杂的问题等等。不断学习,不断丰富自己。才成为架构师的。

当然话说回来,人人都能成为架构师。别小看你每一次思考和选择,都是你架构师之路上的垫脚石。

2 书单推荐

常见的计算机书单里,大家豆瓣知乎一搜就有啦。这里就不推荐啦。

注意:以下书籍顺序是从易到难,可以自己选择。

业务架构书单

  • 《企业 IT 架构转型之道:阿里巴巴中台战略思想与架构实战》

    阿菜说:描述中台的前因后果。什么是中台?为什么有中台?以及中台的分类和发展。以阿里巴巴业务为线讲述。

  • 《企业应用架构模式》

    阿菜说:很经典的一本书,虽然书很老,但是里面很多原则和思想,至今仍不过时。稍微有些难度。理论和实践都有。看完会有一个系统性的架构概念。

  • 《业务中台产品搭建指南》

    阿菜说:从头到尾讲述构建电商系统的书,很值得读。五星推荐。

  • 《领域驱动设计》

    阿菜说:这本书是经典书籍,偏理论。个人感觉很难。但是适合不断的回头读,不断的翻看。去理解里面的内容。你会发现时间长了,某些时候,慢慢就理解了。这本书前前后后读了两个月,因为中间总睡着。。。

  • 《实现领域驱动设计》

    阿菜说:书如其名,实战。在领域驱动的指导思想下,真实去做一个项目出来。

  • 《架构整洁之道》

    阿菜说:书很厚,很系统,很详细。不太好读。有很多偏文字性的描述性的知识和原则。适合翻着看。

服务架构书单

  • 《大型网站技术架构 : 核心原理与案例分析》

    阿菜说:入门,知道什么是服务或者系统架构,循序渐进,开阔视野,看完服务架构知识面的广度提升。可以听懂别人说的那些技术名词了。

  • 《从零开始学架构》

    阿菜说:偏系统架构、运维、服务部署、软硬件配合等等,有一些实际的方案,个人认为是上一本的丰富。很不错。

  • 《微服务设计》

    阿菜说:什么是微服务?为什么有微服务?怎么做?有哪些原则?算入门书。读起来很轻松。

  • 《微服务实战》

    阿菜说:和上一本差不多,适合补充阅读。偏向实践。

  • 《中台架构与实现:基于 DDD 和微服务》

    阿菜说:作者自己给出了中台的定义,以及微服务和中台的关系。有理论有实践,适合多次研读。包括中台是什么?中台和微服务怎么结合?怎么实践?真实工作中该怎么应用这些知识?挺好的一本书。五星推荐

有趣:

  • 《大象 UML》 不读之前自己根本不知道 UML 是什么。别人的图都是怎么画出来的。
  • 《算法基础:打开算法之门》 很基础。挺简单的,适合不是那么懂数学的读。学渣的我读懂了。
  • 《计算机系统:基础概念及编程实践》感觉像在复习大学课程。
  • 《代码里的世界观——通往架构师之路》推荐,作者的思考,书籍的内容,都很有意思。就像饭后的雪糕或者甜点。
  • 《代码之外的功夫》 全方位走向技术之路。
  • 《淘宝技术这十年》 比较老,看看淘宝是怎么发展起来的。当课外书看了。
  • 《中台产品经理宝典》 写的很棒,来自一个产品经理的知识和经验。值得读。
  • 《电商产品经理:基于人、货、厂...》 正在读,很有意思,在这之前你可能不知道原来细分起来,有这么多东西。知己知彼。

欢迎一起讨论学习,共同进步。

我是程序员阿菜,祝好。

程序员阿菜

2021/07/03  阅读:38  主题:橙心

作者介绍

程序员阿菜