Re: [讨论] 记录 code snippet 的好用工具

楼主: qrtt1 (有些事,有时候。。。)   2018-04-28 19:00:20
※ 引述《alan23273850 (God of Computer Science)》之铭言:
: 各位板友午安,本鲁软件板首次发文请小力鞭
: 是说最近常和同学讨论到整理 code snippet 的重要,也就是功能导向的笔记
: 举例来说,要测量程式执行的时间,
: 以 C 语言来说,可以是:
: clock_t start = clock();
: ... // code execution
: clock_t end = clock();
: printf("%f\n", (float)(end - start) / CLOCKS_PER_SEC);
: 但如果是以 python 而言,则是:
: import datetime
: before = datetime.datetime.now()
: ... // code execution
: after = datetime.datetime.now()
: print after - before
: 那么各位工程师不觉得针对不同的功能,把所有语言的 code 整理在一起,
: 未来撰写程式在翻阅或查阅的时候就更方便,不需要再敲 Google 关键字了呢?
: 台大资讯系刘邦锋教授也有写过 "由词组学习 C 程式设计" 一书,
: 虽然我没读过,不过我猜应该就类似书中那种以功能为导向整理过的感觉。
: 有没有什么好用的工具或方法能有条不紊地整理这些 code 呢?
乱入一下,python 其实用 decorator 比较方便,也有人有提供 library
def stopwatch(func):
def with_logging(*args, **kwargs):
start_time = time.time()
try:
return func(*args, **kwargs)
finally:
end_time = time.time()
logger.info("{:36s} :: {:.3f}".format( \
func.__name__, end_time - start_time))
pass
return with_logging
@stopwatch
def my_function():
# do something
pass
==========================================================
至于 cheat sheet 的部分,最好是能被‘执行’的程式码。
因为单纯眼睛看可能不太明白,可是跑一次就懂了。
不过,当你在‘工作’的场域时,这些常用的工作大致都应该包好了。
也就是当你想要自干某些东西时,先问一下同事有没有相似的功能已被实作。
或是你可能打开旧专案,复制一段 code 出来用而已。
这类比较小行数的 cheat sheet 大概只会剩下一些难记的参数。
像是那个我永远记不住的 ffmpeg 参数,或是建立专案时 gradle 编译设定。
作者: alan23273850   2018-04-28 19:42:00
其实我对 python 真的不是很熟,感谢建议
作者: kenshin528 (成立奥凶帝国!!)   2018-04-28 22:17:00
推 decorator
作者: hl4 (Zec)   2018-04-29 01:24:00
既然要用decorator 那干脆再补个functools.wraps比较好
作者: vvind (wind)   2018-04-29 09:35:00
同推楼上

Links booklink

Contact Us: admin [ a t ] ucptt.com