Recap The TDD Process

From《Test-Driven Development with Python, 3rd Edition》by Harry Percival


We’ve now seen all the main aspects of the TDD process, in practice:

  • Functional tests
  • Unit tests
  • The unit-test/code cycle
  • Refactoring

What does the overall TDD process look like?

  • We write a test.
  • We run the test and see it fail.
  • We write some minimal code to get it a little further.
  • We rerun the test and repeat until it passes (the unit test / code cycle)
  • Then, we look for opportunities to refactor our code, using our tests to make sure we don’t break anything.
  • And start again from the top!

More...

解决Docker打包报错问题

背景


报错:

ERROR: failed to solve: nginx: blob sha256:cd64407576751d9b9ba4924f758d3d39fe76a6e142c32169625b60934c95f057 expected at /media/richard/N1/data/docker/buildkit/content/blobs/sha256/cd64407576751d9b9ba4924f758d3d39fe76a6e142c32169625b60934c95f057: blob not found: not found



解决方案


清除缓存:

1
sudo docker system prune -a --force

对应 -a 删除全部未使用的镜像,-f 或 --force 不经过确认强行删除。

再检查一下缓存情况,使用命令

1
sudo docker system df

About Comments and TDD

From《Test-Driven Development with Python, 3rd Edition》by Harry Percival

When I first started at Python Anywhere, I used to virtuously pepper my code with nice descriptive comments. My colleagues said to me: “Harry, we have a word for comments. We call them lies.” I was shocked! I learned in school that comments are good practice?

当我第一次开始使用 Python Anywhere 时,我常常用漂亮的描述性注释来填充我的代码。我的同事对我说:“哈利,关于注释我们有话要说。我们称之为谎言。”我很震惊!我在学校学到注释是很好的做法?

They were exaggerating for effect. There is definitely a place for comments that add context and intention. But my colleagues were pointing out that comments aren’t always as useful as you hope. For starters, it’s pointless to write a comment that just repeats what you’re doing with the code:

他们为了效果而夸大其词。肯定有一个地方可以发表评论来添加上下文和意图。但我的同事指出,评论并不总是像你希望的那样有用。对于初学者来说,编写只是重复您对代码所做的事情的注释是没有意义的:

1
2
# increment wibble by 1
wibble += 1
More...

产品笔记:好产品与“人性原罪需求”理论

2018年的老文章,记录学习一下,原文

一、产品是什么(Product)

首先,我们来谈谈产品,“产品究竟是什么?”

1.产品指什么

(1)产品的定义

很多人对于产品的定义,都是什么APP啊,什么应用啊,这都是比较狭义上的对于产品的理解。外行的朋友对于产品的认知可能比较局限,产品的范围其实非常之广。

产品的广义概念可以通过很多资料得出:产品是指满足人们需求的载体。

(2)产品的作用(价值)

解决用户需求与商业需求。

产品存在我们生活的各个角落,如:你现在正在移动的鼠标、正在看着的电脑屏幕,也是属于产品范畴。包括:你所接触的这个网站、你所打开的这个软件、你在玩的这个游戏,也归属于产品范畴。

产品存在形式多得数不胜数,可能你会说两者都不一样:一个是由实物制作而成的,一个是用代码编写而成的。

其实他们的区别在于:产品的存在形态不同,但是相同点都是**“为了满足用户需求”**。

如:电脑解决了你上网、获取知识的需求;鼠标解决了你操作的需求;而网站,为你带来了你想要的视频资源;软件,让你的办公需求得到满足;游戏,满足你的娱乐需求等等。

其实我们只需要记住两点,便可以区分。“需求决定了产品的存在价值,而解决方法决定了产品的存在形态”。

而本篇文章内容主要围绕互联网产品来展开。

More...

Python管理虚拟环境安装 virtualenv

背景

记录一下virtualenv安装过程,这里只介绍Windows下的情况

安装:

终端(命令行)输入:pip install virtualenv

创建虚拟环境目录

终端(命令行)输入:python -m venv venv

其中,venv就是你创建的环境目录,创建成功后,你项目里会出现一个名为venv的文件夹。

注意:

①不创建目录直接激活的话会出现如下错误:

②后面的那个venv是可以自定义的文件夹名字

③不写文件夹名称会报错;

venv: error: the following arguments are required: ENV_DIR

这个错误提示表明在使用venv命令时缺少了必要的ENV_DIR参数。

venv是Python内置的用于创建和管理虚拟环境的模块,它需要指定一个目录作为虚拟环境的位置。

要创建一个新的虚拟环境,你需要提供一个目录路径作为ENV_DIR参数。

例如,以下命令将创建一个名为myenv的虚拟环境:python -m venv myenv

在这个例子中,myenv是虚拟环境的目录名,它将在当前工作目录中创建。

激活:

终端(命令行)输入:.\venv\Scripts\activate

其中,venv是你的虚拟环境名称。如果你的虚拟环境名称不同,请将命令中的venv替换为你的虚拟环境名称。

如果你的虚拟环境成功激活,你应该能够看到终端命令提示符的前面有(virtualenv名称)字样。

退出当前虚拟环境:

终端(命令行)输入:deactivate

删除虚拟环境:

直接删除venv目录即可

另外:

(1)Git Bash或Cygwin等Unix/Linux命令行终端,则可以继续使用“source”命令激活虚拟环境。在命令行终端输入:source venv/bin/activate

(2)问题:在pycharm终端,无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

原因:“source”命令是Unix/Linux命令,在Windows命令行终端无法识别“source”命令。

在Windows下虚拟环境的激活用的是:.\venv\Scripts\activate

(3)问题:无法将“activate”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

原因:没有正确激活虚拟环境。

命令行导出Notion文章MD文件

痛点

我用笔记工具,很多时候都需要输出成文章发布。发布的时候,我得用 Markdown。很不幸,在 Notion 上,这个过程,从来就没有痛快过。虽然 Notion 从很早就提供 Markdown 导出,还包括子页面。但是导出来的结果,总是无法令我满意。导出的文件是个压缩包,还要手工解压,我就想找一个命令行工具来提高效率。

解决方案

找到了一个开源的Github 项目,叫做 notion2md

安装

它已经做成了 Python 的软件包,可以调用 Notion 的 API,帮助用户导出为更妥帖的 markdown 格式。

你只需要使用pip安装即可:

1
pip install notion2md
More...

英语单词辨析 - Principal or principle

Principal or principle

ref:原文

Principal:

Principal作为形容词意味着“最重要的”

The principal reason for the failure to take action was poor communication between government departments. (the most important reason)

我们可以将principal用作名词,指的是学校或大学的校长(尤其在美式英语中):

The college principal made a speech congratulating all the students who were graduating in that year.

Principle:

Principle是一个名词,意思是‘解释某事物或工作方式的规则或理论’或‘道德规则或准则’:

The scientific principles behind even the most complicated computer are relatively simple.

He seems to have no principles at all, and is only interested in money. (He has no moral rules or guidelines.)

请我喝杯咖啡吧~

支付宝
微信