既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
面向过程
面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ayjixD7M-1625671280263)(https://raw.githubusercontent.com/xkyvvv/blogpic/main/pic1/image-20210707213328596.png)]
面向过程是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。当程序规模不是很大时,面向过程的方法还会体现出一种优势。因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。
面向对象
在日常生活或编程中,简单的问题可以用面向过程的思路来解决,直接有效,但是当问题的规模变得更大时,用面向过程的思想是远远不够的。所以慢慢就出现了面向对象的编程思想。世界上有很多人和事物,每一个都可以看做一个对象,而每个对象都有自己的属性和行为,对象与对象之间通过方法来交互。面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xcCNky9C-1625671280264)(https://raw.githubusercontent.com/xkyvvv/blogpic/main/pic1/image-20210707213503291.png)]
想要详细了解可以看这篇博文:面向过程 VS 面向对象
面向接口编程
接口这个概念我们一定不陌生,实际生活中最常见的例子就是:插座!
我们只需要事先定义好插座的接口标准,各大插座厂商只要按这个接口标准生产,管你什么牌子、内部什么电路结构,这些均和用户无关,用户拿来就可以用;而且即使插座坏了,只要换一个符合接口标准的新插座,一切照样工作!
同理,实际代码设计也是这样!
我们在设计一个软件的代码架构时,我们都希望事先约定好各个功能的接口(即:约定好接口签名和方法),实际开发时我们只需要实现这个接口就能完成具体的功能!后续即使项目变化、功能升级,程序员只需要按照接口约定重新实现一下,就可以达到系统升级和扩展的目的!
模块化编程
模块化是一种处理复杂系统分解为更好的可管理模块的方式。
所谓的模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。模块化开发的基础就是函数。模块化开发使用代码耦合度降低,模块化的意义在于最大化的设计重用,以最少的模块、零部件,更快速的满足更多的个性化需求。
模块化编程的核心思想也正是如此: 将系统的各个功能进行封装,变成一个个独立的模块,其他人只需要使用你所提供的函数和变量等,就可以完成相对应的功能
模块化的本质也就是,新建一个.c和.h文件,
.c文件里面存放着你所构建的函数,功能,等等,而当你想让他可以被其他文件使用时,这时候便需要在对应的.H之中声明,
在外部调用时,只需要#include包含相对应的.h 即可。下图是一个嵌入式软件项目中的程序结构图。博客连接:嵌入式C语言之—模块化编程
软件分层架构
分层架构是运用最为广泛的架构模式,几乎每个软件系统都需要通过层(Layer)来隔离不同的关注点(Concern Point),以此应对不同需求的变化,使得这种变化可以独立进行;此外,分层架构模式还是隔离业务复杂度与技术复杂度的利器。
操作系统和计算机网络的使用了软件分层架构,我们学习操作系统和计算机网络也一般是一层一层的来学习的。
具有良好模块设计的代码,至少分为两种形式:
- 整体设计没有层次之分,但也有独立的子模块,子模块彼此之间耦合甚少,这些子模块构成了一个软件层,共同为上层应用提供服务;
- 整个库/软件拥有明显的层次之分,从最底层,与应用业务毫无相关的一层,到最顶层,完全对应用进行直接实现的那一层,每一个相对高层的软件层依赖于更底层的软件层,逐层构建。
上述两种形式并非完全分离,在分层设计中,某一层软件层也可能由若干个独立的模块构成。另一方面,这里也不会绝对说低层模块就完全不依赖于高层模块。这种双向依赖绝对不是好的设计,但事实上我们本来就无法做出完美的设计。
在软件架构中,经典三层架构自顶向下由用户界面层(User Interface Layer)、业务逻辑层(Business Logic Layer)与数据访问层(Data Access Layer)组成。该分层架构之所以能够流行,是有其历史原因的。在提出该分层架构的时代,多数企业系统往往较为简单,本质上都是一个单体架构(Monolithic Architecture)的数据库管理系统。这种分层架构已经是Client-Server架构的进化了,它有效地隔离了业务逻辑与数据访问逻辑,使得这两个不同关注点能够相对自由和独立地演化。一个经典的三层架构如下所示:
可重用性
代码可重用的精髓,我认为可以用unix哲学的两个点来说明:
Write programs that do one thing and do it well. 写出来的代码只做一件事,并且把这件事作好。
Write programs to work together. 写出来的代码,相互之间要一起协作。
可重用性也是在
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**