读书感悟

读《这就是软件工程师》有感

一 .架构设计是什么?

简单来说就是把需求进行抽象和分解作为设计架构的人,首先你要知道怎样把同类型的内容抽象出来,还得知道实现目标要分成哪些步骤,以及怎么从大的步骤里切出小模块(设计模式)。

先分为几个大模块分别有各自重要的复杂的功能。再往下你还可以细分出很多子模块,比如客户端和服务端中,,从大到小一层层分下去,这就是分而治之。

高内聚:模块内部的元素(类、方法、函数等)应专注于完成单一职责,彼此紧密相关。

核心思想:一个模块只做一件事,且做好这件事。内部代码高度相关,共同实现明确的目标。

优点:逻辑集中易于理解,修改影响范围小,可以复用

低耦合:模块之间的依赖关系应尽可能弱化,减少直接交互。

核心思想:通过接口、抽象或中间层(如事件、消息队列)解耦模块。避免一个模块直接修改或依赖另一个模块的内部细节。

优点:修改时其他模块不需要修改,模块可以独立测试,可以团队分工没人解决一个模块

划分模块时需要遵循“高内聚,低耦合”原则一每个模块高度内聚,比如相同的功能提出来写出一个函数,模块和模块之间要解耦内聚是说相似的东西都要放在一块,解耦是说两个很不一样的东西要尽扯分开

二.什么才算好代码

1.初级:可读

命名要好——好的命名是有意义的,而不是 Al A24 这种没有意义的名字;

布局清晰一分支尽证少,不要用太多嵌套;注释明确—一写明为什么用这段代码,以及怎么用这段代码,而不是解释这段代

码是什么;一个文件或一个函数的代码量不要太大;代码不要重复;不要有反逻辑,用通用的编码模式进行编码,等等。

可读是对编码最基本的要求。

2.中级:可扩展

可扩展的意思是可维护,意味着我不必因为未来的修改大动干戈,甚至不改主干代码就可以 实现修改。这样就不用因为修改一个东西,或者增加一个功能,全篇修改。

3.高级:可重用

优质的代码没有止境,最高级别的代 码是可重用。 代码也一样 ,优 质的代码写出来,可以用在很多场景里

所谓复杂度,一般由业务逻辑、控制逻辑和数据逻辑组成,一旦把三者揉在一起,程序一定会乱,并且复杂度急速上升,业务逻辑决定了复杂度的下限,控制逻辑决定了复杂度的上限,两者如果缠绕在一起,复杂度就呈现级数攀升

三.预见未来-前瞻知识

在这个阶段,软件工程师的核心是具有前瞻能力是指,你得知道为什么系统今天是这个样子,以及未来它会部分朝着什么样的方向去演进。知道这个行业,语言,技术,产品市场怎么样,未来怎么样,有没有什么优势,对现在的自己有没有帮助,对未来有预判,根据预判对技术选型做一些决策。

如何有前瞻能力?

笫一,你一定要有知识的广度,需要去读论文,读业内各大公司的资料;还要去各个公司做广泛的交流,保证有足峈多的不同的信息进入你的视野

笫二,多做跨行业的交流,跳出自己的圈子,跟其他行业的人交流,特别是投资人、创业者等见多识广的人群

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 面向对象、设计原则、设计模式、编程规范、重构,五者的关系 面向对象,由于它具有丰富的特性,例如继承、多态、封装、抽...
    G桂阅读 803评论 0 0
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,116评论 2 59
  • 学习设计模式不是一蹴而就的事情,需要长时间的积累,在平时写代码的时候多思考,学习设计模式的时候也不要死记硬背,要了...
    tanghomvee阅读 1,579评论 0 2
  • 本文为极客时间《DDD实战》的读书笔记 DDD-基础 DDD基础介绍 微服务设计和拆分的困境 对于微服务的拆分粒度...
    乙腾阅读 1,331评论 0 8
  • 序,前言 重视代码facebook把code review作为重点KPI考核,并采用连坐制。code wins a...
    高稷阅读 2,531评论 0 4