2025-03-04
pyhton
00

python debug配置

python以模块的方式进行debug

背景:

正常python文件进行debug时,可以直接运行,但是遇到一个python的框架项目,直接运行或者debug都会报错server包不存在(server是一个文件夹,下面并没有init文件,但存在多个业务文件,以及程序入口文件)

排查

  1. 经过一定的排查发现,项目需要以模块的方式进行运行(python -m server.server)这里的server.server对应的是server下的server.py文件
  2. 这时debug时,肯定也需要以模块的方式进行运行,但这里发现,直接使用program的方式是无法直接运行的,需要进行调整,经过一系列研究,发现需要将program调整为module,具体参考如下:
2025-03-03
golang
00

接口的理解

在 Go 语言中,只要一个类型实现了某个接口,那么它就可以作为该接口的实例被使用

go
package main import "fmt" // 定义一个接口 Speaker type Speaker interface { Speak() } // 定义一个结构体 Dog type Dog struct{} // 让 Dog 实现 Speak 方法 func (d Dog) Speak() { fmt.Println("汪汪汪!") } // 定义一个结构体 Cat type Cat struct{} // 让 Cat 实现 Speak 方法 func (c Cat) Speak() { fmt.Println("喵喵喵!") } // 定义一个通用的说话函数 func MakeSpeak(s Speaker) { s.Speak() // 只要是实现了 Speaker 接口的类型都能调用 } func main() { dog := Dog{} cat := Cat{} // Dog 和 Cat 都实现了 Speaker 接口,因此可以作为 Speaker 传入 MakeSpeak(dog) MakeSpeak(cat) }
2025-02-27
pyhton
00

相关信息

json.dumps进行字符串转json转换以及序列化的时候,一定要增加ensure_ascii=False参数,否则的话,默认会转化为ascii字符

2025-02-15
golang
00

接口隔离原则(Interface Segregation Principle,ISP)是面向对象设计中的一个重要原则,它的核心思想是:

不应该强迫客户依赖他们不使用的方法。

这个原则的目的是避免定义“臃肿”的接口。接口应该尽量小而专注,每个接口只应该包含客户端所需要的方法,避免接口中包含不相关的功能。

1. 接口隔离原则的含义

在设计系统时,如果一个接口包含了多个不相关的功能,依赖这个接口的类就会被迫实现接口中它并不需要的方法。这样不仅会导致不必要的复杂性,还会让系统变得更加脆弱,难以维护。

换句话说:

客户端不应该依赖于它不需要的接口方法。 为了符合接口隔离原则,我们应该将接口拆分成多个更细化的、职责单一的接口,确保每个接口只包含客户端真正需要的方法。

2025-02-15
golang
00

开闭原则的定义

开闭原则是面向对象设计中的一个核心原则,它的内容是:

软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。

也就是说,当需求变化时,我们应该能够通过扩展现有的代码来实现新的功能,而不是修改现有的代码。这样可以减少现有功能的变动,避免引入新的错误,并且能够提高代码的可维护性和可扩展性。

解释

对扩展开放:意味着我们可以通过添加新的代码来扩展现有功能,而不是修改原有的代码。扩展可以通过继承、实现接口等方式来实现。

对修改封闭:指的是已有的代码不应该被修改,因为修改现有代码容易引入错误,并且可能影响到系统的其他部分。相反,我们应该通过扩展的方式来增强功能。