一个老程序员的建议
我做了很久的编程。久的你都想象不出来,久的都让我苦恼。就在我写这本书的时候,我大概懂 20 种编程语言,而且我可以用一天或长点儿用一周的时间学 会一种新语言——要依这种语言有多奇怪而定。但这最终成为了我的苦恼,它们已经不能再吸引我的兴趣。我并不是说这些语言没有意思,或告诉你你会觉得它们很 枯燥。只是想说在我的职业旅程走到现在,我已不再对语言有兴趣。
我做了很久的编程。久的你都想象不出来,久的都让我苦恼。就在我写这本书的时候,我大概懂 20 种编程语言,而且我可以用一天或长点儿用一周的时间学 会一种新语言——要依这种语言有多奇怪而定。但这最终成为了我的苦恼,它们已经不能再吸引我的兴趣。我并不是说这些语言没有意思,或告诉你你会觉得它们很 枯燥。只是想说在我的职业旅程走到现在,我已不再对语言有兴趣。
本文主要按照 Mozilla 对于服务端 TLS 协议配置的建议来提供 nginx 的配置建议,按照这些建议进行配置可以让我们的站点更加安全。
本篇记录一下我传书到 Kindle 的「独特」方式——WiFi 传书插件。可以直接通过 WiFi 传输电子书到 Kindle,不需要使用 USB 线,也不依赖其它服务,只要 Kindle 和手机/电脑在同一个局域网内,就可以通过浏览器直接上传电子书到 Kindle。
在做新需求开发或者相关系统的维护更新时,尤其是涉及到不同系统的接口调用时,在可维护性方面,总感觉有很多地方差强人意。一些零星思考,抛砖引玉,希望引发更多的思考和讨论。
这篇准备了很久,又临时起意,而终于“完成”了的短文,旨在将一些我觉得重要的建议讲给渴望成长,又不知从何做起的同学们。这里分享的几个小的点,做起来难度应该都不算大,如果能持之以恒,我相信你可以看到自己成长的速度。
虽然通常很容易构建能够正常运作的软件, 但更难的是确定没有人能够以不是预期的方式使用它。
Solidity中,这更加重要,因为你会使用智能合约来 控制token,甚至可能是更加宝贵的东西。 此外,每次 智能合约的执行,都是公开的。并且, 代码也常常是开源的。
当然,你总是必须考虑这个问题有多大: 你可以用一个web服务来和智能合约进行对比,这个web服务向公众开放 (也可能是向恶意攻击者),甚至可能是开源的。 如果您只是在那个web服务上存储您的杂货列表, 您可能没有必要 关心太多,如果你使用这个web服务处理你的银行账户, 你应该更加谨慎。
本节将列出一些陷阱和一般安全建议,但 当然,永远不可能是完整的。 还有,请记住,即使你的智能 合约代码是没有bug的,编译器或平台本身可能有一个 bug。 编译器中一些已公开的安全错误列表 可以在 :ref:list of known bug<known_bugs>中找到, 这也是 机器可读的。 注意有一个覆盖Solidity编译器的代码生成器的 bug bounty 程序 。
到现在,我已经做了超过 21 年开发,可以说,我生命中超过一半的时间都在编程,那既是我的职业,也成了我的习惯。
通常能听到的答案是使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道IS NULL会使用索引.所以上述说法有漏洞
简历经常是给面试官的第一印象,但很多还没踏出校门的同学们不知道怎么写好简历,我时常有拿着一份简历不知道该怎么面试他的情况。而在秋招这种大规模招聘的季节,面试官刷简历时如果一份简历没法在很短的时间内吸引到注意力,那很容易就被漏过了,因为这样被淘汰岂不可惜。
那怎样的前端简历才算好简历?
有一种说法是,“一个伟大的程序员相当于10个平庸的程序员”。
没有人愿意被贴上了糟糕程序员的标签,但一个可悲的事实是,很多开发人员没有意识到他们自己就属于这一群体。没有人愿意问自己:我是一个糟糕的开发人员吗?
本文会提到 52 条 SQL 语句性能优化策略。
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。
2、应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。