当前位置: 首页>移动开发>正文

开发人员的便签簿告诉您很多关于他们的信息

当您遇到编码问题时,您如何找到答案?

许多开发人员会说“Google”或“Stack Overflow”。今天,我想提出一个不同的答案。我认识的许多顶级开发人员都很常见。

使用便签本。

开发人员的便签簿告诉您很多关于他们的信息,第1张

什么是便签本?

暂存器是您用来通过编写一些快速代码来测试您的假设的文件。

便签簿可以回答以下问题:

  • 当我尝试访问字典中不存在的键时会抛出什么错误?
  • 将日期时间转换为 ISO 字符串并返回的正确语法是什么?
  • 当我有 的实例时SomeLibraryClass,我可以使用哪些方法和属性?

使用便签本,您可以非常快速地得到问题的答案,因为您可以在现场进行测试。

您还知道便签本的答案是正确的。您可以随心所欲地设置您的小型实验。

顶级开发者使用暂存器

我不能夸大便签本的好处。

它们可以非常快速地用于获得问题的答案。设置文件后,随着时间的推移,迭代实验会变得更容易、更快。对于需要暂存器来运行实验的编译语言尤其如此。

通常,我可以在几秒钟内用便签本回答一个问题,而谷歌要花几分钟才能找到正确的结果。

而“正确”的结果是最重要的一点。您会在互联网上找到各种问题的答案。他们中的许多人都错了。当您运行自己的暂存器实验时,您会对解决方案的正确性充满信心。

暂存器化合物对开发人员的好处。你通过实验来学习。这种体验式学习的一个隐藏好处是,您将来会更好地记住课程。

REPL 和其他实验方法

除了保留暂存器文件之外,还有其他方法可以进行试验。

在非编译语言中,如 Python 或 JavaScript,您可以只打开一个读取、评估、打印循环 (REPL) 来测试一些假设。在命令行上键入pythonnode以立即运行一些代码。

例如,我刚刚用 Python REPL 在不到 30 秒的时间内回答了我的第一个问题(上图):

% python

Python 3.9.9 (main, Oct 20 2022, 08:04:02)
[Clang 14.0.0 (clang-1400.0.29.102)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> d = {}
>>> d['not_a_key']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'not_a_key'

尝试访问 Python 字典中不存在的键会引发KeyError

REPL 非常适合回答快速、相对较小的问题。

一个挑战是,一旦您退出 REPL,您的所有上下文都会随之消失。如果您的实验需要一些设置和迭代,最好将该设置保存在一个文件中。

使用便签本

让我们使用便签本来回答其他两个问题(在 Python 中)。

将日期时间转换为 ISO 字符串并返回

这是我学习 ISO 字符串的便笺簿。这些字符串是跨语言和国家/地区共享的日期和时间的标准格式。

首先,让我们尝试将日期时间转换为 ISO 字符串。我将创建一个 Python 日期时间,然后使用标准库函数查看我可以使用哪些方法dir()

from datetime import datetime

utcnow = datetime.utcnow()

print(dir(utcnow))

有一种isoformat方法看起来像我需要的!让我们更新scratch.py来测试一下。

from datetime import datetime

utcnow = datetime.utcnow()
iso = utcnow.isoformat()

scratch.py现在,让我们通过使用 Python 中的交互式标志运行我们的文件来获得一点乐趣-i

看,我们可以进入我们程序的运行时,看看我们变量的值是多少。utcnow并且iso似乎按预期工作,并且它们参考了同一时间。

要回答问题的第二部分——从 ISO 转换回来——我想看看datetime。看!有一个fromisoformat方法。

我们再更新scratch.py一次来测试一下:

from datetime import datetime

utcnow = datetime.utcnow()
iso = utcnow.isoformat()

from_iso = datetime.fromisoformat(iso)

assert utcnow == from_iso

回到命令行,当您运行 时python scratch.py,您看不到任何输出。成功assert并且不会引发错误!

我们很快回答了这个问题,学到了很多东西(可能比从 Stack Overflow 复制粘贴更深入),并且我们有我们理解的工作代码。

探索未知的图书馆

让我们以csv图书馆为例。它是标准 Python 的一部分,所以我们可以直接将它导入我们的暂存器。

如果我们转到csv 文档并复制其中一个示例,我们可以尝试一下:

import csv

with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

但现在,我们可以进行更改scratch.py以了解 CSV 库的工作原理。

import csv

with open('eggs2.csv', mode='w', encoding='utf8') as csvfile:
    spamwriter = csv.writer(csvfile)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

愚蠢的例子

这些都是简单的例子,但它们已经展示了暂存器的强大功能。

在更复杂的应用程序中,暂存器可能是天赐之物。您可以使用它们以可重复的方式设置复杂的案例。编写暂存器来重现错误是您可以使用的最佳调试模式之一。

从简单的问题到复杂的调试,暂存器都是很棒的工具。随着您更好地使用它们,您将成为更好的开发人员。

每日清单

我每天早上都会为软件开发人员写一些新东西。


https://www.xamrdz.com/mobile/4d41910557.html

相关文章: