摘要: 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。 Asyncio 是并发(concurrency)的一种方式。对 Python 来说,并发还可以通过线程(threading)和多进程(multiprocessing)来实现。 Async 阅读全文
posted @ 2018-11-29 13:21 twoseee 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 我不确定有多少 Web 开发者能完全避免使用命令行。就我来说,我从 1997 年上大学就开始使用命令行了,那时的 l33t-hacker 让我着迷,同时我也觉得它很难掌握。 过去这些年我的命令行本领在逐步加强,我经常会去搜寻工作中能用的更好的命令行工具。下面就是我现在使用的用于增强原有命令行工具的列 阅读全文
posted @ 2018-11-26 10:50 twoseee 阅读(172) 评论(0) 推荐(0) 编辑
摘要: Docker 的优势非常明显,尤其是对于开发者来说,它提供了一种全新的软件发布机制。也就是说使用 docker 镜像作为软件产品的载体,使用 docker 容器提供独立的软件运行上下文环境,使用 docker hub 等提供镜像的集中管理,这其中最重要的是使用 Dockerfile 定义容器的内部行 阅读全文
posted @ 2018-11-13 10:32 twoseee 阅读(1116) 评论(0) 推荐(0) 编辑
摘要: 1.1 容器简介 1.1.1 什么是 Linux 容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。 更加详细地来说,请您假定您在开发 阅读全文
posted @ 2018-11-13 10:25 twoseee 阅读(338) 评论(0) 推荐(0) 编辑
摘要: Docker 是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以将应用程序构建、打包为一个轻量级容器,并在任何地方运行。Docker 会在软件容器中自动部署应用程序。 Django 是一个用 Python 编写的 Web 应用程序框架,遵循 MVC(模型-视图-控制器)架构。它是免费的, 阅读全文
posted @ 2018-11-08 15:54 twoseee 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准)。然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维护的压力,也能确保新的开发者能够快速了解项目的情况,同时能更好地全程保持应用程序的质量。 使用外部库来检查代码的质量不失为保护项目未来可维护 阅读全文
posted @ 2018-10-18 09:43 twoseee 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 如何在 Linux 中配置基于密钥认证的 SSH 阅读全文
posted @ 2018-10-17 09:34 twoseee 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 当没有插件管理器时,Vim 用户必须手动下载 tarball 包形式的插件,并将它们解压到 ~/.vim 目录中。在少量插件的时候可以。但当他们安装更多的插件时,就会变得一团糟。所有插件文件分散在单个目录中,用户无法找到哪个文件属于哪个插件。此外,他们无法找到他们应该删除哪个文件来卸载插件。这时 V 阅读全文
posted @ 2018-10-15 01:13 twoseee 阅读(8723) 评论(2) 推荐(0) 编辑
摘要: tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。 ubuntu可以使用sudo apt-g 阅读全文
posted @ 2018-10-14 15:46 twoseee 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 为什么使用neovim: vim下的CtrlP插件好用,但大文件复制粘贴时可能会出现卡死状况,关于neovim的优点, 还是看官方的介绍的好 https://salt.bountysource.com/teams/neovim 安装neovim 1. Ubuntu 18.04: sudo add-a 阅读全文
posted @ 2018-10-14 11:08 twoseee 阅读(2650) 评论(0) 推荐(0) 编辑