代码全靠copy,Bug又烂又多,做程序员的目的是什么?

Posted Hollis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码全靠copy,Bug又烂又多,做程序员的目的是什么?相关的知识,希望对你有一定的参考价值。

我经常跟同为程序员的读者交流,关爱读者,我有责任。

有位工作不到3年的程序员分享给我的学习感悟,让我蛮有感触的:

一开始学习的时候,会觉得各种技术是最难的,随着不断学习和工作经验的增加,技术难点总会有攻克的一天,所以技术难点并不是最难的。


其实工作后发现,工作中大部分的代码都很简单,简单到你怀疑程序员的技术含量。但同时问题也正在于此,很多程序员因为简单就不以为然,写代码只要求功能实现,代码copy过来一改,测试通过就算完成,导致代码量快速增长,bug数居高不下。如我们有些产品每年能增加十几万行代码···


我个人觉得工作中最难的是写简单的代码,把简单的业务代码写得精致,写到每一个人都能看懂。写简单的代码,你需要不断的提高对自己的要求,不允许自己出现重复代码,不断重构,对每一个函数、变量的名字、类型、顺序都会经过自己的思考,对每一个代码每一个日志都要思考是否必要是否有更加好的方式。考虑这些代码是应该放Controll还是Services,是否应该放aop实现···


有几年工作经验的程序员都还在代码上反复推敲,会花很多精力在抽象,封装,继承,然后会刻意的用虚函数,接口,lambda表达式,回调函数,反射等等。


但是我们做程序员的目的是什么?本质是解决问题的能力。不过度追求“优雅代码”,不“过度设计”。让写代码成为你解决问题时使用的工具。


我问他,现在主攻哪一块,有没有什么想法?
他的字里行间充满劲儿,现在 除了按需要完成工作,更是追求代码的复用性及容错性,现在主攻Java性能调优这块,应用到项目里,可以直接将运行效率提高一半。
后续我也追问了,能不能分享一下Java性能调优的主攻路径?
他表示靠自学就不太现实,主要是跟着课程走,有一个 系统性地学习计划。然后甩给了我一个课程,我看了一下课程目录, 很适合工作经验1-3年,以及薪资一直达不到30K的程序员。
课程主要是针对面试高频考点做的,但Java性能调优这块很实用。他建议那些 想要突破加薪的程序员先去听一下,几乎可以算免费。
价值99元的黄金面试课程,现在体验价只需 0.02元
这份课程的内容到底是什么呢?
汇合了一线大厂面试真题的宝藏课程 《金三银四面试突击-性能调优》
涵盖面试会问到的95%的问题,都给你准备好了

一、关于Java虚拟机底层原理与性能优化

1、Java虚拟机内存模型能说说吗?
2、类加载器的双亲委派模型是什么?
3、JVM垃圾收集算法与收集器有哪些?
4、JVM诊断调优工具用过哪些?
5、每秒几十万并发的秒杀系统为什么会频繁发生GC?
6、日均百万级交易系统如何优化JVM?

二、关于mysql索引数据结构与性能优化

1、索引数据结构红黑树,Hash,B+树能说下吗?
2、千万级数据表如何用索引快速查找?
3、如何基于索引B+树精准建立高性能索引?
4、联合索引底层数据结构又是怎样的?
5、覆盖索引与聚集索引到底是什么?
6、Mysql最左前缀优化原则是什么?

三、关于BIO,NIO,AIO,Netty及Redis线程模型

1、BIO,NIO,AIO的区别?
2、什么是阻塞IO以及非阻塞IO? 
3、Reactor和Proactor IO设计模式是什么?
4、NIO底层select、poll和epoll实现的区别 ?
5、Java NIO的几个核心组成部分是什么?作用分别是什么?
6、Redis、Netty、Tomcat的线程模型与NIO的联系是什么?

每天重复性地copy代码,修改层出不穷的Bug,或许都是在告诉你, 你该进阶了!
点击阅读原文,跟随诸葛老师, 修习这堂性能调优宝藏课。

以上是关于代码全靠copy,Bug又烂又多,做程序员的目的是什么?的主要内容,如果未能解决你的问题,请参考以下文章

我的2017年年终总结

学习的第九天——依然copy唯品会

使用amaze ui的分页样式封装一个通用的JS分页控件

全靠我啃烂了这份2021最新面试题!涨姿势!

大话性能测试---基础篇

测试与调试技术