Web开发中软件工程艺术(Web程序员请进来谈谈,特别是有大型门户网站后台开发的程序员)
2012-03-26 11:33
357 查看
近正着手一个大型综合性门户网站后台管理系统(准确说是内容管理系统)设计
与规划,对网站开发技术有一个较深刻的认识。从Internet的出现到现在,WebSite的开发技术有4个过程:
1.静态WebSite,页面均为静态,无数据库支持。
2.动态WebSite,这是当前中小型WebSite使用最多的技术,也就是数据库驱动的
的WebSite
3.动态内容静态发布技术。这是当前比较先进Web开发技术。随着用户访问量的增加
,当日访问量上万甚至更多时,Web服务器的负载迅速增大,达到满载甚至超载,大大降低
了系统的效率甚至导致系统难以运行,尽管从DBMS的升级和硬件设施的升级可以适当解决
这个效率瓶劲问题,但这大大增加了成本。另外,我们要提高在搜索引擎中的应用。搜索
引擎中的“机器人程序”在搜索过程中遇到动态网页时,比如:News.asp?Year=2003&
Month=12&Date=19时,机器人程序在检索这个字符串中遇到“?”和“&”,时就会进入死循环,因此机器人程序要避免进入死循环而用的“机器人陷阱程序”,此时,它只能搜索到
News.asp这个页面的内容。而我们采用动态内容的静态发布技术后News.aspYear=2003&
Month=12&Date=19这个URL转换成静态的News/2003121911062033.htm,这个静态页面的内容就是News.aspYear=2003&Month=12&Date=19生成的内容,不仅提高被搜索的概率,
而且使系统的效率提高很多(因为当Web用户请求访问这个页面是不需要向数据库系统请求
数据).这种技术在大、中型综合性网站普遍应用,如新浪,搜狐。
4.基于Cache的发布技术(反向代理)。
以前做应用的时候也用过一些方式:应用首次访问以后将生成的内容存成一个缓存文件,下次请求时从缓存目录中读取缓存文件,内容更新时,应用把内容从缓存目录中删掉,从而减少对数据库的访问。虽然这样做也能承载比较大的负载,但这样的内容管理和缓存一体的系统是很难分离的。
如果换一个思路:通过一定的分工现内容管理和缓存机制2者的分离,你会发现无论哪一方面可选的余地都是非常大的。甚至有可能利用目前的已经是“功能”比较全面的内容管理系统,而让所有“效率”问题都由前台更专业,而且是很容易分布的缓存服务器解决:可以是通过开放源代码的SQUID做反相代理的WEB加速,可以是专门的缓存硬件设备,甚至是专业的缓存服务商。
动态缓存必须有一个基于静态链接本身的参数解析过程,很多专业内容管理系统系统都是将参数解析机制做成了WEB服务器的模块实现的。
我们可以把以前的HTTP/GET方式的?key=value改为直接用/value1/value2的方式来传递,从而实现了动态页面的静态URL形式。而缓存只需要在前端加上一层CACHE服务器,比如:Squid。网站动态内容的动态缓存发布就可以实现了。
这是当前最先进的网站开发技术,实现了真正意义上的软件工程,实现开发过程
中的真正分工开发,开发过程中相互依赖大大降低,提高了开发速度。美工只管模板的
设计,页面策划师也只顾版面策划,Web程序员只顾功能模块的开发,而系统集成的程序员
只顾将页面模板和程序模块的调用和逻辑集成,实现了界面和内容完全分开,即所见所得,在网站管理中,美工可以完全不懂程序去维护模板,而技术管理员则不考虑界面去处理程序。
与规划,对网站开发技术有一个较深刻的认识。从Internet的出现到现在,WebSite的开发技术有4个过程:
1.静态WebSite,页面均为静态,无数据库支持。
2.动态WebSite,这是当前中小型WebSite使用最多的技术,也就是数据库驱动的
的WebSite
3.动态内容静态发布技术。这是当前比较先进Web开发技术。随着用户访问量的增加
,当日访问量上万甚至更多时,Web服务器的负载迅速增大,达到满载甚至超载,大大降低
了系统的效率甚至导致系统难以运行,尽管从DBMS的升级和硬件设施的升级可以适当解决
这个效率瓶劲问题,但这大大增加了成本。另外,我们要提高在搜索引擎中的应用。搜索
引擎中的“机器人程序”在搜索过程中遇到动态网页时,比如:News.asp?Year=2003&
Month=12&Date=19时,机器人程序在检索这个字符串中遇到“?”和“&”,时就会进入死循环,因此机器人程序要避免进入死循环而用的“机器人陷阱程序”,此时,它只能搜索到
News.asp这个页面的内容。而我们采用动态内容的静态发布技术后News.aspYear=2003&
Month=12&Date=19这个URL转换成静态的News/2003121911062033.htm,这个静态页面的内容就是News.aspYear=2003&Month=12&Date=19生成的内容,不仅提高被搜索的概率,
而且使系统的效率提高很多(因为当Web用户请求访问这个页面是不需要向数据库系统请求
数据).这种技术在大、中型综合性网站普遍应用,如新浪,搜狐。
4.基于Cache的发布技术(反向代理)。
以前做应用的时候也用过一些方式:应用首次访问以后将生成的内容存成一个缓存文件,下次请求时从缓存目录中读取缓存文件,内容更新时,应用把内容从缓存目录中删掉,从而减少对数据库的访问。虽然这样做也能承载比较大的负载,但这样的内容管理和缓存一体的系统是很难分离的。
如果换一个思路:通过一定的分工现内容管理和缓存机制2者的分离,你会发现无论哪一方面可选的余地都是非常大的。甚至有可能利用目前的已经是“功能”比较全面的内容管理系统,而让所有“效率”问题都由前台更专业,而且是很容易分布的缓存服务器解决:可以是通过开放源代码的SQUID做反相代理的WEB加速,可以是专门的缓存硬件设备,甚至是专业的缓存服务商。
动态缓存必须有一个基于静态链接本身的参数解析过程,很多专业内容管理系统系统都是将参数解析机制做成了WEB服务器的模块实现的。
我们可以把以前的HTTP/GET方式的?key=value改为直接用/value1/value2的方式来传递,从而实现了动态页面的静态URL形式。而缓存只需要在前端加上一层CACHE服务器,比如:Squid。网站动态内容的动态缓存发布就可以实现了。
这是当前最先进的网站开发技术,实现了真正意义上的软件工程,实现开发过程
中的真正分工开发,开发过程中相互依赖大大降低,提高了开发速度。美工只管模板的
设计,页面策划师也只顾版面策划,Web程序员只顾功能模块的开发,而系统集成的程序员
只顾将页面模板和程序模块的调用和逻辑集成,实现了界面和内容完全分开,即所见所得,在网站管理中,美工可以完全不懂程序去维护模板,而技术管理员则不考虑界面去处理程序。
相关文章推荐
- Skyline软件二次开发初级——11如何在WEB页面中的三维地图上加载和保存工程文件
- 广州某大型门户网站诚聘web程序员
- 《程序员》特别策划:影响中国软件开发的20人
- 在浙江杭州快速开发公司内部办公自动化OA系统的经验总结(有成熟的后台配置工具、开发平台、程序员朋友圈还真不错,做软件项目还得靠积累才稳妥)
- 深圳夏天互动软件有限公司诚聘AS3程序员、web后台开发工程师、2D游戏动作设计师、游戏特效师
- 程序员眼中的2007:探寻软件开发利器
- 一直谈失败的经历、再谈谈成功的经历、做软件真的不赚钱吗?4周搞定一个定制B2C网上购物、后台订单管理系统
- 招聘高级Java-Web开发程序员(专职或兼职) - schoolmate
- 【特别推荐】学习 Web 开发技术的16个最佳教程网站和博客
- 软件开发-----程序员
- 『程序员』 [.Net]微软软件开发过程与团队模型
- 软件开发人员的作战手册――让程序员活的久一点
- 如何设置eclipse开发的web工程自动发布到tomcat的webapps下?
- 上海装修公司www.zhixian.com.cn装修软件开发经验总结(五)读源代码的艺术
- Web前端面试指导(三十三):谈谈你对模块化开发的理解?
- 换新工作了,谈谈工作6年对软件开发的看法
- 谈谈 IT 软件开发工程师 基本功
- [Web 开发] 在网页中嵌入常用聊天软件在线状态
- 谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)
- 美国IT行业软件开发经理收入最高?程序员是不是最后非得转管理?