练习 10:sort
原文:Exercise 10: sort 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译
你正在慢慢地构建我所说的个人流程实践(3P),这根本不是一个新的想法。3P 的目的是客观的洞察如何做事情,而避免杀死你的创造力和生产力。通过简单地跟踪小型指标和制作运行图来指导改进,你可以彻底改变你的工作状况。但是,这样做的风险在于,这会阻碍你快速入侵黑客或完成任务,或者你的 3P 的工作量将比你的实际工作更多。
在我的编程生涯中,我这样做了大约四年,并且它很好地让我认识到我自己和我的工作方式。它还切断了流程倡导者推动的许多谎言。我有一个简单的方法,来实际测试一些专家对程序设计的看法是否提高了我的个人生产力。我会说,我所做的唯一错误就是把它看得太重了,在四年时间里我的创造力被扼杀了。
这就是为什么你要在小型的快速 Hack 中,构建你的启动流程和工作环境的概念。只有 45 分钟的情况下,你没有时间收集复杂的指标,以及担心你怎么处理事情。稍后我们将专注于需要集中的实践,你将花费更多的时间并收集稍微更好的指标。当你工作的时候,尝试不让这些指标扼杀你的创造力,流程或快乐。如果你讨厌收集东西,那就不要这样做。找到一种自动化方式,或者提出另一个指标来代替。
对于这个练习,你正在制作完成功能的百分比的运行图表。这意味着在你工作之前,你必须列举在sort
命令的所有功能,可以在它的标准手册页中可以找到,然后标记已完成的功能。记住要对它们进行排序,以便你可以完成足够的功能,以及该工具能够实际工作。对于不能实际工作的排序文本的工具,获得90%的分数意味着你实际完成了0%。
完成后,你应该制作每个项目的完成功能的百分比运行图,以便我们在下一个练习中进行分析。
挑战练习
在本练习中,你正在实现sort
命令,这是一个非常简单的命令。它需要文本行,并按顺序对它们进行排序。它有相当多的有趣选项,所以你应该阅读man
的sort
页面,来弄清它可以做什么。大多数时候,人们只是使用sort
来排序名称列表:
ls | sort
你也可以反向排序:
代码语言:javascript复制ls | sort -r
你也可以控制如何排序,例如忽略大小写:
代码语言:javascript复制ls | sort -f
或者,你甚至可以执行数值排序:
代码语言:javascript复制ls | sort -g
这对于ls
的输出可能没有用,除非它们都是数字。
你的工作是尽可能实现这些功能,并跟踪你完成的每个功能。这些都应该在你的实验笔记中,以便以后分析。
研究性学习
- 你现在已经完成了一些改进的事情吗?尝试搜索并寻找其他人的流程建议。
- 我们是程序员和代码人。你试图找到能使你更有效率的代码吗?我的朋友 Audrey 和 Danny 有一个名为 cookie-cutter 的项目,你应该查看一下。
- 你现在应该研究如何计算一组数字的平均值。你将使用它在 Python 中计算运行图的中线。
深入学习
如果你真的想要一个正确的运行图,还需要计算你的数值的标准差。现在不需要,但如果你想要极其准确的,那么这是有帮助的。