1. Redis 作者关于写代码注释的一点想法
http://antirez.com/news/124
Redis 的代码注释清晰简洁,堪称典范。
这篇文章作者分享自己写注释的一点心得,推荐一读。
概括起来注释包括:
- Function comments 放在函数里面,减少读代码者需要额外的思考负担
- Design comments 通常放在一个文件的开头,整个文件的概述、原理等
- Why comments 解释一些实现方法的原因
- Teacher comments 解释一些非编程领域的人可能不了解的信息,如数学、图形学等
- Checklist comments 解决一些比如改了这里代码,也要修改那里代码的问题
- Guide comments 帮助引导读者确认没有误解代码
……
作者原话:
- Writing good comments is harder than writing good code
- 写好注释比写好代码更困难。
2. Python 中与和导入同等级目录下的另一个模块?
假设我有一个模块my_module
, 我为其写了一些测试脚本放在tests
目录下。
一般情况下,我并不想把这些测试脚本放在源码文件里面,所以会这样存放:
.
├── README.md
├── my_module
│ └── my_class.py
└── tests
└── my_test.py
但是由于测试脚本并不在模块里面,当需要导入这个模块的时候,就有点麻烦,只能通过路径的方法导入:
# tests/my_test.py
import sys
from os import path
sys.path.append( path.dirname( path.dirname( path.abspath(__file__) ) ) )
from my_module import my_class
3. 使用 SQLAlchemy 直接执行 SQL 语句
SQLAlchemy 虽然提供了方便的ORM,但有时候需要直接执行一些语句,有不想用其他连接库的时候,可以直接用engine.connect()
来执行。
from sqlalchemy.sql import text
connection = engine.connect()
# recommended
cmd = 'select * from Employees where EmployeeGroup == :group'
employeeGroup = 'Staff'
employees = connection.execute(text(cmd), group = employeeGroup)
参考链接
https://stackoverflow.com/questions/17972020/how-to-execute-raw-sql-in-sqlalchemy-flask-app
https://chartio.com/resources/tutorials/how-to-execute-raw-sql-in-sqlalchemy/
4. Git diff 直接输出到当前页面
有时候我们需要将 git diff 输出到当前页面或者文件,可以通过参数或者管道控制。
git --no-pager diff
git diff | cat # The latter also removes colour coding.
5. 一些有意思的句子
"Poor people spend their money and save what’s left. Rich people save their money and spend what’s left."
https://www.jimrohn.com/3-money-habits-separate-rich-poor/
其实作为运维,对于时间管理也是相同的道理:珍惜时间的人应该能够尽量按照自己的计划来工作,而不是等待紧急时间,一直处于救火状态。