Web开发中软件工程艺术(Web程序员请进来谈谈,特别是有大型门户网站后台开发的程序员)

转载 2012年03月26日 11:33:03
近正着手一个大型综合性门户网站后台管理系统(准确说是内容管理系统)设计 
与规划,对网站开发技术有一个较深刻的认识。从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程序员只顾功能模块的开发,而系统集成的程序员 
只顾将页面模板和程序模块的调用和逻辑集成,实现了界面和内容完全分开,即所见所得,在网站管理中,美工可以完全不懂程序去维护模板,而技术管理员则不考虑界面去处理程序。 

程序员和程序艺术家

当程序员被别人说自己的代码写得“不够好”时,他们会作何反应? 代码跑得好好的,为什么要去改它? 这个设计不是已经可以了吗,为什么还要再简化? 我来给你解释一下这些代码,你会明白的。 还有...
  • B9Q8e64lO6mm
  • B9Q8e64lO6mm
  • 2017年12月01日 07:04
  • 76

程序员都是有情怀的

http://python-cn.org/#/post/pythonista.md 我坚信程序员都是有情怀的. 」 我是小明(对, 就是这个完全没有气场的昵称). 我来解释为什么想做这...
  • wuxiaobingandbob
  • wuxiaobingandbob
  • 2015年07月06日 09:27
  • 561

程序员的艺术:排序算法舞蹈【视频】

彻底膜拜啊!不过视频不好弄,这里贴个网址:http://www.apkbus.com/android-64790-1-1.html...
  • Cfreezhan
  • Cfreezhan
  • 2012年08月21日 07:56
  • 468

程序员的艺术:排序算法舞蹈

http://player.youku.com/player.php/sid/XMjU4MTg3MTU2/v.swf
  • szwang1
  • szwang1
  • 2012年08月20日 13:34
  • 648

程序员笑话:只有程序猿才看得懂

1.世上有10种人:懂二进制的和不懂二进制 2.程序员写诗: 我一直以为 愚蠢是一个 抽象类, 但却发现了你这个实例。我以为微软错了,然后拨开你的封装,才发现,原来你还是无耻,无能,变态...
  • Jack_cs
  • Jack_cs
  • 2015年09月13日 11:35
  • 2678

程序员,你是否有编写软件工程文档的习惯?

          针对大多数程序员没有编写软件工程文档的习惯,专门写了一篇阐明软件工程文档重要性的文章,里面所有实例都是本人所在公司曾经发生的事情,事实上里面所提到的现象在软件工程相关领域里面都有专...
  • ITuring
  • ITuring
  • 2007年05月06日 22:02
  • 2120

一首程序员的打油诗

写字楼里写字间,写字间里程序员; 程序人员写程序,又拿程序换酒钱。 酒醒只在网上坐,酒醉还来网下眠; 酒醉酒醒日复日,网上网下年复年。 但愿老死电脑间,不愿鞠躬老板前; 奔驰宝马贵者趣,公交自行程序员...
  • ipeak
  • ipeak
  • 2005年10月29日 14:31
  • 1239

《疯狂的程序员》中的经典

       “要说念大学,最忌讳的就是在自己家门口念。哪怕你家住北大院子里,也一定要去别的学校念。”           “什么是鸡肋课?就是每个人都在自己课表的这门课旁边标注一个“可旷”或者“选修...
  • busy50
  • busy50
  • 2011年05月18日 20:55
  • 400

白话数字签名(3)——Web程序中的数字签名

转自:http://www.cnblogs.com/1-2-3/archive/2007/10/08/colloquialism-digital-certificate-part3.html ...
  • zengraoli
  • zengraoli
  • 2013年09月27日 07:39
  • 2098

读林锐《软件工程思想》------讲述软件开发和做程序员的道理

拜读过林锐老师写的《软件工程思想》,深为佩服,现摘录部分如下,以时时自励自勉:第一章  软件工程基本观念 本章讲述软件工程的基本观念,是关于软件工程宏观上的探讨。如果你是软件公司的老板,用不着在第一线...
  • downmoon
  • downmoon
  • 2006年09月15日 11:24
  • 3814
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Web开发中软件工程艺术(Web程序员请进来谈谈,特别是有大型门户网站后台开发的程序员)
举报原因:
原因补充:

(最多只允许输入30个字)