前言
没接触编程之前,总觉得它很神秘,很牛逼。每当有新的系统,新的软件出来时,总想冲在前头,然后 down 下来好好体验。
后来加入了程序员大军,才发现编程并非想象中的那么美好,经常要面对完成不了的需求,和背不完的锅,真的是一部辛酸编码史。
尽管如此,我们的工作也算是在为机器注入灵魂,还是挺高大上的。只是很多时候不得不面对一些残酷现实,下面就来聊一聊这几年的编程感悟吧!
1、 bug 是修不完的
不知各位猿友有没有这样的体会:每当周五临近下班时,测试总会向你扔来一大堆的 bug 工单。
而就在你以为所有的 bug 都解决完后,回过头象征性的验一验之前的接口时,突然发现,他妈的又不正常了。
这种感觉就像按下一个葫芦,起来一个瓢,以为解决完了,才发现只是自己以为。
那为什么会一直修不完呢?一方面是因为程序它就像一个精密的机械手表,很多地方都是有关联性的。
当你要改动一个地方的时候,往往得把它所有的关联点都得考虑一遍,有点像深度优先遍历。可想而知,一旦系统复杂,那大多时候我们也只能是走一步看一步。
另一方面只要我们的系统还有用户在使用,那就会有改动,特别是对于三天两头加需求的互联网行业来说,这更是家常便饭。
在这么高频率的改动下,设计得再好的系统也经不起折腾。就好像一辆高速运动的跑车,还总想着给它换零件一样。
所以大伙看那些成熟的开源框架,都有属于自己的一个发布计划,而且都是相隔几个月的那种。
可想而知:减少需求是多么的重要!
2、if else 就是我们的日常编码模式
想象一下,如果没有了 if...else 那我们的程序会怎么样?是的,一切都糅合在一起了,再也不能愉快的进行流程控制了。
正是因为有了 if...else,让我们能以贴近生活的方式去划分代码逻辑。
可以说 if...else 在程序里无处不在,甚至一敲代码,我们就会自动联想到 if...else 所要对应的业务线,多么的浑然天成!
3、过早的优化,不是优化
以前遇到过一个同事,总喜欢开口闭口就谈拓展性预留,说哪个场景有可能会用到,所以要提前预留下。
可实际上到了后面的开发,80% 的概率是没有再用到这些优化点的了。相当于将精力花在了没有发生的事件上。
其实,这也能理解,因为产品经理总是动不动的改需求,而作为一名优秀程序员的我们,总想提前预判这些改动点,以最小的代价完成修改。
可实际在项目刚开始的时候,是属于一个不稳定开发时期,会存在很多变数。
如果过早的优化,比如添多余的数据库字段,划分很细的服务等这些对未知场景的优化,其实意义并不大。
过早的优化,不是优化,真正的项目痛点不会在一开始就暴露出来,等我们被项目完整的虐过一回,到时也就自然而然的知道该怎么优化了。
4、大多数项目就是在增删改查
现在的互联网项目其实就是在将生活数字化,数字化的过程肯定是需要和数据打交道。
所以,大多数项目其实就是在解决数据从哪里来,又回到哪里去的问题。
至于这中间采用了什么技术方案,也只是解决手段不同而已。最终还是得落到对数据处理这一终极目标。
而对数据处理肯定逃不过增删改查,这也是很多项目存在的意义!通过不断的对数据加工处理,呈现出更贴近我们生活的虚拟世界。
5、一人挑起一款产品的时代已经过去了
互联网行业发展到现在 20、30 年了,从仅限于专业人员使用,到现在的应用普及。可以说用户已经从原来什么都不懂的小白,升级为资深体验家了。
而在此期间所诞生的优秀产品,已经和用户深深绑定了,想要靠我们个人去扭转用户的使用习惯,基本不可能,更别说有可能遭到大企业的狙击。
所以,想要独自开发出一款现象级产品,真的难如登天!就像错过了 80, 90 年代下海大潮一样,我们已经很难再撼动这个成熟市场了。
当然,互联网的繁荣发展也为我们这些后来者奠定了基础,定制了很多标准化框架,像 TCP、HTTP 等,
也算为我们的开发工作提供了很多便利。
6、程序员真的发际线高!
最后,我们来说一说程序员最最残酷的真相。没错!就是我们那瓦亮瓦亮的额头。那是高级程序员的象征,是办公室里最靓丽的一道风景!
相信只要我们好好努力,总有一天,都会达到这个境界!≥Ö‿Ö≤
总结
以上就是这几年编程生涯的感悟,欢迎大家一起分享!