我的同事都是说代码功能正常,你有什么理由怀疑它不对呢? 我感觉就好像代码会隔一段时间就不一样了亦或者代码执行一段时间就会产生 bug 一样;不断的检查已经给我造成了很大的心理负担;
v 友们怎么看?
1
maichael 2019-12-03 10:09:17 +08:00
所以……你不写测试的吗
|
2
Guaidaodl 2019-12-03 10:10:16 +08:00 1
一行一行检查是一个好习惯...
|
3
shazh520 OP @maichael 我是做 java 后端的嘛, 之前用 junit 写测试, 但是到后来发现写测试需要花太多的时间维护就没坚持了
|
6
shazh520 OP @maichael 回想一下, 好像是哎, 之前写测试的时候虽然写测试的时间比业务代码时间还要多很多, 但是看着 n 多测试用例亮绿灯就感觉很踏实
|
7
zw1one 2019-12-03 10:22:14 +08:00 1
感觉不是代码的问题了,你疑心太重了,或者说对自己的产出要求太高。
再别的事情上(需要你用心的事情)也会这样吗? |
8
wangxiaoaer 2019-12-03 10:24:01 +08:00 4
自己的代码自己做单元测试就是脱裤子放屁。
我不反对单元测试,但是我觉得单元测试应该是一个独立的岗位,跟开发分开才有意义。 |
9
missdeer 2019-12-03 10:25:01 +08:00
这是病,得治,也有得治,如一楼所说,TDD 啊
|
10
luchenwei9266 2019-12-03 10:27:15 +08:00
需要一个女朋友吸引你的注意力.从而达到缓解病症的效果
|
11
shazh520 OP @zw1one 对于其他事情没有这种情况, 就是关于软件这一块这种现象特别严重; 我主力机的系统每一两个月我就要重装一次, 软件只从官网上下载, 付费软件要么买正版, 要么买激活码;
|
12
chickenJuicer 2019-12-03 10:28:21 +08:00 1
就像你每天走出了单元楼还会担心自己有没有锁上门; 这是病
|
13
shazh520 OP @wangxiaoaer 其实我对自己写的单元测试的看法是可以让自己放心的重构代码吧; 保证代码正确性可能确实有局限的地方;
|
14
wuwukai007 2019-12-03 10:30:38 +08:00 via Android
我改了一行代码,到生产回家地铁上总是不断回想有没有问题,甚至想回去在看一遍
|
15
shazh520 OP @luchenwei9266 女朋友这么厉害吗
|
16
shazh520 OP @chickenJuicer 可是我总是记得我出门到底有没有关门, 很放心^_^; 就是不放心代码, 郁闷了; 汗!!
|
17
shazh520 OP @wuwukai007 有点意思, 有点意思, 难道是病友?
|
18
yangzzzzzzzt1 2019-12-03 10:34:31 +08:00
OCD 得治
|
19
zw1one 2019-12-03 10:42:45 +08:00
@shazh520 官网下软件没毛病,但是一两个月就重装系统干嘛啊,感觉有点强迫症了。我之前也对这些要求很高,直到后来加班治好了我的这毛病。
|
20
ddzzhen 2019-12-03 10:45:10 +08:00 via Android
有点强迫症,按能让自己放心的方式来,如果怎么都无法放心,就该看医生了
代码让你受过伤吗? |
21
18258226728 2019-12-03 10:45:40 +08:00
#19 说的很对
|
22
leafre 2019-12-03 10:46:35 +08:00 via iPhone
这种好员工给我来一打
|
23
lnchy 2019-12-03 10:47:35 +08:00
@chickenJuicer 戳中,每次我都怀疑没锁门,还得半路回去确认一下
|
25
araraloren 2019-12-03 10:52:55 +08:00
你们可以改用 rust 了,一般不用测试 (狗头
|
26
shazh520 OP @zw1one 喜欢非常纯净的系统, 感觉好像刚刚抹盘重装的系统自己能够完全掌控一样; 文件整整齐齐, 软件只安装了自己需要的, 而且是正规渠道安装的;
|
27
luchenwei9266 2019-12-03 10:55:08 +08:00
@shazh520 你试试嘛~
|
29
shazh520 OP @araraloren 据说 Java 是世界上最好的语言-_-
|
31
liuzhiyong 2019-12-03 11:01:14 +08:00
楼主可以轻松点:bug 很可能是存在的,很多大公司的产品也有 bug 嘛,所以不用执着哈。
|
32
fancy111 2019-12-03 11:06:05 +08:00
这是强迫症吧。。。 检查是个好习惯,但是过头了就浪费时间了。
|
33
fancy111 2019-12-03 11:07:03 +08:00
再说了,检查多了也没有意义,高考的时候给你检查几十遍你也看不出自己的错误。
|
34
icyluna 2019-12-03 11:12:26 +08:00 via iPhone
症状比楼主轻,但基本都有吻合。
个人认为是强迫症太严重了… |
35
liquid207 2019-12-03 11:14:53 +08:00
上学时会一直检查答题卡是不是涂错格子了,一场英语考试下来能检查好几遍。强迫症太揪心了。
抱着出 bug 我再修的心态,可能会有帮助。 |
36
SjwNo1 2019-12-03 11:20:29 +08:00
测试是测试 开发是开发(开发兼测试工程师?哈哈哈
|
39
shazh520 OP @liuzhiyong 感谢 学着接受不完美
|
41
pipixia 2019-12-03 11:30:53 +08:00 via Android
你需要结对编程
|
43
xianxiaobo 2019-12-03 11:32:28 +08:00
建议转行测试,发挥自己的优势
|
44
shazh520 OP @xianxiaobo 角度特别, 耳目一新 甚至有点想看看测试岗的招聘需求
|
45
wysnylc 2019-12-03 11:35:14 +08:00
检查代码是好习惯,测试请面向接口测试而不是白盒测试
|
46
lxk11153 2019-12-03 11:39:37 +08:00
有点强迫症哦~ 得治。。放宽心
|
47
saltedFish666 2019-12-03 11:40:17 +08:00
难度你们部门没有测试人员?
|
48
shazh520 OP @saltedFish666 没有 目前供职的公司 10 人不到
|
50
reus 2019-12-03 12:02:46 +08:00 via Android
测试都不写就没什么好说的了。
开发的时候,你怎么知道写得对不对?不写测试那就要手工跑,你把这个手工的过程,写成代码,就成了测试了。连这个都不做,那是非常差劲的。如果说整个系统难以让你方便地写测试,那就是系统差劲,赶紧换个环境吧。 |
51
charleyking 2019-12-03 12:33:00 +08:00
像是处女座
|
52
otakustay 2019-12-03 12:49:03 +08:00
这些倾向都是好的,但解的方法不大对,靠手工去降低自己的不安感是有极限的,除非你不做人了
所以多想想哪些自动化、哪些工具能降低这种不安感,往这个方向走更有成长 |
54
wangyzj 2019-12-03 14:27:27 +08:00
@charleyking 就是
|
55
flyingghost 2019-12-03 15:42:25 +08:00
谨慎是好事。
但谨慎也是负担。 过度谨慎也是过度负担。 但话说回来,负担是有上限的,因为你的精力有限,deadline 也有限。而且长期来看,可以通过水平提升来提升自信,通过方法论来降低成本,从而降低负担。 而谨慎性格本身却是非常难修炼、改变的。 所以综合来说,你这是好事啊。。。自带优异属性,额外成本又可以通过后天努力来消除。 相比那些缺乏严谨思维做事毛毛糙糙的程序员来说,先进到不知道哪里去了!隔壁老板和技术经理都馋哭了! |
56
exceptionplayer1 2019-12-03 15:46:56 +08:00
适当做单测
感觉你跟我很像,我也是,从来不用之前的项目修修改改就用于新项目。 不要成为一种负担,这是有责任心的体现 |
57
google54321 2019-12-03 15:47:53 +08:00
TDD 了解下 LZ
|
58
Takamine 2019-12-03 15:50:57 +08:00 via Android
……这个我的心理很像,哪怕是测试过了,上生产了也会时不时有这样的疑虑。
然后做一下模块开发的时候一直会想这个是不是有一个比较成熟的“最佳实践”是我没有想到或者找到参考的?我的代码只是纯粹实现了功能,而没有做好更多的扩展性,安全性和性能的考虑。 |
59
065535 2019-12-03 15:55:49 +08:00
楼主是不是吃过亏啊 /滑稽
|
60
qza1212 2019-12-03 16:07:46 +08:00
敏捷开发流水线了解一下
CI -> 静态检查 -> 编译 -> CR -> 单测 -> 功能测试 -> 回归测试 -> 打包 -> 沙盒部署 -> 小流量上线 -> 全流量上线 -> 回滚 =。= 楼主其实考虑的是软件工程能力 |
61
CeresLC 2019-12-03 16:07:55 +08:00
楼主和我一样,不过我现在都随缘了,出了 bug 大不了改呗。
|
62
laravel 2019-12-03 16:47:34 +08:00 1
为什么写代码,写着写着就不自觉地打开了 youtube,甚至 pornhub
|
63
esolve 2019-12-03 16:55:45 +08:00
你这个效率,年终奖还有?
|
65
Caijl 2019-12-03 17:25:34 +08:00
你这是对自己太苛刻了
|
66
youxiachai 2019-12-03 17:29:08 +08:00
单元测试,费时间..其实很正常啊...毕竟你要写那么多 case..不过这些 case 也就写一遍,其实,还是蛮有价值的...
|
67
xiangyuecn 2019-12-03 17:36:18 +08:00
@maichael #1 我跟楼主这种几乎完全一样😂 经常好几百行源码,4 5 个文件一次性写完,一次性跑通,小问题会有一些,大问题很少,不过很少写测试代码,修改代码提交也是一行行仔细看。包括别人写的代码也经常全部看一遍,应该算是病的不轻了😂😂
|
68
libook 2019-12-03 17:39:00 +08:00
一方面,开发过程要有可靠的 Code review、DevOps 和 QA,可以大幅提升团队的安全感。
另一方面不要怕 bug,要勇于直面 bug,从 bug 上总结经验教训,找到合理的方案来避免以后出现相同的 bug,方案不限于合理化代码结构、总结编码原则、养成好的上线习惯等等。举个例子,我们团队规定每周五不上线,其他工作日每天下午 5 点后不上线,避免上线后出问题赶上下班或休息,以及避免问题在高峰期出现,上线尽量在用户活跃少且开发和测试人力充足的时候。再举个例子写代码尽量不要用“懒返回”风格,即避免用 return 机制可以直接跳出代码块的特性来替代 if/else 机制,逻辑上是 if/else 就严格按照 if/else/else if 来写,这样能避免很多因为偷懒导致的逻辑不严谨的问题。 如果过于焦虑以至于影响工作和生活了,那建议去医院看看会不会是轻度焦虑症。 |
69
KentY 2019-12-03 17:47:12 +08:00 1
逐行审视自己做的修改是对的. 就像你做个东西, 起码自己满意了再提交给别人 review, 甚至业务人员测试. 当自己都不确定是不是自己最满意的东西, 拿给别人, 再反复 pingpang, 只能说明自己不认真.
这样当自己最满意的东西被别人找出问题, 而且不是吹毛求疵那种, 才会真正学到东西. 剩下的, 应该有测试, 不光 unittest, 还应该有自动化的 integration test. |
70
LancerEvo 2019-12-03 18:25:34 +08:00
我觉楼主的习惯是好事
你得把自己的项目当作是在造火箭一样小心才能做出精品 |
71
encro 2019-12-03 18:47:59 +08:00
代码能力不足,或者逻辑不清晰,是写代码大忌,不能写出明显没有 BUG 的代码。
试试伪代码编程,先用伪代码(注释)实现一遍,然后用代码填空,这样逻辑如果没有错误,就只剩下语法错误了,而语法错误,IDE 和类型限制基本上可以帮你排除。 注意伪代码不是解释你在做什么(what),而是为什么这么做(why)! 以下代码很难出错吧? function 计算订单总价(订单商品){ // 遍历计算商品价格(单价*数量) // 计算优惠金额(满 100-50 ) // 计算运费(优惠后金额金额少于 100 元按 6 元,大于 100 免运费) // 订单总价:商品价格 - 优惠金额 + 运费 } |
72
aristotll 2019-12-03 18:57:49 +08:00 1
不写测试的评论居然有三个赞。。。
|
74
liuxingbaoyu 2019-12-03 19:48:16 +08:00
我跟楼主相反.....
从来不写测试,能跑就行 现在正在尝试以后多点自检 |
75
Johnny168 2019-12-03 20:18:12 +08:00
如果你去做测试,信不信会被开发打死
|
76
EscYezi 2019-12-03 22:42:53 +08:00 via iPhone
我希望同事都有楼主这么认真,然后也能被迫保持代码整洁。现在的项目里面遗留代码太多,又不能从头做起,为了能用上之前的东西,感觉自己写的代码都快成面条了……
|
77
cedoo22 2019-12-03 22:46:40 +08:00
@wangxiaoaer 单元测试手动造数据就会造成黑盒 变成白盒, 我更习惯写一个生产随机数据的工厂。。。。会解决 95%以上的 BUG
|
78
miv 2019-12-03 22:58:07 +08:00 via iPhone
说一点我的体会。之前我也有类似楼主的心情:1,感觉自己代码写的烂,病怏怏的。2,总担心自己代码会出问题。
后面,看了一些改善代码风格的数据以后,意料之外的是这种对代码没信心的心态降低了。 这真出乎我的意料。 后来我想到几个点:代码分格改善了,可读性大大提高,方法只做一件事,合理抽取公共特点,合理封装等等。 这些情况,让逻辑清晰了,bug 减少了,扩展性加强了,维护容易了。 |
79
prenwang 2019-12-03 22:59:50 +08:00
不反对, 特别是精简的 python 代码,肉眼就能扫一遍有没有问题, 通常大部分代码都是写完一次性就运行通过,不像初期老是改。个人项目练就一双火眼更有用。
如果是多人协作,团队项目,单元测试更可靠。 |
80
Deepseafish 2019-12-03 23:01:14 +08:00
有点强迫症状了,属于心理问题,就像出门担心门没锁,提交手机号身份证等资料来回反复检查好几遍都不放心。
|
81
miv 2019-12-03 23:02:30 +08:00 via iPhone
ps:楼上错别字,修正后如下:
说说一点我的体会。之前我也有类似楼主的心情: 1,感觉自己代码写的烂,病怏怏的。 2,总担心自己代码会出问题。 后面,看了一些改善代码风格的数据以后,意料之外的是这种对代码没信心的心态降低了。 这真出乎我的意料。 后来我想到几个点:代码分格改善了,可读性大大提高,方法只做一件事,合理抽取公共特点,合理封装等等。 这些情况,让逻辑清晰了,bug 减少了,扩展性加强了,维护容易了。一点我的体会。 之前我也有类似楼主的心情: 1,感觉自己代码写的烂,病怏怏的。 2,总担心自己代码会出问题。 后面,看了一些改善代码风格的书籍以后,意料之外的是这种对代码没信心的心态降低了。 这真出乎我的意料。 后来我想到几个点:代码分格改善了、可读性大大提高、方法只做一件事、合理抽取公共特点、合理封装等等。 这些点点滴滴的优化,让逻辑清晰了、bug 减少了、扩展性加强了、维护容易了。 最后,自信心也提高了 |
82
railgun 2019-12-03 23:17:05 +08:00
我也是一行一行提交的
|
83
popbones 2019-12-04 04:37:33 +08:00 via iPhone
还是要写测试,我相信有代码的地方就会有 bug,即使是修改一行代码一个变量也会有意想不到的事情发生。这种情况尤项目本身是受东侧起来很麻烦的那种,没测试真的没法做。
|
84
Youngxj 2019-12-04 08:25:04 +08:00
我没有你这么严重的病,只是我写代码喜欢所写所见,也就是写一行调试一行,确实输出符合自己的预期之后才会写另外一行,也就是俗称的面向过程。
|
85
SlipStupig 2019-12-04 09:46:35 +08:00
TDD 能治好你的病
|
86
shazh520 OP 太多了回复不过来了 受益良多 感谢大家
|
87
shazh520 OP @flyingghost 突然感觉好多了, 哈哈; 谢谢
|
93
vanishcode 2019-12-04 10:12:04 +08:00
习惯挺好的。
不过楼主你要知道你用的编译器也是有 bug 和坑的(笑),所以不要太吹毛求疵啦,太严重了反而影响工作效率╰( ̄ω ̄o) |
94
shazh520 OP @EscYezi #76 深有同感, 维护老项目的时候只能尽量的保证每一次提交都比检出的时候代码更好一点, 一些没法儿优化的缠在一起的代码真的感觉难受
|
95
shazh520 OP @vanishcode 这个角度就新颖了 ^ __ ^
|
97
Inside 2019-12-04 10:26:40 +08:00
这不是病,这就是能力差不会写代码,包括楼上那些说测试没用或者不写测试的。
首先你需要一个好的 ide,inspection 全绿能有效的屏蔽低级错误,改善代码风格。 然后你需要证明自己写的代码是是符合预期的,并且每次关键提交都要再自证一遍,如果能做到这个程度,考虑开始自动化测试就是自然而然的。 |
98
laike9m 2019-12-04 11:02:12 +08:00
@wangxiaoaer 问题是,你找不到愿意干这个岗位,并且水平足够的人
|
99
Niansanshi 2019-12-04 13:30:49 +08:00
同感,强迫症,些许健忘,注意身体和心态的调节
|
100
LuGew 2019-12-04 15:38:54 +08:00
测试驱动开发( TDD )的艺术 http://e.dangdang.com/products/1900703930.html
|