Fork me on GitHub

代码重构的实战经验和那些坑

2012年冬,我在一家创业公司的小团队里搞软件开发。彼时我们有一位真实的企业客户,且软件的第一版也已发布。开发按进度完工,在发布时我欣喜若狂,也非常骄傲,看着系统服务于每天几百万的独立用户,并发送出数千万条短信真是太令人满意了。到了第二年夏天,公司拿到了真实收入,我的职位变成了开发主管,公司又招了些新人,正待蓬勃发展,一切都很美好。然后我们做了一个巨大的决策失误:决定重写软件——从头开始。

Go语言开发-布尔与数值类型-基础

Go语言支持两种类型的注释,与C++的一样。行注释以//开始,以换行符结束;它们被简单当做一个换行符。块注释以/*开头,以*/结尾,可能包含多个行。如果块注释只占用了一行(如/*line comment*/),它被当做一个空格对待,如果该块注释占用了多行,它就被当做一个换行符对待。(我们将在第5章看到,换行符在Go语言中非常重要。)

程序员的鄙视链

最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写 JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。

趣文:我是一个线程

趣文:我是一个线程

我是一个线程,我一出生就被编了个号: 0×3704,然后被领到一个昏暗的屋子里, 这里我发现了很多和我一模一样的同伴。
我身边的同伴0×6900 待的时间比较长, 他带着沧桑的口气对我说:
”我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。”

老码农冒死揭开行业黑幕:如何编写无法维护的代码

老码农冒死揭开行业黑幕:如何编写无法维护的代码

老码农冒死揭开行业黑幕:如何编写无法维护的代码。为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没人能维护你写的代码。

使用C编译器编写shellcode

有时候程序员们需要写一段独立于位置操作的代码,可当作一段数据写到其他进程或者网络中去。该类型代码在它诞生之初就被称为shellcode,在软件利用中黑客们以此获取到shell权限。方法就是通过这样或那样的恶意手法使得这段代码得以执行,完成它的使命。当然了,该代码仅能靠它自己,作者无法使用现代软件开发的实践来推进shellcode的编写。

MemCache超详细解读

MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。

Android APK安装后不在桌面生成快捷方式图标

大家知道在Android系统的手机安装APK应用后会在桌面上生成此APK的快捷方式,用户通过直接点击可以进入此应用程序。但作为开发人员,我们有时候并不希望在安装APK完成后生成快捷方式,而是通过先进入某个应用程序,然后在此应用程序中进入另一个应用程序,那么该怎么在安装完APK后不生成桌面快捷方式呢?…

Android中修改源码实现AutoCompleteTextView控件的模糊匹配

Android中修改源码实现AutoCompleteTextView控件的模糊匹配

最近在做Android开发,使用其控件AutoCompleteTextView时发现只能实现前缀匹配,也就是说只能匹配以所输入的字符开始的数据,觉得google这个做的不好,不够人性化。要是数据非常多,而又确实不记得所要找的数据以什么字符开始的,那该怎么办呢?哈哈,作为中国共产党领导下的共产主义下的…