每周学习笔记(2018-11-17)

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/

其实作为运维,对于时间管理也是相同的道理:珍惜时间的人应该能够尽量按照自己的计划来工作,而不是等待紧急时间,一直处于救火状态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容