程序员请改掉影响你升职加薪的36个坏习惯!
IT行业的科技公司们一直苦苦追寻传说中以一当十的超级程序员,最新的研究表明确实存在这样一小撮效率奇高的“程序金刚”,但是一位普通程序猿如何能够蜕变成代码金刚呢?
下边总结了导致程序猿效率低下,影响大家升职加薪的36条恶习,总的来说归为代码组织、团队工作、写代码、测试与维护四大类。
一、代码组织
1、总是说“一会弄好”,但从来不兑现,拖延症晚期。缺乏任务管理和时间管理能力。
2、坚持所谓的高效、优雅的“一行代码流”,事实上,可读性才是最重要的,聪明是第二位的。
3、无意义的优化或者过度优化。(类似网页大小之类的优化最后再做)
4、不注重代码样式和风格的严谨,尽量要和自己的团队保持风格一致,团队代码风格不好的建议及时提出自己的建议。交接别人代码的时候认为别人写的是一坨屎,然后自己写的又是另一坨屎!
5、使用无意义的命名,禁止任何a、b、c变量出现,魔法值坚决反对!
6、忽略经过验证的最佳实践(例如代码审核、TDD、QA、自动化部署等),异常动不动就用Spring MVC提供的AOP方式去拦截,完全不顾性能和代码可读性。
7、给自己埋雷。(例如使用不会报错的库或者忽略例外)
二、团队工作
8、过早放弃计划。
9、坚持一个无效的计划。
10、总是单打独斗。(必须强迫自己与团队分享进度和想法,避免错觉,提高效率)
11、拒绝书写糟糕的代码。(日程紧迫的时候可以写一些“糟糕”的代码,这是程序员的能力而不是bug,当然,有时间的时候一定要回头偿还“技术债”)
12、抱怨他人,认为别人是菜鸡,带着情绪的和对方沟通交流。
13、不与团队分享所学。
14、向主管/客户反馈的速度过慢,不能做到及时主动。
15、不会充分利用Google。大家都很忙,没有人会义务的帮助你,有问题尽量自己先尝试着解决。
16、看重个人编码风格,认为自己的代码风格是最牛逼的,
17、带着个人情绪看待他人对自己代码的评论和注释。代码review的时候往往不能虚心接受别人的建议。
三、写代码
18、不懂优化策略,写出来的代码只能是算可以运行,完全不考虑性能和健壮性。
19、使用错误的工具。
20、不追求对开发工具和IDE的精熟。
21、忽略报错消息。完全不考虑代码的健壮性。
22、迷恋称手的开发工具。(不同类型的开发任务需要匹配对应的最佳开发工具,例如Sublime适合动态语言,而IDEA适合Java,如果你喜欢vim,并不意味着能用这些工具干所有事)但尽量和要团队的其他成员保持一致,比如别人都用IDEA,你还用着Eclipse,当然你能说服他们使用Eclipe还是可以的。
23、不注重代码中赋值的可配置性。(不养成把代码中的活动部件分离出来的习惯,会导致技术债暴增)
24、喜欢重新发明车轮。那些每天加班到晚上11点的程序员都是在重复造轮子吗?
25、盲目地剪切/粘贴代码。
26、应付差事,不求甚解,不花时间搞清楚项目运作的机理。
27、对自己写的代码过度自信。交接别人代码的时候认为别人写的是一坨屎,然后自己写的又是另一坨屎!
28、不去考虑每一个设计、方案或者代码库的“副作用”。一个成功的用例并不意味着“万灵药”,要从自己的业务出发。
29、在一个地方卡住了但坚持不呼救。(认为自己很帅!)
四、测试与维护
30、只去写能通过的测试,不会写单元测试或者不注重写单元测试。
31、重要项目中忽略性能测试。
32、不去核实代码是否真的可用,没有养成开发中及时快速测试的习惯。
33、重大改动延迟推送。
34、抛弃和逃避自己的代码。
35、忽略其他非功能性需求。(例如安全和性能,准备一份这方面的清单,忽略这些会毁掉你的所有成果)
36、缺乏学习的动力,不能终身学习,时间久了,跟不上新技术的发展,也相应的会被淘汰。
欢迎工作一到五年的Java程序员朋友们加入Java架构开发:744677563
本群提供免费的学习指导 架构资料 以及免费的解答
不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java 程序员必须掌握的 5 个注解!
自 JDK5 推出以来,注解已成为Java生态系统不可缺少的一部分。虽然开发者为Java框架(例如Spring的@Autowired)开发了无数的自定义注解,但编译器认可的一些注解非常重要。 在本文中,我们将看到5个Java编译器支持的注解,并了解其期望用途。顺便,我们将探索其创建背后的基本原理,围绕其用途的一些特质,以及正确应用的一些例子。虽然其中有些注解比其他注解更为常见,但非初学Java开发人员都应该消化了解每个注解。 @Override @FunctionalInterface @SuppressWarnings @SafeVarargs @Deprecated 首先,我们将深入研究Java中最常用的注解之一:@Override。 @Override 覆盖方法的实现或为抽象方法提供实现的能力是任何面向对象(OO)语言的核心。由于Java是OO语言,具有许多常见的面向对象的抽象机制,所以在非终极超类定义的非最终方法或接口中的任何方法(接口方法不能是最终的)都可以被子类覆盖。点击这里阅读 Java 10新特性实战教程。 虽然开始时覆盖方法看起来很简单,但是如果执行不正确,则可能会引...
- 下一篇
一次JVM GC长暂停的排查过程
现象 通过CAT埋点,发现在35~36分钟时候,出现JVM的GC耗时异常 通过跳板机登录机器,找到GC日志进行查看,如下图 在显示的最后一行中,我们看到其中user=0,sys=0,real=4.31s,表示JVM经历了长达4s多的STW,也即在这段时间内,该机器是无法对外提供服务的,请求到达该机器,最终只能超时返回。 排查 根据经验,这种 real > user + sys 的情况,大概率是内存的swap和密集型的IO造成的,可以顺着这个思路进行排查,这时候就突显了系统监控的重要性了,通过查看IO监控 我们可以发现,在对应的时间上确实存在大量的IO操作。 为什么频繁IO会引起长时间GC 在发生GC时,需要把相关数据写入GC日志,在写入期间,因为write()系统调用导致了暂停。这种日志的写操作,即使在异步、缓存IO或非阻塞IO模式下,还是有可能因为系统机制(比如页面缓存的回写),导致长时间的阻塞。 如何减轻因为IO造成的影响? 1、检查本机是否有其它进程在疯狂写文件,如果有的话,最好进行分离; 2、可以将Java日志文件移动到一个单独的或高性能的磁盘驱动器,例如SSD, tmp...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,CentOS7官方镜像安装Oracle11G
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池