全栈工程师修炼指南
熊燚(四火)
Oracle首席软件工程师
立即订阅
2286 人已学习
课程目录
已更新 43 讲 / 共 40 讲
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 | 全栈衍化:让全栈意味着更多
全栈工程师修炼指南
登录|注册

18 | 千言万语不及一幅画:谈谈数据可视化

四火 2019-10-21
你好,我是四火。
随着大数据和数据分析趋势的流行,数据可视化变得越来越重要,而许多全栈的学习材料并没有跟上节奏,去介绍这方面的技术。这一讲中,我们将介绍数据可视化的基本概念和原理,以及几个常用的 JavaScript 用来实现数据可视化的库。
数据可视化,即 Data Visualization,是指使用具备视觉表现力的图形和表格等工具,向用户传达数据信息的方式。在我工作过的每个大型团队中,数据可视化技术都有着其不可替代的用武之地。
在大数据分析团队,数据库可视化技术被用来分析数据变化,验证机器学习算法的效果;在高可用服务团队,数据可视化技术被用来了解和监视服务的运行状况,了解系统的压力和负载;在分布式平台团队,数据可视化技术用来俯瞰一个个异步任务的执行情况,以获知任务执行的健康状况……事实上,只要有工程的地方,数据可视化就扮演着举足轻重的角色。

Web 绘图标准

在前端绘图,是数据可视化里面很常见的一个需求,我们常见的有位图和矢量图这样两种。
通常我们谈论的图片,绝大多数都是位图。位图又叫栅格图像,无论位图采用何种压缩算法,它本质就是点阵,它对于图像本身更具备普适性,无论图像的形状如何,都可以很容易分解为一个二维的点阵,更大的图,或者更高的分辨率,只是需要更密集的点阵而已。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《全栈工程师修炼指南》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(4)

  • Dream.
    #1思考一下你经历过的比较大的项目,你是否在项目中使用过数据可视化技术,如果给你一个机会,你觉得该怎样使用呢?

    数据可视化,关键是将用户关注,并且值得分析的数据展示给用户。比如业务系统的业务量,运维系统的监控状态等等。

    相信你用过 Google 地图或 Baidu 地图吧,那么,你觉得地图应用应该是用 SVG 还是 Canvas 来实现呢,为什么?

    地图最好还是采用svg来实现,svg可以很好的支撑地图缩放功能,保证缩放时地图保持原样。如果换成Canvas,放大了会模糊,缩太小了会因为点阵过于密集而造成图像扭曲

    作者回复: Google 地图使用的是 Canvas,而不是 SVG,这里最主要的原因还是和性能有关的,使用 SVG 的话你会看到大量的 DOM 节点,这些会拖慢地图性能的。

    你可以看一下这两个方案性能的比较:https://www.flickr.com/photos/martin-kliehm/3669738142

    2019-10-21
    2
  • 丁丁历险记
    写过vml 的路过,当时做一个魔方导航。
    怀念那个有大把时间做闲着蛋疼的东西的事。

    作者回复: 👍,用过 VML 的程序员可不多

    2019-10-22
    1
  • 林子恒#Ralegh
    老师您好,对于文中有一句话我有点疑问:图像的生成可能需要显著的资源消耗,放到前端可以减轻服务器压力。这里的消耗既包括 CPU、内存等物理资源消耗,还有用户的等待时间消耗,在前端可以更好地给用户提供渲染过程的反馈。
            正常服务器配置和性能会比客户端要好很多,对于资源消耗比较多的操作放在服务端会更合适吧?请老师聊聊您的看法,谢谢

    作者回复: 服务器的性能往往比客户端更高,你说的没错。但是如果用户量很大,服务端需要处理成千上万的图像生成呢?这就对服务端是显著的资源消耗了,而客户端来处理的话,服务端的压力就小很多。

    2019-10-24
  • 靠人品去赢
    1用过一点数据可视化,画个饼图什么的,python画直方图。给个机会的话我觉得我会考虑两个JS库,因为里面很多例子多种展示方式给用户,可以说体验上更直观,最起码截图做个PPT也不错。
    2用svg不失真,可以不断地放大,但是直接用JS画canvas图还是挺方便的。
    2019-10-22
    1
收起评论
4
返回
顶部