Yᴏᴜʀ Pʀᴏᴅᴜᴄᴛ ʜᴇʀᴇ!
在此处添加指向您的公司或项目的链接:购买 GitHub 赞助。
世界的逻辑先于一切真理与谬误。
— 路德维希·维特根斯坦[1]
程序员所相信的谎言的精选列表。谎言是指您最初认为是正确的想法,但实际上,它被证明是错误的。
例如一个想法:有效的电子邮件地址恰好有一个@
字符。因此,您将使用此规则来实现电子邮件字段验证逻辑。正确的?错误的!现实情况是:电子邮件可以有多个@
字符。因此,您的实现应该允许这样做。最初的想法是你所相信的谎言。
下面列出的错误文章将全面列出您应该注意的错误信念,以帮助您成为更好的程序员。
<
和>
会导致 XSS 攻击 - 由于英国允许公司使用特殊字符注册,黑客利用它们注册"><SCRIPT SRC=MJT.XSS.HT></SCRIPT> LTD
,而且还; DROP TABLE "COMPANIES";-- LTD
、 BETTS & TWINE LTD
和SAFDASD & SFSAF ' SFDAASF" LTD
。tax
- PHP 5.4+ 税务管理库。 YYYY
、 yyyy
以及为什么您的年份可能是错误的 - 日期的字符串格式很难。libvldmail
- 一个实现基于 RFC 的电子邮件地址检查的库。 NSPersonNameComponentsFormatter
- 人名组成部分的本地化表示。 关于字符编码、字符串格式化、unicode 和国际化。
Latin-1
假设 - 大多数程序员在Latin-1
上花费了太多时间,他们忘记了其他脚本的怪癖。hostname-validate
- 尝试在 Python 中验证主机名。 libphonenumber
- Google 的通用 Java、C++ 和 JavaScript 库,用于解析、格式化和验证国际电话号码。还适用于 C#、Objective-C、Python、Ruby 和 PHP。 20252
),因为他收到的邮件非常多。libaddressinput
- Google 的通用 C++ 和 Java 库,用于解析、格式化和验证国际邮政地址。addressing
- PHP 5.4+ 寻址库,由 Google 数据集提供支持。postal-address
- 用于解析、规范化和呈现邮政地址的 Python 模块。address
- 使用 Google 数据集验证和格式化地址的 Go 库。 /
开头,那么它就是一个路径。在 Windows 上则不然。”/dev/urandom
神话 - 关于/dev/urandom
和/dev/random
的一些事情被一次又一次地重复。但它们仍然是错误的。mtime
的流行误解 - 关于为什么文件的mtime
比较可能被认为有害的帖子的一部分。0.1 + 0.2 != 0.3
。”MR
后缀视为Mister
并将其删除。 随时欢迎您的贡献!请先查看贡献指南。
过去几年,这份清单在社交媒体上颇受欢迎。请参阅其他地方讨论和提及的内容。
标题图片基于 Iza Bella 于 2010 年 2 月拍摄的经过修改的照片,并根据 Creative Commons BY-SA 2.0 UK 许可分发。
[1]:笔记本,1914-1916 (Liveright,2022)-来源:第 14e 页。 [↑]