ByteJockey小站
第76条 在TestCase子类里验证相关的行为
Initializing search
huyuhui001/mySite
网站概览
Linux
Kubernetes
Python
清水斋
ByteJockey小站
huyuhui001/mySite
网站概览
网站概览
目录
关于
Linux
Linux
目录
Linux SRE
Linux SRE
第一章 Linux基础
第二章 文件系统
第三章 身份与安全
第四章 文本编辑
第五章 正则表达式
第六章 文件查找
第七章 文件打包和解包
第八章 shell编程
第九章 磁盘和存储管理
第十章 软件管理
SUSE Linux Administration
SUSE Linux Administration
Linux File System Overview
Useful Commands
Shell
SUSE Enterprise Storage Foundation
SUSE Enterprise Storage Foundation
SUSE Enterprise Storage Foundation
SUSE Enterprise Storage Basic Operation
Kubernetes
Kubernetes
目录
CKA Learning Memo
CKA Learning Memo
Installation
Installation
Single Node Installation
Multiple Nodes Installation
Installation on Aliyun ECS
Docker
Docker
Fundamentals
Foundamentals
Foundamentals
Memo
Overview
kubectl basics
Core Kubernetes
Core Kubernetes
Pod
Deployment
Service
Application Modeling
Application Modeling
Namespace
StatefulSet
DaemonSet
Job and Cronjob
Configuration
Secrets
Persistence
Role Based Access Control (RBAC)
Ingress
Advanced Kubernetes
Advanced Kubernetes
Scheduling
Horizontal Pod Autoscaling
Policy
Network Policy
Cluster Management
Operating Kubernetes
Operating Kubernetes
Troubleshooting
Health Check
Helming
Topics
Topics
Operations on Resources
Health Check
Calico Installation
Kyma
CKA学习笔记
CKA学习笔记
安装
安装
单节点虚拟机安装Kubernetes
多节点虚拟机安装Kubernetes
阿里云ECS安装Kubernetes
Docker
Docker
Docker基础
基础知识
基础知识
Kubernetes随笔
Kubernetes集群概览
kubectl基础
核心概念
核心概念
Pod
Deployment
Service
应用体系
应用体系
Namespace
StatefulSet
DaemonSet
Job and Cronjob
Configuration
secrets
Persistence
RBAC鉴权
Ingress-nginx
进阶概念
进阶概念
Scheduling
Horizontal Pod Autoscaling (HPA)
Policy
Network Policy
Cluster Management
日常维护
日常维护
Troubleshooting
健康检查
Helm Chart
主题讨论
主题讨论
Kubernetes资源常见操作
健康检查
安装Calico
Demos
Demos
Build CAP Application on Kyma
Python
Python
目录
Python基础
Python基础
安装
语言基础
打包和解包
内置函数及文件
面向对象概念
面向对象三大特性
模块和包
Python数据分析基础
Python数据分析基础
NumPy基础
NumPy进阶
Pandas入门
数据载入、存储及文件格式
数据清洗与准备
数据规整:连接、联合与重塑
绘图与可视化
数据聚合与分组操作
时间序列
高阶pandas
Python建模库介绍
数据结构和算法
数据结构和算法
基础知识回顾
多项集的概述
搜索、排序以及复杂度分析
数组和链接结构
接口、实现和多态
继承与抽象类
编写高质量Python的90个建议
编写高质量Python的90个建议
目录
第01条 查询自己使用的Python版本
第02条 遵循PEP 8风格指南
第03条 了解bytes与str的区别
第04条 用支持插值的f-string取代C风格的格式字符串与str.format方法
第05条 用辅助函数取代复杂的表达式
第06条 把数据结构直接拆分到多个变量里,不要专门通过下标访问
第07条 尽量用enumerate取代range
第08条 用zip函数同时遍历两个迭代器
第09条 不要在for与while循环后面写else块
第10条 用赋值表达式减少重复代码
第11条 学会对序列做切片
第12条 不要在切片里同时指定起止下标与步进
第13条 通过带星号的unpacking操作来捕获多个元素,不要用切片
第14条 用sort方法的key参数来表示复杂的排序逻辑
第15条 不要过分依赖给字典添加条目时所用的顺序
第16条 用get处理键不在字典中的情况,不要使用in与KeyError
第17条 用defaultdict处理内部状态中缺失的元素,而不要用setdefault
第18条 学会利用__missing__构造依赖键的默认值
第19条 不要把函数返回的多个数值拆分到三个以上的变量中
第20条 遇到意外状况时应该抛出异常,不要返回None
第21条 了解如何在闭包里面使用外围作用域中的变量
第22条 用数量可变的位置参数给函数设计清晰的参数列表
第23条 用关键字参数来表示可选的行为
第24条 用None和docstring来描述默认值会变的参数
第25条 用只能以关键字指定和只能按位置传入的参数来设计清晰的参数列表
第26条 用functools.wraps定义函数修饰器
第27条 用列表推导取代map与filter
第28条 控制推导逻辑的子表达式不要超过两个
第29条 用赋值表达式消除推导中的重复代码
第30条 不要让函数直接返回列表,应该让它逐个生成列表里的值
第31条 谨慎地迭代函数所收到的参数
第32条 考虑用生成器表达式改写数据量较大的列表推导
第33条 通过yield from把多个生成器连起来用
第34条 不要用send给生成器注入数据
第35条 不要通过throw变换生成器的状态
第36条 考虑用itertools拼装迭代器与生成器
第37条 用组合起来的类来实现多层结构,不要用嵌套的内置类型
第38条 让简单的接口接受函数,而不是类的实例
第39条 通过@classmethod多态来构造同一体系中的各类对象
第40条 通过super初始化超类
第41条 考虑用mix-in类来表示可组合的功能
第42条 优先考虑用public属性表示应受保护的数据,不要用private属性表示
第43条 自定义的容器类型应该从collections.abc继承
第44条 用纯属性与修饰器取代旧式的setter与getter方法
第45条 考虑用@property实现新的属性访问逻辑,不要急着重构原有的代码
第46条 用描述符来改写需要复用的@property方法
第47条 针对惰性属性使用__getattr__、__getattribute__及__setattr__
第48条 用__init_subclass__验证子类写得是否正确
第49条 用__init_subclass__记录现有的子类
第50条 用__set_name__给类属性加注解
第51条 优先考虑通过类修饰器来提供可组合的扩充功能,不要使用元类
第52条 用subprocess管理子进程
第53条 可以用线程执行阻塞式I/O,但不要用它做并行计算
第54条 利用Lock防止多个线程争用同一份数据
第55条 用Queue来协调各线程之间的工作进度
第56条 学会判断什么场合必须做并发
第57条 不要在每次fan-out时都新建一批Thread实例
第58条 学会正确地重构代码,以便用Queue做并发
第59条 如果必须用线程做并发,那就考虑通过ThreadPoolExecutor实现
第60条 用协程实现高并发的I/O
第61条 学会用asyncio改写那些通过线程实现的I/O
第62条 结合线程与协程,将代码顺利迁移到asyncio
第63条 让asyncio的事件循环保持畅通,以便进一步提升程序的响应能力
第64条 考虑用concurrent.futures实现真正的并行计算
第65条 合理利用try/except/else/finally结构中的每个代码块
第66条 考虑用contextlib和with语句来改写可复用的try/finally代码
第67条 用datetime模块处理本地时间,不要用time模块
第68条 用copyreg实现可靠的pickle操作
第69条 在需要准确计算的场合,用decimal表示相应的数值
第70条 先分析性能,然后再优化
第71条 优先考虑用deque实现生产者-消费者队列
第72条 考虑用bisect搜索已排序的序列
第73条 学会使用heapq制作优先级队列
第74条 考虑用memoryview与bytearray来实现无须拷贝的bytes操作
第75条 通过repr字符串输出调试信息
第76条 在TestCase子类里验证相关的行为
第77条 把测试前、后的准备与清理逻辑写在setUp、tearDown、setUpModule与tearDownModule中,以防用例之间互相干扰
第78条 用Mock来模拟受测代码所依赖的复杂函数
第79条 把受测代码所依赖的系统封装起来,以便于模拟和测试
第80条 考虑用pdb做交互调试
第81条 用tracemalloc来掌握内存的使用与泄漏情况
第82条 学会寻找由其他Python开发者所构建的模块
第83条 用虚拟环境隔离项目,并重建依赖关系
第84条 每一个函数、类与模块都要写docstring
第85条 用包来安排模块,以提供稳固的API
第86条 考虑用模块级别的代码配置不同的部署环境
第87条 为自编的模块定义根异常,让调用者能够专门处理与此API有关的异常
第88条 用适当的方式打破循环依赖关系
第89条 重构时考虑通过warnings提醒开发者API已经发生变化
第90条 考虑通过typing做静态分析,以消除bug
Demos
Demos
选课系统
清水斋
清水斋
目录
程序员的职业和生存指南
程序员的职业和生存指南
读后感之:前言
读后感之:入行
读后感之:求职
读后感之:与同事相处
读后感之:与老板相处
读后感之:团队协作
读后感之:推销你的想法
读后感之:着装
读后感之:处理偏见
读后感之:身为领导
读后感之:绩效考核
读后感之:提拔与晋升
读后感之:自我营销
读后感之:社交人脉
读后感之:持续学习
读后感之:专才与通才
读后感之:专注与高效
读后感之:经验分享
读后感之:导师
读后感之:职业发展
读后感之:工作稳定性
读后感之:兼职与自由职业
读后感之:心态
读后感全文
闲聊职业发展
闲聊职业发展
程序员职业发展的三个模式
软件开发人员在人工智能时代该如何发展
技术新闻杂录
技术新闻杂录
SWE-Agent:革新软件工程的开源人工智能开发者
GitHub Copilot的代理能力
人工智能(AI)基本概念
Transformer简介
Transformer Introduction
AgentAI简介
第76条 在TestCase子类里验证相关的行为
Back to top