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

Hollis

共 1498字,需浏览 3分钟

 ·

2020-04-19 23:22

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

有位工作不到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,或许都是在告诉你,你该进阶了!点击阅读原文,跟随诸葛老师,修习这堂性能调优宝藏课。
浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报