2013-06-28

第15章 优化技术

 

不管用什么语言进行开发,所有的优秀代码都会展示出共有的经典品质:

简练,可读性强,模块化,层次性,设计良好,高效,优雅,清晰等。

 

Java程序员能够依据Java编程规范养成良好的编程习惯,是编写良好Java程序的先决条件。

从一开始就写干净的代码,可以在程序开发过程中以及程序维护阶段不断受益。

1. 基本要求

2. 可读性要求

3. 结构化要求

4. 正确性与容错性要求

5. 可重用性要求

 

有些问题可能在多个模块中都出现(比如,日志记录、权限检查和事务管理),为了记录每个方法进入和离开时的信息,你不得不在每个方法中添加log等信息。将这些解决问题的功能点散落在多个模块中会使冗余增大,并且当多个功能点出现在一个模块中时,代码会变得很难维护。因此,AOP(Aspect Oriented Programming ,面向切面编程)应运而生。如果说OOP(Object Oriented Programming ,面向对象编程)关注的是一个类的垂直结构,那么AOP就是从水平角度来看待问题的。

动态代理类可以在运行时实现若干接口,每一个动态代理类都有一个Invocation Handler对象与之对应,这个对象实现了InvocationHandler接口,通过动态代理的接口对动态代理对象的方法调用会转而调用Invocation Handler对象的invoke方法,通过动态代理实例,方法对象和参数对象可以执行调用并返回结果。

性能测试主要包括以下几个方面:

1. 计算性能:执行一段代码所用的时间。

程序实现:http://www.cnblogs.com/fengzhblog/p/3161822.html

2. 内存消耗:程序运行所占用的内存大小。

程序实现:http://www.cnblogs.com/fengzhblog/p/3162370.html

3. 启动时间:程序启动到程序正常运行的时间。

4. 可伸缩性:应用程序如何应对增长的流量。

5. 用户察觉性能:不是程序实际运行有多快,而是用户感觉程序运行有多快。

Android应用开发揭秘之优化技术的更多相关文章

  1. android webview开发问题及优化汇总

    我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题.就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来.有些是老生常谈,有些则是个人摸索得出解决方 ...

  2. 浅谈Android样式开发之布局优化

    引言 今天我们来谈一下Android中布局优化常用的一些手段.官方给出了3种优化方案,分别是</include>.</viewstub>.</merge>标签,下面 ...

  3. 关于 Android 平台开发相关的有哪些推荐书籍?

    转自:http://www.zhihu.com/question/19579609 作者:Shan Huang 链接:http://www.zhihu.com/question/19579609/an ...

  4. 转——Android应用开发性能优化完全分析

    [工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.] 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉 ...

  5. Android 应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  6. 【转】Android应用开发性能优化完全分析

    http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关 ...

  7. Android应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  8. 转:Android应用开发性能优化完全分析

    转自:http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜 ...

  9. [阿里Hao]Android无线开发的几种经常使用技术

    本文由阿里巴巴移动安全client.YunOS资深project师Hao(嵌入式企鹅圈原创团队成员)撰写,是Hao在嵌入式企鹅圈发表的第一篇原创文章.对Android无线开发的几种经常使用技术进行综述 ...

随机推荐

  1. PHP 日期的加减

  2. URAL 1099. Work Scheduling (一般图匹配带花树)

    1099. Work Scheduling Time limit: 0.5 secondMemory limit: 64 MB There is certain amount of night gua ...

  3. Delphi 的插件框架 WisdomPluginFramework

    WisdomPluginFramework是融合OSGI微内核理念 + Eclipse的扩展点概念而精心设计的轻量级插件框架, 由Delphi实现,但可以使用于Delphi.BCB.VC++中,提供非 ...

  4. 搭建windows server 2008 r2 FTP 后 开启防火墙无法访问的解决办法

    转自http://kkworms.blog.51cto.com/540865/558477 今天在windows server 2008 R2上安装了FTP,安装过程如下,然后添加内置防火墙设置,设置 ...

  5. Android PopupWindow做的分享界面

    package com.tq.mbaexam.view; import java.util.ArrayList; import java.util.LinkedHashMap; import java ...

  6. javascript无缝滚动原理

    相比之下,无缝拼接能避免切换时出现空白,使用户体验更好! 无缝滚动原理: 制作一个双胞胎,内容跟主体内容一致,样式一致,如果横向排列则并排,当切换的时候,就可以弥补主体空白的地方,其他按普通循环操作即 ...

  7. 笔记本如何查看mac地址

    最近有网友咨询他的笔记本如何查看mac地址,一般情况当我们需要用mac地址,ip地址,本地dns的时候都可以参考下面的方法   MAC地址又称为网卡的物理地址,每台电脑都有一个唯一的MAC地址,也正因 ...

  8. Enable Notepad++ 666 support both SCLEX_FORTRAN and SCLEX_F77

    Enable Notepad++ 666 support both SCLEX_FORTRAN and SCLEX_F77 http://blog.csdn.net/gocad/article/det ...

  9. MFC DLL对话框调用

    Regular Dll using shared MFC DLL extern "C" __declspec(dllexport) void Show() {   AFX_MANA ...

  10. 2)Linux程序设计入门--进程介绍

    )Linux程序设计入门--进程介绍 Linux下进程的创建 前言: 这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到: 进程的概念 进程的身份 进程的创建 守护进程的创建 .进程的 ...