强烈建议阅读python魔术方法指南:
https://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html
魔术属性和魔法方法:
MRO(方法解析顺序)问题
class SingletonMeta(type):
def __init__(cls, *args, **kwargs):
# args是一个三元组
# 第一个元素是元类创建的类
# 第二个参数是要创建的类的父类(元组)
# 第三个参数是要创建的类的所有属性(字典)
cls._instance = None
super().__init__(*args, **kwargs)
def __call__(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super().__call__(*args, **kwargs)
return cls._instance
class Boss(object, metaclass=SingletonMeta):
def __init__(self, name, sex):
self.name = name
self.sex = sex
def __str__(self):
return f"老板信息:{self.name},{self.sex}"
b1 = Boss("叔本华", "男")
b2 = Boss("天问一号", "男")
print(b1, b2)
敏捷闭环工具:禅道
必看文档:基于JIRA的Scrum敏捷开发的项目管理
git clone xxx.git # 克隆仓库及所有之前的版本提交信息
git clone --depth=1 xxx.git # 只克隆最新一版的仓库
git clone xxx.git aaa # 克隆仓库并在本地改为aaa的名字
git long # 查看git日志(需进入到.git目录下)
git branch aaa # 创建aaa的分支
git branch # 查看分支
git branch -a # 查看所有分支,包括远端
git switch -c bbb # 创建并切换到bbb分支
git switch aaa # 切换到aaa的分支
git status # 工作区、暂存区、本地的版本仓库是否同步
git add xxx.py # 将xxx.py 加入到暂存区
git restore --staged xxx.py # 从暂存区取出
git commit -m "提交信息:完成了某项功能" # 从暂存区加入到本地版本仓库中
git remote # 查看远程仓库
git remote -v # 查看远程仓库信息
git push -u origin aaa:aba # 将本地aaa分支推到服务器中并改名为aba
# 完成到一定程度后,在服务器中请求合并分支,由代码审查人员审定通过
git checkout master # 在本地切回master分支
git branch -d aaa # 删除已在服务器合并的本地aaa分支
git branch -D aaa # 强制删除已在服务器合并的本地aaa分支
git pull # 将服务器代码更新到本地
git pull origin master # 将服务器master分支合并到本地分支
# CONFLICT 冲突
git diff # 查看冲突文件 协商解决
# 协商解决好后,在push到服务器,请求合并
由于这套流程相对复杂,强烈建议使用SmartGit / SourceTree这些工具进行版本管理开发。
补充:git merge
与 git rebase
的区别
git rebase
相比git merge
在合并代码时结构更清晰
git rebase master # 变基到master
git switch master
git merge dev # 合并dev (--no-ff 不要快速合并,有利于保留历史信息 这里不需要加)
#git pull = git fetch + git merge 拉取再合并
git stash # 将当前未完成的分支工作进行临时存放到栈中 (git status 为空)
git stash list # 查看栈中临时存放的任务
git stash pop # 弹出之前临时存放的分支工作 (git status重新为红色)
最佳git教程电子版在线阅读:pro git
排序算法可参考:排序算法详解
查找算法可参考:常见快速查找算法图解
第三方剖析工具:
@profile
,运行kernprof -lv test.py
,可分析出该函数每行的执行时间@profile
,运行python3 -m memory_profiler test.py
,可分析出该函数每行的内存占用情况内容太多,暂时略过
项目整体介绍,交代具体模块划分,项目目前的运营状况,用户群体,每日PV、UV、独立IP等。
技术架构:
物理架构:
web应用工作流程: