IT技术博客大学习 共学习 共进步

web应用应该考虑的一些问题

技术 总结 记录 生活 工作 2010-06-06 21:38:53 浏览 7,122 次

    今天是在公司的四周年,未来一段工作重心也将有所变化,从以前的开发逐渐要转变,希望能够适应,也能看淡,总之要更加专业化.

    最近半年的工作经历比较有典型意义,成长不少.也做了很多事情,从技术层面上来说,主要有五点.

    (1)静态化,静态化的目的主要是减低解析,元素离页面更近.

    (2)接口Cache化,接口合并:目的建立对外部服务的优化,减少客户端的渲染.

    (3)服务一致化:简单的说不管采用哪种技术(不管有没有缺点),那你所有的应用就往这上面靠,不要太凌乱.

    通过博客v7版本的开发,很多服务被重新梳理了.

    (4)DB的优化.

    (5)多IDC部署:

    为什么要做优化呢,对什么做优化呢.所谓优化就是在很短时间能够解决95%的问题,对于web应用来说,前端的改造是最能见效果的(异步加载,分屏加载).包括这上面说的静态化和Cache化,从典型意义上来说,目前做的优化已经不错了,发现了不少瓶颈,那接下来我们应该做什么呢,在这个思考过程中遇到了几个问题:

    1:虽然也整理了系统架构文档,规划了应用架构文档,但还是发现是理论的多,实施方法和策略少,确实这是无法避免的,假如能够快速制定策略,那也显得太简单了.

    2:虽然很多人(架构师)提倡分层开发,可我做了N长时间的开发,意识到分层不是那么轻易说出来的(建议那些架构师真正去写点php代码),目前最烦人的是凌乱的代码(可能是我们部门的悲哀),

    3:每个人都有自己的理解和想法,尤其是领导的想法,如何平衡他的需求和自己的想法.执行力很重要,在技术层面不能过多抱怨,也不能过多解释.

    4:无法知道整个系统,子系统的运行数据和状况,确实是个悲哀,没有数据和分析,谈何优化.

    5:没有抽象能力,如何解决后续庞杂的需求.

    6:没有规则,没有约束,如何要求别人.如何改进.

    7:如何指定计划,如何解决遇到的问题,如何快速提升自己的能力(属于个人积累不够),如何真正坚持的执行.

    8:如何合作:尤其是和外部门合作,如何让他们愉悦的为你工作(领导说:借助别人的脑子).

    9:短期可实现的计划和长期计划:目前就是这么做的,当可能存在的一个问题,一直觉得有短期目标,可能会麻痹对长期目标的分析,这是最致命的.

    下面从技术层面准备去做的:

    1:大容量的存储方案,核心是DB,不管将DB作为存储还是关系用,其都是系统最核心的层次之一.很多人都说期望通过应用方案去解决数据库的问题,最近的一些想法是,不要过多讨论应用方案,从纯数据库解决方案上考虑有没有数据分布方案.另外非关系数据存储系统的使用也还是一个趋势,期待公司自行研发的存储系统.

    2:数据缓存层

    核心主要是Squid和数据Cache层,纠结的是这个层一定要独立和抽象,千万别结合什么数据库延迟去考虑,否则会很复杂,不过独立的cache系统构建谈何容易,不能使用太多的奇淫技巧.

    另外对于页面缓存和数据缓存的使用场景也要分析清楚.

    3:队列

    队列最大的核心是提高伸缩性,尤其对于分布式的IDC使用,其作用不可小视.

    5:核心子系统和技术

    类似于nginx+memcached这样的高速接口,应该还是需要一点核心的技术.

    6:分层的开发模式:

    对于变化迅速的web应用,个人觉得这是最重要的.

    7:自动化,智能化的分析系统(性能分析,业务分析,数据挖掘).

    8:规则和规章制度,培养体系.激励体系

建议继续学习

  1. 大型高并发高负载网站的系统架构分析 (阅读 8,842)
  2. Feed架构-我们做错了什么 (阅读 8,643)
  3. 淘宝数据魔方技术架构解析 (阅读 7,861)
  4. Craigslist 的数据库架构 (阅读 6,602)
  5. 总结的一些PHP开发中的tips (阅读 5,240)
  6. 大型网站架构基本问题 (阅读 5,182)
  7. 也谈谈前端,架构,框架与库 (阅读 4,962)
  8. 关于架构的一句话,还有一个实例 (阅读 4,581)
  9. 产品经理3年沉淀和总结 (阅读 4,580)
  10. 做大的艺术 - 大型网站的架构设计 (阅读 4,422)