zoukankan      html  css  js  c++  java
  • 《架构漫谈》读后感——软件架构师的工作

      软件架构是软件开发中一个非常非常重要的过程。我们都知道在一个软件开发项目中,软件架构师是一个团队的核心,他负责整个软件开发的分工和沟通的安排,组织整个

    团队进行分工合作,高效率的完成软件开发任务。

      在之前的代码编写中,大多数是自己独立开发,编写代码和测试代码。从来没有加入过实际项目开发过程,也少有团队开发分工的经验,所以对这个软件架构的过程一点都

    不了解。在小民哥的强烈推荐下,我十分"情愿"的打开了王概凯的架构漫谈系列博客,准备了解一下架构的内容。

      架构漫谈分为九部分,每一部分都有不同层次的概念和内容。在第一节软件体系结构课上,我们就完成了前四章的阅读和测试。作者在前四章中主要抛出了架构这个概念,

    通过举例的方法,详细解释了架构的出现背景和架构的含义。一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。在最早期,每个人都完全独

    立生活,衣、食、住、行等等全部都自己搞定,整个人类都是独立的个体,不相往来,自然没有分工,也没有架构的概念。但是随着社会的进步,慢慢就形成了群落和氏族,群

    居人口数量变得十分庞大,一旦多人分工配合作为生存的整体,力量就显得强大多了,所以也自然的形成了族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮

    食,有些地方适合产出棉花等,就自然形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。以人类的发展过

    程为例子,我们就得出了架构的概念。把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制

    ,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。

      当然,我们作为人类来说,一定是以我们人类为主体去谈架构的。也就是说架构是建立在人的认知世界的基础上,是用来解决人的问题去提出的一个概念。架构是一个比较

    抽象的过程,因为它看不见摸不着,但对于软件开发来说,是十分重要的。

      架构是解决人的问题的方法。那么如何识别问题呢。作为软件工程师或者架构师,我们大部分时候是要去解决别人的问题。找出问题的主体,是做架构的首要问题。当明白

    了问题是什么后,我们需要探寻问题的原因是什么,解决方向在哪,需要做哪些事情,这是我们完成架构必不可少的基础。

      一开始我们就提到,架构是分工和建立沟通机制的一个过程,分工一定是架构过程中最重要的一部分。

      我们已经知道,随着社会的发展,分工是必然的,为什么呢? 这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化,比如:生活的更舒适,更轻

    松,更安全,占用并享有更多的东西。但是每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长

    的东西。

      我们作为一个软件架构师,切分的内容一定是自己亲自主刀。切分工作一定不是为所欲为切就可以,需要遵守切分的原则。

      1.必须在连续时间内发生的一个活动,不能切分

      2.切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。

      3.切分出来的部分,不应该超出一个自然人的负载

      4.切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的

      5.确保我们不能违反人性,因为维护自己的利益,是每个人的本性

      后面几个部分主要是课后自己观看的,主要谈软件实际开发过程中的架构问题,偏重实践内容。软件是我们日常生活中经常提到的一个概念,我们手机上,电脑上都安装各

    种各样的软件,以保证我们工作和学习的正常进行。这是对于普通使用者来说的,但作为一个软件开发者,我们看待软件的角度就与之天差地别。随着互联网浪潮的冲击,软件

    的要求和规模不再是之前的满足简单工作需要就可以,软件的规模也得到了极大的扩充。随着软件规模的扩大,做好一个软件也就越来越难了。早期的程序员写程序,主要是为

    了帮助自己研究课题。这些程序员熟练了之后,提高了自己的生产力,并发现还可以帮助别人写程序,慢慢软件就变成了一个独立的行业。程序从早期由一个人完成,也逐渐变

    成了由很多不同角色的人共同合作来完成。

      介绍完软件与架构以后,作者就主要谈了架构师在软件开发中扮演的角色。架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用

    ,更好的把利益的调整落到实处。反过来,具备架构师能力的组织领导人,一定是一个很好的领导,这个组织一定是很健康向上的,因为每个人的权利和义务就是比较均等的。

    并且这类领导对于组织成员权利和义务的对等状况会非常的敏感,会及时的调整组织架构,在问题发生之前就解决了。

      看完架构漫谈以后,我们一定觉得架构师是软件开发过程中一个很牛的角色。很多人会觉得架构师只是当领导,分配工作和任务就好了,是不是不需要软件开发专业知识,

    不需要代码编写能力就可以担任呢?这种困扰是错误的,因为你如果不对这个领域有绝对的认识和理解,就不可能充当开发的领导者,至少不是一个合格的领导者。在公司里

    架构师基本上都是从代码编写程序员中挑出最优秀的,最智慧的,对这个领域理解最深的。

      如果我们有心成为一个合格的架构师,就要从现在开始,多学多练。好好提升自己代码能力的同时,一定要多思考,站在一个更高的高度去看待软件开发过程,而不仅仅

    是一个“码农”,代码的堆砌者。每一个程序员都要有成为架构师的梦想,那样你就成为了支配代码的人,而不是被代码支配。

      

  • 相关阅读:
    14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询:
    14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
  • 原文地址:https://www.cnblogs.com/Aduorisk/p/12324945.html
Copyright © 2011-2022 走看看