首先,说网站建设可能很多人听着不是那么通俗,通俗点说就是制作网站,做网站。至于我们为什么要做网站,网站能给我们,能给自己的企业带来什么,这些问题,我这篇文章就不打算说了。
这篇文章主要分为两个大方面来阐述北京网站建设这个概念,“北京网站建设”这个词分为两个重点,一个是“网站建设”,在这个方面我会阐述我们如何来建设一个高质量的网站;第二个是“沈阳”,这个方面我会阐述下目前北京地区的网站建设情况,以及北京地区网站建设的市场,网络公司所使用的技术等等问题。
一:好了,闲话少说,我们现在就来阐述“北京网站建设”这个概念的第一个方面---网站建设。
如何打造一个良好的优秀的网站平台呢?这是我们这一部分始终要围绕的话题。要想了解如何建设一个优秀的网站平台,就必须先得知道什么样的网站算是优秀的。
1那么什么样的网站才是优秀网站呢?
大概可以分为这么几个方面:速度,稳定性,可扩展性,夸平台性,安全性,用户体验,后期维护复杂度。
在这几个方面中,如果一个网站,速度很快,非常稳定,容易扩展功能进行网站升级,能够在任意服务器平台进行横跨,能够保证数据非常安全,同时能够使用户感觉到良好的用户体验,而且在后能够一直方便简单便捷的对网站进行维护和使用,那么这个网站可以说是优秀的网站。
当然,在这些方面中,很多是与硬件设施相挂钩的,比如速度、稳定、安全等,这些方面就会和服务器以及服务器机房的带宽流量甚至是网络环境(比如联通的还是电信的,多线的还是双线的还是单线的)相挂钩的。
刚才说的可能不通俗,那么我就用通俗的例子来阐述一下:
我(客户)现在要做一个旅游网站,找到一家网站建设公司,做完之后,我回来用。
那么如果我公司的网络状况平平一般的话,在这种情况下,我花了半分钟都没有打开我的旅游网站,那我客户非常的生气,用户也会非常的生气,要知道,在前两秒钟,会留住百分之七十的用户浏览量,那么说明我的网站速度这个方面不合格,如果我用一段时间就会发现我的网站上不去了,或者出现了难以想象的问题,那说明我的网站很不稳定;如果我运行了一段时间之后,我想要加功能想要升级,如果得到网站建设公司得到的答案是比较麻烦的话,说明当初他们在设计的时候没有充分考虑到可扩展性的问题;如果我一开始网站流量不大,服务器端我选择了win系列的服务器,但是随着我的网站的流量的增大,我想要换成liunx的服务器,如果这个时候网站建设公司告诉你换不了,那么说明你的网站不能夸平台;如果我在使用网站的过程中,经常出现我存的数据不对或者经常的出现异常,那么说明你的网站的数据不够安全;如果你在使用网站的时候,发现作为一个完全不懂电脑的很难理解很难看明白这个网站应该怎么用,或者页面很不美观,那么说明你的网站用户体验很不好;
2 那么如何来建设一个优秀的网站呢?
在讲述如何打造一个优秀的网站之前,我们应该对网站建设的技术有些稍微的了解 。
目前,在国内主要使用四种技术来进行网站建设:asp php .net jsp。Asp是active server page,这种技术是低级的技术,稍微好点的是php,php 是personal home page。这两种技术属于同一类技术,即将脚本代码完全和页面结构相混合的技术。再之后出现后两种技术,将程序代码页面结构完全剥离开,这就是.net 和jsp。
Net是微软基于C#语言的技术,jsp是java server page是一种基于java语言的web技术。
总结下,现在按照页面内容的产生和页面结构关系可以分为两种,一种是低级的脚本asp php,这两种将内容的产生和页面结构混为一谈。第二种是.net和jsp将页面内容和页面结构完全剥离。
我从事的是jsp方向,所以对于如何来打造一个优秀的网站这个问题,我会从jsp技术这个方面来考虑与阐述。
好了,在简单介绍一下网站建设的技术方向之后,我们主要就从jsp技术方向来阐述如何打造一个优秀的网站。
主要从四个方面来阐述这个问题:
注意:这四个方面和刚才说的速度之类的性能问题是相互穿插的,比如,并不是速度稳定就全部是后台程序所造成的,页面结构的布局包括页面的js脚本,以及服务器配置也是影响速度的重要因素
1) 网站程序
刚才在第一个方面我们讲过什么样的网站算是优秀的网站,其中速度、稳定性、安全性、可扩展性、夸平台性,这些方面都是与网站程序息息相关的。
先说速度方面:在网站建设技术实现当中,我们要时时刻刻注意代码优化、注意速度问题。
关于网站程序的速度影响因素太多了,我在此只是简单举几个例子
比如,我们要编写一段代码,实现遍历集合List<User>,(相比程序员都懂得什么意思),很多新手就可能这么写:
List<User> userList = ……..
for(int i=0;i<userList.size();i++ ){
User user = userList.get(i);
System.out.println(“user.getName()=”+user.getName);
}
这段代码运行之后,会得到我们想要的结果。但是仔细推敲,发现有三大因素制约了程序的执行速度:
A) 遍历集合时,每次必须重新定义个i变量,造成内存的浪费
B) 每次遍历重新计算集合的大小,又重新赋值给i,造成计算的浪费时间
C) 每次遍历之中,都会重新定义一个新的user变量,造成内存的浪费
如果将以上代码修改为以下代码,速度就会有提升
List<User> userList = ….
int i=0;
int size=userList.size();
User user = null;
for(i=0;i<size;i++){
user=userList.get(i);
System.out.println(“user.getName()=”+user.getName());
}
再举个例子:我们在网站建设过程中,在代码编写中,经常的需要调试,很多程序员就会直接使用System.out.println();进行打印测试数据,这样就会在代码中出现很多System.out.println()这种IO操作,要知道IO操作是耗时的,往往很多程序员在测试之后并没有将那么多的零散的打印测试语句删除就直接交付使用了,所以我们这个使用既要为了测试,又要便捷的关闭IO测试操作,我们使用log4j框架。这也是影响代码执行速度的影响因素之一
再比如,我们对待异常处理的方式问题。多加一个try catch块就会浪费很多内存,所以应该认真的对待代码处理方式。
再比如使用服务器作用域不当引起内存的浪费,导致速度过慢,甚至出现内存溢出异常。Request session application三种作用域各有自己的用处,不要随便胡乱使用,网站建设中,我们通常默认的服务端与客户端的通信方式是通过request来实现的,很少情况下使用session来通信,只有个别情况下,比如用户登录、购物车等等这些情况下才能使用session。正确选择所使用的作用域。
等等等等,以上的几点是我随便举的例子来说明后台代码中影响速度的因素,要想深撤了解,还得靠平时工作经验。
说完后台程序所影响到的速度方面,我们接下来来谈下安全问题。
这里主要强调的是数据的安全,在网站建设中,我们一定要时时刻刻的保证数据的安全问题。在任何一层上,不管是dao biz action,在任何一个方法中,都不要轻易相信别人传给你的数据,这些数据往往存在中不安全的隐患,比如为空,比如为“”空字符串等等问题,我们应该时刻注意判断,增强网站数据安全性,增强网站程序的健壮性。这是一种数据不安全问题,还有一种数据不安全,就是客户传给服务端的数据,比如有的存在着乱码问题,有的数据甚至是恶意的js脚本,对于这种不安全的数据,我们应该使用filter或者aop及时的判断拦截。
这个部分我就简单阐述了网站建设中,程序所影响到的速度和安全性问题。
2) 网站页面
在网站前台页面设计中,也会影响到速度,安全,用户体验等问题。
先说速度:
在网站页面这个部分,影响到的速度可以分为两类:
A) 从事过网站建设的同行们都清楚,只要是BS架构的,都是从网络中获取数据进行判断显示的,那么这就出现一个很明显的问题,凡是网络数据,应该该数据越小越容易被传送过来。这就是一种影响速度的因素---网络数据的大小
在网站建设中,我们应当尽量的,想尽一切办法,来减小网络数据,这些网络数据包括,页面结构html,css,js,图片等等
比如要同样实现一种布局效果,A方案使用了10K的数据(包括html css js 图片等),B方案则需要100K数据,那么那种方案好就不言而喻了。
在这种速度中,想要做到高质量的优秀网站,边边角角的问题很多,比如刚才所说的数据量尽量小,还有,要清楚网络数据加载流程,是先通过域名DNS查找到服务器IP,然后再从该IP的服务器中相关位置下载内容,下载的过程中,有并列问题,比如先加载一段html,然后同时并列几个线程加载图片 css js等,所以减少数据的数量也是有效的方法,通过减少数据的数量,达到减少DNS解析次数以及线程等待次数时间,比如将该页面所有小图片进行P大图片,然后代码中用css切图。
总而言之,在这种速度中,要保证数据越小越好,数据越少越好。
以上只是在网站建设中我们常用的简单的方案,要想了解具体的更多提升速度的方案,还应该多参考下雅虎推出的黄金法则。
B) 在页面设计过程中,我们难免为了实现一个华丽效果,而使用js脚本,那么这就是另一种速度,js脚本的执行速度
举个例子,在网站建设中,我们往往有这么种实现效果需求,就是一点击一个按钮,马上在屏幕中央显示一个色块,剩余部分慢慢由亮变暗。如果有两种js执行方案,A方案执行起来非常的顺利畅通,速度很快,很流畅,让用户感觉非常绚丽,B方案执行起来则是卡一点走一点,那么那种方案好就不言而喻了。
那么如何来编写执行速度快的js代码呢,这点比较困难,它涉及到的不仅仅是js,还必须结合页面布局进行优化。比如在网站建设中,页面布局的时候,尽量使用css+div布局,而不适用传统的table布局,并且,在使用css+div布局的时候,我们要遵循层数越少越好的原则,因为一旦这部分html布局代码需要使用js脚本来循环调用,如果布局使用了十层,那么想想,你js本身写的再好执行速度一样会很卡的。
所以,这种速度,就需要两种优化方向结合,一是页面布局的优化,二是js本身编写的执行速度方向。
在说完了前台页面对速度的影响之外,我们再来看下对用户体验的影响。
这里的用户体验主要有这么几个方面:
A) 页面的美观程度
这是毋庸置疑的,美观大方是重要的标准。
但是这里会出现一个矛盾点:美观大方往往是通过图片(往往是大图片)进行渲染的,一旦使用了过多的(大)图片,那么就会对速度造成影响,这个矛盾点的解决取决于客户的满意程度以及要求,比如人人网,大家看下人人网,首页很整洁,但是不够绚丽,大方但不够美观,为什么?因为人人网每天那么多人流量,如果使用大图片则会对服务器造成过大的压力,而已速度也会造成致命的损伤。
B) 使用方便程度
这个方面很多情况下,我们通过使用ajax的局部刷新来达到效果。
举个简单的例子,就是在做用户注册时候,往往需要在用户输入完邮箱之后进行邮箱验证是否唯一正确的,很多用户体验不好的网站,就在邮箱之后设置一个按钮,让用户手动的点击该按钮来验证邮箱是否正确以及是否唯一。为了增强用户体验,所以我们一般使用ajax的局部刷新,一旦用户填完了邮箱,马上ajax自动发送数据进行邮箱验证,再将验证结果通知用户。
这个方面太笼统,没法说,只能通过与用户沟通以及自己平时的工作经验来增强用户体验。
3)技术的选择
这点也是非常的重要,对于速度,稳定性,安全性,可扩展性,跨平台性,也是非常重要的因素
刚才我们说到,目前网站建设主要有两大类技术,asp 和php技术,一类是.net和jsp技术,那么对于大型网站建设来说,我们应当如何选择这四种技术呢?
Asp技术早在06年已经被官方取缔,宣布不再支持asp。但是这种低级的技术在国内却很火热,因为非常的便宜,一个企业宣传站用asp做大概1000多左右。很少底层消费者喜爱。
Php则是比asp稍微强一点的技术,但是这种技术同样也是有很大的性能问题,php官方做过一个测试,循环20000*20000的二层循环,java仅仅用了惊人的4.1秒就可以完成,php要执行2000*2000(少好几个数量级)的二层循环却使用了63秒,asp则使用了84秒。
.net是微软一套基于C#语言的web技术,C#语言完全抄袭java,但是灵魂核心的JVM内存管理策略微软并没有抄袭到,所以也没法和java抗衡。
JSP技术是基于java的一门web技术。它是四种技术中唯一一种可以跨平台的技术,而且也是速度快,稳定性强,可扩展性强的技术。
综合起来来说,java>.net>php>asp。同样,价格上来说也是java贵,java的市场价格是php价格的5-10倍,即一个普通的公司宣传站用php做可能2000,用java做低是1万。一分钱一分货。
对于网站建设中选择的技术,个人比较推崇java,而且java已经是全球第一大流行语,但是同时也因为开发工期长、员工薪水高、技术门槛高导致开发成本很高。
这四种技术,对于我们刚才说说的各种优质网站性能的影响,无疑java是有能力支撑的技术。
4)服务器架构
在网站建设中,服务器问题一直是非常重要的问题,他同样影响到速度,安全,稳定,维护等方面。
这里主要分为两个方面:
A) 服务器硬件设施配置
比如服务器本身的质量,比如说CPU多少的,内存多少的,网卡是多少的,甚至是什么牌子的,比如IBM的就是稳定。
B) 服务器的软件环境配置
在网站建设中,软件的环境配置也同样很重要,比如在jsp方向中,往往一个tomcat就足够了,但是tomcat毕竟在处理静态内容(css html js 图片)上的能力远远不如apache,所以我们应该整合apache和tomcat。
在比如,当一个项目流量比较大的时候,我们就要尝试着用apache+tomcat去做集群负载平衡。
在安全方面,服务器端的安全维护也是一门学问,比如常用的我们要及时的清理垃圾,查杀病毒,防火墙设置。同时也需要安装IIS,进行检查IIS安全日志等等问题
我比较推荐的是使用apache+tomcat+iis三者整合之后,共同来维护运行一个网站。
文章出自:北京做网站公司-好好建站网 http://www.haohaoweb.cn 如转载请注明出处!
上一篇:营销型网站建设的重要因素 下一篇:网络营销的发展趋势
|