java开发工作需要注意什么问题 JAVA开发过程中需要注意那些问题
大家好,今天小编来为大家解答以下的问题,关于java开发工作需要注意什么问题,JAVA开发过程中需要注意那些问题这个很多人还不知道,现在让我们一起来看看吧!
从事Java开发的注意事项
快要变身为Java开发工程师的同学们,你们了解了Java开发的工作了吗?初入职场,如果对你即将要做的工作没有了解,一定会有较长的磨合期的,所以,IT培训为大家分享从事Java开发注意事项。
1、将一些需要变动的配置写在属性文件中
若没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中,还是TEST环境中,都可以顺畅无阻地运行,但是一旦部署在PROD上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,也许是线上环境并发造成,也许是其他。如果线程数目可以在属性文件中配置,那么使它成为一个单线程应用程序就变得十分容易了。方法同样适用于配置URL、服务器和端口号等。
2、测试中尽可能模拟线上环境
生产过程中一个典型的场景就是只使用1到3个帐户进行测试,而这个数量本应是1000到2000个的。在做性能测试时,使用的数据必须是真实并且未经裁剪的。不贴近真实环境的性能测试,可能会带来不可预料的性能、拓展和多线程问题。这里也可以采取预发布环境的方式来解决部分问题。
3、对于所有外部调用以及内部服务都要做容错处理
不管是RPC调用还是对于第三方服务的调用,都不能想当然的认为可用性是100%的。不允许出现服务调用超时和重试,将会对应用程序的稳定性和性能造成不利的影响。
4、安全设计上一个系统要遵循最小权限原则
网络服务随处可见,从而使得黑客可以轻易地利用它进行拒绝服务攻击。设计系统时,需要遵循"最小权限"原则,采用白名单等方式。
5、需要提供以下文档
编写单元测试文档并使其拥有良好的代码覆盖率。
高层次的设计图:描述了所有的组件,交互和结构。
详细的设计图:具体到代码层面的设计,以及一些关键逻辑的流程。
系统组成文档:说明系统的所有组成文件、配置文件等。
数据库层面的dml以及ddl文档,尤其是sql查询语句需要经过dba或者核心开发人员的review才能够上线。
Java项目开发需要考虑的注意事项
在学习Java开发的时候,学习的过程中主要包含基础知识学习和实践操作学习,一般情况下会根据实际情况进行项目实践,但是很多人在参加项目开发的时候会发现很多问题是之前没有接触过的,不知道在开发的时候应该注意什么?下面电脑培训为大家介绍Java项目开发的注意事项。
1、服务器必须提供进行输入数据的正确性验证,一般情况下,客户端的Javascript验证是可以不使用的。这是基于安全考虑因素,因为Javascript很容易被绕过,添加客户端验证只是为了减少服务器压力并使界面更易于使用。
2、在开发Java项目过程中,IT培训建议应该适度使用Session,尽量不要在Session中放置大的集合对象,以免消耗太多内存,因为很多用户在访问时会产生很多Session。参数传递应该尝试传递Request。很多时候,熟悉HTTP有助于更好地理解会话、Cookie和请求等机制。
3、在进行项目开发时,应该使用相对简单的SQL数据,避免出现多表联查的情况。因为多表联查的情况回你导致数据库的压力变得更大,并且不利于在内存中进行部分记录缓存,北大青鸟认为这样很难把代码的使用性提高。
4、在为查询编写SQL时,您需要能够确定SQL是否已使用索引,避免全表扫描,并在必要时进行增加索引。
5、很多人都知道,在一个方法中不一定只有一个结果。如果已经有结果,尽早返回,则无需提高嵌套级别。这将导致代码的可读性差,但也不会返回太多。这样的代码看起来会更加舒服一些。
6、编码时,应注意部署环境的影响,包括不同操作系统之间的路径差异,应用程序服务器和数据库服务器之间的时间差,外部网络可以部署在多个服务器上并放置在会话中。霍营北大青鸟认为该对象需要实现java.io.Serializable接口等,因为它需要被复制。
JAVA开发过程中需要注意那些问题
开发过程需要注意的问题有下面这些:
1.服务器端必须提供输入数据正确性的验证,客户端的Javascript验证可以没有。这是基于安全性的考虑,因为Javascript是很容易被绕过的,增加客户端验证只是为了减少服务器压力、界面更加容易使用。
2.适度使用Session,尽量不要在Session里放很大的集合对象,以免内存消耗过大,因为很多用户访问的时候会产生很多的Session。参数传递应该尽量通过Request。熟悉HTTP有助于更好的理解Session、Cookie、Request等的机制。
3.在带有分页的查询界面,尽量不要使用POST方法来传递参数,POST传递的参数在地址栏里是看不到的,刷新后会有重新提交表单的提示。使用GET方法传递参数要注意URL的长度不能超过1K。
4.分层应该清晰,一般目前我们分为View(Jsp或FreeMarker加上Action)、Bean(Service)、DAO这么三层,即显示层、业务层、数据层。记录集ResultSet这种只能出现在DAO层中的对象不能出现在Bean(Service)层中,同样HttpServletRequest这种只能出现在View层的对象也不应出现在Bean(Service)层中。这并不是绝对的。
5.尽量使用简单SQL,避免两表以及多表联查。多表联查会导致数据库压力大幅增加,而且不利于在内存中对部分记录进行缓存,代码的重用性也难以提高。
6.避免在循环里执行findXXById这样的方法,不如执行一个findXXByIds这样的方法一次性把记录取到Map里。大部分有实际对象对应的表应该提供这样一个方法。
7.如果使用最原始的jdbc编程的话需要注意资源的正确释放,在循环里new出来的Statement或者ResultSet就要在循环里关闭。
8.在编写SQL进行查询的时候,需要能够判断这个SQL是否已经使用了索引,避免全表扫描,必要的时候增加索引。
9.在写一个方法前,首先查看有没有相同功能或者很类似功能的方法已经有了,尤其是工具类方法,往往已经写过了,避免重复代码的产生,发现重复代码及时进行处理。如果一段代码被重复使用两遍或以上,那么可以考虑专门写个方法来放这段代码,同样多次使用的常量也应该专门定义出来。
10.在一个方法里并不一定只能有一个return,如果已经有结果了尽早return,没必要增加嵌套的层次,那样会导致代码可读性不佳,但也不能return太多,代码看起来比较舒服就可以了。
11.不要满足于能够熟练的编写DAO和Bean(Service)的代码,相比较而言,后台如果在成熟框架的支持下,编码是没有太大难度的,也不值得沾沾自喜,因为这是对Java研发工程师基本的要求。适当的培养一下前台的编码能力,学会使用Dreamweaver。不要轻视界面,也别认为这是界面设计的事情,界面对用户来说就是软件,学会编写CSS和调整界面对你没有坏处。
12.非常明确Java和javascript作用的范围,明确它们能做的事情。
13.一般很奇怪的现象都是由一些低级错误引起的,如果你查了一段时间也没有结果,那么让别人来查吧。
14.不要用可能被修改的字段来做主键,那样会让相关记录的更新成为一个大麻烦。
15.如果被迫使用Hibernate和jdbc混合操作数据库的话,不要用Hibernate来做复杂查询和统计。Hibernate用的不好的话,带来的便利是非常有限的。
16.数据库中经常被读取,但是很少修改的话,应该把这样的数据读到内存中用OSCache之类的缓存起来,然后定期或者触发的去更新,有助于减少读数据库次数,提升性能。
17.编码的时候应该注意部署环境带来的影响,这种影响包括操作系统不同带来路径的差异;应用服务器和数据库服务器之间时间的差异;外网可能部署在多台服务器上,放到Session里的对象因为需要复制所以要实现java.io.Serializable接口等。
18.尽量不要在jsp上编写太多代码,保持jsp的整洁很重要,用Dreamweaver打开不至于一塌糊涂,根本看不出来这是个什么界面。
19.目前我们的项目一般都使用Spring来管理数据库事务,而且一般都配置在Bean(Service)即业务层这一层,应该注意要保持事务的完整性,不要把一些应该放在一起的操作分散在Action这一层。相关的更新操作可以认为是一个事务,比如:增加一个家长,同时更新学生是否有家长的字段。
20.在Spring的配置中,对于有些需要保持独立事务的方法操作,比如生成主键等,应该声明该方法为独立事务ROPAGATION_REQUIRES_NEW。Bean(Service)里如果抛出checked exception,事务默认是不会回滚的,需要加以声明,比如<propkey="*">PROPAGATION_REQUIRED,-PassportException</prop>。
21.在一个Bean(Service)中引用其他Bean(Service)的时候尽量引用Bean(Service),而不是DAO。因为其他的Bean(Service)往往封装DAO的操作后,又做了进一步的完善,比如增加校验等,所以应该重用这些方法,而不必要去引用DAO的方法来重写这些操作。
22.至少在Bean(Service)的接口定义上增加注释,方便他人引用你写的方法。
23.好好利用集合框架里的Map、List、Set。尤其是HashMap、ArrayList、HashSet用的最多,这些类是多条数据操作的基础,它们都不是线程安全的。
24.现在跑的快的页面,随着数据量的增加,可能会变的很慢,所以应该意识到页面可能变慢的原因,而不是现在看起来很快。影响速度的大部分原因是对数据库的压力太大了,在java代码执行上花费很多时间的情况是不常见的。
25.避免不必要的跳转,如果页面执行的足够快,那么中间的载入进度提示页是不必要的,那样会让用户觉得闪烁。
26.注意页面的文件大小,并不是每个用户的带宽都是非常理想的,文件小一点,速度快一点,总是感觉更好一点。
27.不要去修改用户的浏览器,比如隐藏他们的地址栏、菜单、右键菜单等,这可能会引起部分用户的反感。尽量不要使用弹出窗口,可能会被拦截。
28.网站的权限控制至少应该保证有访问权限的用户才能访问页面,通过隐藏链接之类的方法是很不安全的,用户看不见了并不表示安全了。权限的控制尽量使用框架里的拦截器这样的机制,而不是把权限控制代码写的到处都是。过滤器不宜过多的使用,不仅因为过滤器的作用范围很难控制,而且容易引起页面执行效果的混乱,错误不易排查。
29.页面里大部分情况使用相对路径,保持Action路径层次和页面一致,这样应用就可以发布在各种目录下。
好了,文章到这里就结束啦,如果本次分享的java开发工作需要注意什么问题和JAVA开发过程中需要注意那些问题问题对您有所帮助,还望关注下本站哦!