<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[老顾的记录]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/headman</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; headman]]></copyright><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——尾声]]></title><link>https://blog.youkuaiyun.com/headman/article/details/82916640</link><guid>https://blog.youkuaiyun.com/headman/article/details/82916640</guid><author>headman</author><pubDate>Mon, 01 Oct 2018 15:04:04 +0800</pubDate><description><![CDATA[翻译《有关编程、重构及其他的终极问题？》——尾声
标签（空格分隔）： 翻译 技术 C/C++
作者：Andrey Karpov
翻译者：顾笑群 - Rafael Gu
校验者：高国栋
最后更新：2018年10月01日

##尾声
我希望你喜欢这些技巧。当然，不可能写出所有错误编写程序的方法，而且这样做可能没有任何意义。我的目标是警告一个程序员，并培养一种危机感。也许，下一次当程序员遇到一些奇怪的事...]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——42.不要使用“empty”作为函数名]]></title><link>https://blog.youkuaiyun.com/headman/article/details/82916538</link><guid>https://blog.youkuaiyun.com/headman/article/details/82916538</guid><author>headman</author><pubDate>Mon, 01 Oct 2018 14:47:17 +0800</pubDate><description><![CDATA[我特别在意函数的名字，因为合适的函数名字不光能让人一下子知道这个函数的大概目的，还能简单知道如何使用这个函数。对于强迫症程序员而言，函数的命名更是一个头疼的问题：）]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——41.尽量避免在项目中增加不必要的新库]]></title><link>https://blog.youkuaiyun.com/headman/article/details/82914908</link><guid>https://blog.youkuaiyun.com/headman/article/details/82914908</guid><author>headman</author><pubDate>Mon, 01 Oct 2018 09:32:33 +0800</pubDate><description><![CDATA[程序员最大的困境，其实不是技术如何难实现，或者产品经理如何胡说八道，而是自己力求实现的理想中的通用性、扩展性和现实的需求以及项目实际发展的南辕北辙。对于项目中使用的库，尤其如此。那些沧桑的程序员可以秒懂，新生的呢？还需要经历别人走过的路……]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——40.开始使用静态代码分析]]></title><link>https://blog.youkuaiyun.com/headman/article/details/82880263</link><guid>https://blog.youkuaiyun.com/headman/article/details/82880263</guid><author>headman</author><pubDate>Fri, 28 Sep 2018 12:21:27 +0800</pubDate><description><![CDATA[对静态代码分析的概念和使用做了一个简单介绍]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——39.为何不正确的代码可以工作]]></title><link>https://blog.youkuaiyun.com/headman/article/details/82810260</link><guid>https://blog.youkuaiyun.com/headman/article/details/82810260</guid><author>headman</author><pubDate>Sat, 22 Sep 2018 10:15:02 +0800</pubDate><description><![CDATA[有时候，明明包含有错误的代码，但程序还是照常运行，老程序员秒懂：）这篇就举了个例子。另外，不要使用太复杂的表达式，避免不必要的麻烦。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——38.从今以后使用nullptr而非NULL]]></title><link>https://blog.youkuaiyun.com/headman/article/details/82732405</link><guid>https://blog.youkuaiyun.com/headman/article/details/82732405</guid><author>headman</author><pubDate>Mon, 17 Sep 2018 09:26:18 +0800</pubDate><description><![CDATA[使用NULL表示空指针？似乎成为C/C++的常识，但NULL常会带来一些愚蠢而且难以发现的问题，我自己这么多年编程经历中就遇到。用nullptr吧，不要再用NULL了，为什么，看文内。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——37.注意在do {...} while (...)中的continue]]></title><link>https://blog.youkuaiyun.com/headman/article/details/82459049</link><guid>https://blog.youkuaiyun.com/headman/article/details/82459049</guid><author>headman</author><pubDate>Thu, 06 Sep 2018 11:53:15 +0800</pubDate><description><![CDATA[十分推荐看这篇，因为无论新手还是老手，可能都会忽略continue在do {...} while (...)中潜藏的风险。十分同意作者说的：好的程序员，不是那种炫耀很多不同编程语言技巧的，而是那种能写出清晰、易理解、甚至可以让一个新手都能看懂其代码的。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——36.如果你在电脑上发现一些奇怪的事情，看看内存吧]]></title><link>https://blog.youkuaiyun.com/headman/article/details/81706521</link><guid>https://blog.youkuaiyun.com/headman/article/details/81706521</guid><author>headman</author><pubDate>Wed, 15 Aug 2018 16:33:08 +0800</pubDate><description><![CDATA[如果你的程序不能运行，99.99%的原因可能是你的代码引起的；除此之外，剩余的0.01%，还有可能是海森堡bug、编译器以及硬件内存。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——35.给enum新增常量后不要忘了修改对应的switch操作]]></title><link>https://blog.youkuaiyun.com/headman/article/details/81176076</link><guid>https://blog.youkuaiyun.com/headman/article/details/81176076</guid><author>headman</author><pubDate>Mon, 23 Jul 2018 22:26:48 +0800</pubDate><description><![CDATA[作为翻译者，我觉得作者对于enum和对应switch处理这块写的有些勉强，有些凑文章的意思。这篇是我觉得作者写的最勉强的一篇。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——34.容易被你忽视的未定义行为]]></title><link>https://blog.youkuaiyun.com/headman/article/details/81093910</link><guid>https://blog.youkuaiyun.com/headman/article/details/81093910</guid><author>headman</author><pubDate>Wed, 18 Jul 2018 10:33:42 +0800</pubDate><description><![CDATA[读了这篇文章，除了你可以知道为何使用size_t轮询数组更好，而不是使用其他外，还能知道你自己的汇编有多弱。另外，这篇和前面一篇的部分，作者好像是生气的写的，应该是被很多人怼了之后写的吧：）]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——33.永远不要非法引用空指针]]></title><link>https://blog.youkuaiyun.com/headman/article/details/81051067</link><guid>https://blog.youkuaiyun.com/headman/article/details/81051067</guid><author>headman</author><pubDate>Sun, 15 Jul 2018 10:55:52 +0800</pubDate><description><![CDATA[使用的空指针，如果只是赋值，后面判断后再决定是否使用，部分程序员可能会觉得应该没事，但其实还有一定几率引发不可预知的行为，包括程序崩溃，为什么呢？你想过没有，也许你的编译器会做优化，比如把判断去除了……]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——32.危险的pritnf]]></title><link>https://blog.youkuaiyun.com/headman/article/details/81047680</link><guid>https://blog.youkuaiyun.com/headman/article/details/81047680</guid><author>headman</author><pubDate>Sat, 14 Jul 2018 21:26:31 +0800</pubDate><description><![CDATA[常用的printf等函数，如果用不好，不光是程序会出问题，还会留下安全隐患，可能被某些人攻击]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——31.在C-C++中数组不是值传递的]]></title><link>https://blog.youkuaiyun.com/headman/article/details/77162206</link><guid>https://blog.youkuaiyun.com/headman/article/details/77162206</guid><author>headman</author><pubDate>Mon, 14 Aug 2017 15:29:41 +0800</pubDate><description><![CDATA[其实在C/C++中的函数里，以数组作为参数，还是有很多东西可以挖掘的。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——30.Visual C++和wprintf()函数]]></title><link>https://blog.youkuaiyun.com/headman/article/details/75570689</link><guid>https://blog.youkuaiyun.com/headman/article/details/75570689</guid><author>headman</author><pubDate>Thu, 20 Jul 2017 17:48:33 +0800</pubDate><description><![CDATA[关于字符的各种编码方式，我始终觉得是任何程序员的一个基础知识，另外不同平台上也需要注意不同的对应处理函数。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——29.在迭代器上请使用前置自增操作符（++i），不要使用后置自增操作符（i++）]]></title><link>https://blog.youkuaiyun.com/headman/article/details/75144116</link><guid>https://blog.youkuaiyun.com/headman/article/details/75144116</guid><author>headman</author><pubDate>Sat, 15 Jul 2017 10:03:49 +0800</pubDate><description><![CDATA[很多C/C++程序员都知道++i和i++的区别，但在迭代器上，这个区别就更大了，甚至到了影响性能的地步。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——28.如果你可以使用简单的函数就不要使用宏]]></title><link>https://blog.youkuaiyun.com/headman/article/details/75088382</link><guid>https://blog.youkuaiyun.com/headman/article/details/75088382</guid><author>headman</author><pubDate>Thu, 13 Jul 2017 17:51:54 +0800</pubDate><description><![CDATA[在C/C++中，还是要减少对宏的依赖，虽然宏有时候也很有用。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——27.狡猾的BSTR字符串]]></title><link>https://blog.youkuaiyun.com/headman/article/details/73498523</link><guid>https://blog.youkuaiyun.com/headman/article/details/73498523</guid><author>headman</author><pubDate>Tue, 20 Jun 2017 15:15:52 +0800</pubDate><description><![CDATA[随着10多年前COM被微软放弃，对应的BSTR其实也很少用到了，所以这篇文章本身来说对现在的意义不大了。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——26.潜伏的VARIANT_BOOL]]></title><link>https://blog.youkuaiyun.com/headman/article/details/72830486</link><guid>https://blog.youkuaiyun.com/headman/article/details/72830486</guid><author>headman</author><pubDate>Thu, 01 Jun 2017 13:48:24 +0800</pubDate><description><![CDATA[BOOL类型中TRUE的定义是多少？在C++中，有的时1，有的是0，还有的是-1……所以在出来一个不熟悉的新类型时，最好看一下实际定义的值范围。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——25.不要再用this指针和nullptr比较了]]></title><link>https://blog.youkuaiyun.com/headman/article/details/72627632</link><guid>https://blog.youkuaiyun.com/headman/article/details/72627632</guid><author>headman</author><pubDate>Mon, 22 May 2017 16:37:03 +0800</pubDate><description><![CDATA[在C++发展早期，因为一些原因，this指针有可能是0/NULL/nullptr，所以如果你对老的C++代码进行考古研究，会有if (this == NULL)这种比较的语句；新的C++规范中，this指针不可能为空，所以没有必要在进行这些比较了。]]></description><category></category></item><item><title><![CDATA[翻译《有关编程、重构及其他的终极问题？》——24.override和final关键字应该成为你的新朋友]]></title><link>https://blog.youkuaiyun.com/headman/article/details/70790235</link><guid>https://blog.youkuaiyun.com/headman/article/details/70790235</guid><author>headman</author><pubDate>Wed, 26 Apr 2017 11:06:58 +0800</pubDate><description><![CDATA[好像是借鉴了Java和C#的有点，C++ 11中也多了override和final关键字，这样在使用重载时C++类的二意性和可重载性更可控了，我觉得不错。]]></description><category></category></item></channel></rss>