我们一起来读书吧
关注: 111 贴子: 1,407

  • 目录:
  • 软件及互联网产品
  • 0
    在团队内部建立有效的学习文化和知识分享机制是非常重要的,但同时也会面临很多挑战,这些挑战可能会阻碍团队的学习和发展。 1.缺乏安全感,在一个缺乏透明度的环境中,人民不敢冒险尝试或犯错,因为害怕受到惩罚,这种环境会抑制人们分享知识和经验的意愿。 2.信息孤岛,不同部门或者团队之间缺乏有效的沟通和协作,导致知识碎片化和产生重复劳动。信息碎片化:每个小组对整体的都有自己的理解(一个不完整的描述)、信息重复:每个小
    孟子幻 6-4
  • 2
    第一章作者提供了一个简单的例子,让我们对怎么做重构有一定认知。 感想: 测试的重要性,重构前需要有一个完整的测试集,这样才能保证生产更安全。 需求的变化使重构变得必要,不管是产品需求的变化还是技术需求。 好代码的检验标准就是人们是否能够轻而易举的修改它。 遵循营地法则:保证你离开时的代 码库一定比来时更健康。
    FWAN 6-4
  • 0
    耦合性是我们开发时一直无法避免的话题,这是为什么呢? 其实是因为耦合无处不在,他的形式多种多样,存在数据间、函数间。举个例子:当我们想听音乐时,要先给电器通电再选择想听的音乐,所以播放音乐对通电这一行为有依赖性,时函数之间的耦合。所以从这个例子也可以知道,耦合并不全是不好的,大部分的耦合是业务逻辑的要求,时为了满足正当的需求产生的。这样的耦合是我们需要的,所以对于耦合不要一概而论,只有那些考虑不足
  • 0
    文档 文档是书面知识,其主要目的是帮助读者学习一些东西。并非所有的书面知识都一定是文档,尽管它可以用作书面记录。例如,有可能在一个邮件列表线索中找到一个问题的答案,但线索上的原始问题的主要目标是寻求答案,其次才是为其他人记录讨论情况。 更新文档 如果你发现文件中的错误或遗漏,就把它改正过来 创建文档 确保有一个反馈的机制。如果没有简单直接的方法让读者指出文档过时或不准确,他们很可能懒得告诉别人,而下一个
  • 0
    第三章面向抽象编程 这句话包含两部分含义:“面向抽象编程”本质上是对数据的抽象化 , “面向接口编程”本质上是对行为的抽象化(本章只谈数据的抽象化) 3.1 抽象最讨厌的敌人:new大家要有这种敏感 : 什么时机创建对象,在哪里创建,是很有讲究的 。 为了阐述这个话题 ,我们先看下面这行代码 :Animal animal = new Tiger () ;ShowAnimal(animal); 问题:1、为什么在函数中,不直接传入tiger对象?传入Tiger对象可以更自由地调用tiger的函数,传入animal岂不是
  • 0
    人天生是不完美的——我们常说,人类大多是一个个不同缺点的组成集合。但是,在你了解同事身上的缺点之前,你需要了解自己身上的缺点。我们将要求你反思自己的反应、行为和态度——作为回报,我们希望你能够真正了解如何成为一名更高效、更成功的软件工程师,减少处理与人相关的问题的精力,花更多的时间编写牛逼的代码。 本章的关键思想是,软件开发是团队的努力。要在工程团队或任何其他创造性合作中取得成功,你需要围绕谦逊、
    孟子幻 6-4
  • 0
    #面向抽象编程# #耦合# 第三章 面向抽象编程——玩玩虚的更健康 3.1 所说的抽象 是指减小对象的影响范围 以达到可控的目的(不滥杀无辜) 3.2 依赖注入分为:属性注入 、 构造函数注入 和普通函数注入(脏活让别人干) 确切地说,“依赖注入”是实现“控制反转” 的方式之一。 工厂模式:a.简单工厂模式 b.抽象工厂模式☆ 3.3 抽象的好坏程度: 不是越抽象就越好,而是要根据当前项目情况进行适度抽象,达到一个相对平衡即可!如果过于抽象,使
  • 0
    第三章抽象 1.抽象的敌人:new,为什么new是抽象的敌人,因为使用 new 关键字直接创建对象会导致代码对具体实现的依赖,降低代码的灵活性和可维护性。 2.那怎么消灭new呢?通过依赖注入和工厂模式等设计模式 依赖注入: 通过属性注入、构造函数注入或普通函数注入实现控制反转,避免直接创建对象。 工厂模式: 简单工厂模式和抽象工厂模式帮助封装对象创建的复杂性,将创建对象的任务外包给专门的工厂。 3.抽象到什么程度是根据用户需求来决
  • 0
    参与者模式:在特定的作用域下中执行给定的函数,并将参数原封不动地传递(函数柯里化,apply、call,bind实现) 等待者模式:通过对多个异步进程监听,来触发未来发生的动作。 同步模块模式:请求发出后,无论模块是否存在,立即执行后续的逻辑,实现模块开发中对模块的立即引用。
  • 0
    参与者模式:在特定的作用域下中执行给定的函数,并将参数原封不动地传递(函数柯里化,apply、call,bind实现) 等待者模式:通过对多个异步进程监听,来触发未来发生的动作。 同步模块模式:请求发出后,无论模块是否存在,立即执行后续的逻辑,实现模块开发中对模块的立即引用。
  • 0
    知识共享的重要性 知识共享对于组织的成功至关重要,因为它可以提高问题解决的效率和创新能力。组织内部的专家和知识传播机制共同作用,帮助成员解答问题并促进整体知识水平的提升。 学习的挑战 在没有良好学习文化的组织中,知识共享面临多重挑战: 1.缺乏心理安全:人们害怕在别人面前冒险或犯错,担心因此受到惩罚,导致知识封闭。 2.信息孤岛:组织各部分之间缺乏沟通和资源共享,导致信息碎片化、重复和偏移。 3.单点故障:关键信
  • 0
    等待者模式:等待者模式为我们提供了一个抽象的非阻塞的解决方案, 通过创建Primise 对象,对耗时逻辑的未来状态变化返回一个响应,通过在等待者对象内部捕 获这些响应信息,为耗时较长的操作提供了回调方案,使我们可 以捕获耗时操作完成时或中断时的状态并执行相应的回调方案。 同步模块模式:模块化开发是将复杂的系统分解成高内聚、低耦合的模块,但使用时又像是以组合模式对模块的组合。因此这也使 得系统中的问题 一般出现在局部
  • 0
    等待者模式通过对多个异步任务进行监听,当这些异步任务完成后,会触发未来发生的动作。等待者模式或者说等待者对象是用来解决那些不确定先后完成的异步逻辑的。例如promise里面的all方法,等待了全部的接口返回才会返回成功回调 同步模块模式,在这种模式下,当请求发出后,无论模块是否存在,都会立即执行后续的逻辑,实现对模块的立即引用。其中模块化是将复杂的系统分解成高内聚、低耦合的模块,使系统开发变得可控、可维护、可拓
  • 0
    第四章: 耦合无处不在耦合 :在软件工程中是指模块或组件之间的依赖关系和关联程度。耦合越高,模块之间的依赖性越强,维护和扩展系统的难度也越大。 好耦合是指在模块或组件之间的依赖关系是必要且符合业务需求的。这种耦合通常反映了底层系统的限制和设计选择,是系统设计的自然结果。例如,数据库模块和数据访问模块之间的耦合是必要的,因为数据访问模块需要直接操作数据库。特点: 依赖关系是清晰的和必要的。 依赖关系符合业
  • 0
    等待者模式通过对多个异步任务进行监听,当这些异步任务完成后,会触发未来发生的动作。在这种框架下,当异步进程操作(例如A、B)需要都完成以后,才能进行下一个进程操作(例如C)。它的实用性在于解决了在JavaScript单线程环境中,不能采用阻塞方式处理异步操作的问题,避免了回调地狱的产生,使得异步操作的处理更加清晰和可控。轮询的实现机制有些类似等待者模式。 同步模块模式,在这种模式下,当请求发出后,无论模块是否存在,
    Nicole__ 6-3
  • 0
    首先提到的是if..else语句,if...else 是编程中常用的条件控制语句,用于在满足某些条件时执行特定的代码块。在项目中使用 if...else 可以帮助我们根据条件来决定程序的执行流程。他的优点是很明显的 1. 明确性:if...else 语句提供了清晰的条件判断逻辑,使得代码易于理解和维护。 2. 灵活性:可以根据不同的条件执行不同的代码块,为程序提供了强大的分支处理能力。 3. 普适性:几乎所有编程语言都支持 if...else 结构,因此它非常通用。 ⚠️注意,使
  • 0
    本几章主要讲解了static的详细作用及场景、 通过讲解了几个场景如实现工具包函数,实现单例,实现类的扩展等几个场景,主要用于定义类变量、方法以及代码块。在类变量和方法中,static使其与类的实例无关,即不需要创建对象即可访问。这在设计模式中常用于单例模式和工具类中。 1. static的设计优势 内存管理优化:static变量在类加载时分配内存,仅占用一份内存空间,适合需要共享数据的场景,减少了内存开销。 全局访问:通过类名即可访问st
  • 0
    第十章 第十章讲的是if else。 if else作为条件表达式,其存在的问题是“永无止境的长长链链”和“牵一发而动全身”。 永无止境的长长链链指的是一直通过枚举的方法不断添加判断语句,牵一发而动全身指的是if else与前面的核心模块的作用域是重合的,相互之间存在耦合。 为了避免这些问题可以通过以下方案:1、抽出共性 2、利用多态 3、数据驱动 4、动态类型 第十一章 第十一章讲的是static。static不是面向对象而产生的技术, 是从传统的全局数据
  • 0
    第十章讨论了如何合理使用 if...else 语句,并强调了其重要性以及过度使用可能引起的问题。正确使用 if...else 将提高代码的易读性和可维护性,并有助于避免复杂的条件链和减少代码之间的耦合。使用面向对象的方法也是一种改进策略。此外,可以考虑将条件逻辑替换为映射表或采用设计模式,如策略模式和状态模式,以简化决策流程并使算法独立于实现。 在第十一章中,则讨论了static关键字的功能和适用情境。使用static方法可以提供直接、无须实
  • 0
    34章:等待者模式是通过对多个异步进程监听,来触发未来发生的动作。主要是处理耗时比较长的操作,比如canvas中遍历并操作一张大图片中的每一个像素点、定时器操作、异步请求等,通过创建promise对象,对耗时逻辑的未来状态变化,执行结果返回一个响应。 35章:同步模块模式,是请求发出后,无论模块是否存在,立即执行后续的逻辑,实现模块开发中对模块的立即引用。核心是以分而治之的思想,实现对复杂系统的分解,使系统随着其功能的增
  • 0
    第十章主要讲的是if...else语句的相关特点。if...else语句是编程中不可或缺的工具,但过度或不当使用可能导致代码复杂、难以维护。在设计和编写程序时,应仔细考虑其多面性,并寻求替代方案来简化逻辑和提高代码质量。 多面性: 代码可读性与维护性、避免过长的条件链、减少耦合度、面向对象编程 解决方案: 使用字典或映射:当条件与操作之间存在明确的对应关系时,可以使用字典或映射来替代if...else语句。 策略模式:策略模式定义了一系列
    小小贺 6-3
  • 0
    1.抽象和具体的平衡 a .抽象和具体之间一定有个平衡点,这个平衡点正是应该时刻存在程序员大脑里的一件东西:用户需求 b.你需要做的是精确把握用户需求,提供给用户的是满足用户需求的最根上的那层数据 c.村里的家家户户都要提供一种动物去参加跑步比赛,于是每家都要实现一个 ProvideAnimal 函数。 你家里今年养了一只老虎,老虎属于猫科。三层继承关系如下: public abstract class An工mal { publ工C voidRun(); public class Cat : Animal { public int Jump () ; public class T
    hhrra6 6-3
  • 0
    第三章:面向抽象编程 1)“面向抽象编程”本质上是对数据的抽象化 。 在面向抽象编程中,对new的使用是尤为关键的,既不能限制类型的自由,也不能处处抽象,要在关键且合适的地方抽象。文中提出两种隔离new的方式:控制反转与工厂模式。 控制反转原则:通过将对象的创建和管理职责从应用程序代码中移出,使得程序的结构更加灵活和易于扩展。 比如在设计方法时,在方法的参数类型中采用抽象,将类型的注入权交给调用方法的人,而在形式
  • 0
    《重构-改善及有代码的设计》这本书的第一章中,作者通过一些技术层面的微观实现案例,从细节入手,展示了小调整如何带来直观的设计提升。这一切在初期看起来是合理的,我也曾经如此认为。然而,随着我在产品研发领域工作的时间越来越长,尤其是当我考虑一个业务在十几年间的发展变化时,我开始有了新的思考。在这个过程中,经历了大量员工的来来往往,以及许多业务的新增和无人关注,我逐渐发现可读性的重要性。 在某些情况下,大
    cjs我 5-31
  • 0
    首先介绍了重构的定义:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。本质上说,重构就是在代码写好之后改进它的设计。 在重构前,先检查自己是否有一套可靠的测试集。这些测试必须有自我检验能力。测试可以有效检验重构前后的差异,降低了犯错的概率。 是需求的变化使重构变得必要。如果一段代码能正常工作,并且不会再被修改,那么完全可以不去重构它。请保持代码永远处于可工作状态,小步修改累积起来
    巴顿1968 5-31
  • 0
    重构的必要性 功能扩展的瓶颈:当代码结构混乱,试图为其增加新功能时,会发现这是一个艰巨的任务,甚至可能变得不可能。 代码可读性:如果一个程序的工作原理对团队成员来说难以捉摸,那么它的迭代和维护将变得异常困难,知识的传递也会受到阻碍。 重构的保障条件 测试的重要性:在重构之前,确保有一个强大的测试体系来验证代码的正确性。这些测试应能够自我执行并检测潜在的错误。 测试的即时反馈:养成在重构后立即运行测试的习
  • 0
    1. 函数单一职责 2. 恰如其分地命名,写出人类容易理解的代码的,才是优秀的程序员。 3. 单测是必需的,保证功能,避免引入其他问题,小步修改,防止混乱 4. 好代码的检验标准就是人们是否能轻而易举地修改它
    7600000 5-31
  • 0
    《重构-改善既有代码的设计》 ------------第1章概要----------- 第1章标题为“重构,第一个示例”。作者马丁·福勒通过一个简明易懂的示例,介绍了重构的概念和基本方法。作者面临一个两难困境:要么选择复杂的大型程序作为示例,但描述过于复杂;要么选择简单的小程序,但无法展现重构的价值。最终,作者选择了一个介于两者之间的示例程序——一个戏剧演出团根据观众人数及剧目类型向客户收费,并提供“观众量积分”优惠的程序。 内容摘要 1
  • 0
    重构的必要性:1.如果要给程序扩展功能,但是发现代码没有良好的结构难以修改。 2.经常有迭代的程序,有人需要理解它的工作原理,并且觉得理解起来费劲。 重构的保障条件:确保即将修改的代码拥有一组可靠的测试,这些测试必须有自我检验能力。养成重构后即运行的测试习惯非常重要。 重构的手段: 1.提炼函数是一个常见的可自动完成的重构。 2.函数参数命名变量命名是代码清晰的关键,能够提升代码的可读性。 3.移除局部变量移除局部变
  • 1
    一、重构的定义与重要性 定义:重构是在不改变软件可观察行为的前提下,改善其内部结构的过程。它旨在消除代码中的异味,提高代码的可读性、可维护性和可扩展性。 重要性:随着软件项目的不断演进,代码库会不可避免地变得庞大、复杂和难以管理。重构能够帮助我们及时修复这些问题,保持代码的健壮性和灵活性。同时,重构也是提高团队开发效率、降低技术债务的关键手段。 二、重构的时机与原则 重构的时机:重构并非总是必要的,但
  • 0
    第一章:重构,第一个示例 引言 阅读《重构 - 改善既有代码的设计》第一章,让我深刻体会到代码质量对于软件开发的重要性。Martin Fowler通过一个具体的示例,展示了重构的实际操作和必要性。这不仅帮助我理解了重构的基本概念,更让我看到了改善代码质量的实际路径。 1.1 起点 作者从一个戏剧团的账单生成程序入手,介绍了重构的起点。这个程序的初始版本虽然功能完整,但代码冗长且难以维护。对于任何一个有一定编程经验的开发者来说,这
  • 0
    在第一章节中,作者使用一个简单例子带着我们一步一步了解重构的过程。抛开作者所使用的重构手法不谈,从作者重构的过程中,让我印象较深的有以下几点: 1、可靠的测试,即使某一次变更很简单,作者也会完整的运行所有测试用例来保证这次变更没有影响程序原本的功能。 2、重构的主要目的是为了让代码的可读性提升,不必过于执着于程序的性能,可读性强的代码更容易进行性能调优。 3、重构时要保证每一步都让代码保持在可运行状态,多
    唐瑜tang 5-31
  • 0
    阅读1章的感想: 第1章是入进的阶段,作者拿了一个小例子进行了分享,进行重构的第一步需要一组可靠的测试,用于保证重构不会对正在使用程序出现错误,这一步非常的重要。
  • 0
    第一章通过一个例子来说明了重构的概念,并且这个例子中介绍了几种重构的方法,提炼函数、内敛变量、搬移函数、多态等等; 作者从给出的实例中,一步步给我们展现重构的许多好处,包括: 提高代码的可读性:重构可以使代码更易于理解,从而使程序员更容易阅读和理解代码。 提高代码的可维护性:重构可以使代码更容易修改,从而使程序员更容易添加新功能或修复错误。 提高代码的可扩展性:重构可以使代码更容易扩展,从而使程序员更
  • 0
    第一章笔记整理: 1. 重构的定义 重构是对软件内部结构的一种调整,目的是在不改变软件外部行为的前提下,提高其可理解性,降低其修改成本。重构的核心在于通过一系列小而渐进的变动,逐步改善代码质量。 2. 重构的重要性 重构有助于提高代码的可读性、可维护性和可扩展性。它使得代码更容易理解和修改,从而减少了引入新错误的风险。重构通过改善代码结构,可以显著降低技术债务,提升团队的生产力和代码质量。 3. 何时重构 3.1在添加新
    RRRRRR.... 5-30
  • 0
    阅读第一章的感受: 作者通过第一章主要为了告诉我们,什么是重构?为什么要重构?作者通过一个示例给我们讲解了重构的大致过程;当需求发生了变化或者是整个代码看起来很难让人理解的时候,就需要进行重构;重构是为了让代码看起来更加的容易理解,提升代码的可维护性可扩展性; 重构的过程: 1、需求变化 当需求发生了变更的时候,那么重构就是必须要做的事情;当一段代码它能正常的运行,并且也不会再去调整它的话,那么是不需要
    扯诞🤪 5-30
  • 0
    重构的定义 重构是修改一个软件系统,使其不改变外部行为,但改善其内部结构的一种技术。 简而言之,重构不是改变代码的功能,而是改善代码的结构和可读性,使其更容易理解、维护和修改。 重构的原则 重构遵循以下几个原则: 保持行为不变: 重构必须确保代码修改后,其外部行为与修改前完全一致。 小的改动: 重构应该是一次只进行一个小的改动,以降低引入错误的风险。 自动化测试: 在重构之前,应该编写自动化测试来确保代码的正
    papierss 5-30
  • 0
    阅读1章的感想: 第1章通过一个具体的示例引导读者初步了解什么是重构以及如何进行重构。作者Martin Fowler通过一种循序渐进的方式,展示了如何从一个混乱且难以维护的代码开始,通过一系列的小步重构,将其改造成结构清晰、易于理解和维护的代码。 通过阅读第1章,我深刻理解了重构的重要性和实际操作方法。重构不仅可以提高代码的质量,还能使代码更具可读性和可维护性。最重要的是,重构并不是一次性的大改动,而是一个持续的小步改进
    ROOT. 5-29
  • 1
    简单模版模式:简单模板模式通常用于创建字符串模板,这种模式允许你将变量插入到字符串中,使创建视图更加灵活高效。简单来说就是对于某一类模版相同数据不同的这种视图层,模版是有多个的,解决视图的重复创建,而是用数据去格式化字符串,来动态渲染视图,相对于dom操作来创建视图,更高效,更简洁,性能也更高。这种模式主要包括三个部分:字符串模版库、用正则的方式去格式化字符串、字符串拼接操作。 模板渲染方法: function format
  • 0
    31章:简单模板模式,通过格式化字符串拼凑出视图避免创建视图时大量的节点操做,造成资源消耗大、性能低下、操作复杂等,优化内存开销。主要包含三个部分,字符串模板库、格式化方法、字符串拼接。 32章:惰性模式,是一种优化策略,它推迟了某些高开销的操作,直到真正需要这些操作的结果时才执行。通过延迟计算或初始化,惰性模式可以帮助提高性能,特别是对于那些在程序执行过程中可能并不需要被执行的操作。 惰性模式的核心思想
  • 0
    简单模版模式是一种通过格式化字符串来拼凑出视图的技术手段,避免在创建视图时进行大量的节点操作。被看作技巧型设计模式。它的核心思想是优化性能,减少因逐个创建DOM元素并插入视图而产生的内存消耗。在需要频繁更新视图的场景下很有用。 惰性模式减少代码对环境的重复分支判断,从而提升代码执行性能,我们在按需加载数据、图片懒加载中应用到。 参与者模式指的是一种在特定上下文中执行函数,并确保函数能够访问该上下文数据的
    Nicole__ 5-27
  • 0
    编程和软件工程之间有三个区别,时间、规模和权衡取舍。在软件工程项目中,工程师需要关注时间成本和需要变更,在软件工程中,需要关注规模和效率。最后,最为作为软件工程师,被要求做出更复杂的决策,其结果风险更大,而且往往是基于对时间和规模增长的不确定性的预估。 本书讨论了所有这些主题:一个组织和一个程序员的策略,如何评估和改进你的最佳实践,以及用于可维护软件的工具和技术。谷歌一直在努力打造可持续的代码库和
    孟子幻 5-27
  • 0
    简单模版模式是一种通过格式化字符串来拼凑出视图的技术手段,避免在创建视图时进行大量的节点操作。被看作技巧型设计模式。像我们的sql模版就是其中的一种 惰性模式减少代码对环境的重复分支判断,从而提升代码执行性能,我们在按需加载数据、图片懒加载中应用到。 参与者模式指的是一种在特定上下文中执行函数,并确保函数能够访问该上下文数据的模式。函数在执行时可以访问到该作用域内的数据。这种模式可以动态地更改函数的执行
    CObvious77 5-27
  • 1
    第八章 主要讲函数的种类,通过函数的参数、返回值、传递方式、状态、静态、范型等方面来阐述函数的多样性。函数的参数可以有多个, 以java举例,我们可以用散列表当参数map,也可以用可变参数例如 print(String... args),作者更建议用散列表,原因有三: 1、可变参数最终会内化成一个数组或列表 ,散列表比数组多了一个 key值更具可读性 2、由于没有参数名的区分 ,可变参数之间的顺序经常存在祸合 , 需要依靠顺序来区分它们。而散列表通过 key
  • 0
    第八章讲的是函数,其中讲到有状态函数和无状态函数 1.多次调用同一个函数,每次调用都是彼此独立的。每次调用不受前面调用的影响,也不 会影响后面的调用。 2.如果输入是一致的,那么输出也是一致的。 这就是无状态函数。反之,就是有状态函数。 不引用任何外部变量或资源的纯函数当然是无状态函数,但是无状态函数不一定是纯函数。 因为无状态函数可以访问外部资源,只要这些外部资源是恒定不变的即可。 想要实现无状态函数,必须满
  • 0
    对于java来说,函数(或称为方法)是编程的基础组件,与我们的日常开发是密不可分的,从科学角度上来讲,我们怎样设计函数更科学呢? 首先要说的就是单一职责原则,这个是大家都比较清楚的,既每个函数应该只有一个引起变化的原因,即函数应该只做一件事。如果一个函数承担了过多的功能,那么当需求变化时,这个函数可能需要多处修改,增加了出错的概率。通过将功能拆分到不同的函数中,每个函数只关注一个具体的任务,可以使代码更
  • 0
    抽象类是针对数据的抽象描述,更强调“你是什么”; 接口是针对行为的抽象描述,更强调“你能干什么”。 面相接口编程主要要求: ① 模块间的依赖通过抽象发生 ② 实现类之间不发生直接的依赖关系 ③ 其依赖关系是通过接口或抽象类产生 解耦:接口作为一个抽象层,很好地将使用方与实现方隔离开来,使得两者不再有直接依赖关系,双方的复用性、扩展性(尤其是接口使用方)得到极大提高 分工协作:通过接口使得原本相互依赖的双方得以很好
    犹梦 5-27
  • 0
    第八章讲的是函数,第一部分讲的是函数的参数部分和返回值部分,其中大部分都是一些基本概念,比较重要的就是关于函数参数传递部分。 包含有: 值传递、引用传递、指针传递。 值传递的话在函数内部进行修改不会对实参产生影响(例如Java中的基本数据类型),引用传递在函数内部修改会对实参产生影响(例如Java中传递一个对象),引用传递在函数内部修改会对实参产生影响(例如C/C++的函数传递对象的地址)。第二部分讲的是有/无状态函数

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

本吧信息 查看详情>>

小吧:小吧主共6

会员: 会员

目录: 软件及互联网产品