两周前来的初创公司,当时来面试的时候说之前的 代码是外包写的,我已经有心理准备了.
但是却没想到,居然这么渣.
这只是冰山一脚,for 循环用的出神入化,sql 拼的清新脱俗,
没有用户登陆认证的说法,只需要传 userId 来识别用户身份,
没有任何安全意识,用户列表直接返回了用户的所有信息,包括手机号 密码(明文).
没有订单概念,微信支付只负责生成订单 id,不保存,支付宝由客户端自己生成订单(私钥当然也在 app 啦~)支付成功后由客户端直接提交 userid,money 直接存放数据库..
数据库有一个查询要 14 秒 ,居然还不建索引,不优化.不过想想 之前的 sql,也就明白了
这仍然只是冰山一角.
负责人不懂技术,现在技术只剩下两个 ios 和我了(说是目前不打算做 android)
现在年底了.工作不太好找.不造该咋办了.
工作正好2年半,不过学历是大专
![]() | 1 Miy4mori 2016-12-19 15:25:04 +08:00 via Android 大兄弟,赶紧另谋出路吧! |
![]() | 4 zhuangzhuang1988 2016-12-19 15:32:36 +08:00 我草, 网站 /api 在哪里, 可以测试注入了 |
5 775229836 2016-12-19 15:37:17 +08:00 我就看看不说话,你加油吧 |
![]() | 6 ipconfiger 2016-12-19 15:38:07 +08:00 外包的不就这样子了么 |
7 helloccav 2016-12-19 15:40:22 +08:00 如果老板能认识到之前的代码多么烂并肯定你的能力与工作,那还是可以待下去的,否则就走人吧 |
![]() | 8 dapeng 2016-12-19 15:40:42 +08:00 我也要尝试下注入玩玩 |
![]() | 9 murmur 2016-12-19 15:41:33 +08:00 绝佳的新人练手网站 |
![]() | 10 lusyoe 2016-12-19 15:41:42 +08:00 via iPhone 我这也差不多啊,刚入职发现项目连 MVC 都没划分,业务逻辑加数据库查询全部写在 Struts 的 Action(Controller)中。。 |
![]() | 11 qinxi OP @zhuangzhuang1988 根本就不需要人刻意注入, 上周他们说报错了.我一看.他们的参数有个 King's College London .我摊手,他这个 hibernate 封装是那个外包公司自己的.没有源码,只有 jar. 数据库密码 root root,刚入职时候跟我说数据库天天崩,要重启...后来我查到是被黑了,告诉他们,他们说 以前数据被清空过....那居然还没人管... |
![]() | 12 chocotan 2016-12-19 15:46:28 +08:00 面试的时候得了解清楚 我待的第一家公司也不比楼主现在的好到哪里去...... |
![]() | 13 sorcerer 2016-12-19 15:47:02 +08:00 via iPhone @lusyoe 我这边自己写内部小系统没仔细划分 service 层和 dao 层。貌似你们更绝... |
![]() | 14 sagaxu 2016-12-19 15:48:50 +08:00 永远不要接盘外包代码,一帮月薪 10k 左右的人能写的出能用的代码吗? |
![]() | 15 lijsh 2016-12-19 15:50:18 +08:00 ![]() 我比你惨,几个月前 CTO 拉了个前端架构师写了个项目后来让我接手,好家伙,完全不搞模块化,变量、函数挂在 windows 上,明明引入了 Vue.js 还是大量 jQuery 操作 DOM ,异步状态也混乱,用 setTimeout 解决异步变量依赖…… 有两次我实在引不住了,直接拉他过来吐槽,然后这个项目完了后我被炒了。 呵呵。 |
![]() | 16 fwrq41251 2016-12-19 15:50:37 +08:00 你们的数据库似乎还有三种命名风格,驼峰,下划线,全小写。。 先在公司划一划,等明年换工作吧。 |
![]() | 17 qfdk PRO 告诉我 哪个公司 我绝对不会去注册 免得出现在 xxlove2017 数据库中 |
![]() | 19 xrlin 2016-12-19 15:59:28 +08:00 via iPhone 666, 绝佳网络攻击练手网站() |
![]() | 20 VaneHay 2016-12-19 16:00:02 +08:00 等签完字,马上离职.也是外包公司,干了半年,真心累了.不过不在帝都,魔都 |
![]() | 24 scys 2016-12-19 16:07:21 +08:00 楼主你去的是技术公司? 还是去销售公司? |
26 ilanyu 2016-12-19 16:14:23 +08:00 via Android 厉害了我的玺 |
![]() | 27 Bown 2016-12-19 16:17:01 +08:00 start size returnType 这是 IDEA 的什么插件吗 |
28 robinshi2010 2016-12-19 16:19:52 +08:00 求问给多少钱才把你骗去的。 |
![]() | 29 Heinz 2016-12-19 16:20:26 +08:00 via iPhone 心疼 |
![]() | 31 qinxi OP @robinshi2010 15 ...是不是很没出息 |
![]() | 33 wupher 2016-12-19 16:29:49 +08:00 能说说是哪家初创公司么?帮它做个安全测试。 |
![]() | 35 TIGERB 2016-12-19 16:38:31 +08:00 开辟一片属于你的天地吧~ |
![]() | 36 SunnyCoffee 2016-12-19 16:46:11 +08:00 这是练习重构的好机会 |
![]() | 37 AltairT 2016-12-19 16:50:08 +08:00 via iPhone 只加功能少多事,你们头也不懂,你做好事也不一定领情的,以后出了问题都是你的锅 |
38 annielong 2016-12-19 16:50:38 +08:00 for 用的真是出神入化, |
![]() | 40 irainsoft 2016-12-19 16:55:05 +08:00 哈哈哈哈千万别把网址漏出来否则肯定一堆人想下手 for 循环用的出神入化,sql 拼的清新脱俗 这句好顺口 2333333 |
![]() | 41 Rice 2016-12-19 16:56:41 +08:00 去年我做的公司就是这样,连我个前端都看出他数据库和后台有问题了,赶紧找了个借口跑了。 |
![]() | 42 coderluan 2016-12-19 17:08:30 +08:00 从市场需求角度来说,很正常,先和公司反映一下,把主要问题和风险指明了,保留邮件,防止背锅,剩下的看公司决定。 |
![]() | 44 Mogugugugu 2016-12-19 17:15:54 +08:00 外包都是这种代码....开发速度至上,老板等不及,客户也等不及。这很正常的,很多都是代码生成器直接生成的。。。 |
![]() | 45 Email 2016-12-19 17:16:23 +08:00 ![]() ``` for (int i = 0; i < 1000; i++) { save(); //存一千次 保证存成功 } ``` 我又想起了这一段代码. for 循环用的出神入化 |
![]() | 46 chuanqirenwu 2016-12-19 17:22:54 +08:00 以前做过一个小外包,原则是只保证程序正常情况下不出问题,至于异常处理,安全性处理什么的不在考虑范围内。 |
![]() | 47 KentY 2016-12-19 17:27:45 +08:00 ![]() 不知道是不是我老了, 观念跟不上年轻人了, 我对这个贴有个别的看法. 1, 外包的不一定差, digg 也是外包做的. 不要觉得是外包做的 就"有思想准备" 2. 某种角度说, 解决问题的能力是自己价值的体现的一种方式. 这可以是漂亮地实现一个复杂功能, 也可能是把烂摊子规整好. 3. 就问题本身, 当你在某领域的知识比别人深厚了, 看别人的工作, 就会发现非常多的问题, 首先一个锻炼自己的事就是, 不抱怨,不笑话别人. 要么指导别人, 要么改正 /进别人的工作. 这个说来容易, 其实很难做到, 包括我自己. 你可以注意观察下, 公司里的高深人士, 很少抱怨, 笑话别人的工作, 反而都是那些还不错 ,或者半瓶醋的水平人, 才做这样的事. 你接了一些不好的代码, 这的确头疼, 你可以大概归纳一下, 代码里你能发现的问题, 问题可能导致的后果以及你能想到的改进方案, 并且做个评估, 时间啊, 精力等. 然后跟你的领导谈一下, 说明如果投入这个会对将来有什么好处, 让领导决定是否要改进. 自己态度上是一个积极态度, 这并不是说要让领导看到你积极, 而是自己真要积极. 不要怕担责任, 你想, 你心里各行各业的牛人, 没有怕担责任的, 都是勇于担当. 主要审视自己能不能做好, 尽力去做到最好. 当然, 如果对现在公司, 职位实在不满意, 可以考虑换工作. my 2 cents. |
48 wemore 2016-12-19 17:29:15 +08:00 via iPhone 话说网站安全处理一般要干啥,用户输入的非法字符转码还有啥别的吗 |
![]() | 49 unknownservice 2016-12-19 17:29:53 +08:00 给跪了,赶紧走,要不你要被毁了。。。 |
![]() | 50 tabris17 2016-12-19 17:30:57 +08:00 传说中的 1 分钱下订单吗? |
52 uxstone 2016-12-19 17:39:53 +08:00 已经不错了,还好是 Java 写的, 要是 PHP 写的就。。。。。 |
54 flyingfz 2016-12-19 17:50:41 +08:00 必须要和 老板讲清楚现在的系统的风险,以及你的意见。 这是对你后面的工作负责(不论 是否 继续做下去), 同时也是对老板给你的工资负责。 如果老板不重视你的意见,那只能说: 赶紧弃坑,否则最后会不欢而散。这样对谁都不好。 |
![]() | 55 sorra 2016-12-19 17:59:02 +08:00 @qinxi 一看代码就是做 SNS 的。 如果工资满意,可以向老板说明现状,让他支持和认可你接下来的工作。虽然既有的代码不好,但毕竟后端架构归你管了,是个练手机会。一切都做好了还有你什么事呢? 如果你费力不讨好,那就不值得。 |
![]() | 56 amery2010 2016-12-19 18:00:19 +08:00 年末其实工作并没有想象的那样难找,你如果真心不想留在这公司的话,可以试着先更新网上的简历,边上班边找工作。 |
![]() | 58 guyskk 2016-12-19 18:03:43 +08:00 via Android 如果公司业务上确实有前景, boss 也愿意听你的建议,这就是你提高的机会,代码烂不烂都是次要的。 否则,现在就开始找下家。 |
60 heeexy 2016-12-19 18:28:20 +08:00 讲真 要从外包公司离职. 这半年写的代码都是楼主讲得这种#24 怎么办... |
![]() | 61 nimdanoob 2016-12-19 18:50:09 +08:00 如果公司确实还不错的话,看下工程量大不,可以跟领导商量选择重写 |
![]() | 62 fantastM 2016-12-19 18:59:28 +08:00 我这情况差不多。项目工程里存在一个反编译代码的包。包里类名、变量名清一色 abcd......老大说这是零几年写的,因为丢失了源码,所以只能反编译。 |
64 lain0 2016-12-19 19:09:53 +08:00 网站是什么,我去注入~ |
![]() | 65 ttop5 2016-12-19 19:13:07 +08:00 via Android 赶紧跑路别回头 |
![]() | 66 q397064399 2016-12-19 19:16:15 +08:00 这个时候不正是 展示你 24 种设计模式 以及 重构大法的能力么? |
67 wohenyingyu02 2016-12-19 19:17:24 +08:00 via iPhone @sagaxu 没到 10K 的路过…… |
![]() | 68 q397064399 2016-12-19 19:18:21 +08:00 做业务的公司,代码肯定是会根据需求变动的,找外包写,必然是怎么快怎么来,有的时候 复制粘贴 能搞定就搞定了,写的人倒是爽了, 3 个月之后,自己反正基本上就别人填坑了,,一般自己写的代码 3 个月内,配合注释还是能看懂的,超过 3 个月,基本上是要出事的,就等着重构吧 |
![]() | 69 cxbig 2016-12-19 19:19:00 +08:00 烂摊子多少都会有,解决这个问题也是个人价值的体现。只要公司认可你的工作,不会把责任无脑的归于你就行。 我现在的公司就是第一个 release 外包的,这 3 年来我们逐步把烂代码都干掉。头 2 年我们天天骂外包公司,近一年我们很少再提及这事了。 |
![]() | 70 q397064399 2016-12-19 19:21:10 +08:00 另外 外包本来就是一次性的玩意,外包一个人月,基本上是怎么快,就怎么来,谁管那么多,只要上线能运行就 ok 你真要外包一个人年,人家肯定是要好好写的,提前做好设计 为未来做准备,毕竟是自己挖的坑,还得自己来填 |
![]() | 71 q397064399 2016-12-19 19:22:27 +08:00 @cxbig 骂外包,没必要吧,毕竟钱摆在那里,你要真外包一个人年,人家也会好好写 |
![]() | 72 tedzhou1221 2016-12-19 19:34:38 +08:00 via iPhone 谁告诉你年底不好找工作的? 我两天面试了 3 家就找到了 |
![]() | 73 so898 2016-12-19 19:34:41 +08:00 上面一排人在说 SQL 注入啥的,我突然想起来之前和朋友一起研究的解决 SQL 注入的好方法 把所有标点符号都改成全角字符 让你丫的再注入 |
![]() | 74 q397064399 2016-12-19 19:44:47 +08:00 @so898 现有的防注入的方案一大堆,没必要 |
75 raincious 2016-12-19 20:04:58 +08:00 |
![]() | 78 jy01264313 2016-12-19 20:58:08 +08:00 其实你换一个工作看起来也是差不多的 |
79 unicorn1390 2016-12-19 21:05:14 +08:00 和我大一时候写的一毛一样。。 |
![]() | 80 xssing 2016-12-19 22:30:03 +08:00 从安全的角度看有 1. 越权操作漏洞 2.SQL 注入漏洞 3.支付漏洞 。。。。。。。。。。。。。。 |
![]() | 81 anthozoan77 2016-12-20 00:02:15 +08:00 看了大家的评论,默默地面壁... |
![]() | 82 everettjf 2016-12-20 00:05:17 +08:00 看老板是否重视你,你是否有权利决定重构,你是否有魄力重构,重构后老板是否认可。传说滴滴最初不也是外包的么,代码也很烂~ |
![]() | 83 airyland 2016-12-20 00:07:39 +08:00 代码烂还可以稍微理解,这是严重的安全问题啊 |
![]() | 84 bearzk 2016-12-20 00:20:35 +08:00 14 秒太严重了 换地方吧 这坑不好填啊 |
![]() | 86 yangqi 2016-12-20 01:12:03 +08:00 这不正好是你的机会么,如果人家什么都写的很规范很标准了,还要你干嘛? |
![]() | 88 glogo 2016-12-20 01:27:34 +08:00 大兄弟赶紧另谋出路吧 |
![]() | 89 practicer 2016-12-20 07:23:14 +08:00 via Android 先把网站搞挂掉,再自己修好,引起领导重视? |
![]() | 90 Felldeadbird 2016-12-20 09:08:03 +08:00 这种代码你是改不了的了。除非重构,否则是不给你换的。 |
![]() | 91 dong3580 2016-12-20 09:21:29 +08:00 @Felldeadbird 当年我都是一个方法一个方法的改,真的,可以改的,比如新增功能,你可以把那块的某些方法注释一下,稳定运行几周再切换到自己的方法并及时测试. @qinxi 这绝对是一个好的练手机会, 依靠那些代码,学到了很多东西,有些方法我根本没用过,这样一来,我能用的更好. 专业填坑户,现在基本不怕大多数坑. 拼接 sql 真是算是好了,要是代码生成器生成的,你连 sql 都找不到,拼出来的方法都能让你头晕. |
![]() | 92 wupher 2016-12-20 09:46:04 +08:00 @qinxi 求教,原文中 “参数有个 King's College London ” 。 "King's College London" 是什么梗? 应该不是指国王学院吧。 |
93 robinshi2010 2016-12-20 09:54:18 +08:00 @qinxi 并不会。 建议跟头沟通好这个事儿吧。先把问题说清楚确保他认识到问题的严重性。然后再共同定制修改计划。别闷头干出力还不被理解就好。 |
94 raiz 2016-12-20 09:59:54 +08:00 这代码好面熟,好像是我写的 : p |
95 zlawliet 2016-12-20 10:08:23 +08:00 见怪不怪... |