自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jock2018的博客

药学界的IT爱好者

  • 博客(165)
  • 收藏
  • 关注

原创 代码坏味道与重构之纯稚的数据类和被拒绝的馈赠

代码坏味道与重构之纯稚的数据类和被拒绝的馈赠

2022-10-17 08:15:00 869 1

原创 代码坏味道与重构之过大的类和异曲同工的类

代码坏味道与重构之过大的类和异曲同工的类

2022-10-11 08:15:00 700

原创 代码坏味道与重构之中间人和内幕交易

代码坏味道与重构之中间人和内幕交易

2022-10-10 08:15:00 952

原创 代码坏味道与重构之临时字段与过长的消息链

代码坏味道与重构之临时字段与过长的消息链

2022-10-09 08:15:00 375

原创 代码坏味道与重构之冗赘的元素和夸夸其谈的通用性

代码坏味道与重构之冗赘的元素和夸夸其谈的通用性

2022-10-08 08:15:00 592

原创 代码坏味道与重构之重复的 Switch 和循环语句

代码坏味道与重构之重复的 Switch 和循环语句

2022-10-07 09:30:00 866

原创 代码坏味道与重构之数据泥团和基本类型偏执

代码坏味道与重构之数据泥团和基本类型偏执

2022-10-06 18:31:33 1256

原创 代码坏味道与重构之霰弹式修改和依恋情结

霰弹式修改指每遇到某种变化,你都必须在许多不同的类内做出许多小修改。

2022-09-04 14:43:52 1857

原创 代码坏味道与重构之可变数据和发散式变化

当处于多个不同上下文的外部行为变化时,都会引起同一个类或模块的修改,影响了代码的可读性和可维护性。:在一处修改数据,却在另一处造成难以发现的破坏,影响可维护性。:对数据的修改经常导致出乎意料的结果和难以发现的bug。:某个模块经常因为不同的原因在不同的方向上发生变化。:应用数据不变性,不可变性是强大的代码防腐剂。:分离变化,职责单一,结构更稳定。声明:本文仅用于学习交流。发散式变化的常见特点。

2022-09-03 22:16:15 1048

原创 代码坏味道与重构之全局变量

全局变量的作用范围是全局,通常指类变量或单例等,可以在代码中任一角落修改的数据,而且没有任何有效的机制检测出全局变量修改的位置。因此全局变量引发的bug,都是一些诡异的bug,难以定位。

2022-09-02 21:55:01 428

原创 代码坏味道与重构之过长参数列表

过长参数列表是指`函数入参过多或存在不必要的参数`。它往往意味着函数功能不单一,抽象不合理,代码的封装性不够好。

2022-08-29 08:30:00 403

原创 代码坏味道与重构之过长函数

根据`职责单一原则`,一个函数应该只做一件事,最大化提升函数复用能力;一个函数,所做的事情应该都在一个抽象层次,降低人大脑的理解成本,从而提升代码可读性和可维护性,建议一个函数不超过50行。...

2022-08-28 20:18:10 446

原创 代码坏味道与重构之重复代码

重复代码在绝大部分情况下都是代码坏味道,但是有时重复代码可以达到解耦的目的,如果消除了重复就会导致耦合,这种情况,重复是合理的。

2022-08-27 21:55:20 825

原创 代码坏味道与重构之注释

注释是代码无法自注释的无奈之举,它必须为提升代码可读性和可维护性存在,否则注释不应该存在!

2022-08-27 08:15:00 351

原创 代码坏味道与重构之神秘命名

作为非科班自学 Python,毕业转 Java 的程序员,工作至今两年有余。本持着对技术的追求,对代码的精益求精,通过不断学习,总结了一些代码的坏味道和重构的技巧,因此将其作为系列文章分享出来,供大家交流讨论,共同成长进步!......

2022-08-26 21:43:49 359

原创 Git 经验总结及 Git & GitHub 学习指南

本文主要分为两部分,前一部分是本人学习和工作中使用 Git 的总结经验,后半部分是总结的 Git & GitHub 的学习指南。如果想直接体系学习,可以直接按照指南路线学习。如果你有经验,可以看看第一部分,看看我工作和平时怎么使用 Git 的,看完后如果你有更好的解决方案,或者建议,欢迎评论区交流学习。...

2022-08-08 08:28:24 1221

原创 【爬虫实战】Scrapy + xpath 爬取江西省 23 万+挂网药品数据

声明本爬虫仅供学习交流使用,请勿用作商业用途。爬取的时候注意控制速度,勿对网站造成攻击。1. 实现说明该政府网站没有任何反爬虫措施,直接抓取即可,注意不要对网站造成攻击。思路:通过 scrapy 抓取网页;利用 xpath 解析网页,提取药品信息;将提取的信息写入 csv 文件;观察网页结构,构造下一页 url;新的 url 重复 1-4 步。2. 一些细节说明主要参考文档:Scrapy 官方文档Scrapy 中 xpath 的使用使用的一些命令:创建一个 scrap

2021-10-20 23:42:56 636 2

原创 《设计模式之美》导读学习笔记

1. 为什么要学习设计模式?应对面试。告别写被别人吐槽的烂代码。提高复杂代码的设计和开发能力。让读源码、学框架事半功倍。为职场发展做铺垫。早就是优势!2. 从哪些维度评判代码的好坏?可维护性。可读性。可扩展性。灵活性。简洁性。可复用性。可测试性。其中最重要的提的最多的是:可维护性、可读性、可扩展性。3. 如何写出高质量的代码?需要掌握更加细化、更加能落地的编程方法论,包括:面向对象设计思想、设计原则、设计模式、编程规范、重构技巧等。4. 面向对象、设计原则、设计模

2021-09-27 08:08:00 183

原创 【每日学一技】【002】Python中传值还是传引用

1. 前言之前有个困惑,Python 到底传的是值还是引用?不管在哪门编程语言,可能都会遇到类似的问题。Python 中究竟传的是值还是引用呢?本文将主要介绍今日所学:Python 中的变量和 C 中变量的区别,从而解答 Python 中到底是值传递还是引用传递Python 中 is 和 == 的区别?2. C 中的变量 VS Python 中的变量在静态语言 C 语言中,变量是代表一个地址,它相当于某个内存地址的别名,它可以用来存储指定的数据类型。C 中创建一个变量必须先声明变量的类型,看

2021-01-19 00:30:13 255

原创 【每日学一技】【001】Python中一切皆对象

1. 前言今天主要是学习了 Python 中的对象(object)。编程是一种抽象建模的过程,在 Java 中对象的概念贯彻的非常彻底,每个 Java 类就是一个对象,充分体现了面向对象编程。Python 作为一门高级语言,自然也可以面向对象编程,也可以面向过程编程。了解 Python 的人基本都听说过一句话:Pyhton 中一切皆对象,老实说,以前我只记得这句话,但是并没有什么见解,仅仅停留在字面上,这不利于自己的成长,对于一名有追求的工程师,吃饭的家伙必须熟悉,因为也就有了这篇文章,这篇文章将介绍:

2021-01-17 23:36:13 226

原创 正则学习笔记

正则学习笔记1. 前言2. 正则基础2.1 正则中的元字符2.2 正则中的 4 种常用模式2.3 正则中的分组和引用3. 正则引擎原理4. 正则使用小结5. 巨人的肩膀1. 前言正则表达式可以被视为一门短小的编程语言,在文本处理上有着独特的优势,可以说易学难精。(PS:这段是碎碎念,可以跳过)以前自己也学过一段时间正则,并且也在一些场景简单用过正则,但是自己并未真正入门正则。直到这次,学完了极客时间专栏《正则表达式入门课》以及细读了《精通正则表达式》前 4 章,自己才真正觉得正则入门了。因为极客时间专

2020-07-20 00:49:24 397

原创 全面了解 Python 中的反斜杆

本文全面介绍了 Python 中反斜杆(\)的用法,包括原始字符串和普通字符串,repr() 和 str() ,\ 作为转义符,\ 作为续行符,\ 在字符串转义和正则表达式转义中的过程及注意事项等。阅读本文预计 6 min.全面了解 Python 中的反斜杆1. 前言2. Python 中的 `\`2.1 `\` 作为转义符2.2 `\` 作为续行符2.3 普通字符串 VS 原生字符串2.4 Python 中 `\` 一些让人头疼的细节3. 正则表达式字符串中的 `\`4. 总结5. 巨人的肩膀1..

2020-06-24 17:53:14 12487 2

原创 《Fluent Python》学习笔记:第 10 章 序列的修改、散列和切片

本文主要是 Fluent Python 第 10 章的学习笔记。这部分主要是介绍了将 Vector 类一步步升级,实现集合类型常用的特殊方法 __len__ 、__getitem 、__hash__、__eq__、__format__ 等。《Fluent Python》学习笔记:第 10 章 序列的修改、散列和切片10.1 Vector 类第 1 版:与 Vector2d 类型兼容10.2 Vector 类第 2 版:可切片的序列10.3 Vector 类第 3 版:动态存取属性10.4 Vector.

2020-05-29 18:54:21 392

原创 《Fluent Python》学习笔记:第 9 章 Pythonic 对象

本文主要是 Fluent Python 第 9 章的学习笔记。这部分主要是介绍了如何实现一个符合 Python 风格的类,包括常见的特殊方法、__slots__、@classmethod 和 @staticmethod 装饰器、Python 私有属性和受保护属性的用法、约定和局限等。《Fluent Python》学习笔记:第 9 章 Pythonic 对象9.1 对象表示形式9.2 再谈向量类9.3 备选构造方法9.4 classmethod 和 staticmethod9.5 格式化显示9.6 可散.

2020-05-29 12:50:15 366

原创 《Fluent Python》学习笔记:第 8 章 对象引用、可变性和垃圾回收

本文主要是 Fluent Python 第 8 章的学习笔记。这部分主要是介绍了变量、引用、对象、深拷贝、浅拷贝、垃圾回收等。本章虽然枯燥,但是非常有用。《Fluent Python》学习笔记:第 8 章 对象引用、可变性和垃圾回收8.1 变量不是盒子8.2 标识、相等性和别名8.3 默认浅拷贝8.5 del 和垃圾回收8.6 弱引用巨人的肩膀8.1 变量不是盒子在 Python 中变量是标签(label),不是盒子(box)。Python 中的变量是引用式变量,类似于 Java 中的引用式变量,.

2020-05-28 21:55:58 307

原创 《Fluent Python》学习笔记:第 7 章 函数装饰器和闭包

本文主要是 Fluent Python 第 7 章的学习笔记。这部分主要是介绍了使用闭包、变量作用域、自由变量、nonlocal、装饰器原理、装饰器的使用等。《Fluent Python》学习笔记:第 7 章 函数装饰器和闭包7.1 装饰器基础知识7.2 Python 什么时候执行装饰器7.3 使用装饰器改进“策略”模式7.4 变量作用域7.5 闭包7.6 nonlocal 声明7.7 实现一个简单的装饰器7.8 标准库中的装饰器7.9 叠放装饰器7.10 参数化装饰器扩展阅读巨人的肩膀装饰器(de.

2020-05-28 16:07:02 687

原创 《Fluent Python》学习笔记:第 6 章 使用一等函数实现设计模式

本文主要是 Fluent Python 第 6 章的学习笔记。这部分主要是介绍了使用一等函数实现策略模式和命令模式等。《Fluent Python》学习笔记:第 6 章 使用一等函数实现设计模式6.1 案例分析:重构“策略”模式6.2 “命令”模式巨人的肩膀6.1 案例分析:重构“策略”模式《设计模式:可复用面向对象软件的基础》对策略模式的总结如下:定义一系列算法,把它们一一封装起来,并且使它们可以相互替换。本模式使得算法可以独立于使用它的客户而变化。电商领域中,根据客户的属性或订单中的商.

2020-05-27 21:24:35 244

原创 《Fluent Python》学习笔记:第 5 章 一等函数

本文主要是 Fluent Python 第 5 章的学习笔记。这部分主要是介绍了一等对象的条件、一等函数的表现、高阶函数、函数式编程、函数注解等。《Fluent Python》学习笔记:第 5 章 一等函数5.1 把函数视为对象5.2 高阶函数5.3 匿名函数5.4 七大可调用对象5.5 用户定义的可调用类型5.6 函数内省5.7 从位置参数到仅限关键字参数5.8 获取关于参数的信息5.9 函数注解5.10 支持函数式编程的包巨人的肩膀在 Python 中函数(function)是一等对象(first.

2020-05-27 18:18:56 294

原创 《Fluent Python》学习笔记:第 4 章 文本和字节序列

本文主要是 Fluent Python 第 4 章的学习笔记。这部分主要是介绍了 Unicode 字符串、二进制序列、二者之间转换时使用的编码、处理编码错误、处理文本文件、 Unicode 规范化比较等。《Fluent Python》学习笔记:第 4 章 文本和字节序列4.1 字符问题4.2 字节概要4.3 基本的编解码器4.4 理解编码问题3.5 处理文本文件4.6 为了正确比较而规范化 Unicode 字符串巨人的肩膀4.1 字符问题字符(character)的最佳定义是 Unicode 字符.

2020-05-27 15:16:46 271

原创 《Fluent Python》学习笔记:第 3 章 字典和集合

本文主要是 Fluent Python 第 3 章的学习笔记。这部分主要是介绍了字典和集合,以及字典背后的散列表。

2020-05-27 09:06:21 324

原创 初探 sort 方法和 sorted 内置函数

本文主要介绍 Python 中 sort 方法和 sorted 函数的基本用法、高级用法、Timsort 算法的简单介绍、二者异同等。阅读本文预计 6 min.初探 sort 方法和 sorted 内置函数1. 前言2. sort 方法和 sorted 函数的基本用法3. 可选仅限关键字参数 reverse4. 可选仅限关键字参数 key5. operator 模块的使用6. sort 方法和 sorted 函数背后的排序算法7. sort 方法和 sorted 函数的异同8. 巨人的肩膀1. 前言.

2020-05-20 17:54:43 1153

原创 《Fluent Python》学习笔记:第 2 章 序列组成的数组

本文主要是 Fluent Python 第 2 章的学习笔记。这部分主要是介绍了序列、列表、元组的一些高级用法。《Fluent Python》学习笔记:第 2 章 序列组成的数组2.1 内置序列分类2.2 列表推导和生成器表达式2.2.1 列表推导和可读性2.2. 列表推导式 VS filter and map2.2.3 笛卡尔积2.2.4 生成器表达式2.3 元组不仅仅是不可变列表2.3.1 元组和记录2.3.2 元组拆包2.4 切片2.5 序列拼接(+和\*)2.6 序列的增量赋值2.7 lis.

2020-05-20 14:09:16 334

原创 初探Python字节码和dis模块

本文主要介绍 Python 字节码、Python 虚拟机内幕以及 dis 模块的简单应用。阅读本文预计 10 min.初探Python字节码和dis模块1. 前言2. Python 字节码2.1 汇编与反汇编2.2 什么是 Python 字节码呢?2.3 为什么需要 Python 字节码?3. Python 虚拟机内幕4. dis 模块4.1 访问和理解 Python 字节码4.2 dis() 方法5. 更多的推荐6. 巨人的肩膀1. 前言了解 Python 字节码和 Python 虚拟机运行的知.

2020-05-10 08:11:49 3981 1

原创 一文了解Python错误、异常和文件读写

本文将主要介绍 Python 的语法错误、异常、文件的读取等基础知识。阅读本文预计需要 15 min一文了解Python错误、异常和文件读写1. 前言2. 语法错误3. 异常3.1 异常的定义3.2 异常的处理3.3 抛出异常3.4 用户自定义异常3.5 定义清理操作3.5 小结4. 文件4.1 文件的读写4.2 文件对象的方法4.3 大文件的读取5. 巨人的肩膀1. 前言错误和异常,以...

2020-05-09 08:35:14 1321

原创 一文了解Python面向对象

本文将主要介绍 Python 面向对象,包括类定义、各类属性、各类方法、继承、多态、封装、单例模式等。阅读本文预计需要 30 min一文了解Python面向对象1. 前言2. 面向对象 VS 面向过程3. 初窥类3.1 类的定义3.2 类对象和实例对象4. 属性4.1 类属性和实例属性4.2 公有属性、半私有属性和私有属性4.3 魔法属性4.3.1 `__slots__` 魔法属性5. 方法...

2020-05-08 09:33:24 925

原创 一文了解 Python 中的命名空间和作用域

本文主要介绍 Python 的命名空间和作用域,以及 nonlocal 和 global 的用法。阅读本文预计需要 15 min。一文了解 Python 中的命名空间和作用域1. 前言2. 命名空间3. 作用域4. 全局变量 VS 局部变量5. `global` VS `nonlocal`6. 小结7. 巨人的肩膀1. 前言Python 命名空间(Namespace)和作用域(Scope...

2020-05-07 22:25:26 878

原创 一文了解Python的模块和包

本部分主要介绍 Python 模块和包的一些基础知识。阅读本文预计需要 10 min。一文了解Python的模块和包1. 前言2. 模块2.1 模块的创建2.2 模块的导入方式2.3 模块的作用域问题2.4 模块搜索路径2.5 “编译过的” Python 文件2.6 dir()函数2.7 安装模块3. 包4. 巨人的肩膀1. 前言代码 --> 函数 – > 模块 -->...

2020-05-06 18:33:23 1040

原创 一文了解Python部分高级特性

本部分主要介绍 Python 的部分高级特性,包括切片、迭代器、推导式、生成器、匿名函数、装饰器等。阅读本文预计需要 15 min。一文了解Python部分高级特性1. 前言2. 切片3. 迭代、可迭代对象、迭代器4. 推导式4.1 列表推导式4.2 集合推导式4.3 字典推导式5. 生成器和生成器表达式5.1 生成器5.2 生成器表达式6. 匿名函数7. 装饰器8. 巨人的肩膀1. 前言...

2020-05-05 22:37:39 629

原创 一文了解Python函数

本文主要介绍 Python 函数,包括Python函数定义和调用、仅位置参数、仅关键字参数、可变参数、默认参数、局部变量和全局变量、函数文档说明、PEP 8编程风格要点等。阅读本文大约需要 15 min.Python入门之Python函数全文框架前言函数的定义和调用函数的参数位置参数默认参数关键字参数特殊参数小结函数的返回值返回 None返回一个值返回多个值多个 return 语句函数的文档...

2020-04-02 19:13:31 2056 4

原创 一文了解Python流程控制

本文主要介绍 Python 的流程控制,包括 if、while、for 的用法以及一些注意事项等。阅读本文预计需要 8 min。Python入门之Python流程控制全文框架前言条件控制语句 if循环控制语句 while循环控制语句 for后记全文框架前言计算机是按照一定的顺序执行代码,从而实现各种各样的功能。编程就是将你的所思所想转化为一行行代码,然后交给计算机来帮你执行。而要保证...

2020-03-29 23:41:27 861

空空如也

空空如也

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

TA关注的人

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