练习 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`相关推荐

  1. 笨办法学 Python · 续 中文版

    笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓 ...

  2. 笨办法学 Python · 续 练习 33:解析器

    练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...

  3. 笨办法学 Python · 续 练习 0:起步

    练习 0:起步 原文:Exercise 0: The Setup 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你需要设置和配置一些工具来学习此书.有可能你已经有了很多这些东西 ...

  4. 笨办法学 Python · 续 第二部分:简单的黑魔法

    第二部分:简单的黑魔法 原文:Part II: Quick Hacks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你有最好的想法,你会打动世界!你会成为一个亿万富豪!你的大 ...

  5. 笨办法学 Python · 续 练习 52:`moreweb`

    练习 52:moreweb 原文:Exercise 52: moreweb 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 现在,你已经使用 Python http.server ...

  6. 笨办法学 Python · 续 练习 24:URL 快速路由

    练习 24:URL 快速路由 原文:Exercise 24: Fast URL Search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们将结束数据结构和算法的部分,并将 ...

  7. 笨办法学 Python · 续 练习 32:扫描器

    练习 32:扫描器 原文:Exercise 32: Scanners 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我的第一本书在练习 48 中非常偶然涉及到了扫描器,但现在我 ...

  8. 笨办法学 Python · 续 练习 18:性能测量

    练习 18:性能测量 原文:Exercise 18: Measuring Performance 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 在本练习中,你将学习使用多种工具 ...

  9. python hexdump_笨办法学 Python · 续 练习 26:`hexdump`

    练习 26:hexdump 译者:飞龙 自豪地采用谷歌翻译 你已经用xargs完成了热身,现在正在代码/审计的循环中.你现在将尝试以"测试优先"方式完成下一个挑战.这就是,你编写测 ...

最新文章

  1. centos下设置node.js开机启动(并且启动自己的项目js)
  2. 判断dataset是否为空
  3. 使用dex2jar反编译APK时出现的问题
  4. [javascript] Date 时间精确到天
  5. 使用ACE_SOCK_SEQPACK_Association获取socket连接的本地及远程IP端口信息
  6. std::string删除首字符
  7. java ee 值范围_【转载】JAVAEE之内置对象和属性范围
  8. java 枚举类型知识点记录
  9. java 不取空值_Java:如何更优雅的处理空值?
  10. CMOS 与BIOS
  11. 综述 | 近年来深度学习的重要研究成果(附PDF)
  12. WinZip 15注册码
  13. 1.北京理工大学Python与机器学习-绪论
  14. MySQL中 修改语句使用的关键字是什么_表示修改一个数据库对象的SQL关键字是什么...
  15. javascript 如何正确使用getElementById,getElementsByName(), and getElementsByTagName()
  16. 每日一道Leetcode - 剑指 Offer 13. 机器人的运动范围【DFS|BFS】
  17. 如何绘制业务架构图 — 4.流程图
  18. html+js 实现鼠标粒子拖尾效果其中调用underscore和jQuery库
  19. 鼠标右键点击桌面计算机,鼠标右键点击电脑桌面没有反应的解决方法
  20. 如何使用netcdf4支持编译swan + adcirc

热门文章

  1. 为什么学计算机的人不用360,为什么会电脑的人都鄙视他人安装360?
  2. 遗传算法锦标赛选择java实现_java – 遗传算法锦标赛选择
  3. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...
  4. STC51-串口通信
  5. ubuntu14.04+ROS indigo+kinectV1 骨骼点检测
  6. 服务器新硬盘如何挂在,Ubuntu服务器挂载新硬盘的步骤
  7. 手机闪存速度排行_2020年双十二3000-4000元高性价比手机推荐!
  8. Mysql优化之Order By/Group By
  9. BZOJ1977 [BJOI2010]次小生成树
  10. 爬虫基础12(框架Scrapy中间件)