写了一两年代码,说下心得体会,大家交流交流

2019-08-13 10:15:59 +08:00
 xiaotuzi
写代码有时候会很烦躁,主要出现的情况有几个方面:
1,反复修改需求
2,花了很大精力去写,却没有写出来
3,以为自己想了一个很巧妙的解决方法,却在查资料的时候浪费了大量时间
4,以为自己写了一个很巧妙的算法,结果却并没有多大用(如:用冒泡排序排 3 个数字大小)
5,花了很长时间完成的项目,后面说不要了

以前会硬着头皮继续干,有的是因为时间赶,有的是直接闷头继续做,当然效果很差,有厌烦的情绪。
后面发现,如果需求不是特别急,隔一两天再去思考需求会更高效,也就是没有那么大的厌烦情绪。
这种方法也适合遇到难题,最好让自己注意力放到其他地方,隔天再看会有意想不到的效果。

还有说一点,听音乐的话,听一些工作的轻音乐,不要流行音乐,否则有时候会扰乱心思,当然一般我写代码都是两耳不闻窗外事,沉浸在代码里。

大家有什么对写代码好的经验可以分享下,特别是对厌烦情绪的发泄。
6820 次点击
所在节点    程序员
48 条回复
javaWeber
2019-08-13 10:20:52 +08:00
写代码其实还好。。读代码就感觉有点心累。
有时真的不知道之前的老哥为什么要那样实现。
又不敢随意重构,出了问题要背锅,只能修剪一些边角。
yamasa
2019-08-13 10:30:25 +08:00
曾经想写一个 mini RDBMS 却没有能执行下去,对 2 深有体会。
对于 3 和 4,不觉得是浪费时间或者吃亏。尤其是 4,有些时候以为自己考虑出了一个精妙优雅的算法或者解决模式,最终却发现早几年甚至十年别人的轮子里就实现了,还远比你实现得健壮。个人认为这其实是很不错的学习过程,也是能理解部分源码最深的方法之一---自己去踩踩坑才知道别人为什么要套那几层模式,非得要写的这么绕。
iPhoneXI
2019-08-13 10:34:42 +08:00
1 5 是项目流程问题,产品经理的锅,可以定个规章,某个阶段之后不允许改需求,不然造成的 bug 延期由对方背锅

2 3 4 还是输入不够多,多看开源项目啥的挺有效
henices
2019-08-13 10:36:16 +08:00
我这么多年的经验是:

1. 一定要想清楚再开始写代码
2. 基本结构稳定后,就不要大改,每次修改都要有充分的理由
3. 遇到新想法先记下来,知道后面真的觉得可行在改代码
4. 不要自造伪需求,多分析

总而言之,慢即时快,少修改,少返工。
Caballarii
2019-08-13 10:37:12 +08:00
改需求这种事太正常了,琢磨琢磨怎么把系统结构组织好能应付大部分变动还是挺有意思的
jydeng
2019-08-13 10:40:52 +08:00
一点点经验:

1、尽量选择时下热门的技术或者框架库
2、先明确需求,多分析、设计,不要着急开始编码
3、不要过度设计,以及过早重构,但要预留一定的空间
polebug
2019-08-13 11:02:33 +08:00
wysnylc
2019-08-13 12:29:57 +08:00
先做设计画图,弄清楚逻辑,写好要点防止遗忘
多谢注释多思考,剩下的就是每次优化自己的逻辑和思路
www5070504
2019-08-13 12:42:24 +08:00
代码垃圾非我意,自己动手分田地

你若气死谁如意,谈笑风生活长命

写了两年 现在改需求这种事我都已经有点习惯了 刚开始的时候气得要死
www5070504
2019-08-13 12:43:16 +08:00
以前生气是因为想好怎么写 或者 写一半了说要改 就很气

现在是因为所有需求我都先拖一下 看看他 PM 到底要不要改 如果大概确定不改或者改动不大再写
AndroidEngineer
2019-08-13 12:55:45 +08:00
坑踩的多了,就没有坑了
good1uck
2019-08-13 13:02:30 +08:00
也许就是“实际工作“和”兴趣“的矛盾吧!需要平衡一下;
xiaotuzi
2019-08-13 13:02:39 +08:00
@javaWeber 我做 PHP 开发,只要做一个数据库交互的类,新功能二开自己直接搞…🤣
HuHui
2019-08-13 13:03:45 +08:00
这个就是广度还是深度的问题了
good1uck
2019-08-13 13:03:48 +08:00
探索的过程是充满了不可谓外人道也的乐趣的,不过要说到”实际价值“,就不是一件私人的事了。
xiaotuzi
2019-08-13 13:04:28 +08:00
@yamasa 所谓考虑兼容吧,考虑了兼容,就会多写,然后就…写了一大堆…最后项目没过一年 GG 了🌚
q8164305
2019-08-13 13:06:14 +08:00
各位先思考再写代码是认真的么?大部分项目生命周期都很短的啊,没必要写那么好,我的原则永远都是先完成功能,有时候再重构,没时间就烂在那吧
xiaotuzi
2019-08-13 13:07:12 +08:00
@iPhoneXI 总觉得别的封装的多余…比如你要写个第三方平台登录,网上别人的都是封装,文件太多而且散,本来一个文件能解决的硬是给他分成几个文件…所以看别人的源码有点煎熬…🌚
xiaotuzi
2019-08-13 13:10:23 +08:00
@henices 我也这么做过,但是一个大项目并不是你是思考一两天能想明白的,我觉得应该把主支先写出来,然后再扩展,类似父类是主干,子类是分支,其他功能。很多赶的项目,不会有太多的时间给你思考,一步步做反而可以有很多时间给你,因为可以客户看效果…🌚
xiaotuzi
2019-08-13 13:10:58 +08:00
@Caballarii 是的,这个很考验一个人写代码的能力,兼容性

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/591397

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX