其实大多数的开发规范都会禁止魔法值(未经预先定义的变量)的使用,因为它存在着很多的弊端。
- 魔法值容易出错。当在代码中多次使用同样字面值时,如果出现了拼写错误,那么程序将会发生不可预料的错误,而且这种错误难以在前期发现。而如果使用变量,IDE和编译器等就可比较容易发现错误,减少像题中出现键值不相同的情况发生。
- 魔法值难以修改维护。当我们需要修改多次出现的魔法值时,我们就要进行查找之后再修改,有时一些魔法值容易与其他代码混淆,此时修改工作就十分困难了。而预先定义的变量仅需修改一处就可以了,明显更为方便。
- 魔法值降低代码可读性。当代码中遍布魔法值,尤其是一些魔法数字的时候,除非有详尽的注释,否则其他人很难弄清魔法值的含义,代码开发者自己也不容易记得。而使用合适的名称进行变量命名,可读性就会大大增加。
在开发中应养成良好的编码习惯,避免魔法值的使用,提高代码的正确性和可维护性。
如何优化JAVA代码及提高执行效率?
优化代码一直都是程序员最看重的事情,尤其是大型系统,数据量大代码量大,优化代码哪怕是一丁点,也可以提高系统的不小的性能。
优化Java代码有哪些方式
1.编码遵从Java规范
代码规范尤其重要,自从阿里巴巴公开了自己Java编程规范以后,很多公司都要求员工进行学习。Java规范里不仅仅包含基本的命名学问,还包含了程序员编程时一些优良习惯可以直接影响性能的学问,而且规范的代码可以极大减少运维的压力,这是很多运维工作者都有的体会。
2.数据库优化
数据库是如何成熟的系统都必不可缺的部分,最简单的对数据库优化的方式就是加索引,可以利用查看执行效率进行,此外数据库语句的优化也非常讲究,对于数据量庞大的系统,数据库调优是优化工作最开始的环节。
3.巧用中间件
目前中间件简直是Java的神器,比如缓存Redis,集成进框架中,可以提高读写速度,中间件非常多,大部分常用的中间件都是开源而且免费的,中间件就是为了提升Java执行效率而存在的。
4.多线程编程
并发是利用多线程进行代码优化,把Java某个非常耗时间的一段函数放入线程池中,可以极大的提升执行效率,属于提效最直接最有效的方式,当然这需要占用更多的内存和消耗CPU,而且多线程编程需要担心线程不安全。
关注“极客宇文氏”,一名有料热心的软件工程师。
学习JAVA可以看哪些书?
你现在的目标是三个月后能找一个一般公司的JAVA后台工程师的岗位入行,从这个角度讲,很多学习的知识点需要做减法。因为很简单,普通公司一个初级工程师的岗位,不会要你什么架构、算法、高级的框架定制,能够用业内常用框架、有质量保证的完成一些业务模块就可以了。所以你也不用太担心,把问题搞得太复杂。以下是我以前带新员工时给他们的一些建议,希望对你有帮助。
第一步:打基础
后端知识:
1.1 JAVA语言:找一本JAVA基础书把上面的知识点过一遍,侧重面向对象、文件IO、集合类、多线程;你一周后尝试写一个相对复杂的业务逻辑,比如统计代码行(去注释)或者计算器(给你一个复杂带括号的四则运算公式能给出结果),swing啥的别去学。
1.2 数据库:先只学mysql就可以,自己装一个mysql用客户端登录进去操作,学习基础语法,初步达到效果建议如下。你构建一套学生成绩表,诸如学生信息、考试成绩、班级信息等;聚焦单表增、删、改、查;左右连接的跨表查询;简单查询,如某个成绩的平均分、超过某个分数的学生信息、班级成绩排名等;
前端知识:
1.3 建议直接在W3Cschool网站上把HTML、CSS、JS的基础知识点过一遍;你不用都记住,因为目标是后端工程师,有概念就行;
1.4 把Jquery学一遍,学完后综合1.3的知识点,你看能不能完成一个左树右表的常用管理后台界面框架;
第二步:WEB开发基础
2.1 学习tomcat下用servlet + jsp + jdbc完成一个简单的管理系统。目标是有登录,登录进去后能够做一些常见的业务操作,比如结合你自己熟悉的工程项目管理。
备注:之所以不建议直接上框架,是建议你在这一步去了解所谓的web项目,从浏览器 到 HTTP请求 到 WEB服务器 到数据库 的本质是什么。这里你会用到Ajax(是必须的知识点)。
第三步:框架下的WEB开发
3.1 建议用springmvc + spring3 + mybatis3 去重新实现你2.1 完成的管理系统。
备注:在学习第二步、第三步的时候,你会碰到很多概念,诸如AOP、IOC、连接池等,不用管它,先以能调通、能实现功能为目标。
第四步:重新夯实知识点
上面所有的工作都是以小步快跑的形式做的,其实你真的走到这一步,你已经对JAVA技术栈下的WEB开发有一个直观整体的了解。往下你要对遗漏的点进行夯实、补漏:
4.1 开发环境:切到maven去搭建SSM框架
4.2 生产环境:在阿里云上买一台入门级的linux服务器,搭建tomcat、mysql,并部署你的工程;
4.3 原理性知识:把spring ioc、AOP的原理过一遍;有一本叫《从零开始写JAVA web 框架》不错
4.4 应用性知识:如何做权限控制、如何使用定时器、如何使用缓存、如何使用日志;每个点自己去网上查方案,然后可以补充到你的工程里去。
4.5 数据库知识:你可以尝试编一些相对复杂的统计报表来练习SQL、Mybatis的熟练度;
4.6 分布式框架(可选):学习并搭建一个dubbo或dubbox的项目、学习下springboot的web开发。这个github上有很多参考项目,你对着人家源码学习就OK。
我差不多能想到的就这些,剩下的就是找一份合适你的工作。给你几个建议吧,
- 第一份工作不要太看重薪酬,能踏实入行最重要,IT这块有能力跳槽薪酬涨涨很快的;
- 如果确实技术没法那么快提升到位,至少态度一定要积极,该加班就加班;
- 可以找与自己专业相关的IT行业,这样你自己在产品业务这块就有优势;
祝你好运:)