笨办法学 Python · 续 练习 25:`xargs`
练习 25:xargs
原文:Exercise 25: xargs
译者:飞龙
协议:CC BY-NC-SA 4.0
自豪地采用谷歌翻译
我们回到挑战模式的练习,并为你热身,你将会实现xargs
。这应该是一个简单的实现,但是xargs
可能很复杂,因为你需要启动其他程序才能使其运行。你要研究的 Python 模块是subprocess
,可以从 Python 运行其他程序并收集其输出。你将需要了解该模块,稍后完成xargs
和本书的许多其他项目,因此要好好研究。
挑战练习
实现xargs
只需 45 分钟,所以你可以做出一些东西,之后你可以审计它。记住第一个 Hack 就是让项目能运行,而不是使其完美。你将在此项目中的后续步骤中优化它并使其更好。记住你可以键入:
man xargs
获取xargs
的手册页并研究如何工作。这是一个方便的 Unix 工具,但你也可以使用find
做几乎相同的事情。当你实现xargs
时,尝试找出,它比起find --exec
有什么优势。
经过 45 分钟的 Hack,你应该休息一下,然后使用第三部分的代码审计检查清单,对代码进行客观的审计。不要修复代码,只需编写注释,指出需要改变什么,有什么缺陷。在尝试修复时,很难保持客观,所以只需要注意审计中的问题,然后在下一轮中修复它们。
然后,你将进行一系列代码/审计的计时会话,来习惯于进行审计。花费你所需的尽可能长的时间,尽可能多地实现xargs
,然后继续下一个项目。
注
记住要在日志中跟踪你的缺陷,所以你可以绘制它们的运行图,并寻找趋势。
研究性学习
- 在代码/审计的流程中,你是否发现任何你不断犯下的错误?把这些当成潜在的事情写下来并处理。
- 你的代码/审计流程中,是否有一个特定的时间点,有或多或少的缺陷?比起最开始更多,还是三到四个流程之后更多?为什么会这样?
- 尝试为你的
xargs
的实现编写自动测试,并查看是否降低你的缺陷率。在下一个练习中,你将会进行一个更加受控的测试研究,就像这样,但是现在尝试一下,看看你发现了什么。
笨办法学 Python · 续 练习 25:`xargs`相关推荐
- 笨办法学 Python · 续 中文版
笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓 ...
- 笨办法学 Python · 续 练习 33:解析器
练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...
- 笨办法学 Python · 续 练习 0:起步
练习 0:起步 原文:Exercise 0: The Setup 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你需要设置和配置一些工具来学习此书.有可能你已经有了很多这些东西 ...
- 笨办法学 Python · 续 第二部分:简单的黑魔法
第二部分:简单的黑魔法 原文:Part II: Quick Hacks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你有最好的想法,你会打动世界!你会成为一个亿万富豪!你的大 ...
- 笨办法学 Python · 续 练习 52:`moreweb`
练习 52:moreweb 原文:Exercise 52: moreweb 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 现在,你已经使用 Python http.server ...
- 笨办法学 Python · 续 练习 24:URL 快速路由
练习 24:URL 快速路由 原文:Exercise 24: Fast URL Search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们将结束数据结构和算法的部分,并将 ...
- 笨办法学 Python · 续 练习 32:扫描器
练习 32:扫描器 原文:Exercise 32: Scanners 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我的第一本书在练习 48 中非常偶然涉及到了扫描器,但现在我 ...
- 笨办法学 Python · 续 练习 18:性能测量
练习 18:性能测量 原文:Exercise 18: Measuring Performance 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 在本练习中,你将学习使用多种工具 ...
- python hexdump_笨办法学 Python · 续 练习 26:`hexdump`
练习 26:hexdump 译者:飞龙 自豪地采用谷歌翻译 你已经用xargs完成了热身,现在正在代码/审计的循环中.你现在将尝试以"测试优先"方式完成下一个挑战.这就是,你编写测 ...
最新文章
- centos下设置node.js开机启动(并且启动自己的项目js)
- 判断dataset是否为空
- 使用dex2jar反编译APK时出现的问题
- [javascript] Date 时间精确到天
- 使用ACE_SOCK_SEQPACK_Association获取socket连接的本地及远程IP端口信息
- std::string删除首字符
- java ee 值范围_【转载】JAVAEE之内置对象和属性范围
- java 枚举类型知识点记录
- java 不取空值_Java:如何更优雅的处理空值?
- CMOS 与BIOS
- 综述 | 近年来深度学习的重要研究成果(附PDF)
- WinZip 15注册码
- 1.北京理工大学Python与机器学习-绪论
- MySQL中 修改语句使用的关键字是什么_表示修改一个数据库对象的SQL关键字是什么...
- javascript 如何正确使用getElementById,getElementsByName(), and getElementsByTagName()
- 每日一道Leetcode - 剑指 Offer 13. 机器人的运动范围【DFS|BFS】
- 如何绘制业务架构图 — 4.流程图
- html+js 实现鼠标粒子拖尾效果其中调用underscore和jQuery库
- 鼠标右键点击桌面计算机,鼠标右键点击电脑桌面没有反应的解决方法
- 如何使用netcdf4支持编译swan + adcirc
热门文章
- 为什么学计算机的人不用360,为什么会电脑的人都鄙视他人安装360?
- 遗传算法锦标赛选择java实现_java – 遗传算法锦标赛选择
- python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...
- STC51-串口通信
- ubuntu14.04+ROS indigo+kinectV1 骨骼点检测
- 服务器新硬盘如何挂在,Ubuntu服务器挂载新硬盘的步骤
- 手机闪存速度排行_2020年双十二3000-4000元高性价比手机推荐!
- Mysql优化之Order By/Group By
- BZOJ1977 [BJOI2010]次小生成树
- 爬虫基础12(框架Scrapy中间件)