0%

使用 docker-compose 部署 flask 应用

为了让开发环境、测试环境和线上环境统一,使用 docker 镜像部署应用是一个不错的方案。裸用 docker-cli 管理服务过于麻烦,在开发机上 k8s 又凭空增加了很多复杂性,使用 docker-compose 部署应用是一个不错的折中方案。

Docker-compose 是 docker 官方推出的一个管理多容器服务的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。其主要特性有:

  1. 使用一个 Host 启动多个服务
  2. 容器启动时持久化数据卷到宿主机
  3. 只在镜像发生变化时重新创建容器
  4. 更方便地管理环境变量
Read more »

何为”更好”的代码本身就是仁者见仁,我们在这里主观地选择一个评价标准:

代码要满足安全性 ,可用性 ,可维护性 ,简洁性 , 高性能的要求,这几项的重要性递减。

毫无疑问编写代码本身是一件很难的事,但是在遵循一些指导原则的话,我们可以相对编写出更好的代码。

Read more »

背景

开发人员每天运行最多的命令是哪一个?npm,mvn,make…或者是大家都猜到的————git

我们在完成一个需求的开发,或者修复一个问题后,往往会进行如下一系列git命令:

1
2
3
git add .
git commit -m "Feature A (OR Fix BUG B)"
git push

另外还有一些命令如git status,git fetch,git log,git checkout也是我们经常要用到的。

其实大家完全可以把一些常用的git命令设置成git别名,方便日常使用。

Read more »

初识 Python3.7 的 dataclasses 标准库

最近在进行一个新的后端项目时想初步应用一下领域驱动设计的思想。DDD 开发需要对一个领域对象进行各种操作,而不是把业务数据包在dict里在 action 层,repo 层中传来传去。如何方便高效地定义实体类成为一个重要前提。Python 3.7 版本引入的新标准库 dataclasses 可以帮助我们解决这个问题。

Read more »

比较 Python 中的列表推导式和 map(),reduce()函数

对一个列表(迭代器)中的元素进行批量处理是一个很常见的业务需求,在 Python 中,一般有三种解决方案:for循环,列表推导式,或者map(),filter()函数。

例如我们计算一下 100 以内奇数的平方和。

1
2
3
4
5
# for loop
total = 0
for x in range(100):
if x % 2:
total += x * x
1
2
# list comprehension
sum(x * x for x in range(100) if x % 2)
1
2
# map(), filter()
sum(map(lambda x: x * x, filter(lambda x: x % 2, range(100))))
Read more »

使用Python发送邮件

之前写了一个小工具从远程服务器下载文件,然后通过附件方式发送给自己的邮箱,中间用到了Python里跟邮件相关的两个标准库emailsmtp,使用也并不复杂。

Read more »