当前位置: 首页 > 科技观察

开始用真实的代码写好例子

时间:2023-03-15 08:18:14 科技观察

写程序的时候,我花很多时间写好例子。我从来没有见过有人写过如何写一个好的例子,所以这里是如何写一个好的例子。基本思想是从您编写的真实代码开始,然后删除不相关的细节以使其成为一个独立的示例,而不是试图凭空想出示例。我会讲两种例子:基于真实案例的例子和奇怪的例子好例子是真实的为了说明为什么好例子应该是真实的,让我们从一个不真实的案例开始。假设我们正在尝试解释Python的lambda函数(这只是第一个想到的概念)。您可以举一个使用map和lambda将一组数字加倍的示例。numbers=[1,2,3,4]squares=map(lambdax:x*x,numbers)我不认为这个例子是真实的有两个原因:一组数字的平方不是真实的在程序中完成的事情,除非它是ProjectEuler或其他东西(更有可能用于列表操作)map在Python中不常用,即使为此我更愿意编写[x*xforxinnumbers]Pythonlambdas的一个更现实的例子是使用排序函数,像这样:children=[{"name":"ashwin","age":12},{"name":"radhika","age":3}]sorted_children=sorted(children,key=lambdax:x['age'])但是这个例子是人为的(为什么我们需要按年龄对这些孩子进行排序?)。那么我们如何做一个真实的例子呢?如何使您的示例逼真:查看您编写的实际代码我认为生成示例的最简单方法不是凭空制作示例(就像我对孩子的示例所做的那样),而是从真实代码开始!举个例子,如果我想用sort.+key来写一串Python代码,我会发现很多真实的例子是我按照一定的标准对列表进行排序,比如:tasks.sort(key=lambdatask:task['completed_time'])emails=reversed(sorted(emails,key=lambdax:x['receivedAt']))sorted_keysizes=sorted(scores.keys(),key=scores.get)shows=sorted(dates[date],key=lambdax:x['time']['performanceTime'])这里很容易看出一个规律——这些基本上都是按时间排序的!因此,您可以看到按时间排序的某些对象(电子邮件、事件等)的简单实例是如何轻松组合在一起的。现实的例子有助于“宣扬”你试图解释的概念当我试图解释一个想法(比如PythonLambdas)时,我通常也会试图说服读者这是一个值得学习的想法。Pythonlambda非常有用!当我试图说服某人lambda是好的时,让他或她想象lambda将如何帮助他们完成他们将要完成的任务或他们以前完成的任务会很有帮助。帮助。从真实代码中提取示例可能需要很长时间,而我对如何使用lambda和排序函数的解释非常简单,我没花很长时间就弄明白了,但是将真实代码提取为一个独立的示例需要很长时间!例如,我想在本文中包含一些奇怪的CSS行为示例,以说明创建一个奇怪的案例是多么有趣。我花了两个小时解决了本周遇到的一个实际问题,确保我理解了CSS的实际应用,并将其变成了一个小例子。最后,它“只是”五行HTML和一点CSS来说明问题,而且看起来不像我花了几个小时写的。但是一开始就是几百行的JS/CSS/JavaScript,花了很长时间才用很少的代码把所有的代码缩减到核心。但我认为花时间让示例变得非常简单明了是值得的-如果有数百人阅读您的示例,那么您就为他们节省了很多时间!就这样!我认为关于这些示例还有更多要说的-一些不同类型的有用示例,例如:比使用时的直接惊喜更能改变思维方式读者的示例代码很容易复制粘贴以进行初始化也许有一天我会再写一些?:笑脸: