如何提高代码可读性,可维护性
如何提高代码可读性,可维护性
为企业提供网站制作、成都网站制作、网站优化、营销型网站、竞价托管、品牌运营等营销获客服务。成都创新互联公司拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!
很多程序员在写代码的时候往往都不注意代码的可读性,让别人在阅读代码时花费更多的时间。其实,只要程序员在写代码的时候,注意为代码加注释,并以合理的格式为代码加注释,这样就方便别人查看代码,也方便自己以后查看了。下面分享十个加注释的技巧: 1. 逐层注释为每个代码块添加注释,并在每一层使用统一的注释方法和风格。例如:针对每个类:包括摘要信息、作者信息、以及最近修改日期等;针对每个方法:包括用途、功能、参数和返回值等。在团队工作中,采用标准化的注释尤为重要。当然,使用注释规范和工具(例如C#里的XML,Java里的Javadoc)可以更好的推动注释工作完成得更好。2. 使用分段注释如果有多个代码块,而每个代码块完成一个单一任务,则在每个代码块前添加一个注释来向读者说明这段代码的功能。
北大青鸟java培训:高中生想成为JAVA软件编程高手要怎样做?
高中生如何成为JAVA软件编程高手?做为一名高中生,以前从未接触过计算机JAVA软件编程的内容,以前在学校时除了铺天盖地的试卷,就还是试卷,几乎很少接触到计算机软件编程的内容。
高中毕业后落榜了,孩子们都想拥有一个好的出路,想学习一门专业的技术,那么高中生怎么样才能学好软件开发技术呢?其实成为编程高手没有捷径,多么简单的一句话啊,但是有多少人能够了解它呢。
关键是你知道怎样才能成为真正的编程高手吗?北大青鸟java课程软件工程师课程,专门针对高中生开设,零基础学习,把高中生培养成高薪的软件工程师人才。
学校以企业真实项目实训的方式培养学员软件开发技术,提升学员学习兴趣,增强学员项目开发经验,引领学员轻松踏入IT行业。
入学即签订就业协议,让中等及以上学历者经过一年的努力实现软件工程师梦想!北大青鸟针对学员如何成为JAVA软件编程高手,总结了一些经验,供学员参考。
1.一门语言的语法,SDK的常用API,算法与数据结构有了上面的知识,再加上一点实践,再从网上找一些笔试题做几套,基本可以过笔试这一关。
2.编码规范、高性能编码经验技巧。
要成为一个职业化的、专业化的程序员,首先要养成良好的习惯,良好的习惯从规范化的点滴日常工作开始。
3.熟练掌握IDE、常用工具的使用工具可以提高生产力,用一把小刀去砍树很困难,用电锯立刻变得很简单。
4.面向对象的原则。
这里重点掌握面向对象的原则,比如:单一职责原则SRP、开放-封闭原则、替换原则LSP、依赖倒置原则DIP等,明白了这些原则,对后面内容理解的深入会有很大的帮助。
其实这才是根本,不了解这些原则去学设计模式有种空中楼阁、头重脚轻的感觉。
根基不牢上层建筑就好像浮云一样。
5.重构。
重构就是在不改变软件功能的前提下改善代码的设计以提高可维护性。
修改别人的代码或者优化自己的代码都需要用到重构技术。
6.设计模式。
基于一些常用的模式来学习如何使用设计模式。
设计模式对于做框架开发的程序员比较有帮助。
我们会选择一些常用的来讲解。
7.最重要、最难,看上去却最简单的功夫:修改代码的艺术。
对公司来讲,一个没经验的人修改了一个bug,可能会引出几个问题,然后再去修改,如此恶性循环。
对于员工来讲,赶鸭子上架,不了解代码的逻辑、针对表象简单粗暴的修改,有时我看了真的很是心痛。
对程序员本身的能力提高也是缓慢的。
其实修改别人的代码开始是功夫,之后就是艺术。
就好像你要给一个人治病,你要成为医生,先要掌握人体基本结构、各个脏器的特点、各种药物的功能、常用的诊治方法等等,医院不会让一个医学院毕业的学生去给病人看病,总要有段实习,由经验丰富的医生带一段时间。
然后从难度较低的做起。
8.架构设计。
架构设计在程序设计中是相当关键的一步,需不断摸索和研究,总结出自己的方法。
9.软件工程。
开发软件的过程,我经历过公司从CMM到敏捷的转变,我个人是比较推崇敏捷开发的,这里想与大家站在工程的角度聊一聊软件开发。
10.质量管理。
越往后其实越偏向管理了,开始是个人修炼,后面是站在组织、站在公司的角度来看软件。
质量是说得多、做得少,尤其在软件领域,我一直觉得很邪门的事情是不懂软件开发的人甚至被淘汰出去的人去从事软件行业的质量管理,真是令人担忧。
质量管理中有很多很好的理论和工具,是值得我们学习的,不只可以应用到软件开发上,生活中也很有用的。
计算机维护管理系统 java的代码
你这个程序不算大。
但有很多地方的信息很不明确。比如说:你的数据库系统是什么?表结构?
如果说你想就靠分白拿这么多功能的JAVA代码应该也是不可能的。
建议你一个模块一个模块的问。在别人的帮助下你再想办法自己整合一下。
这样的题一般大学做毕业设计应该可以了。做出来都可以卖钱的!!
怎样通过别人的优秀代码来学习java
1、注释尽可能全面
对于方法的注释应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述;类的注释应该包含类的功能说明、作者和修改者。
2、多次使用的相同变量最好归纳成常量
多处使用的相同值的变量应该尽量归纳为一个常量,方便日后的维护。
3、尽量少的在循环中执行方法调用
尽量在循环中少做一些可避免的方法调用,这样可以节省方法栈的创建。例如:
1. for(int i=0;i
2. System.out.println(i);
3. }
可以修改为:
1. for(int i=0,size=list.size();i
2. System.out.println(i);
3. }
4、常量的定义可以放到接口中
在Java中,接口里只允许存在常量,因此把常量放到接口中声明就可以省去public static final这几个关键词。
5、ArrayList和LinkedList的选择
这个问题比较常见。通常程序员最好能够对list的使用场景做出评估,然后根据特性作出选择。ArrayList底层是使用数组实现的,因此随机读取数据会比LinkedList快很多,而LinkedList是使用链表实现的,新增和删除数据的速度比ArrayList快不少。
6、String,StringBuffer和StringBuilder
这个问题也比较常见。在进行字符串拼接处理的时候,String通常会产生多个对象,而且将多个值缓存到常量池中。例如:
1. String a="a";
2. String b="b";
3. a=a+b;
这种情况下jvm会产生"a","b","ab"三个对象。而且字符串拼接的性能也很低。因此通常需要做字符串处理的时候尽量采用StringBuffer和StringBuilder来。
7、包装类和基本类型的选择
在代码中,如果可以使用基本数据类型来做局部变量类型的话尽量使用基本数据类型,因为基本类型的变量是存放在栈中的,包装类的变量是在堆中,栈的操作速度比堆快很多。
8、尽早的将不再使用的变量引用赋给null
这样做可以帮助jvm更快的进行内存回收。当然很多人其实对这种做法并不感冒。
9、在finally块中对资源进行释放
典型的场景是使用io流的时候,不论是否出现异常最后都应该在finally中对流进行关闭。
10、在HashMap中使用一个Object作为key时要注意如何区分Object是否相同
在jdk的HashMap实现中,判断两个Object类型的key是否相同的标准是hashcode是否相同和equals方法的返回值。如果业务上需要对两个数据相同的内存对象当作不同的key存储到hashmap中就要对hashcode和equals方法进行覆盖。
怎么看别人的java代码
看别人的代码是一件比较痛苦的事情,如果代码注释多并且编写很规则的话那就比较好,
如果有项目需求文档或流程设计图最好先看看系统的整体功能
然后根据项目的模块划分对整体有一个认知
再根据模块找到对应的代码模块(需要注意模块间的关联)
根据DB设计说明查看业务表的关联关系
最后根据项目文档重新查看项目整体构成,这样看印象比较深刻一些,千万不要抠某一个功能的具体业务与实现,只需要知道模块的大概业务,然后当需要的时候再进行细细研究某一功能
以上是我的经验之谈,希望对你有帮助。
【转】如何保护Java代码
以下从技术角度就常见的保护措施 和常用工具来看看如何有效保护java代码:1. 将java包装成exe 特点:将jar包装成可执行文件,便于使用,但对java程序没有任何保护。不要以为生成了exe就和普通可执行文件效果一样了。这些包装成exe的程序运行时都会将jar文件释放到临时目录,很容易获取。常用的工具有exe4j、jsmooth、NativeJ等等。jsmooth生成的exe运行时临时目录在exe所在目录中或是用户临时目录 中;exe4j生成的exe运行时临时目录在用户临时目录中;NativeJ生成的exe直接用winrar打开,然后用zip格式修复成一个jar文件,就得到了原文件。如果只是为了使用和发布方便,不需要保护java代码,使用这些工具是很好的选择。2. java混淆器特点:使用一种或多种处理方式将class文件、java源代码进行混淆处理后生成新的class,使混淆后的代码不易被反编译,而反编译后的代码难以阅 读和理解。这类混淆器工具很多,而且也很有成效。缺点:虽然混淆的代码反编译后不易读懂,但对于有经验的人或是多花些时间,还是能找到或计算出你代码中隐藏的敏感内容,而且在很多应用中不是全部代码都能混淆的,往往一些关键的库、类名、方法名、变量名等因使用要求的限制反而还不能混淆。3. 隔离java程序到服务端特点:把java程序放到服务端,让用户不能访问到class文件和相关配套文件,客户端只通过接口访问。这种方式在客户/服务模式的应用中能较好地保护java代码。缺点是:必须是客户/服务模式,这种特点限制了此种方式的使用范围;客户端因为逻辑的暴露始终是较为薄弱的环节,所以访问接口时一般都需要安全性认证。4. java加密保护特点:自定义ClassLoader,将class文件和相关文件加密,运行时由此ClassLoader解密相关文件并装载类,要起到保护作用必须自定 义本地代码执行器将自定义ClassLoader和加密解密的相关类和配套文件也保护起来。此种方式能很有效地保护java代码。缺点:可以通过替换JRE包中与类装载相关的java类或虚拟机动态库截获java字节码。 jar2exe属于这类工具。5. 提前编译技术(AOT) 特点:将java代码静态编译成本地机器码,脱离通用JRE。此种方式能够非常有效地保护java代码,且程序启动比通用JVM快一点。具有代表性的是GNU的gcj,可以做到对java代码完全提前编译,但gcj存在诸多局限性,如:对JRE 5不能完整支持、不支持JRE 6及以后的版本。由于java平台的复杂性,做到能及时支持最新java版本和JRE的完全提前编译是非常困难的,所以这类工具往往采取灵活方式,该用即时编译的地方还是 要用,成为提前编译和即时编译的混合体。缺点:由于与通用JRE的差异和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;只能使用此种工具提供的一个运行环境,如果工具更新滞后或你需要特定版本的JRE,有可能得不到此种工具的支持。 Excelsior JET属于这类工具。6. 使用jni方式保护特点:将敏感的方法和数据通过jni方式处理。此种方式和“隔离java程序到服务端”有些类似,可以看作把需要保护的代码和数据“隔离”到动态库中,不同的是可以在单机程序中运用。缺点和上述“隔离java程序到服务端”类似。7. 不脱离JRE的综合方式保护特点:非提前编译,不脱离JRE,采用多种软保护方式,从多方面防止java程序被窃取。此种方式由于采取了多种保护措施,比如自定义执行器和装载器、加密、JNI、安全性检测、生成可执行文件等等,使保护力度大大增强,同样能够非常有效地保护java代码。缺点:由于jar文件存在方式的改变和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;很有可能并不支持所有的JRE版本。 JXMaker属于此类工具。8. 用加密锁硬件保护特点:使用与硬件相关的专用程序将java虚拟机启动程序加壳,将虚拟机配套文件和java程序加密,启动的是加壳程序,由加壳程序建立一个与硬件相关的 受保护的运行环境,为了加强安全性可以和加密锁内植入的程序互动。此种方式与以上“不脱离JRE的综合方式保护”相似,只是使用了专用硬件设备,也能很好地保护java代码。缺点:有人认为加密锁用户使用上不太方便,且每个安装需要附带一个。从以上描述中我们可以看出:1. 各种保护方式都有其优缺点,应根据实际选用2. 要更好地保护java代码应该使用综合的保护措施3. 单机环境中要真正有效保护java代码,必须要有本地代码程序配合当然,安全都是相对的,一方面看你的保护措施和使用的工具能达到的程度,一方面看黑客的意愿和能力,不能只从技术上保护知识产权。总之,在java 代码保护方面可以采取各种可能的方式,不可拘泥于那些条条框框。
标题名称:JAVA维护别人的代码 别人的java源代码,自己怎么用
新闻来源:http://lswzjz.com/article/dodooho.html