欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • 前端跨界开发指南(JavaScript工具库原理解析与实战)/Web开发技术丛书
      • 作者:史文强|责编:杨绣国
      • 出版社:机械工业
      • ISBN:9787111708049
      • 出版日期:2022/08/01
      • 页数:412
    • 售价:51.6
  • 内容大纲

        本书是字节跳动资深前端工程师呕心沥血之作,也是目前市场上少有的从原理到实战深度剖析JavaScript生态中经典工具库的技术图书。全书共有6篇,分别是基础篇、图形学篇、多媒体篇、跨端开发篇、游戏开发篇和跨界实践篇,书中不仅详细介绍了JavaScript语言在浏览器页面之外的不同应用场景,更从实用技巧、设计理念、原理源码等角度对精心挑选的30多个工具库进行了全方位的解析,希望读者在领略JavaScript代码之美的同时,也能拓宽技术视野。为了帮助读者更好地理解书中所讲述的内容,随书代码仓库里提供了大量可运行的源码,包括精简版的库重写和完整的代码示例。
  • 作者介绍

        史文强,前端资深技术专家,现任字节跳动幸福里团队前端工程师、西安交通大学航天学院特聘软件工程师,华为云云享专家,曾受Google GDG(Google开发者社区)邀请进行技术分享。拥有丰富的实战经验,擅长大型前端系统架构设计、性能优化及工程化体系建设。     活跃于各大前端技术社区,撰写了《Node.js原理&源码赏析》《带着Canvas去流浪》《响应式编程的思维艺术》等多个连载专题,累计发表前端技术原创博文百余篇,曾获2018年华为云社区杰出贡献奖(暨年度十大技术博主)。
  • 目录

    前言
    基础篇
      第1章  Mock.js:如何与后端潇洒分手
        1.1  为什么你总是下不了班
        1.2  联调加速
        1.3  使用Mock.js
        1.3.1  Mock.js的语法规范
        1.3.2  Mock.js实战
        1.3.3  自定义扩展
        1.4  Mock.js的基本原理
        1.4.1  从模板到数据
        1.4.2  为Ajax请求提供Mock数据
        1.5  从Mock服务到API管理平台
      第2章  Node.js:连接
        2.1  大话Node.js
        2.1.1  Node.js是什么
        2.1.2  Node.js能做什么
        2.1.3  招黑的JavaScript全栈工程师
        2.2  业界用Node.js做什么
        2.2.1  前端工程化
        2.2.2  中间层
        2.2.3  SSR引擎
        2.2.4  协作连接
        2.3  小结
      第3章  ESLint:你的代码里藏着你的优雅
        3.1  代码风格与破窗理论
        3.2  用editorconfig配置IDE
        3.2.1  基本语法及属性
        3.2.2  配置实例
        3.3  使用ESLint规范编程风格
        3.3.1  配置文件和规则集
        3.3.2  ESLint插件开发实战
        3.3.3  初学者的修行
        3.4  新秀工具Prettier
        3.5   静态类型检查工具的实现原理
        3.5.1  编译语言和解释语言
        3.5.2  编译流程
        3.5.3  编译简单的JavaScript程序
      第4章  模块演义与Require.js
        4.1   模块化的需求推演
        4.1.1  script标签
        4.1.2  代码隔离
        4.1.3  依赖管理
        4.2   模块规范大杂烩
        4.2.1  概述
        4.2.2  几个重要的差异
        4.3  模块化规范的兼容与工具演进
        4.4  Require.js的使用方法
        4.5  Require.js的核心原理
      第5章  Lodash.js是工具,更是秘籍

        5.1  Lodash.js是什么
        5.1.1  概述
        5.1.2  代码的较量
        5.2  重点API的剖析
        5.3  Lodash.js的源码结构
        5.3.1  基本结构
        5.3.2  Lodash.js源码的学习方法
      第6章  静态类型检查:Flow.js和TypeScript
        6.1  静态类型检查
        6.1.1  静态类型检查的优势
        6.1.2  静态类型检查的劣势
        6.2  Flow.js,易上手的静态类型检查工具
        6.2.1  Flow.js中的类型标注
        6.2.2  Flow.js的优势
        6.3  TypeScript,另一种选择
      第7章  用函数描述世界:Ramda.js
        7.1  本能的思考方式
        7.2  开始编码
        7.2.1  传统编程的实现
        7.2.2  函数式编程的推演
        7.2.3  函数式编程的意义
        7.2.4  函数式编程的基本理论
        7.3  基于Ramda.js体验函数式编程
        7.3.1  使用Ramda.js
        7.3.2  函数化的流程控制
        7.4  选择
      第8章  Rxjs:前端世界的“老人与海”
        8.1  信息管道
        8.1.1  不同的“单一职责”
        8.1.2  分布式状态的可能性
        8.1.3  你的程序在做什么
        8.2  数据的生产
        8.2.1  数据源的抽象
        8.2.2  设计模式的应用
        8.3  Rxjs:一切皆是流的世界
        8.3.1  Rxjs的核心概念
        8.3.2  Rxjs应用实例
        8.3.3  新版“老人与海”
        8.4  以自己喜欢的方式去编程
      第9章  不可变数据的制造艺术:Immer.js和Immutable.js
        9.1  克隆
        9.1.1  浅克隆
        9.1.2  深克隆
        9.2  元编程与Immer.js
        9.2.1  元编程
        9.2.2  Immer.js的核心原理
        9.3  Immutable.js与共享结构
        9.3.1  Immutable.js简介
        9.3.2  Immutable.js的核心原理
        9.3.3  Immutable.js中的读写操作

        9.4  小结
      第10章  Day.js:算个日期能有多难
        10.1  日期和时间
        10.2  使用Day.js
        10.3  国际化应用开发中的时间处理
    图形学篇
      第11章  所见即所得的流程图:jsplumb.js和viz.js
        11.1  方案构思
        11.2  开始使用jsplumb.js
        11.3  图布局引擎viz.js
        11.4  所见即所得
      第12章  easel.js:一个标签一个世界
        12.1  能玩一生的标签<canvas>
        12.1.1  基本语法介绍
        12.1.2  动画模式
        12.2  用easel.js操作Canvas
        12.3  工具库的封装技巧
      第13章  Echarts.js:看见
        13.1  数据可视化生态
        13.2  开始使用Echarts.js
        13.2.1  Echarts的正确打开方式
        13.2.2  重点API
        13.2.3  配置项
        13.3  数据可视化三步曲
        13.3.1  数据准备
        13.3.2  图表选型
        13.3.3  细节打磨
        13.4  下一步的选择
      第14章  SVG变形记
        14.1  矢量图的世界
        14.1.1  SVG图形
        14.1.2  SVG的高级功能
        14.2  SVG变形
        14.2.1  SVG动画与CSS3动画
        14.2.2  经典SVG动画
        14.3  Snap.svg快速入门
        14.3.1  Snap方法集
        14.3.2  Snap.svg实战
        14.4  取舍
      第15章  Three.js:构建立体的用户界面
        15.1  三维世界的脚手架Three.js
        15.1.1  核心概念
        15.1.2  分解网格模型
        15.1.3  Three.js的基本使用方法
        15.2  实战:用Three.js制作漫威电影片头动画
        15.2.1  特效一:平面渐离
        15.2.2  特效二:字体浮雕模型
        15.2.3  特效三:视频纹理贴图
        15.2.4  特效四:镜头转换
        15.3  Three.js如何参与渲染

        15.3.1  相机模式和降维打击
        15.3.2  着色器
        15.3.3  WebGL的渲染流程
        15.4  用Cinema4D玩转跨界
    多媒体篇
      第16章  Impress.js:网页里的PPT
        16.1  Impress.js的应用及原理
        16.1.1  快速上手Impress.js
        16.1.2  Impress.js的实现原理
        16.2  详解CSS变形和动画
        16.2.1  帧和关键帧
        16.2.2  CSS补间动画
        16.3  软技能:PPT设计
        16.3.1  内容为王
        16.3.2  设计入门课
      第17章  Velocity.js与高性能动画之谜
        17.1  CSS动画和JavaScript动画
        17.1.1  CSS动画
        17.1.2  JavaScript动画
        17.2  Velocity.js入门指南
        17.2.1  stagger交错动画
        17.2.2  在SPA框架中编写动画
        17.3  高性能动画的秘密
        17.3.1  像素渲染管线
        17.3.2  回流、重绘与合成
        17.3.3  使用合成层获得高性能
        17.3.4  隐式提升陷阱
        17.4  小结
      第18章  扭曲时间:tween.js和jQuery Easing Plugin
        18.1  缓动函数
        18.2  贝赛尔曲线
        18.2.1  绘制原理
        18.2.2  贝赛尔曲线的特性
        18.3  使用Tween.js和jQuery Easing Plugin
        18.4  选择恰当的缓动函数
      第19章  用Recorder.js实现语音信号处理
        19.1  百度语音识别实战
        19.1.1  工业系统测量的预备知识
        19.1.2  改造Recorder.js
        19.2  Web Audio API的工作模式
        19.2.1  中间件式的音频处理图
        19.2.2  Recorder.js核心原理:Script-ProcessorNode
        19.2.3  浅谈ArrayBuffer
      第20章  jsmpeg.js流媒体播放器
        20.1  视频编解码技术入门
        20.1.1  基础知识
        20.1.2  初识传输流
        20.2  现代浏览器中的播放技术
        20.2.1  Media Source Extension
        20.2.2  其他格式的媒体资源

        20.3  切片技术与TS文件解析
        20.3.1  文件切片技术
        20.3.2  解析TS切片
        20.4  jsmpeg.js源码结构和低延迟播放实例
    跨端开发篇
      第21章  “懒”是第一生产力:制作命令行工具
        21.1  Commander.js与Git风格的命令行工具
        21.2  Inquirer.js与交互式命令行工具
        21.3  从工具化到工程化
      第22章  用Shelljs实现自动化部署
        22.1  Linux入门小课
        22.2  实用的跨平台工具
        22.3  实战:使用Shelljs和node-ssh完成自动化部署
        22.4  下一站:性能监控
      第23章  跨端技术的秘密
        23.1  Cordova的前世今生
        23.2  React Native
        23.3  小程序
        23.4  原生App与网页的通信
        23.5  小结
      第24章  protobuf与二进制消息
        24.1  前端常见的消息格式
        24.2  二进制消息格式:protobuf
        24.3  使用protobuf.js
        24.4  初探gRPC
      第25章  控制反转与Inversify.js
        25.1  依赖为什么需要注入
        25.2  IOC容器的实现
        25.3  AOP和装饰器
        25.4  用Inversify.js实现依赖注入
        25.5  小结
    游戏开发篇
      第26章  基于CreateJS解构游戏开发
        26.1  工具包CreateJS
        26.2  实战开发:《飞龙大战》
        26.3  性能提升技巧
      第27章  经典物理与matter.js
        27.1  经典力学回顾
        27.2  仿真的实现原理
        27.2.1  基本动力学模拟
        27.2.2  碰撞模拟
        27.3  物理引擎matter.js
        27.3.1  《愤怒的小鸟》的物理特性分析
        27.3.2  使用matter.js构建物理模型
        27.3.3  物理引擎如何牵手游戏引擎
      第28章  Phaser:从工具到生态
        28.1  快速上手Phaser游戏开发
        28.2  浅谈框架的选择
    跨界实践篇
      第29章  brain.js:写给前端的神经网络入门课

        29.1  从关键词开始
        29.2  认识神经网络
        29.2.1  基本结构
        29.2.2  神经元的数学模型
        29.2.3  激活函数与非线性决策边界
        29.2.4  神经网络中的信息传递
        29.3  使用brain.js构建神经网络
        29.4  小结
      第30章  TensorFlow.js:开箱即用的深度学习工具
        30.1  上手TensorFlow.js
        30.2  使用TensorFlow.js构建卷积神经网络
        30.2.1  卷积神经网络
        30.2.2  搭建LeNet-5模型
        30.3  基于迁移学习的语音指令识别
      第31章  用JavaScript玩转物联网
        31.1  入门级物联网“玩具”Arduino
        31.1.1  Arduino UNO R3板卡结构
        31.1.2  模拟量和数字量
        31.1.3  Arduino原生编程入门
        31.1.4  Arduino实验示例一:按钮控制三色LED灯
        31.1.5  Arduino实验示例二:使用DHT11模块采集温湿度信息
        31.2  PC与MCU之间的串口通信
        31.3  使用Johnny-Five进行嵌入式开发
        31.3.1  初识Johnny-Five
        31.3.2  Firmata.js源码导读
        31.3.3  舵机风扇实验
        31.4  小结