随笔分类 - 系统设计与架构

摘要: 本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别是硬件采购的成本都由总公司来承担,当然互联网业务上的市场营销成本这块还是由该事业部自己承担,可是...阅读全文
posted @ 2015-03-06 22:53 夏天的森林 阅读(6581) | 评论 (12) 编辑
摘要: Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳的预期效果,今天我在这里分析下浏览器和服务端通讯的一些细节问题,希望通过分析这些细节问题,能给大...阅读全文
posted @ 2015-03-05 22:05 夏天的森林 阅读(4248) | 评论 (4) 编辑
摘要: 网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化。在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属于web前端的技术范畴,要回答清楚这个问题我们要明确下网站应用的本质到底是什么?网站的本质其实就...阅读全文
posted @ 2015-03-04 21:43 夏天的森林 阅读(4607) | 评论 (2) 编辑
摘要: 反向代理也是一种可以帮助实现网站静态化的重要技术,今天我就来讲讲反向代理这个主题。那么首先我们要了解下什么是反向代理。和反向代理相对应的是正向代理,正向代理也就是我们常说的代理服务,正向代理是非常常见的,例如在某些公司里我们想使用互联网,那么我们就得在浏览器里设置一个代理服务器,通过代理服务器我...阅读全文
posted @ 2015-03-02 23:21 夏天的森林 阅读(7712) | 评论 (10) 编辑
摘要: 前后端分离的主题虽然讲完了,但是前后端分离的内容并没有结束,本篇将继续前后端分离的问题,只不过这次前后端分离的讲述将会围绕着本系列的主题网站静态化进行。在讲本篇主题之前,我需要纠正一下前后端分离主题讲述中会让朋友们产生误导的地方,这种误导就是对时下流行的一些前后端分离方案(没有使用nodejs的...阅读全文
posted @ 2015-03-01 22:48 夏天的森林 阅读(5033) | 评论 (5) 编辑
摘要: 我第一次听说nodejs技术大概是在2009年年末,不过我真正认真在网络上进一步了解nodejs还是在2010年年中,当时对nodejs的认识和我现在对nodejs的认识有着天壤的区别,开始想了解nodejs我只是为了感慨谷歌公司开发的V8引擎居然如此强大,它不仅仅可以作为chrome浏览器的j...阅读全文
posted @ 2015-03-01 16:11 夏天的森林 阅读(4938) | 评论 (6) 编辑
摘要: 上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌声会更多,我想很多资深前端工程师看到这样的技术方案可能会有种说不出来的矛盾心情,当我的工作逐渐走向越来越专业化的前端开发后,我就时常被这套前后端分离方案所困惑,最近我终于明白了这个困惑的本源在...阅读全文
posted @ 2015-02-27 23:07 夏天的森林 阅读(6106) | 评论 (14) 编辑
摘要: 前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站静态化技术...阅读全文
posted @ 2015-02-25 23:49 夏天的森林 阅读(13808) | 评论 (8) 编辑
摘要: 讲完了SSI,ESI,下面就要讲讲CSI了 ,CSI是浏览器端的动静整合方案,当我文章发表后有朋友就问我,CSI技术是不是就是通过ajax来加载数据啊,我当时的回答只是说你的理解有点片面,那么到底什么是CSI技术了?这个其实要和动静资源整合的角度来定义。 CSI技术其实是在页面进行动静分离后,...阅读全文
posted @ 2015-02-13 23:06 夏天的森林 阅读(5942) | 评论 (7) 编辑
摘要: 上篇我补充了下SSI的知识,SSI是一个十分常见的技术,记得多年前我看到很多门户网站页面的后缀是.shtml,那么这就说明很多门户网站都曾经使用过SSI技术,其实现在搜狐网站也还在用shtml,如下图所示: 由此可见SSI在互联网的应用还是非常广泛的。其实互联网很多网页如果我们按照动静分离策略...阅读全文
posted @ 2015-02-12 22:43 夏天的森林 阅读(7443) | 评论 (0) 编辑
摘要: 前文里我讲到了网站静态化的关键点是动静分离,动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。由此可见,网站静态化处理的核心就是动静分离和缓存两大方面,上篇我简单讲述...阅读全文
posted @ 2015-02-11 21:54 夏天的森林 阅读(12657) | 评论 (7) 编辑
摘要: 上篇文章我简要的介绍了下网站静态化的演进过程,有朋友可能认为这些知识有点过于稀松平常了,而且网站静态化的技术基点也不是那么高深和难以理解,因此它和时下日新月异的web前端技术相比,就显得不伦不类了。其实当我打算写本系列的之前我个人觉得web前端有一个点是很多人都知道重要,但是有常常低估它作用的,...阅读全文
posted @ 2015-02-10 22:48 夏天的森林 阅读(9416) | 评论 (9) 编辑
摘要: 在存储瓶颈的开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大规模的并发访问量,如果是一个动态的网站,特别是使用到了数据库的网站是很难做到通过增加web服务器数量的方式来有效的增加网站并发访问能力的。但是现实情况是像淘宝、京东这样的大型动态网站在承担高并发的情...阅读全文
posted @ 2015-02-10 00:25 夏天的森林 阅读(14461) | 评论 (14) 编辑
摘要: 在开始本篇主要内容前,我们一起看看下面的几张截图,首先是第一张图,如下图所示: 这是一家电商网站的首页,当我们第一次打开这个首页,网站会弹出一个强制性的对话框,让用户选择货物配送的地址,如果是淘宝和京东的话,那么这个选择配货地址的选项是在商品里,如下图是淘宝的选择配送地点: 下图是京东选择配...阅读全文
posted @ 2015-02-08 19:46 夏天的森林 阅读(6488) | 评论 (9) 编辑
摘要: 本文开篇提个问题给大家,关系数据库的瓶颈有哪些?我想有些朋友看到这个问题肯定会说出自己平时开发中碰到了一个跟数据库有关的什么什么问题,然后如何解决的等等,这样的答案没问题,但是却没有代表性,如果出现了一个新的存储瓶颈问题,你在那个场景的处理经验可以套用在这个新问题上吗?这个真的很难说。 其实不...阅读全文
posted @ 2015-02-08 13:43 夏天的森林 阅读(7829) | 评论 (15) 编辑
摘要: 在讲数据库水平拆分时候,我列出了水平拆分数据库需要解决的两个难题,它们分别是主键的设计问题和单表查询的问题,主键问题前文已经做了比较详细的讲述了,但是第二个问题我没有讲述,今天我将会讲讲如何解决数据表被水平拆分后的单表查询问题。 要解决数据表被水平拆分后的单表查询问题,我们首先要回到问题的源头...阅读全文
posted @ 2015-02-03 23:51 夏天的森林 阅读(9926) | 评论 (23) 编辑
摘要: 上文里我遗留了两个问题,一个问题是数据库做了水平拆分以后,如果我们对主键的设计采取一种均匀分布的策略,那么它对于被水平拆分出的表后续的查询操作将有何种影响,第二个问题就是水平拆分的扩容问题。这两个问题在深入下去,本系列就越来越技术化了,可能最终很多朋友读完后还是没有找到解决实际问题的启迪,而且我...阅读全文
posted @ 2015-02-01 17:57 夏天的森林 阅读(8852) | 评论 (11) 编辑
摘要: 如果数据库需要进行水平拆分,这其实是一件很开心的事情,因为它代表公司的业务正在迅猛的增长,对于开发人员而言那就是有不尽的项目可以做,虽然会感觉很忙,但是人过的充实,心里也踏实。 数据库水平拆分简单说来就是先将原数据库里的一张表在做垂直拆分出来放置在单独的数据库和单独的表里后更进一步的把本来是一...阅读全文
posted @ 2015-01-30 18:24 夏天的森林 阅读(12193) | 评论 (14) 编辑
摘要: 存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。 这里我们先回顾下数据库的垂直拆分和水平拆分的定义: 垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。 水平拆分:是根据一定的规则...阅读全文
posted @ 2015-01-27 00:01 夏天的森林 阅读(13750) | 评论 (21) 编辑
摘要: 上篇里我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务的含义,503还表达了网站服务端现在有问题但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服...阅读全文
posted @ 2015-01-21 23:29 夏天的森林 阅读(16437) | 评论 (35) 编辑
摘要: 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。 首先我们要思考一个问题,什...阅读全文
posted @ 2015-01-20 23:15 夏天的森林 阅读(37953) | 评论 (98) 编辑
摘要: 下面的图片是我使用firefox和chrome浏览百度首页时候记录的http请求下面是firefox:下面是chrome: 在浏览百度首页前我都将浏览器的缓存全部清理掉,让这个场景最接近第一次访问百度首页的情景。 在firefox的请求瀑布图里有个表现非常之明显:就是javascript文件...阅读全文
posted @ 2014-11-03 22:38 夏天的森林 阅读(24234) | 评论 (31) 编辑
摘要: 前不久有个网友问我在前端使用requireJs和seajs的问题,我当时问他你们公司以前有没有自己编写的javascript库,或者javascript框架,他的回答是什么都没有,他只是听说像requirejs和seajs是新东西新技术,很有价值所以想用它。 这位网友的问题引起了我对javas...阅读全文
posted @ 2014-09-06 20:53 夏天的森林 阅读(1798) | 评论 (4) 编辑
摘要: 如果以后公司再能让我独立做一套新的完整系统,那么我肯定会为这个系统再写一个前端框架,那么我到底该如何写这个框架呢? 在我以前的博客里我给大家展示了一个我自己写的框架,由于当时时间很紧张,做之前几乎没有完整的思考过我到底该如何去写这个框架,所以事后对于这个框架我有很多遗憾之处,当我重构过一次代码...阅读全文
posted @ 2014-09-04 20:19 夏天的森林 阅读(5397) | 评论 (16) 编辑
摘要: 一、开篇语 我的上篇文章《关于如何提供Web服务端并发效率的异步编程技术》又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有童鞋说我这篇文章理论化很严重,没有实际代码和具体项目做支撑,这个评论让我有种理论和实践脱节的味道,所以我想在这...阅读全文
posted @ 2014-09-04 01:12 夏天的森林 阅读(7641) | 评论 (21) 编辑
摘要: 最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知道我学习java多线程开发是很难的,直到现在写这篇文章的时候,虽然我对java多线程里的API比...阅读全文
posted @ 2014-09-01 22:51 夏天的森林 阅读(15064) | 评论 (43) 编辑
摘要: 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者spring...阅读全文
posted @ 2014-08-26 00:29 夏天的森林 阅读(53406) | 评论 (65) 编辑
摘要: 在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分离的一种具体实现方案,该方案和我原来设想有了很大的变化,但是核心思想没变,就是控制层是属于Web前端的。 在以前文章里我说道前后端分离的...阅读全文
posted @ 2014-07-26 23:48 夏天的森林 阅读(48473) | 评论 (2) 编辑
摘要: 最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现在应该考虑的是前端和后端的分离(注意:这里的后端是指服务端)。 Web前端现在是一个独立的技术工种,这个工种的产生主要是针对互联网行业的需求,我在以前的文章里曾经讲到过,一个大型互联网网站,例如想淘宝网,它绝对不是一个Web项目,而是一群web项目的集合,那么如果不在前端进行整合,这么多web项目前端开发一定存在大量重复劳动,并且运维时候也存在难以统一管理的问题。本文假想一个面对需要前端资源...阅读全文
posted @ 2014-01-23 19:54 夏天的森林 阅读(35671) | 评论 (13) 编辑
摘要: 一、下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为【编辑推荐】的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天,按中国辞旧迎新的传统,也作为我2014年第一篇博客,我想开篇前要总结下2013年的技术学习。今...阅读全文
posted @ 2014-01-01 18:14 夏天的森林 阅读(15603) | 评论 (9) 编辑
摘要: 一、序言 Hadoop是一个技术生态圈,zookeeper是hadoop生态圈里一个非常重要的技术,当我研究学习hadoop的相关技术时候,有两块知识曾经让我十分的困惑,一个是hbase,一个就是zookeeper,hbase的困惑源自于它在颠覆了我对数据库建模的理解,而zookeeper的困惑却...阅读全文
posted @ 2013-12-29 19:02 夏天的森林 阅读(22824) | 评论 (12) 编辑
摘要: 年末了,公司在统计自己支付系统的订单成功率,最后发现有很多订单成功率问题是和用户页面操作相关,但是我们目前有些页面没有打点做用户行为数据的采集,因此很难分析出用户到底是是什么原因没有完成订单,对此我写了一个前端监控方案,下班时候和领导开会讨论这个方案,很晚才回家哦,会上还是被批了一番,认为这个和用户行为分析系统耦合,而且最关键的采集那些信息,怎么分析信息没有细化,公司有相似的技术方案,我的方案很难成型。领导说的没错,我这个方案是重复性劳动,没必要大动干戈,但是至少我提出这个方案表明公司用户行为分析系统对类似前端页面监控的方案可能支持不够,这就让我产生了新的思考了,其实不管是用户行为还是前端监控阅读全文
posted @ 2013-11-27 22:13 夏天的森林 阅读(4791) | 评论 (3) 编辑
摘要: session是web开发里一个重要的概念,在大多数web应用里session都是被当做现成的东西,拿来就直接用,但是一些复杂的web应用里能拿来用的session已经满足不了实际的需求,当碰到这样的情况时候我们需要更加深入的理解session的机制,本文将梳理下session的相关知识,为设计可替代web容器自带的session机制打个基础。1.1session的概念在计算机专业术语里:session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册入系统到注销系统之间所经过的时间以及如果需要的话,可能还有一定操作空间。具体到web应用里的session,大家都做过web开发,这里我阅读全文
posted @ 2013-10-29 23:22 夏天的森林 阅读(31348) | 评论 (10) 编辑
摘要: 在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务。通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解。 远程调用是系统与系统之间的通信机制,它的另一种理解就是进程间的通信。做分布式系统的开发,远程调用技术是其核心技术。远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机系统就构成了一个更大型,性能更高的计算机系统。 我在前面的博客里介绍了一种分布式网站的架构设计,其中就有一个使用netty技术编写的组件作为前端系统和服务端系统通信的媒介。在一个大型的互联网公司里会...阅读全文
posted @ 2013-09-02 23:31 夏天的森林 阅读(15785) | 评论 (25) 编辑
摘要: 前不久我们公司和业内一家一流的公司做了一次技术交流,对于他们的监控系统、日志系统、统一配置系统以及部署系统印象深刻。深刻的原因是我们公司这些工作都是徒手操作,跟他们相比简直是大刀对坦克了,交流完后我们大伙内部也讨论了下,该公司的这些系统我们这边也是急切需要的,无数生产的问题以及生产效率的问题都是因为监控、日志、配置以及部署所造成的,但是现实是做这些自动化管理的系统需要投入大量人力和物力,而且还要专心致志做相关研究才能将这些系统做完做好,而我们技术部门现在人力远远不足的时候这样的系统开发对于领导而言是会影响核心业务开发的,领导绝对不会让我们这些开发人员投入大量精力去做这样的事情,如果不是全身..阅读全文
posted @ 2013-08-31 11:23 夏天的森林 阅读(9847) | 评论 (43) 编辑
摘要: 开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密。这个可能是我做技术研究的思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不可分,所以当我写分布式文件系统时候,总是感觉自己的理解肤浅,今天我开始写mapreduce了,今天写文章时候比上周要进步多,不过到底能不能写好本文了,只有..阅读全文
posted @ 2013-06-23 18:00 夏天的森林 阅读(42079) | 评论 (20) 编辑
摘要: 继续研究hadoop,有童鞋问我,为啥不接着写hive的文章了,原因主要是时间不够,我对hive的研究基本结束,现在主要是hdfs和mapreduce,能写文章的时间也不多,只有周末才有时间写文章,所以最近的文章都是写hdfs和mapreduce。不过hive是建立在hdfs和mapreduce之上,研究好hdfs和mapreduce也是真正用好hive的前提。 今天的内容是mapreduce,经过这么长时间的学习,我对hadoop的相关技术理解更加深入了,这回我会尽全力讲解好mapreduce。 第一篇文件时研究mapreduce前的准本工作。 研究hadoop的准备工作 要研究...阅读全文
posted @ 2013-06-23 10:26 夏天的森林 阅读(6688) | 评论 (2) 编辑
摘要: 在上篇文章里,我列举了一个简单的hive操作实例,创建了一张表test,并且向这张表加载了数据,这些操作和关系数据库操作类似,我们常把hive和关系数据库进行比较,也正是因为hive很多知识点和关系数据库类似。 关系数据库里有表(table),分区,hive里也有这些东西,这些东西在hive技术里称为hive的数据模型。今天本文介绍hive的数据类型,数据模型以及文件存储格式。这些知识大家可以类比关系数据库的相关知识。 首先我要讲讲hive的数据类型。 Hive支持两种数据类型,一类叫原子数据类型,一类叫复杂数据类型。 原子数据类型包括数值型、布尔型和字符串类型,具体如下表所示:基...阅读全文
posted @ 2013-06-03 00:17 夏天的森林 阅读(32997) | 评论 (4) 编辑
摘要: Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作用。 Zookeeper是针对大型分布式系统的高可靠的协调系统。由这个定义我们知道zookeeper是个协调系统,作用的对象是分布式系统。为什么分布式系统需要一个协调系统了?理由如下: 开发分布式系统是件很困难的事情,其中的困难主...阅读全文
posted @ 2013-06-02 15:03 夏天的森林 阅读(41786) | 评论 (13) 编辑
摘要: 互联网的网站和大部分企业管理软件一样都是使用B/S架构模型,但是大型的公共网站B/S架构会更加复杂,对架构人员的要求更高,今天我想在自己博客里聊聊我设计的网站的B/S技术架构。 不管是B/S架构的企业管理系统还是网站技术架构可以抽象为如下简图: 在传统B/S架构的企业管理系统里,技术架构往往...阅读全文
posted @ 2013-05-11 15:09 夏天的森林 阅读(32985) | 评论 (83) 编辑
摘要: 1.1用户行为分析的重要性 用户行为分析的重要性,我想做个网站的人都会用很清晰的认识,本来我想谈谈自己想法,但感觉自己毕竟还是做技术的,很难清晰的从商业价值的角度来分析它的重要性,因此放弃了想阐述自己意见的想法。当我第一次见到百度统计,和谷歌分析网站,就有那种惊鸿一瞥的激动,很想自己也能写出一套这样的网站,这也是我持续研究用户行为分析的初衷。 我估计还是有很多童鞋对“用户行为分析”的概念比较陌生,这里将百度百科里的解释在这里贴出来,抛砖引玉,希望能有更多的志同道合者跟我一起研究这个主题,百度百科的地址如下: http://baike.baidu.com/view/2330219.htm ...阅读全文
posted @ 2012-06-26 12:56 夏天的森林 阅读(8497) | 评论 (5) 编辑
摘要: 好久没写博客了,不是自己偷懒,的确是没有时间哦。 最近项目组里想做一个ETL数据抽取工具,这是一个研发项目,但是感觉公司并不是特别重视,不重视不是代表它不重要,而是可能不会对这个项目要求太高,能满足我们公司的小需求就行,想从这个项目里衍生出更多的东西估计难。昨天领导让我写写自己的见解,今天写了点,不过说见解还真不敢,所以取了个名字叫建议了,今天把这个文档贴到自己博客里和大伙分享分享。 贴文档之前,我想很多朋友估计并不熟悉ETL,如果接粗过数据挖掘一定对ETL很熟悉了,ETL是数据挖掘里非常重要的一环,具体什么是ETL,大家看下面这段文字: ETL(Extract-Transfo...阅读全文
posted @ 2012-03-20 21:09 夏天的森林 阅读(7575) | 评论 (3) 编辑
摘要: 公司要为一些系统做一个记录审计日志的功能。这些日志不是我们开发人员常用的系统日志功能(用来记录我们程序运行情况的,比如用log4j记录下来的日志),而是为了今后对审计部门所使用,具有很强的业务要求的日志功能。架构已经被公司里的其他同事设计好了,虽然我现在只是做些边角料的辅助工作,不过这个命题我很感兴趣,我今天仔细琢磨了一下这样的一个业务需求,觉得还是很有意思,真正把这个做起来是会有一定技术含量。下面就是我的思考,这些思考不全是我自己独立想出来的,也借鉴了些同事的设计。 首先我要设定一个业务场景:我们是为一个重要的商业支付网站做一套审计系统。最重要的技术要求是审计系统不能影响到业务系统...阅读全文
posted @ 2012-01-19 15:01 夏天的森林 阅读(4885) | 评论 (3) 编辑
摘要: 刚刚进入了一家新公司,哎在上海混了这么多年,终于到了一家像样的公司,想想这个过程还真不容易啊,一定得要好好珍惜了,不废话了,开始我的内容了。 我现在的项目组的确是做纯正大网站的项目组,虽然现在还没做开发,对公司框架还没完全熟悉,但是对公司的架构的初步了解(初解)觉得还真有价值,都说大型网站应用的开发和普通的web项目不一样,但是你没有做过大型网站终究还是不能理解它的技术结构和我们常用的技术框架结构有何不同。在讲之前我要申明:我是一名java工程师,所以我讲的技术都是以java技术为基础,或许其他技术实现同样的功能会有所不同,但我相信主要思想一定是相似的。 普通的javaweb项目就是按...阅读全文
posted @ 2012-01-15 00:04 夏天的森林 阅读(5210) | 评论 (6) 编辑
摘要: 昨晚写的博文得到大家积极的反馈,非常喜欢这样一种交流的过程,也发现自己还有很多知识掌握的不够好,javascript是我主攻方向,对它的学习要求一定要高,其实对象创建的中篇写的不是太好,太仓促了,很多问题思考不到位,有点浅尝辄止,因此最后一篇我想要好好准备下,就算写不出什么有新意的观点,但一定要写出一篇经过自己仔细思考的文章。 最近噼里啪啦的起了三个系列,今天有人跟我说我贪多,最后啥都学不好,哎,不管了,人生就是要享受当下的快乐,只要学的开心就能坚持下去。 今天也有朋友说我的java框架那个系列其实可以不用写,因为这些只要做了一段时间java的人都会,如果我想写就应该加入算法,设计模...阅读全文
posted @ 2011-11-01 22:11 夏天的森林 阅读(11177) | 评论 (7) 编辑
摘要: 今天有人问我会不会推荐算法,回到家里反复思考了下(其实就是一个会与不会的回答,为啥我还要反复思量下了?),我发现自己从事软件开发工作这么多年,大小项目无数,但是如果从做应用角度换句话说我做了哪些提高人们工作效率或者改变了哪些人的生活方式的东西呢?项目做的再多,技术再精通也就是一个单兵实力很强的士兵,没有一个层次的提升最终都是一个兵,技术是手段是工具,我用对了地方才能发挥重大的价值,这个地方到底在哪里对现在我而言是一个不得不思考的问题,因为我现在太想提升自己的能力了。这个所谓的地方就是我们所说的业务,我必须要找到一个业务方向精深下去了,而今天所说的推荐算法就是一个很好的引子。 推荐对于互联...阅读全文
posted @ 2011-10-29 19:38 夏天的森林 阅读(5651) | 评论 (1) 编辑
摘要: 谈谈我对程序的理解 作为程序员你对程序是如何理解的?写这篇文章的时候,我认真思考了下,发现我对程序的理解不是和教科书一样的,我每次听到程序二字我想到的只有两个东西:代码和数据,而每次写程序的时候也就是写代码操作数据的过程。 做程序开发和做菜很像,数据就是食材,代码就是厨艺,做出的软件就是一道菜了,至于这个菜好不好吃,到底是看食材还是看厨艺了?呵呵,当我抛出这个问题的时候,我的第一反应是菜不好吃当然是手艺不好了,不知道其他童鞋是不是这么想的。认真想下,一道好菜一般都是二者必须兼备,当然不排除某一项突出也可以达到同样的效果,但这种情况毕竟不是大众化,而是属于少数精英的,做软件也是如此,代码与数..阅读全文
posted @ 2011-09-28 00:01 夏天的森林 阅读(3970) | 评论 (10) 编辑