|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Python 周报 #2 | 2020-05-10" |
| 4 | +permalink: /2 |
| 5 | +--- |
| 6 | + |
| 7 | +Python 周报,提供有价值的 Python 及行业相关信息。 |
| 8 | + |
| 9 | +如果你发现了有价值的信息、文章和工具等,可以到 [Issues](https://github.com/qiwihui/PythonWeekly/issues) 里提给我,记得写上推荐的理由。也欢迎提出意见和建议。 |
| 10 | + |
| 11 | +## :newspaper_roll: 新闻 |
| 12 | + |
| 13 | +### [Python 3.9 发布时间表](https://www.python.org/dev/peps/pep-0596/) |
| 14 | + |
| 15 | +在上周的周报中,我们将 Python 3.9 的发布日期弄错了,以下是正确的日期:3.9.0最终版预计于2020年10月5日发布。2020年5月18日,将发布 3.9.0 beta 1版,标志着功能冻结阶段的开始。 |
| 16 | + |
| 17 | +### [2020 Python 语言峰会](http://pyfound.blogspot.com/2020/04/the-2020-python-language-summit.html) |
| 18 | + |
| 19 | +Python 语言峰会是由 Python 语言实现者(包括 CPython 和替代 Python 的核心开发人员)以及第三方库作者和其他 Python 社区成员组成的小型聚会。峰会的特色是简短的演讲,然后进行小组讨论。2020年,峰会通过视频会议举行了两天;并使用语音和聊天形式结合提出问题。Python 软件基金会(PSF)正在发布演示文稿的摘要。 |
| 20 | + |
| 21 | +### [TensorFlow 2.2.0 发布](https://github.com/tensorflow/tensorflow/releases/tag/v2.2.0) |
| 22 | + |
| 23 | +TensorFlow 2.2.0 正式发布了,该版本终止了对 Python 2 的支持。与此同时,TensorFlow 的 Docker 镜像的新版本仅提供Python 3。由于现在所有镜像都使用Python 3,因此将不再提供包含 `-py3` 的 Docker 标签,并且不会更新现有的 `-py3` 标签(例如 `latest-py3`)。查看发行说明以了解此发行版中的其他功能和改进。 |
| 24 | + |
| 25 | +### [Python开发人员调查2019年结果](https://www.jetbrains.com/lp/python-developers-survey-2019/) |
| 26 | + |
| 27 | +去年11月,来自150多个国家/地区的24,000多名 Python 用户参加了这项调查。借助收集到的数据,我们能够呈现汇总的结果,识别最新趋势并创建 Python 开发人员形象。 |
| 28 | + |
| 29 | +## :pencil: 文章和教程 |
| 30 | + |
| 31 | +### [机器学习和深度学习基础](https://deeplizard.com/learn/playlist/PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU) |
| 32 | + |
| 33 | +本系列为初学者介绍了深度学习和人工神经网络基础的概念。 除了涵盖这些概念之外,我们还将展示如何使用 Keras(一种用 Python 编写的神经网络 API)在代码中实现某些概念。 我们将学习人工神经网络中的层,激活函数,反向传播,卷积神经网络(CNN),数据增强,迁移学习等等! |
| 34 | + |
| 35 | +### [Python CLI 漫游指南](https://vinayak.io/2020/05/04/the-hitchhikers-guide-to-clis-in-python/) |
| 36 | + |
| 37 | +这片文章基于作者同名 [PyCon 2020演讲](https://www.youtube.com/watch?v=Hn-syMunNy8)。 |
| 38 | + |
| 39 | +**第1部分──终端和 CLI 的剖析**:了解终端和 CLI 的工作方式。 |
| 40 | + |
| 41 | +**第2部分──用于编写 CLI 的 Python 软件包**:查看可用于编写 CLI 的软件包,这些软件包可在 Python 标准库和 PyPI 中获得。 |
| 42 | + |
| 43 | +**第3部分──使用 Click 编写和打包 CLI**:探索各种 CLI 用例,并了解如何使用 Click 和一些常用的 git 子命令来实现 git 的克隆。 |
| 44 | + |
| 45 | +**第4部分──用户体验**:查看一些可以创建良好的 CLI 用户体验的原则。 |
| 46 | + |
| 47 | +### [Python Functools 模块简介](https://florian-dahlitz.de/blog/introduction-to-functools) |
| 48 | + |
| 49 | +`functools` 模块是 Python 标准库的一部分,是针对高阶函数实现的。高阶函数是作用于或返回另一个函数或多个函数的函数。通常,就此模块而言,任何可调用对象都可以视为函数。`functools` 提供11个函数: |
| 50 | + |
| 51 | +- `cached_property()` |
| 52 | +- `cmp_to_key()` |
| 53 | +- `lru_cache()` |
| 54 | +- `partial()` |
| 55 | +- `partialmethod()` |
| 56 | +- `reduce()` |
| 57 | +- `singledispatch()` |
| 58 | +- `singledispatchmethod()` |
| 59 | +- `total_ordering()` |
| 60 | +- `update_wrapper()` |
| 61 | +- `wraps()` |
| 62 | + |
| 63 | +在整篇文章中,我们将仔细研究每个函数以及一些有用的示例。你可以在 [GitHub](https://github.com/DahlitzFlorian/introduction-to-functools-article-snippets) 上找到本文中使用的代码段。 |
| 64 | + |
| 65 | +### [使用Python datetime处理日期和时间](https://realpython.com/python-datetime/) |
| 66 | + |
| 67 | +处理日期和时间是编程中的最大挑战之一。在处理时区,夏令时和不同的书面日期格式之间,很难跟踪所指向的日期和时间。幸运的是,Python 内置的 `datetime` 模块可以帮助你处理日期和时间的复杂。在本教程中,你将学习: |
| 68 | + |
| 69 | +- 为什么用日期和时间编程是一个挑战 |
| 70 | +- Python datetime 模块中提供哪些功能 |
| 71 | +- 如何以特定格式打印或阅读日期和时间 |
| 72 | +- 如何对日期和时间进行算术运算 |
| 73 | + |
| 74 | +另外,你将开发一个精巧的应用程序,以计算到下一次 PyCon US 之前的剩余时间! |
| 75 | + |
| 76 | +### [为什么测试用例要写文档](https://hynek.me/articles/document-your-tests/) |
| 77 | + |
| 78 | +很明显,一段时间之后你可能就忘了测试用例写了啥了。 |
| 79 | + |
| 80 | +### [Python 中的一些安全问题](https://xz.aliyun.com/t/7582) |
| 81 | + |
| 82 | +文章分析了 Python 中的一些安全问题,涉及的方面包括: |
| 83 | + |
| 84 | +- Input function |
| 85 | +- Assert statement |
| 86 | +- Reusable integers |
| 87 | +- Floats comparison |
| 88 | +- Private attributes |
| 89 | +- Module injection |
| 90 | +- Code execution on import |
| 91 | +- Monkey patching |
| 92 | +- Shell injection via subprocess |
| 93 | +- Temporary files |
| 94 | +- Insecure deserialization |
| 95 | +- Templating engines |
| 96 | + |
| 97 | +### [Python 2 死亡的变化](https://www.b-list.org/weblog/2020/may/05/python/) |
| 98 | + |
| 99 | +年初,Python 2发行系列已结束其 Python 核心团队的上游支持,2020年4月20日,Python 2系列的最后一个版本 2.7.18 也正式发布。尽管操作系统供应商将在一段时间内支持 Python 2,并且其他一些社区项目声称他们将无限期地继续支持 Python 2解释器,但 Python 开发的主流最终将继续前进。流行的库和框架大多已经删除,或者正在删除对 Python 2的支持(例如,Django 最后支持 Python 2 的1.11 LTS(最初于2017年发布)其上游支持已于4月结束)。作者简要回顾并探讨了 Python 2之后的变化和发展。 |
| 100 | + |
| 101 | +### [后端软件架构清单:如何从头开始构建产品](https://www.freecodecamp.org/news/have-an-idea-want-to-build-a-product-from-scratch-heres-a-checklist-of-things-you-should-go-through-in-your-backend-software-architecture/) |
| 102 | + |
| 103 | +当你一大早醒来突然有了一个很好的商业点子时,你可能会迫不及待开始构建你的产品软件。从头开始构建软件架构涉及很多事情,你可能会完全忘记某些部分。在产品周期的后期,这些可能会是你的坑。这篇文章中的清单列举了你在首次部署前需要考虑的事项。因此,在不进行进一步构建的情况下,这是从头开始为产品构建后端结构时应检查的清单。这些清单包括: |
| 104 | + |
| 105 | +- 针对你的项目,选择**正确**的语言和框架 |
| 106 | +- 实现身份验证和授权微服务 |
| 107 | +- 创建一个抽象基类模型,以供数据库中的所有其他模型继承 |
| 108 | +- 设置通知微服务 |
| 109 | +- 设置错误日志记录 |
| 110 | +- 实现请求响应和应用程序的日志记录 |
| 111 | +- 在你的 API 中引入限制(throttling)和对应用程序服务器进行速率限制 |
| 112 | +- 从第一天开始就建立和配置异步通信 |
| 113 | +- 设置定时任务 |
| 114 | +- 正确管理你的密码(参数文件) |
| 115 | +- 从第一天开始就对 API 进行版本控制 |
| 116 | +- 确定前端客户端的硬更新和软更新版本检查 |
| 117 | +- 从第一天开始就引入持续集成(CI) |
| 118 | +- 启用容器支持 |
| 119 | +- 使用应用程序监控工具 |
| 120 | +- 使用 ElasticSearch 在客户端应用程序中增强应用程序范围内的搜索 |
| 121 | +- 在生产服务器中设置防火墙 |
| 122 | + |
| 123 | +## :office: 项目,软件包和代码 |
| 124 | + |
| 125 | +[GIMP-ML](https://github.com/kritiksoman/GIMP-ML):GIMP的机器学习Python插件集。 |
| 126 | + |
| 127 | +[Rich](https://github.com/willmcgugan/rich):Rich是一个Python库,用于在终端中显示富文本和精美格式。 |
| 128 | + |
| 129 | +## :books: 书籍 |
| 130 | + |
| 131 | +### [程序员修炼之道(第2版)──通向务实的最高境界](https://book.douban.com/subject/35006892/) |
| 132 | + |
| 133 | +《The Pragmatic Programmer》第一版出版于1999年,距今已有20年,出版后,对于软件工程实践产生了很大影响。该书作者是 Andrew Hunt 和 David Thomas,他们都是敏捷宣言的17个创始者之一。Andrew 还是敏捷联盟(Agile Alliance)的创始人。David 则是著名的 DRY(Don't Repease Yourself) 一词的发明者。在时隔二十年之后重新修订出版本书,作者对于其内容作了不少调整,这些调整反映了他们在这二十年中所获得的新的认知,也反映了时代变迁。 |
| 134 | + |
| 135 | +── 摘自 https://zhuanlan.zhihu.com/p/79435147 |
| 136 | + |
| 137 | +## :tv: 音视频 |
| 138 | + |
| 139 | +### [Python的未来](https://www.thoughtworks.com/podcasts/future-python) |
| 140 | + |
| 141 | +企业对机器学习的日益重视也使人们对 Python 产生了浓厚的兴趣。是什么使 Python 与其他语言不同?使其具有独特性的主要功能是什么?Python 以后的发展将会是怎样?在本集中,我们的播客与来自ThoughtWorks Brazil 的 Luciano Ramalho(著名的Python书籍作者)进行了交谈,内容涉及魔术方法(dunder methods),快速失败(fast fail)以及即将发行的第二版《流畅的 Python》中新增的功能。 |
| 142 | + |
| 143 | +## :coffee: 关注我们 |
| 144 | + |
| 145 | +RSS 订阅:[PythonWeekly RSS](https://pyweekly.qiwihui.com/feed.xml) |
0 commit comments