title: 为什么有些大公司技术弱爆了？
desc: 今年年初，到一家互联网公司实习，该公司是国内行业龙头。<br><br>不过技术和管理方面，却弱爆了。<br><br>那里的程序员，每天都在看邮件，查问题工单。<br>这些问题，多半是他们设计不当，造成的。<br><br>代码写的一团糟，全是复制粘贴，连作者都没改，大家普遍不写注释，也不格式化，代码歪歪扭扭。<br><br>一个项目里，httpclient竟然出现了四种。<br>一种是该公司研发部写的，<br>一种是老版本的开源项目，<br>一种是新版本的开源项目，<br>还有一种是开发人员造的轮子。<br><br>打接口请求响应日志，竟然不知道用拦截器。<br>打错误日志竟然不打上下文信息，每个人一种日志风格，千奇百怪。<br>许多重要的中间流程，居然不打日志。<br><br>ideaeclipsemyeclipse的配置文件竟然全部传到项目里去了。<br><br>该公司混了两年的程序员，跟快递公司做查询接口，竟然不知道加密运单号。<br><br>所有服务间通讯，都没有设requestId，导致跟踪会话很困难。<br><br>一个没什么qps的边缘接口，居然做消费者生产者阻塞队列的异步模式。<br>显得你技术少是不是。<br>不知道异步会增加维护成本，提高测试难度吗？<br>而且，任务队里没有考虑持久化，赶上发布，丢了好多任务。<br><br>读取一个小小的xml和exc配置文件，居然用流式解析，没见过这么二逼的，真是醉了。<br><br>做优化全靠拍脑门拍大腿，难道不会用excel分析日志，用jprofile扫项目？<br>一个100以内的常数集合遍历，他也要写个优化算法进去，算法跟业务还搅在一起，一团乱麻。<br>每个人都在嚷嚷性能算法分布式计算<br><br>几乎没有文档，全靠从代码反推逻辑。<br><br>有枚举他不用，非要在每个页面上，把枚举值挨个儿写死，知道后面改代码多么费劲吗？<br><br>欺骗性的变量名，里面存储的是AES加密的，变量名后缀却写成了DES里面存的是小写字母，却写成upperStr。<br>一个方法十几个参数，有三分之一是极其简略的缩写，注释肯定也没有的。<br>一个类写到三四千行是常事。<br><br>开发自测，居然要把代码全丢到公共机器上，而且都是走svn，他们把svn当ftp用。<br>svn里面大量的无意义提交，一多半的提交连都编译不过去。<br>我看到有个应届生，改了两句话，马上提交，说是怕代码丢失。<br><br>一个运行了两年的项目，spring的包扫描明显配错了，有些bean根本扫不进来，居然没有人发现。<br>一半的bean在spring管理下，另一半的bean他们自己写单例模式来实例化。<br><br>他们用mysql来做审计系统，出报表，有个报表要跑8分钟。<br>原来是有人用字符串来存多值（逗号分隔），sql里写了like，导致没有利用到索引。<br>为什么不用pg，pg在sql编程方面，功能更丰富，更适合做统计，它本身就支持数组。<br><br>程序员们都是得过且过的态度，怎么把代码灌进去，跑的通测试，就算交差了。<br><br>为什么大型互联网公司，技术和管理这么差劲，是怎么形成的？<br>（这家公司是卖机票的，没有明确说出公司名字，是怕给自己惹麻烦）
topic: 互联网
content: 为什么有一种我们公司的既视感，但后来想象应该不是，我们这边不用mysql，也不用svn。来到这个公司两年了，烂代码见的越来越多，新的功能完全就是网上堆代码了。为什么不敢换新技术呢？因为底层数据结构都用了10年了，谁也不敢换架构，而且现在连重构一次的时间都没有。嗯，大公司有的时候也有大公司的无奈，但是题主还是走吧，我也要走了