背景
实现白名单,只允许可信用户访问我的服务
考虑采用iptables或者nginx
如果用nginx,那么可以建立一个allow_ip.conf
,然后把这个配置文件include到nginx的配置中
用户可以主动添加他们的IP到我这,打算玩玩tornado,用户输入他的IP,然后存入到我的文件中,最后定时合并到allow_ip.conf
为了提高工作效率,我司的软件青年们搭建了一组内网mirror,包括apache,pip,npm,jenkins,ubuntu等等。
想用得爽,就得保持与官方一致,需要很频繁的同步。
以前的同步是单线程的,感觉没有完全发挥带宽的优势,所以想尝试一下多线程同步。
href
。最近领导强推单元测试覆盖率,要求达到80%。我打探了一下,据说覆盖率是更上层领导的考核指标,所以今年我们组一大任务就是这。没几个人觉得写好单元测试是为了提升软件质量,提高自己的代码水平。
可以预见的是,有人会为了提高覆盖率,写一堆无效代码
。 “上有所好,下必甚焉”。
距离我上一次吐槽已经过去了半年,我们的单元测试变成了什么情况呢?
半年前我的猜测是为了提高覆盖率,写一堆无效代码
,然而实际情况却比这更糟糕。
1 | EXPECT_EQ(TRUE=TRUE) |
这样每个用例都是绿的
1 | //init module |
测试的是整个模块的输入输出,这样可以保证覆盖率
领导看到用例一片绿,覆盖率90%,觉得我们的代码质量很高。
然而,这并没有什么卵用!!!
这真的没有什么卵用!
这真的没有什么卵用!
这真的没有什么卵用!
主进程不断调用7z.exe进行解压,当文件数量较小时,顺利运行。当文件数量达到几十万的时候,运行过程中7z报错,fatal error 2。
网上很多同僚说这是由于系统资源不足造成的。观察此时的内存及磁盘使用情况,都很充裕,但为何还说资源不足呢?于是开启了蛋疼的定位之旅,至于为什么说很蛋疼呢,这是因为是一个低级错误导致的问题。
心急的朋友可以直接看原理:https://github.com/CodeJuan/HandleLeak
不着急的朋友可以慢慢看定位过程