一次面试引发的思考(中小型网站优化思考)

前言

故事的起因是这样的,由于本人地处偏僻工作地点在美丽的冰城哈尔滨虽然地方很美丽,但是这里的软件行业实在是算不上“美丽”,这么多年由于个人原因或者公司原因经常换工作,因为这里都是中小型公司,没有什么大公司。今天安静的上班明天老板接不到外包可能就要解散,我见过最狠的老板压了我6个月的工资,我都忘记我当年为什么没被饿死过来的,据说年前有一个哈尔滨的某奇葩食品行业公司雇佣了好几十个员工干活,结果项目做完了以后,公司申请破产了,末月就是不给你结算,爱那那告,结果几个月以后又开始恢复营业了。(好吧我的嘴癌又开始犯了)言归正传,由于这种环境所以我对自己的技术也有一个了解,高难度项目不好说,但是一些中小型的解决方案,即使拿不下,也能说个六七分。今年大概三月份开始陆陆续续面试了一些公司(因为工资要的多,所以很多时候要仔细甄选是不是骗子,不能给个电话就去。)
有一天我面试了一家据说很大,给百度旗下做seo优化的公司,全国有五个分部。

概况

面试的过程很简单一个年纪跟我差不多的兄弟出来大概问了我几个问题,问了问工作年限,我说我是12年毕业的,虽然是12年毕业但是实际我已经工作五年了,他停顿了一会,然后跟我聊了聊雇佣人的原因:

据说他们公司花了很久的功夫开发了一套系统,这个东西就是处理集团五个分部的业务和会计实务进行报告的总公司,进行递交,然后进行月末统计,但是问题来了因为月末要提交所以五个分部总是在月末的最后一天递交相关资料,结果系统老是崩溃,他们想招收一个能解决问题的大拿,但是说的过程我就看出来可能觉得我很年轻,语气很是轻蔑,我当时就有预感肯定不会要我,但是我稳住了,可是我心里也很是轻蔑,花了好几年做的一套系统,一直崩溃,你们以前的技术经理是吃s的?但是,为了保持矜持(不要打我),我就岔开了话题问了一点别的,为了不引起疑心,我旁敲侧击的问了一下集团情况,他说咱们总部是150人,我说那外面呢?他说都差不多,这个时候我的脑洞的打开了,假如咱们取个中间值,五个分部,每个分部160人,那么就是800人,一个综合性公司,开发人员不能上传报表吧?销售也是,他也说了,只是管理会计这一块的,我们取个中间值,上下的并发量400人的网站,(我觉得差不多了,其实如果网站规划得好400

的并发和800的并发优化没什么区别)一个网站400就崩了,我觉得好可怜,(为什么他们还那么趾高气昂?),然后我又问咱们用的是几台服务器?他说是一台,最后他说您想要多少钱的工资?我说8k-10k,结果他马上站起来就说:你可以走了!
就凭借这句话我再也不想来这个公司面试了。

分析

我问的问题可能不全面但是是有条理的,我问他们几台服务器,就是想问问做没做基本的图片服务器和数据库服务器分离,结果是就这样被征服了。

那么问题就来了,原因可能是如下几种:

1.上传的文件太多(或者图片太多)。

2.网页的页面压力太大写的不够好。

3.数据库的压力太大。

思路

第一种问题解决方案,上传的文件太多,这个问题最难解决了,同时也是最简单的,因为解决的方案就是一个字钱,君不见优酷土豆此类网站烧钱之甚啊!因为涉及到并发,打个比方,一条高速公路是100M,那么你的并行量级咱们就按照100M计算,(这种说法已经最笨了)假设每个人的上传5M的文件和图片那么这个网站的并发我是不是就可以认为是100/5
= 20呢?
也就是说这个网站只能20个人访问了,多了轻则卡顿丢失文件,总则就是网站崩溃了,这种问题也最难解决,因为文件和图片永远都是网站流量的最大杀手,没什么好办法只能做图片服务器分离.文件服务器分离了,(但是这里又违背了人家只用一台服务器的原则),有的公司看上去很大,但是老板就是对IT部门不重视不投资那么多没什么办法。

第二种问题解决方案,网页的页面压力太大不够好,这个我可要说说了,我见过很多程序员写的页面一直都是在应付,因为我是做.net开发的,虽然.net的定位一直都是中小型网站,但是我认为不能因为它只是个中小型网站就可以敏捷开发一样快速写成功了没有了bug就可以了,咱们具体分析一下原因:

IIS 内部运行机制及Asp.Net执行过程详解 中说道:(咱们就根据iis5.x的运行机制来分析一下)


当一个HTTP请求从客户端发送过来之后会被WEB服务器进行Queue并进行分解归类,如果某个请求仅包含静态文件的请求,比如
CSS,JS,Html文件或者虚拟目录所包含的文件如图片,IIS直接提取对应的文件将其作为Http
Response返回给Client,如果事情仅仅是这样,我们很多人就会失业了,呵呵。但是对于这些需要进一步处理的动态执行的文件,IIS必须将
Request进一步传递给对应的处理程序,待处理程序执行完毕获得最终的Http
Response通过IIS返回给Client。如果一个请求中包含动静态请求,那么静态内容会等到动态内容生成HTML后组合在一起返回给
Client。对于IIS来说,这些处理程序通过ISAPI Extension来体现。ISAPI
Extension接收到请求页的扩展名之后会到IIS的Metadata database维护着一个称为ISAPI Extension
Mapping的数据表查询,负责将不同类型的Resource影射到对应的ISAPI
Extension。对应.ASPX的Mapping是ASP.NET ISAPI,至此,ASP.NET
ISAPI会创建一aspnet_wp.exe的worker
process(若该Process不存在的话)。当地一个ASP.NET接收到Application中的任何一个.ASPX请求时,名为
ApplicationManager的类会创建一个ApplicationDomain(应用程序域)。ApplicationDomain会为全局变量提供应用程序隔离,并允许单独写真每个应用程序。在应用程序域中,将为名为
HostingEnvironment
的类创建一个实例,该实例提供对有关应用程序的信息(如存储该应用程序的文件夹的名称)的访问。如果需要,ASP.NET
还可对应用程序中的顶级项进行编译,其中包括 App_Code 文件夹中的应用程序代码。创建了应用程序域并对 HostingEnvironment
对象进行了实例化之后,ASP.NET 将创建并初始化核心对象,如 HttpContext、HttpRequest 和
HttpResponse。 HttpContext 类包含特定于当前应用程序请求的对象,如 HttpRequest 和
HttpResponse 对象。 HttpRequest 对象包含有关当前请求的信息,包括 Cookie 和浏览器信息。
HttpResponse 对象包含发送到客户端的响应,包括所有呈现的输出和 Cookie。

从上面的分析我们可以总结出iis读取页面的机理和原因:

第一种:就是对internet请求进行分析和归类,分成静态页面请求和动态页面请求,所谓的静态请求就是html静态页面,动态请求我们暂时理解为aspx,或者cshtml请求。

第二种:就是对动态页面请求进行分析,等到动态请求分析成为静态请求的时候组合再一起返回给浏览器。

所以我得出了两个结论:

第一种,我们把一些流量高但是页面数据不总是变化页面我们可以考虑使其静态化。这也是现在一些流行网站的做法。

第二种,我们可以尽力的减少动态请求分析的时间。

第三种数据库压力大的解决方案,这种问题很多就是程序员自己自身素质的问题了,或者架构没有搭建好。

我猜想原因可能是:

第一种,有的人喜欢把文件或者图片变成二进制保存到数据库里,这样参照第一种崩溃原因。

第二种,就是有的程序员他很擅长数据库方面的技术,所以他把所有的业务和逻辑都封装成了存储过程保存在数据库里,后台代码只有一个事务回滚甚至没有,这样的业务,在后台响应时间内接收不到回应自然会报错了。

结尾

我想说的是,.net语言因为其入门门槛低,容易掌握,造成了很多程序员素质参差不齐,也有很多程序员学了很多年坐了项目经理连最基本的uml
建模都没学过,这样给团队协作开发造成了非常大的影响,也给一些公司造成了不可挽回的损失,有一些老板一直在催快点干完,这个项目三天,三天能不能完成?他们只注重速度和钱,但是不注重质量,像我面试的这个公司一样自己开发的系统,居然还一直崩溃,一个网站或者公司,虽然开始的定位一定是中小型,但是我们避免不了要发展要生存,这还只是一个公司内部的系统,如果要是线上的项目,我估计没准连服务器都会崩溃了!

虽然干了五年因为不是专业出身所以底子不好写的也不怎么样,希望各位朋友能指点指点我,这只是我人生路上面试过程中的一个小部分,我只想说,无论我们是做程序员还是做人,要对得起自己的技术,对得起自己的研究成果!做到问心无愧就可以了!

作者:奇民

来源:51CTO

时间: 2024-10-12 03:28:19

一次面试引发的思考(中小型网站优化思考)的相关文章

中小型网站优化策略

一. 中小型网站优化伴随着互联网的发展和网站自身的拓展而不断加深. 其核心是建设优质的站点 网站优化可以从狭义和广义两个方面来说明.狭义的网站优化,就是搜索互联网站设计时适合搜索引擎检索,满足搜索引擎排名的指标,从而在搜索引擎检索中获得排名靠前,增强搜索引擎营销的效果. 网站优化可分为站内优化和站外优化两个方面.优化的精髓就是"内外兼修",原则就是"内容为王,外链为皇".站内优化是优化的基础工作,它有利于提高搜索引擎对网站的友好度,提高搜索引擎的收录速度和数量,而且

怎么做好中小型网站优化

大家好!关于中小型网站的优化相信大家都不在陌生了!下面成若缺来介绍一下我在优化小型网站的时候的一些经验之谈,欢迎拍砖! 首先要选择好关键词,因这一点前辈后辈们已经讲过太多,本文不再赘述,大家如果有兴趣学习的话可以去SEOWHY上面仔细研究一下! 其次就是网站程序制作 有很多朋友觉得网站程序不是最重要的,只要做好了外链和内容更新就好了!但事实上不是这样的,一个好站,一个SEO做的比较成功的站,不光是外链及内容要做的好,网站整个设计,关键词布局也是非常重要的!做好主关键词的描文本链接,对于提升该关键

思考什么网站值得坚持该如何盈利

经历了06年的滑铁卢,在07年新春到来之际,明显感觉到个人站长的疲态,就连今年的315 也一样可能平常度过,因为没有压力,没有任何的风险.赚钱路上平平淡淡.荒原辽阔. 07年,该做什么网站,该怎么坚持自己的网站,该怎么迅速的盈利,摆在众多站长面前的困惑. 07年总的广告市场分析 以前站长的收入80%靠手机类的,短信,彩信 wap,iivr等包月.现在的sp效果不及以前的10%,07年将继续减少.taobao ebay 等有钱的广告联盟也将逐渐减少投入,经历了06年之痛的风险投资的钱,在07年也将

关于domain命令的一些思考 分析网站被惩罚原因

写这篇文章前SEO顾问查询了一下百度官方文档,并没有找到关于domain命令的明确说明.而在SEO顾问的学习之路里,SEO前辈告诉我domain是百度相关域的查询指令,当时并没有细细深究,一直沿用至今. 在百度百科有一个关于domain命令的说明: domain是用于百度查网页内容中包含某关键词的命令.如:domain:www.×××.org搜索结果是包含关键字词组(www.×××.org)的所有网页.同理,domain:SEO指的是包含SEO的所有网页,与直接搜索SEO相似.如果要查找有多少个

中小型企业网站优化四大策略

在这个电子商务蓬勃发展的今天,面对着无数互联网企业在美国纳斯达克成功上市和IPO,面对这一个个亿万百万富翁的不断涌现,同样很多中小企业也在规划着自己的网络拓展之路,他们虽然没有上市的目标但是他们有盈利的压力,有牵制竞争对手的迫切愿望,在传统手段都用尽其及,进入一个旗鼓相当的僵持状态的时候,他们对互联网领域的关注已经从一个关注变成了一个迫切硬需求,而且这样的需求也正在改变着一个个中小企业命运,如何在不增加太多成本的情况下,尽可能获得更多的回报,便是出现在他们面前的最直接的一个问题了,网络营销的范围

Sql Server之旅——终点站 nolock引发的三级事件的一些思考

曾今有件事情让我记忆犹新,那年刚来携程不久,马上就被安排写一个接口,供企鹅公司调用他们员工的差旅信息,然后我就三下五除二的给写好 了,上线之后,大概过了一个月...DBA那边报告数据库出现大量锁超时,并且及时根据sql的来源将email发到了我们部门,指出sql读取时间过长, 并且缺少nolock,影响了大量机票订单入库,然后我就拿着sql去生产环境跑了下,22s...花擦...项目上线时间太久,版本已经不存在了,无法 回滚...原本准备撤下接口...看了下撤下接口跟加上nolock时间相差不多

中小型网站的推广手段

中介交易 SEO诊断 淘宝客 云主机 技术大厅 一:SEO(搜索引擎优化) 今天的一些的推广手段其实也是老生长谈,我主要也是重新归纳总结一下.一个网站在没有资金的时候,又想获取非常有针对性的流量.SEO就是最好的手段,而且娱乐,休闲,资讯类的网站又特别适合做.因为这些类型的网站的关键词,不像电子商务网站的那些关键词,是会直接产生经济效益的,所以一般不会有多少人去做竞价排名.而且这类词的搜索量又特别的高.所以有非常高的SEO价值,现在很多娱乐性质的网站,就靠SEO每天就轻轻松松的获取几W的IP.举

中小型网站的内部链接规划

中介交易 SEO诊断 淘宝客 云主机 技术大厅 大家好,我是宏图互联.网站内部链接是什么概念?用通俗的话讲,内部链接就是网站页面的相互指向关系.这是搜索引擎优化者(SEOer)对关键词优化可控的一个重要手段.通过内部链接的规划,网站可以为搜索引擎呈现一个清晰的网站结构,也可以为来访者提供一个很好的用户体验.针对中小型网站的内部链接规划概括起来主要包含以下三个方面: 一.导航位置和内容规划 对中小型网站来说,导航的规划比较简单,既可以采用CMS系统默认的导航功能,也可以更为细致地自己开辟导航位置对

“购物车放弃”现象引发了电商网站焦虑

用户常常只选不买.购物车商品被网民放弃的比率BI中文站 8月19日报道电子商务在全世界日益流行,零售网站也面临各种挑战,尤其是如何让网民在林林总总的商品中,快速发现适合自己的称心商品.而据美国财经科技新闻网站BusinessInsider旗下智库BIIntelligence的研究,另外一种被称为"购物车放弃"的现象,日益引发了电商网站的焦虑--商品好不容易被用户放进了购物车,却最终被放弃.或是未结账.对于普通大众而言,这也是十分普遍的现象.在实体购物中,人们可以选了又选.而在电商网站,