全栈工程师修炼指南
熊燚(四火)
Oracle首席软件工程师
立即订阅
2317 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 从成长角度看,为什么你应该成为全栈工程师?
免费
学习路径 | 怎样成为一名优秀的全栈工程师?
导读 | 如何学习这个专栏?
第一章 网络协议和 Web 接口 (6讲)
01 | 网络互联的昨天、今天和明天:HTTP 协议的演化
02 | 为HTTP穿上盔甲:HTTPS
03 | 换个角度解决问题:服务端推送技术
04 | 工整与自由的风格之争:SOAP和REST
05 | 权衡的艺术:漫谈Web API的设计
06 | 特别放送:北美大厂如何招聘全栈工程师?
第二章 欢迎来到 MVC 的世界 (7讲)
07 | 解耦是永恒的主题:MVC框架的发展
08 | MVC架构解析:模型(Model)篇
09 | MVC架构解析:视图(View)篇
10 | MVC架构解析:控制器(Controller)篇
11 | 剑走偏锋:面向切面编程
12 | 唯有套路得人心:谈谈Java EE的那些模式
13 | 特别放送:选择比努力更重要
第三章 从后端到前端 (7讲)
14 | 别有洞天:从后端到前端
15 | 重剑无锋,大巧不工:JavaScript面向对象
16 | 百花齐放,百家争鸣:前端MVC框架
17 | 不一样的体验:交互设计和页面布局
18 | 千言万语不及一幅画:谈谈数据可视化
19 | 打开潘多拉盒子:JavaScript异步编程
20 | 特别放送:全栈团队的角色构成
第四章 数据持久化 (7讲)
21 | 赫赫有名的双刃剑:缓存(上)
22 | 赫赫有名的双刃剑:缓存(下)
23 | 知其然,知其所以然:数据的持久化和一致性
24 | 尺有所短,寸有所长:CAP和数据存储技术选择
25 | 设计数据持久层(上):理论分析
26 | 设计数据持久层(下):案例介绍
27 | 特别放送:聊一聊代码审查
第五章 寻找最佳实践 (6讲)
28 | Ops三部曲之一:配置管理
29 | Ops三部曲之二:集群部署
30 | Ops三部曲之三:测试和发布
31 | 防人之心不可无:网站安全问题窥视
32 | 和搜索引擎的对话:SEO的原理和基础
33 | 特别放送:聊一聊程序员学英语
第六章 专题 (7讲)
34 | 网站性能优化(上)
35 | 网站性能优化(下)
36 | 全栈开发中的算法(上)
37 | 全栈开发中的算法(下)
38 | 分页的那些事儿
39 | XML、JSON、YAML比较
40 | 全栈衍化:让全栈意味着更多
全栈回顾 (1讲)
全栈回顾 | 成为更好的全栈工程师!
全栈工程师修炼指南
登录|注册

34 | 网站性能优化(上)

四火 2019-11-27
你好,我是四火。
从今天开始我们进入“专题”这一章,本章的内容会涉及一些不适合单独归纳到前面任何一章的话题,比如这一讲和下一讲,我们来聊一聊网站的性能优化。
具体说,在这两讲性能专题中,第一讲我将介绍性能优化的基本知识,包括性能优化和软件设计的关系,性能指标和关注点,以及怎样去寻找性能瓶颈,这些是我们需要优先明确、分析和思考的内容,而不是没头没脑地直接跳进问题的坑去“优化”;而第二讲则要讲真正的“优化”了,我将从产品和架构调整,后端和持久层优化,以及前端和网络层优化这样三个方面结合例子来介绍具体的性能优化技术。

性能优化与软件设计

在最开始的部分,我想明确最重要的一件事——也许你已经听说过这句话——“好的性能是设计出来的,而不是优化出来的”。这就像是“高质量的软件是设计出来的,而不是测试出来的”一样,强调的都是软件设计的地位。因此,在设计阶段不考虑性能,而寄希望于在上线前后通过集中式的性能优化突击来将网站性能提高到另一个层次,往往是主次颠倒的。
我来举一个实际的例子说明下这一点吧。
在我参加工作不久后,曾经参与过的一个项目,用户的所有读写操作都要入库,当时的设计是把这样的数据放到关系数据库一个用户行为的表中,以供后续的查阅。上线以后,由于用户量大,操作频繁,很快这张表就变得巨大,读写的性能瓶颈都在这张表上,而且所有用户的操作都受到了影响,因为所有的操作都要写入这张表,在这时我被卷入这个项目,希望尽快解决这个性能问题。说实话,最初设计的时候没有考虑好,而这时候要做小修小改来解决这个功能的性能问题,是比较困难的。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《全栈工程师修炼指南》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(3)

  • leslie
    打卡:这块自己是自己的专长。
    2019-11-27
    2
  • Mandalorian
    好想实战

    作者回复: 实战确实能够获得直接的知识,但是实战总是较为具体,不如这些更一般的经验和原则有普适性。因此我们二者都要学。

    2019-11-28
  • Paradise丶朽木
    “如果测试阶段还没有做到,那就只好等着上线以后,问题发生来打脸了。”
    这个真的是印象深刻...
    2019-11-27
收起评论
3
返回
顶部