自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

原创 npm内部机制与核心原理

npm 最重要的任务是安装和维护开源库。

2024-04-18 23:51:48 1107

原创 精进TypeScript--【类型设计】倾向选择总是代表有效状态的类型

如果你看不到代码所操作的数据或数据类型,代码就很难理解。这就是类型系统的一大优势:通过写出类型,让你的代码的读者可以看到它们,而且这也将使得你的代码变得易懂。

2024-04-06 12:44:17 295

原创 精进TypeScript--提供回调中this的类型

JavaScript 的 this 关键字是整个语言中最令人困惑的部分之一。this 是动态作用域:它的值不取决于它怎么定义,而取决于它怎么调用!

2024-04-05 19:18:25 527

原创 精进TypeScript--优选接口的联合,而不是联合的接口

具有多个属性对于联合类型的接口通常是一个错误的选择,因为它们掩盖了这些属性之间的关系

2024-04-04 22:46:28 473

原创 精进TypeScript--你了解类型(type)和接口(interface)的区别吗?

你了解类型(type)和接口(interface)的区别吗?进来瞅瞅~

2024-04-04 02:50:41 488

原创 精进TypeScript--习惯结构类型(Structual Typing)

JavaScript 本质上属于鸭子类型(duck typed):如果你向函数传递具有所有正确属性的值,那么它就不会在乎如何创建该值。掌握结构类型将有助于你理解“正确”与“错误”,并让你写出更可靠的代码。

2024-04-04 01:10:44 1061

原创 精进TypeScript--理解代码的生成是独立于类型的

理解代码的生成是独立于类型的。

2024-04-03 00:56:44 744

原创 精进TypeScript--使用ECMAScript特性,而非TypeScript特性

ECMAScript和TypeScript 的微妙关系

2024-04-02 00:33:20 539

原创 精进TypeScript--使用async函数代替异步代码的回调

比起Promise更应优先使用async和await。它们能产生更简洁、更直接的代码,并能消除一大类错误

2024-04-01 01:43:40 846

原创 精进TypeScript--避免你的代码被可推断类型弄得混乱不堪

TypeScript类型推断实践:避免你的代码被可推断类型弄得混乱不堪数的返回类型。

2024-04-01 00:05:42 486

原创 精进TypeScript--private真的能隐藏信息吗?

private访问修饰符只有通过类型系统才能被强制执行。它在运行时没有效果,可以被一个类型断言轻松绕过。不要以为它能保持数据的隐蔽性。

2024-03-31 21:57:38 311

原创 精进TypeScript--优先选择类型声明而不是类型断言

优先选择类型声明而不是类型断言

2024-03-31 20:18:32 288

原创 精进TypeScript--选择更精确的字符串类型的替代类型

sting类型的域很大,当你声明一个类型为string的变量时,你应该问问自己更窄的类型是否合适。

2024-03-30 02:10:48 587

原创 精进TypeScript--你了解enum(枚举)吗?

TypeScript赞成使用枚举的理由是,比起直接用数字,枚举提供了更多的安全性和透明度。

2024-03-29 23:11:33 238

原创 精进TypeScript--你了解any类型吗?

Typescript中的any类型有效地静默了类型检查器和Typescript语言服务。它会掩盖真正的问题,有损于开发者体验,并破坏开发者对类型系统的信心。因此,尽量避免使用它!

2024-03-27 00:37:58 999

原创 【架构整洁之道】手札零--设计与架构

设计与架构

2024-01-06 18:33:47 592

原创 什么是云计算

云计算简介

2023-12-19 09:31:50 466

原创 浅谈Python的锁机制

Python多线程threading 模块引锁(Lock)

2023-12-14 21:47:19 485

原创 【Python】SQLAlchemy和数据库

SQLAlchemy ORM

2023-12-14 20:45:08 364

原创 go入门【Map】 -- 贰

哈希表是一个无序的key/value的集合,其中所有key都不相同,通过给定的key可以在常数时间复杂度内检索、更新或删除对用的value。

2023-09-27 20:44:48 85

原创 go入门【切片】 -- 壹

Go的切片类型提供了一种方便而有效的方法来处理类型化数据序列。切片类似于其他语言中的数组,但具有一些不寻常的属性。

2023-09-19 16:42:22 56

原创 go入门 -- 零

Go Modules 是 Go 语言提供的一种依赖管理机制,它可以帮助开发者管理包依赖关系,并提供了一种简单的方法来安装和更新包。原因是:当前使用的 Go 版本已经支持 Go Modules,但是你的代码中的 go111module 指令设置为 off,这意味着 Go Modules 功能被禁用了。每一个模块中都有一个go.mod文件, 文件中有模块的名称,示例第一行:module example.com/greetings。参考官网https://go.dev/learn/3、调用另一个模块的方法。

2023-09-18 19:54:43 1586

原创 【等等】事情有的缓

2023-02-04 13:22:14 91

原创 Angular2中的高级样式特性

Angular2中的视图封装、影子DOM选择器

2022-12-12 15:29:42 292

原创 【如何做好软件实现设计——复用思维】

We can soive any problem by introducing an extra level of indirection.(任何问题加一层间接就可以解决。) ——图领奖获得者, Butler Lampson。

2022-09-24 15:17:21 212

原创 【Javascript继承案例学习:绘制图形】

javascript继承

2022-07-28 01:12:30 738

原创 【前端MVC】如何理解angular的MVC模式

理解MVC模式 近年来,MVC模式也被视为一种方式,来管理日益丰富而复杂的客户端Web开发,Angular就是在这种环境中诞生的。 应用MVC模式的关键是实现关注点分离的关键前提,即应用程序中的数据模型与业务模型和表现逻辑分离。在客户端Web开发中,这意味着分离数据、操作该数据的逻辑以及用于显示数据的HTML元素。结果是客户端应用程序更容易开发、维护和测试。 三个主要构建模块是模型、控制器和视图。下图显示了MVC模式在应用于服务器端开发时的传统阐述。模型一般是从数据库中获得的,而应用程序的目标是为来自

2022-04-28 21:29:12 925

原创 【云原生简介】

  云原生这个词由来已久,IT行业也永远不缺乏新概念。2015年,Pivotal公司的马特·斯泰恩(Matt Stine)提出Cloud Native这一概念,并对云原生的概念进行了详细的阐述。云原生的主旨是构建运行在云端的应用程序,致力于使应用程序能够最大限度地利用云计算技术特性的优势,提供更加优质的应用服务。  云原生也是一种构建和运行应用程序的方法,它充分利用了云计算的优势,重点关注如何在云计算交付模式下创建和部署应用程序。云原生应用适用于公共云和私有云,开发人员可以充分利用当前云计算平台上的资源来

2022-03-31 14:23:46 1971

原创 栈和队列—Python实现基本操作

目录概述应用栈栈抽象数据类型概述栈和队列都是保存数据元素的容器。这两种结构支持的元素访问操作包括存入、查看、元素弹出。栈和队列主要用于在计算过程中保存临时数据,这些数据是计算中发现或者产生的,在后面的计算中可能需要使用它们。栈和队列也是最简单的缓存结构,它们只支持数据项的存储和访问,不支持数据项之间的任何关系,因此栈和队列的实现结构只需要保证元素存入和取出的顺序,并不需要记录和保证新存入的元素和容器中已有元素之间的任何关系。栈是后进先出关系...

2022-02-14 20:00:12 1287

原创 Python字符串—正则表达式

Python语言的正则表达式功能由标准包re提供。利用正则表达式可以较容易地实现许多复杂字符串操作。Python正则表达式采用字符串字面量的形式描述(即引号括起的字符 序列)。从Python语言的角度看它们就是普通的字符串,但在用于re包提供的一些特殊操作时,一个具有正则表达式形式的字符串代表一个字符串模式,描述了一个特定的字符串集合。这类操作就是re包提供的正则表达式匹配操作。原始字符串首先介绍原始字符串(raw string)的概念。原始字符串是在Python里书写字符串文字量的一种形式,这

2022-02-12 16:14:45 5033

原创 链表简介—Python实现基本操作

目录单链表链表操作的复杂度单链表类的实现链表的变形和操作选循环单链表双链表线性表的定义:一些元素的序列,维持元素之间的一种线性关系。实现线性表的基本需要是:能够找到表中的首元素(无论直接或者间接) 从表里的任一元素出发,可以找到它之后的下一个元素把表元素保存在连续的存储区里(顺序表),可以满足这两个需求,其中元素间的顺序关联是隐含的。显然,对象之间的链接也可以看作是一种顺序关联,基于它也可以实现线性表。实现线性表的另一种常用方式就是基于链接结构,用链接关系显式表示元素

2022-02-09 20:30:32 2795

原创 重构手法——简化条件逻辑

程序大部分功能来自条件逻辑,复杂度也大多来自条件逻辑。我们有时候需要借助重构把条件逻辑变得更容易理解。比如:分解条件表达式:处理复杂的条件表达式 合并条件表达式:厘清逻辑组合 以卫语句取代嵌套条件表达式:在主要处理逻辑之前先做检查 switch逻辑:以多态取代条件表达式分解条件表达式(Decompose Conditional)本重构手法其实只是提炼函数的一个应用场景。我们可以对条件判断和每个条件分支分别运用提炼函数// 假设计算购买某样商品的总价(总价=数量x单价),商品在冬季和夏季

2022-02-08 21:32:28 683

原创 重构手法——封装

分解模块时最重要的标准,也许就是识别出那些模块应该对外界隐藏的小秘密了。封装的对象可以包括数据结构、基本类型、临时变量、函数等。常见的封装手法如下:数据结构:封装记录或封装集合 基本类型数据:以对象取代基本类型 临时变量:以查询取代临时变量 函数:组合成类 类内部细节:隐藏委托关系封装记录(Encapsulate Record)记录型结构是多数编程语言提供的一种常见特性。它们能直观地组织起存在关联的数据,让我们可以将数据作为有意义的单元传递,而不仅是一堆数据的拼凑。dui'duix.

2022-02-08 08:49:29 523 1

原创 重构测试体系构筑

重构是很有价值的工具,但只有重构不行。要正确地进行重构,前提是得有一套稳固的测试集合,以帮助我们发现难以避免的疏漏。编写优良的测试程序,可以极大提高我们的编程速度,即使不进行重构也一样如此。1. 自测试代码的价值如果你认真观察大多数程序员的时间,就会发现,他们编写代码的时间仅占所有时间的很少一部分。有时来决定下一步干什么,有时花在设计上,但是花费在调试上的时间是最多的。一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需的时间。确保所有测试都完全自动化,让它们检查自己的测试结果。

2022-01-05 19:08:18 657

原创 代码的坏味道

何时必须重构是没有一个精确衡量的标准的。没有任何量度规矩比得上见识广博的直觉。你必须培养自己的判断力,学会判断一个类内有多少实例变量算是太大、一个函数内有多少行代码才算太长。本章我们举例一些“坏味道条款”,以作参考。1. 神秘命名(Mysterious Name)整洁代码最重要的一环就是好的名字,好的命名能清晰地表达自己的功能和用法。改名可能是最常用的重构手法,包括改变函数声明、变量改名、字段改名。很多人经常不愿意给程序元素改名,觉得不值得费这个劲,但好的名字能节省未...

2022-01-02 15:42:58 476

原创 重构的第一步

如果你要给程序添加一个特性,但发现代码因缺乏良好的结构而不易于进行更改,那就先重构那个程序,使其比较容易添加特性,然后再添加该特性。重构的第一个例子//plays.json...{ "hamlet": {"name": "Hamlet", "type": "tragedy"}, "as-like": {"name": "As You Like It", "type": "comedy"}, "othello": {"name": "Othello", "t...

2021-12-30 01:49:56 229

原创 《重构》——写在前面

高僧有偈云:“时时勤拂拭,勿使惹尘埃”。用这句话来勉励我们这些码农,也是对我们在搬砖的道路上,追求卓越,精进技艺的一种鞭策。何为重构?怎样才能做好重构?这些问题小编也在时时思考和实践,对于马丁.福勒的这本书也是时时翻阅,为了提炼精华,总结要点,方便后面查阅,也为了能跟广大码友有共同切磋,一起进步的机会,后面我会对这本书的精华做些总结,欢迎来踩~识别坏味道、测试先行、行为保持的变更动作,是重构的基本功。重构这门技艺,以及福勒先生撰写《重构》的态度,代表的是软件开发的匠艺--对“正确的做事方式”的重视。

2021-12-23 13:55:26 228

原创 工厂模式—创建型模式

在工厂设计模式中,客户端可以请求一个对象,而无需知道这个对象来自哪里,即使用哪个类来生成这个对象。工厂背后的思想是简化对象的创建,对象的创建和使用解耦。工厂模式的两种形式:一是工厂方法(Factory Method),对不同的输入参数返回不同的对象;二是抽象工厂,它是一组用于创建一系列相关事物对象的工厂方法。1. 工厂方法在工厂方法模式中,执行单个函数,传入一个参数,但并不要求知道任何...

2020-04-02 17:14:02 145

个人总结(面线对象、思维)

个人总结(面线对象、思维)

2022-09-06

【ES6标准入门总结】

【ES6标准入门总结】

2022-03-31

tornado学习

讲解tornado的基础知识,通过简单示例,使用tornado完成基本流程的开发,学习tornado的主要的知识点,在后续课程中会逐个知识点进行深入讲解

2017-09-22

django基础

讲解django的基础知识,通过简单示例,使用django完成基本流程的开发,学习django的主要的知识点,在后续课程中会逐个知识点进行深入讲解

2017-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除