软件架构师-第5章软件工程基础知识-笔记_软件构件组装 顺序组装 层次组装(1)

3 . 主要敏捷方法简介

(1)极限编程(Extreme Programming, xp ) 。
(2) 水晶系列方法。
(3) Scrum。
(4) 特征驱动开发方法( Feature Driven Development, FDD).

统一过程模型(RUP)

软件统一过程( Rational Unifìed Process. RUP ) 是Rational 软件公创造的软件工程方法。

  1. RUP 的生命周期

9 个核心工作流如下。
· 业务建模( Business Modeling) : 理解待开发系统所在的机构及其商业运作,确保所有参与人员对待开发系统所在的机构有共同的认识, 评估待歼发系统对所在机构的影响。
· 需求( Requirements ) : 定义系统功能及用户界面,使客户知道系统的功能,使开发人员理解系统的需求,为项目预算及计划提供基础。
· 分析与设计(Analysis & Design) : 担需求分析的结果转化为分析与设计模型。
· 实现( Implementation ) :把设计模型转换为实现结果,对开发的代码做单元测试,将不|司实现人员开发的棋块集成为可执行系统。
· 测试(Tcst) : 检查各子系统之间的交互、集成,验证所有需求是侨均被正确实现,对发现的软件质w:代的缺陷进行归挡,对软件质量提出改Jn:建议.
· 部署( Deployment ) :打包、分发、安装软件,升级旧系统:培训用户及销售人员, 并提供技术支持。
· 配置与变更管理(Configuration & Change Management) : 跟踪并维护系统开发过程中产做的所有制品的光辖性和一致性。
· 项目管理C Pr句cct Managcment) : 为软件开发项目提供计划、人员分配、执行、监控等方面的指导,为风险管理提供框架。
· 环境(Environmcnt) :为软件开发机构提供软件开发环境,即提供过料管理和工具的支持。

RUP 把软件开发生命周期划分为多个循环CCycle ) .每个循环生成产品的·个新的版本,每个循环依次出4 个连续的阶段( Phase ) 组成

· 初始( inccption ) 阶段: 定义最终产品视固和业务模型,并确定系统范田。
· 细化( el aboration) 阶段:设计及确定系统的体系结构,制订.丁.作计划扯资源要求。
· 构造(construction) 阶段: 构造产品并继续演进需求、体系结构、计划π 至产品提交。
· 移交( trans itíon ) 阶段:把产品提交给用户使用。

  1. RUP 中的核心概念

· 角色(Ro le ) : Who 的问题。角色描述某个人或一个小组的行为与职责。RUP预先定义了很多角色,如体系结构师( Archi tect) 、设计人员(Designer) 、实现人员
Omplementer ) 、测试员( tester ) 和配置管理人员(Configuration Manager) 等, 并对每一个角色的工作和职责都做了详尽的说明。
· 活动(Activity ) : How 的问题。活动是一个有明确目的的独立工作单元。
· 制品(Artifact ) : What的问题。制品是活动生成、创建或修改的一段信息。也有些书把Artifact翻译为产品、工件等,和制品的意思差不多。
· 工作流( Workflow ) : When 的问题。工作流描述了一个有意义的连续的活动序列,每个工作流产生一些有价值的产品,并显示了角色之间的关系。

  1. RUP 的特点

RUP 是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。

软件开发采用法代和增量的方式有以下好处。
(1) 在软件开发的早期就可以对关键的、影响大的风险进行处理。
(2) 可以提出一个软件体系结构来指导开发。
(3)可以更好地处理不可避免的需求变更。
(4) 可以较早得到一个时运行的系统,鼓舞发团队的士气,增强项目成功的信心。
(5) 为开发人员提供一个能更有效工作的开发过程。

软件能力成舶度模型(Capability Maturity Model for Software, CMM)

该模型框架和表示是刚性的,不能随意改变,但模型的解释和实现有一定弹性。

CMMI (Capability Maturity Model Integration for Software, 软件能力成熟度模型集成)是在CMM 的基础上发展而来的。

CMMI 提供了一个软件能力成熟度的框架,它将软件过程改进的步骤组织成5 个成熟度等级,共包括18 个关键过程域, 52 个过程目标. 3168 种关键时间,它为软件过程不断改进奠定了一个循序渐进的基础。
1 ) Level 1 初始级
处于成熟度级别1 级时,过程通常是随意且混乱的。
2) Level2 己管理级
在该等级下,意味着组织要确保策划、文挡化、执行、监督和控制项目级的过程,并且需要为过程建立明确的目标,并能实现成本、进度和质量目标等。
3) Level3 已定义级
在这一等级,企业能够根据向身的特殊情况定义适合自己企业和项目的标准流程,将这套管理体系与流程予以制度化,同时企业开始进行项目积累,企业资产的收集。
4) Level4 量化管理级
在成熟度4 级,组织建立了产品质量、服务质量以及过程性能的定量目标。成熟度级别3级与4 级的关键|灭别在于对过程性能的可预测。
5 ) Leve15 优化级
在优化级水平上,企业的项目管理达到了最高的境界。

需求工程

软件需求都包含以下几方面的内容。
(1) 用户解决问题或达到目标所前条件或权能( Capability )。
(2) 系统或系统部件要满足合同、标准、规范或其他正式规定文挡所筒具有的条件或权能。
(3)一种反映上面(1)或( 2) 所述条件或权能的文档说明。

软件需求包括3 个不同的层次: 业务需求、用户需求和功能需求( 也包括非功能需求)。

所谓特性(fearure ) 是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求.

需求工程的活动主要被划分为以下几个阶段
(1) 需求获取: 通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的俗求。
(2) 部求分析: 为系统建立一个概念模型, 作为对需求的抽象描述,并 尽可能多的捕获现实世界的语义。
(3)形成需求规格〈或称之为需求文裆化) : 按照相关标准,生成市求模型的文档描述,用户原始需求自作为用户和开发者之间的一个协约,往往被作为合同的附件:软件需求描述规约作为后续软件系统开发的指南。
(4) 需求确认与验证: 以需求规格说明为输入,通过用户确认、复审会议、符号执行、模拟仿真或快连原型等途径与方法,确认和验证需求规格的完整性、正确性、一致性、可测试性租可行性,包含有效性检查、一致性检查、可行性检查和确认可验证性.
(5) 箭求管理:包括吊求文档的追踪管理、变更控制、版本控制等管理性活动。

需求管理是一个对系统白求变更、了解和控制的过程。

需求管理强调的内容如下。
(1) 控制对需求基线的变动。
(2) 保持项目计划与需求一致。
(3) 控制单个需求和需求文档的版本情况。
(4) 管理需求和联系链,或管理单个需求和其他项目可交付产品之间的依赖关系。
(5) 跟踪基线中的需求状态。

需求获取

  1. 需求寂取的基本步骤

1 )开发高层的业务模型
        2 )定义项目范固和高层需求
        3 )识别用户角色和用户代表
        4) 获取具体的需求
        5 )确定目标系统的业务工作流
        6 )需求整理与总结

需求包括功能需求、性能需求、环境甜求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求等。

2 . 需求获取方法

1 ) 用户面谈
        2 ) 需求专题讨论会(会议的人员包括主持人、用户、技术人员、项目组人员。)
        3 ) 问卷调查
        4 ) 现场观察
        5 ) 原型化方法
        6 ) 头脑风暴法

专题讨论会具有以下优点。
(1)协助建立一支高效的团队,围绕项目成功的目标。
(2) 所有的风险京担人都畅所欲言。
(3)促进风险承担人和开发团队之间达成共识。
(4) 揭露和解决那些妨碍项目成功的行政问题。
(5) 能够很快地产生初步的系统定义。
(6) 可以有效地解决不同涉众之间的需求冲突。

需求变更

· 仔细评估[j边议的变更。
· 挑选合适的人选对变更做出判定.
· 变更应及时通知所有相关人员。
· 项目要按一定的程序来采纳需求变更,对变更的过程和状态进行控制-

  1. 变更控制过程

(1)问题分析和变更描述.
(2)变更分析和成本计算
(3)变更实现

需求变更策略:
(1) 所有日,;求变更必须j堕循变更控制过程。
(2) 对于未获得批准的变更,不应该做设计和实现工作。
(3) 变更应该由项问变更控制委员会决定实现哪些变更。
(4) 项日风险i~扭者应该能够了解变更的内容。
(5) 绝不能从项日配置库中删除或者修改变更请求的原始文挡.
(6) 每一个集成的27求变更必须能跟踪到一个经核准的变更请求,以保持水平可追踪性.

  1. 变更控制委员会

变更控制委员会(Change Control Board, CCB) 是项目所有者权益代表,负责裁定接受哪些变更。

变更控制委员会可能包括如下方而的代表。
(1) 产品或计划管理部门。
(2) 项目管理部门。
(3) 开发部门。
(4) 测试或质量保证部门。
(5) 市场部或客户代表。
(6) 制作用户文挡的部门。
(7) 技术支持部门。
(8) 帮助桌面或用户支持热线部门。
(9) 配置管理部门。

变更控制委员会应该有一个总则,用于描述变更控制委员会的目的、授权范围、成员构成、做出决策的过程及操作步骤。

1 )制定决策
制定决策过程的描述应确认:
· 变更控制委员会必须到会的人数或做出有效决定必须出席的人数。
· 决策的方法(例如投票,一致通过或其他机制)。
· 变更控制委员会主席是否可以否决该集体的决定。
变更控制委员会应该对每个变更权衡利弊后做出决定。"利"包括节省的资金或额外的收入、增强的客户满意度、竞争优势、减少上市时间; "弊"是指接受变更后产生的负面影响,包括增加的开发费用、推迟的交付日期、产品质量的下降、减少的功能、用户不满意度。
2) 交流情况
一旦变更控制委员会做出决策,指派的人员应及时更新请求的状态。
3) 重新协商约定
变更总是有代价的,即使拒绝的变更也国为决策行为(提交、评估、决策〉而耗费了资源。

需求追踪
需求跟踪包括编制每个街求同系统元素之间的联系文档

包括其他需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等,是要在整个项目的工件之间形成水平可追踪性。跟踪能力信息使变更影响分析十分便利,有利于确认和评估实现某个建议的需求变更所必须的工作.
需求跟踪提供了由需求到产品实现整个过程范围的明确查阅的能力.

需求跟踪的目的是建立与维护"需求· 设计- 编程. 测试"之间的一致性,确保所有的工作成果符合用户需求。
需求跟踪有两种形式:
(1) 正向跟踪。检查《产品需求规格说明书》中的每个需求是否都能在后继工作成果中找到对应点。
(2) 逆向跟踪。检查设计文档、代码、测试用例等工作成果是否部能在《产品需求规格说明书》中找到出处。正向跟踪和逆向跟踪合称为"双向跟踪"。

系统分析与设计
        系统分析阶段是应用系统思想和方法,把复杂的对象分解为简单的组成部分,找出这些部分的基本属性和彼此之间的关系的过程,其基本任务是系统分析师和用户在充分了解用户需求的基础上,把双方对新系统的理解表达为系统需求规格说明书。
        系统设计的目标是根据系统分析的结果, 完成系统的构建过程。J

结构化方法

SASD (Structured Analysisand Structured Dcs ign ) 方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。

结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生#周期各个不同的阶段,它有结构化分析(SA) 、结构化设计( SD) 和结构化编程( SP) 等方法。

  1. 结构化分析
    结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。

一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。
结构化分析的步骤如下:
(1) 分析业务情况,做出反映当前物理模型的数据流阁C DataFlow Diagram, DFD);
(2) 推导出等价的逻辑模型的DFD;
(3) 设计新的逻辑系统,生成数据字典和基元描述;
(4) 建立人机接口,提出可供选择的目标系统物理模型的DFD;
(5) 确定各种方案的成本和风险等级,据此对各种方案进行分析:
(6) 选择一种方案:
(7) 建立完整的需求规约。
结构化分析的常用手段是数据流图( DFD ) 和数据字典。
1)数据流图
DFD 需求建模方法, 也称为过程建模和功能建模方法。DFD 建模方法的核心是数据流, 从
应用系统的数据流着手以图形方式刻画和表示一个具体业务系统中的数据处理过程和数据流。
DFD 方法由4 种基本元素(模型对象〉组成:数据流、处理/加工、数据存储和外部项。
(1) 数据流( Data Flow ) 。
(2) 处理( Process) 。
(3) 数据存储。
(4) 外部项。

建立DFD 图的目的是描述系统的功能需求。

具体的建模过程及步骤如下。
(1) 明确目标,确定系统范围。
(2) 建立顶层DFD图。
(3) 构建第一层DFD分解阁。
(4) 开发DFD层次结构罔.
(5) 检查确认DFD图.

数据字典
数据字典( Data Dictionary) 是一种用户可以访问的记录数据库和应用程序元数据的目录。

数据字典政重要的作用是作为分析阶段的工具。

数据字典各部分的描述如下
(1) 数据项: 数据流图中数据块的数据结构中的数据项说明。数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:
数据项到描述数据项名,数据项含义说明, 别名,数据类剿,氏度,取值范围,取值含义,与其他数据项的逻辑关系
其中"取值范围" 与其他数据琐的逻辑关系"定义了数据的完接性约束条件,是设计数据检验功能的依据。若干个数据项可以组成一个数据结构。
(2) 数据结构:数据流闺中数据块的数据结构说明。
(3) 数据流:数据流图中流线的说明。数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:
数据流描述={数据流名,说明,数据流来源,数据流去向, 组成: {数据结构} ,平均流量,高峰期流量}
其中"数据流来源"是说明该数据流来自哪个过程,即数据的来源。"数据流去向"是说明该数据流将到哪个过程去,即数据的去向。"平均流量"是指在单位时间(每天、每周、每月等)里的传输次数。"高峰期流量"则是指在高峰时期的数据流量。
(4) 数据存储:数据流图中数据块的存储特性现明。数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述通常包括以下内容:
数据存储描述={数据存储名, 说明,编号, 流入的数据流, 流出的数据流, 组成: {数据
结构} ,数据囊,存取方式)
其中"数据量"是指每次存取多少数据,每天(或每小时、每周等)存取几次等信息。"存取方式"包括是批处理,还是联机处理;是检索还是更新;是顺序检索还是随机检索等。另外"流入的数据流"要指出其来源,"流出的数据流"要指山其去向。
(5) 处理过程: 数据流图中功能块的说明。

  1. 结构化设计

结构化设计(Structured Design, SD) 是一种面向数据流的设计方法

1 )模块结构
系统是一个整体,它具有整体性的目标和功能,但这些日标和功能的实现又是由相互联系的各个组成部分共同工作的结果。

(1) 信息隐藏与抽象。
        信息隐藏原则要求采用封装技术,将程序模块的实现细节( 过程或数据) 隐藏起来,对于不需要这些信息的其他模块来说是不能访问的,使模块接口尽量简单. 
        抽象层次包括过程抽象、数据抽象和控制抽象。
        (2) 模块化。
        在SD方法中,模块是实现功能的基本单位,它一般具有功能、逻辑和状态3个基本属性,其中功能是指该模块"做什么",逻辑是描述模块内部"怎么做",状态是应按块使用时的环境和条件。
        (3) 耦合。耦合表示模块之间联系的程度。
        模块的耦合类型通常分为7 种,非直接耦合、数据耦合、标记耦合、控制耦合、通信耦合、公共耦合、内容耦合
        (4) 内聚
        模块的内聚类型通常也可以分为7 种,功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、时间内聚、逻辑内聚、偶然内聚

在模块的分解中应尽量减少模块的稿合,力求增加模块的内聚,遵循"高内聚、低搞合"的设计原则。

2 )系统结构图

系统结构图CStructure Chart, SC) 又称为模块结构图,它是软件概要设计阶段的工具,反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,即反映了系统的总体结构。

设计的基本步骤如下。
(1) 分析并确定输入/输出数据的逻辑结构。
(2) 找出输入数据结构和输出数据结构中有对应关系的数据单元。
(3) 按一定的规则由输入、输出的数据结构导出程序结构。
(4) 列出基本操作与条件,并把它们分配到程序结构图的适当位置。
(5) 引用伪码写出程序。
详细设计的表示工具有图形工具、表格工具和语言工具。
(1) 图形工具。
利用图形工具可以把过程的细节用图形描述出来。具体的图形有业务流图、程序流程图、PAD ( Problem Analysìs Dìagram ) 阁、NS 流程图(由Nass i 和S hneiderman 卅发, 简称NS) 等。

PAD 的特点如下:
· 使川PAD符号设计山的程序代码是结构化程序代码:
· PAD所描绘的程序结构十分洁晰:
· 用PAÐ图表现周序的逻辑易读、易懂和易记;
· 容易将PAD图转换成高级语言源程序自动完成;
· 既可以表示逻辑,也可用来描绘数据结构;
· 支持自顶向下方法的使用。
(2) 表格工具。
可以用一张表来描述过程的细节,在这张表中列出了各种可能的操作和相同的条件。
(3) 语言工具.

• PDL的优点: 可以作为注释直接插在源程序中;可以使用普通的文本编辑L具或文字处理工具产生和管理; 已经有自动处理程序存在,而且可以山动由PDL生成程序代码。
• PDL的不足:不如图形工具形象直观, 描述复杂的条件组合与动作间对应关系时,不如判定树清晰简单。

  1. 结构化编程

结构化程序设计(Structured Programing, SP)。"面向结构"的程序设计方法即结构化程序设计方法,是"而向ii程"方法的战进,结构上将软件系统划分为轩平功能模块,各模块按要求单独编程,再组合构成相应的软件系统。

4 . 数据库设计

数据库设计是指根据用户的需求, 在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。

数据库设计的内容包括: 需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。

E-R 图提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

E-R 图中的联系存在3 种一般性约束: 一对一约束(联系)、一对多约束(联系〉和多对多约束(联系)

E-R 图的基本作图步骤如下。
(1) 确定所有的实体集合。
(2) 选择每个实体集应该包含的属性。
(3) 确应实体架之间的联系。
(4) 确定实体架的关键字,用下画线在属性上表明关键字的属性组合.
(5) 确定联系的类型,在用线将表示联系的菱形框联系到实体集时

面向对象方法

面向对象( Object-Oriented. OO) 开发方法将面向对象的思想应用于软件开发过程中,指导开发活动,是建立在"对象"概念基础上的方法学。

面向对象开发方法是以用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程,主要包括需求分析、系统分析、系统设计和系统实现4 个阶段。

  1. 面向对象分析
    面向对象的分析方法( Object-Oriented Analysis, OOA) ,是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。

OOA 模型由5 个层次(主题层、对象类层、结构层、属性层和服务层)和5 个活动(标识对象类、标识结构、定义主题、定义属性和定义服务〉组成。

  1. OOA 原则
            OOA 的基本原则包括如下内容。
            (1) 抽象。抽象是从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征。
            (2) 封装。封装就是把对象的属性和服务结合为一个不可分的系统单位,井尽可能隐蔽对
    象的内部细节。
            (3) 继承。特殊类的对象拥有其对应的一般类的全部属性与服务,称作特殊类对一般类的
    继承。
            ( 4) 分类。分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象
    描述。
            (5) 聚合。聚合又称组装,其原则是:把一个复杂的事物看成若干比较简单的事物的组装
    体,从而简化对复杂事物的描述。
            (6) 关联。
            (7) 消息通信。
            (8) 粒度控制。
            (9) 行为分析。

  2. 基本步骤
            OOA 大致上遵循如下5 个基本步骤。
            (1) 确定对象和类。
            (2) 确定结构。结构娃指问题域的复杂性和连接关系。
            (3) 确定主题。主题是指事物的总体概貌和总体分析模型。
            (4) 确定剧性。
            (5) 确定方法。

2 . 面向对象设计
面向对象设计右法(Object-Oriented Oesign, 000 ) 是OOA 方法的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态米实现.

OOD中, 类可以分为3 种类型: 实体类、控制类和边界类。

  1. 面向对象编程

面|句对象程序设计( Object Oriented Programming, OOP ) 是一种计算机编程架构。

OOP 的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。

OOP 达到了软件工程的3 个主要目标: 重用性、灵活性和扩展性。

OOP 的基本特点有封装、继承和多态。

封装是指将一个计算机系统中的数据以及与这个数据相关的一切操作语言(即描述每一个对象的属性以及其行为的程序代码)组装到一起,一并封装在一个有机的实体中,把它们封装在一个"模块"中,也就是一个类中,为软件结构的相关部件所具有的模块性提供良好的基础。

继承是面向对象技术巾的另外一个重要特点,其主要指的是两种或省两种以上的类之间的联系与区别.

从宏观的角度来讲,多态是指在面向对象技术中,当不同的多个对象同时接收到同一个完全相同的消息之后,所表现出来的动作是各不相同的,具有多种形态:

从微观的角度来讲,多态是指在一组对象的一个类中,面向对象技术可以使用相同的调用方式米对相同的函数名进行调用,即使这若干个具有相同函数名的函数所执行的动作是不同的.

4 . 数据持久化与数据库

软件测试

软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

软件测试的目的就是确保软件的质量、确认软件以正确的方式做了用户所期望的事情

测试方法

软件测试方法的分类有很多种,以测试过程中程序执行状态为依据可分为静态测试( StaticTesting, ST) 和动态测试(Dynamic Testing, DT);

以具体实现算法细节和系统内部结构的相关情况为根据可分黑盒测试、白盒测试和灰盒测试3 类;

从程序执行的方式来分类,可分为人工测试( Manual Testing, MT) 和自动化测试( Automatic Testing, AT) 。

测试阶段

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值