这里对web程序方面的优化作一个总结.

1.编码规范化可读性优化

编码规范我想一般程序员不会不了解,如果你这方面是空白你应该好好补补基础了,做到编码规范是一个好的程序员的最基础要求,一个团队也应该有自己的编码规范。所以程序的优化也应该包含到这个方面,在你开发程序的过程中可能会有些遗漏,所以在我们进行编码规范化可读性优化是很有必要的。其实一份再好的程序代码若干年后你自己都未必能看的懂更不用说别人来看你的代码,使你自己写出的代码有更好的可读性,这个是一个好的程序员应该做的,并且是对一个团队和你自己作品的责任感。

优化方向就是使你的代码更清析更易懂。

2.程序效率、流程逻辑优化

程序效率的优化是最重要的,程序运行速度是程序代码好坏最重要的因素,程序逻辑其实就是你的解决思路,解决思路并不是唯一的,所以我们可以对它进行优化。逻辑的设计也和可读性有一定的关系,逻辑清晰可读性就更强。

优化的方向就很明确了提高速度,清晰逻辑。简单的逻辑并不代表一定是速度快,复杂的逻辑并不一定是慢的。所以在这两方面是关联。

3.SQL优化,减少查询次数

在使用数据库的程序中我们知道数据库的查询是在整个程序执行中占很大比例的,所以SQL的优化是非常重要的。

优化的方向一方面是SQL语句本身的优化,熟悉SQL的人应该会知道,不同的SQL写法执行的效率差别是很大的,如:尽量不对字段加函数操作 ,更多的大家可以去查找高效SQL这方面的资料。第二在一个页面中减少查询次数,这个道理很清楚,我们可以把整个页面的SQL都输出来进行分析,是否可以合并语句,是否可以做冗余字段等等,尽量减少SQL的查询次数,坚绝不在循环中使用查询。

4.缓存优化

缓存优化其实就是对上一点的补充,但缓存优化是很重要的,所以可以单独列为一点。缓存的数据主要就是从数据库中读取出来的。

对缓存的一些介绍:

1.静态页

静态页是所有大型网站不必有的处理方式,主要对一级页面和所有信息的详细页面的处理。其实静态页就是一种缓存处理,可以最大的降低服务器的负载,还有就是对SEO上的好处。静态页处理属于永久缓存,对于信息的详细页面只有在数据修改时才进行更新和当模版修改时进行批量的更新,对于一级页面进行编辑手动更新和定时更新。

2.小数据的永久缓存

像数据字典,新闻栏目,后台角色、用户等数据少长期不更新的数据可以进行永久的缓存处理。涉及到读取只读取缓存,只在修改数据时直接生成缓存。

3.访问频率高的数据按时缓存

像一些信息的点击率排行,最新数据等数据访问和更新频率高但如果都直接读取数据库肯定对赞成很大的负载,这种类型的数据就必须对数据缓存后定时更新。这里用memcached内存缓存是最好的处理方式。

当然缓存也应该适当,应该只把需要缓存的数据进行缓存。

5.html,css,js文件优化,减少冗余代码

这一点与服务端程序没有关系,主要是与浏览器相关的几方面。html的结构是会影响到浏览器的解析,所以好的html代码也会影响访问速度。相比之下客户端的代码就不允许有一点无用的东西存在,能把文件减少一K就应该减少。js虽然是在客户端执行但也应该去考虑它的效率问题,网络上也有这方面的文章介绍。

6.可用性优化

可用性优化主要指的是UED方面的,并不是每一个团队都有专门的UED,作为web程序的开发人员也应该有这方面的意识,去了解用户,而不是埋头写代码。努力使你开发的页面对用户更友好,更容易使用。

7.框架架构优化

如果有使用到开发框架,也应该考虑到对框架的优化,减少框架本身占用的资源。

其它:服务器架构优化、数据库优化

这些方面和程序开发没有直接关系,但和web程序的运行也是关系密切的,所以顺便提一提。

转载于:https://www.cnblogs.com/MaxIE/archive/2008/03/07/1094859.html

WEB程序代码优化入手的几方面相关推荐

  1. 10款Web程序员必备的CSS工具

    对于web开发来说,CSS是最有效的美化页面.设置页面布局的技术.但问题是,CSS是一种标记性语言,语法结构非常的松散.不严谨.WEB程序员会经常发现自己的或别人的CSS文件里有大量的冗余代码或错误或 ...

  2. java-web测试题cpu_tomcat+java的web程序持续占cpu高问题调试【转】

    转自 tomcat+java的web程序持续占cpu问题调试 - 像风一样的自由 - CSDN博客 http://blog.csdn.net/five3/article/details/2841677 ...

  3. java web 调用hadoop_Java及Web程序调用hadoop2.6

    1. hadoop集群: 1.1 系统及硬件配置: hadoop版本:2.6 :三台虚拟机:node101(192.168.0.101).node102(192.168.0.102).node103( ...

  4. java web程序示例_想要建立一些有趣的东西吗? 这是示例Web应用程序创意的列表。...

    java web程序示例 Interested in learning JavaScript? Get my ebook at jshandbook.com 有兴趣学习JavaScript吗? 在js ...

  5. 用JSP+JDBC开发Web程序

    以前一直想找个纯粹的JSP+JDBC开发Web程序的架构,一直没有找到合适的,后来自己写了一个简单实现,并实施了几个项目. 此开发架构的特点是: 1.架构技术简单,只包含JSP和JDBC,不需要学习即 ...

  6. java怎么加定时器_JAVA WEB程序中添加定时器

    JAVA WEB程序中添加定时器 //这是我的定时器类,用来定时执行某段任务: package com.my.time; import java.text.ParseException; import ...

  7. 使用MyEclipse开发第一个Web程序

    MyEclipse环境配置 首先,安装一个MyEclipse,然后进行一些相关的环境配置(Window->Preferences): 比如字体.Formatter等. 也可以从Eclipse中导 ...

  8. 利用SqlHelper.cs实现Web程序对数据库的增、删、改等操作

    利用SqlHelper.cs实现Web程序对数据库的增.删.改等操作 (2006-08-22 00:50:05) 转载▼ 分类:技术杂谈 在SqlHelper.cs中,封装了所有和SQL数据库相关的操 ...

  9. 基于jenkins结合git实现web程序的多服务器批量发布

    为什么80%的码农都做不了架构师?>>>    由于前一段时间发布了几篇关于web程序基于jenkins部署发布的博文,由于是基于svn作为版本库讲解的.这段时间有一些朋友问我git ...

最新文章

  1. LeetCode:Remove Nth Node From End of List
  2. 两个超长正整数的加法c语言,二个超长正整数的相加
  3. Sherri Sparks
  4. python计数属性类
  5. 数字化转型升级,人才战略是核心
  6. JVM类加载(2)—连接
  7. 450g带盖吐司配方_450g带盖吐司烤多久
  8. Node — 第九天 (大事件项目接口实现三)
  9. epoll实现高并发聊天室
  10. 有python基础学java_Python基础学习篇
  11. c语言实现ftp网络应用程序,使用C语言socket实现windows pc与ftp服务器通信---socket实现ftp客户端...
  12. python json按输入顺序输出内容
  13. Flink 1.9报错:No implicits found for parameter evidence$2: TypeInformation[(String, String, String)]
  14. JS小技巧 ----- 将类数组 / 字符串转为数组的几种方式
  15. 电子书下载(强烈推荐):《大道至简——软件工程实践者的思想》
  16. abaqus dat文件 matlab_基于MPCCI的FLUENT与ABAQUS流固耦合分析步骤
  17. C/C++调用java---JNI常用函数
  18. 错误解决办法:exec /usr/lib/ssh/ssh-askpass : No such file or directory error.
  19. android GPS
  20. allennlp.modules.span_extractors

热门文章

  1. 【解决方法】你已从聊天服务器断开,正在尝试重新连接
  2. RPC远程调用通俗理解
  3. 请注意更新TensorFlow 2.0的旧代码
  4. 关于python 中的__future__模块
  5. LeetCode简单题之将每个元素替换为右侧最大元素
  6. SECTIONS bss段初始化分析
  7. 中国人工智能AI框架自主研发
  8. 摄像头Camera标定Calibration原理Theory
  9. HarmonyOS ScrollView 不滑动的问题
  10. Ubuntu 系统安装OpenJDK 7,openjdk8