Programming Things I Wish I Knew Earlier 我早该知道的编程方法
"Raw intellect ain't always all it's cracked up to be, advises Ted Dziuba in his introduction to Programming Things I Wish I Knew Earlier, so don't be too stubborn to learn the things that can save you from the headaches of over-engineering. Here's some sample how-to-avoid-over-complicating-things advice: 'If Linux can do it, you shouldn't. Don't use Hadoop MapReduce until you have a solid reason why xargs won't solve your problem. Don't implement your own lockservice when Linux's advisory file locking works just fine. Don't do image processing work with PIL unless you have proven that command-line ImageMagick won't do the job. Modern Linux distributions are capable of a lot, and most hard problems are already solved for you. You just need to know where to look.' Any cautionary tips you'd like to share from your own experience?" “原创的智慧并不如人们所说的那么好,Ted Dziuba在他对《我早该知道的编程方法》的介绍中提出。因此不要太固执于从头学习可以把你从过度工程化的头疼中解脱出来的方法。下面有一些简单的‘如何避免过度发杂的事情’的建议:‘如果Linux可以做,你就不要去做。不要用Hadoop MapReduce,除非你有充分的理由解释xargs为什么无法完成你的工作。只要Linux的咨询文件加密还可以用,不要实现你自己的加密服务。不要用PIL做图像处理,除非你能证明命令行ImageMagick无法完成这项工作。现代Linux发行可做的事太多了,而且很多难题都已经为你解决了。你所要做的只是找到这些解决方案。’从你自己的经验中,你可以分享那些诫言?”