Kotlin打造完整电商APP 模块化+MVP+主流框架

课程目录:

  • 第1章 课程介绍(讲师参与学习讨论)

    本章会告诉大家能学到什么,课程如何安排,整个APP的效果以及用户购买流程,同时为大家讲解模块化思想,MVP架构思想,项目技术选型,项目初始化,为后面具体的开发做好准备。

    • 1-1 课程导学
    • 1-2 项目效果展示与购买流程讲解
    • 1-3 模块化理论基础讲解
    • 1-4 MVP架构理论基础讲解
    • 1-5 技术选型
    • 1-6 项目初始化与包结构设计
  • 第2章 模块化实战与主流框架配置

    本章首先以用户模块为例,带大家进行模块化实战,同时通过用户注册功能完善开发环境,最后带大家配置主流框架,如AndroidExtensions,MVP,Anko、RxKotlin、RxAndroid、Retrofit及Dagger2等,并带大家优化及拓展前面写过的代码。《全新升级 Kotlin系统入门与进阶》:http://coding.imooc.com/class/108.html…

    • 2-1 本章概述
    • 2-2 模块化实战-初始化用户模块
    • 2-3 模块化实战-动态加载模块类型
    • 2-4 Butterknife和AndroidExtensions
    • 2-5 Anko配置及使用
    • 2-6 MVP架构配置
    • 2-7 RxKotlin及RxAndroid配置
    • 2-8 Retrofit集成与单例工厂
    • 2-9 Retrofit发送注册请求
    • 2-10 Dagger2-依赖注入
    • 2-11 Dagger2-作用域Scope
    • 2-12 Dagger2-限定符Qualifier
    • 2-13 RxLifecycle配置及使用
    • 2-14 代码优化及扩展
  • 第3章 通用组件封装及通用资源文件引入

    本章首先带大家封装通用组件及自定义视图,如AppManager、HeaderBar、ProgressBar,然后会导入一些通用工具和资源文件,让大家掌握项目基础架构的设计能力,同时将一些后面需要的资源导入进来,为后面功能的开发做好脚手架。

    • 3-1 本章概述
    • 3-2 AppManager封装
    • 3-3 HeaderBar封装
    • 3-4 ProgressLoading封装-1
    • 3-5 ProgressLoading封装-2
    • 3-6 通用工具组件导入与介绍
    • 3-7 通用资源文件导入与介绍
  • 第4章 用户模块开发

    本章将带大家开发用户模块相关功能,包括用户登录、找回密码、编辑用户资料以及用户注册优化,同时会使用TakePhoto及七牛云框架完成用户头像上传功能。

    • 4-1 本章概述
    • 4-2 用户注册界面与逻辑优化
    • 4-3 用户登录开发
    • 4-4 找回密码功能
    • 4-5 编辑用户-头像选择对话框开发
    • 4-6 编辑用户-TakePhoto选择图片功能开发
    • 4-7 编辑用户-上传头像
    • 4-8 编辑用户-资料修改
    • 4-9 本章小结
  • 第5章 主模块开发

    本章带大家进行主模块的静态界面开发,因为是个人开发,所以提前引入主工程。 主要包括自定义视图,如底部导航、新闻公告等;第三方视图框架,如标签、画廊风格视图。

    • 5-1 本章概述
    • 5-2 底部导航封装
    • 5-3 首页-Banner开发
    • 5-4 首页-新闻公告功能集成
    • 5-5 首页-折扣界面开发
    • 5-6 首页-话题功能集成
    • 5-7 “我的”界面开发
    • 5-8 “我的”数据逻辑实现
  • 第6章 商品模块开发

    本章带大家进行商品模块相关业务功能的开发。包括商品分类、商品列表、商品详情、商品SKU及商品搜索等。在界面展示上,会使用上下拉刷新视图、多状态视图等,并详细介绍商品SKU,及事件监听机制。同时会初步引入ARouter进行模块路由。 …

    • 6-1 本章概述
    • 6-2 商品分类-界面开发
    • 6-3 商品分类-业务功能开发
    • 6-4 商品分类-多状态视图封装
    • 6-5 商品列表-界面及数据加载
    • 6-6 商品列表-上下拉刷新功能开发
    • 6-7 商品搜索-界面导入
    • 6-8 商品搜索-逻辑实现
    • 6-9 商品详情-界面开发
    • 6-10 商品详情-加载数据
    • 6-11 商品详情-SKU弹层实现
    • 6-12 商品详情-SKU数据加载
    • 6-13 商品详情-SKU联动实现
    • 6-14 模块路由-ARouter集成
  • 第7章 购物车模块开发

    本章带大家进行购物车相关业务功能的开发。包括加入购物车、删除购物车以及提交购物车等。并通过事件监听机制实现数量价格联动、全选/反选及编辑状态切换。

    • 7-1 本章概述
    • 7-2 商品加入购物车功能开发
    • 7-3 加入购物车数量展示
    • 7-4 购物车列表开发
    • 7-5 购物车-全选反选
    • 7-6 购物车-价格联动
    • 7-7 购物车-编辑状态切换
    • 7-8 购物车-删除购物车商品
    • 7-9 购物车-提交商品
    • 7-10 购物车-独立展示
  • 第8章 订单模块开发

    本章带大家进行订单相关业务功能的开发。包括收货人信息相关功能、提交订单及管理订单等。通过订单状态的扭转,可以看到一件商品从购买开始,一个完整的订单流程。 收货人信息相关功能也是独立,可以看到Kotlin中的序列化如何实现。 …

    • 8-1 订单模块介绍及初始化
    • 8-2 订单确认页-数据加载
    • 8-3 订单确认页-ARouter映射成员变量
    • 8-4 添加收货人信息
    • 8-5 获取收货人信息列表
    • 8-6 设置默认收货人
    • 8-7 编辑收货人信息
    • 8-8 删除收货人信息
    • 8-9 选择收货人及提交订单
    • 8-10 订单管理-界面结构开发
    • 8-11 订单管理-加载单商品订单
    • 8-12 订单管理-加载多商品
    • 8-13 订单管理-确认收货及取消订单
    • 8-14 订单详情开发
  • 第9章 支付模块开发

    本章主要介绍如何使用支付宝沙箱环境,封装一个支付模块。 重点介绍支付宝支付流程及集成,支付签名必须放到服务端实现,避免风险。

    • 9-1 本章概述
    • 9-2 支付宝集成介绍
    • 9-3 支付模块初始化
    • 9-4 获取支付签名
    • 9-5 支付宝SDK支付订单
    • 9-6 支付订单同步服务端
  • 第10章 消息模块开发

    本章带大家进行消息模块业务功能的开发。主要使用极光推送集成Push,同时处理自定义消息及通知消息。并降级如何使用ARouter实现跨模块接口调用。

    • 10-1 本章概述
    • 10-2 极光推送介绍及集成
    • 10-3 推送通知消息
    • 10-4 推送自定义消息
    • 10-5 ARouter跨模块调用推送ID接口
    • 10-6 接收服务端通知消息
    • 10-7 消息列表实现
    • 10-8 接收服务端自定义消息
  • 第11章 代码优化及课程总结

    本章带大家对写过的代码进行优化,并封装一个通用的选择图片组件,然后为大家讲解Kotlin新版的序列化特性。最后带大家做课程进行小结。

    • 11-1 注解实现序列化
    • 11-2 图片选择封装
    • 11-3 界面提示性调整
    • 11-4 课程小结

    感谢来自@akashi_sai 的投稿!!

Spark Streaming实时流处理项目实战

课程目录:

  • 第1章 课程介绍

    课程介绍

    • 1-1 -导学-
    • 1-2 -授课习惯和学习建议
    • 1-3 -OOTB环境使用演示
    • 1-4 -Linux环境及软件版本介绍
    • 1-5 -Spark版本升级
  • 第2章 初识实时流处理

    本章节将从一个业务场景分析出发引出实时流处理的产生背景,对比离线处理和实时处理的区别,了解常用的实时流处理框架有哪些,实时流处理在企业级应用中各个环节的架构以及技术选型

    • 2-1 -课程目录
    • 2-2 -业务现状分析
    • 2-3 -实时流处理产生背景
    • 2-4 -实时流处理概述
    • 2-5 -离线计算和实时计算对比
    • 2-6 -实时流处理框架对比
    • 2-7 -实时流处理架构及技术选型
    • 2-8 -实时流处理在企业中的应用
  • 第3章 分布式日志收集框架Flume

    本章节将从通过一个业务场景出发引出Flume的产生背景,将讲解Flume的架构及核心组件,Flume环境部署以及Flume Agent开发实战让大家学会如何使用Flume来进行日志的采集

    • 3-1 -课程目录
    • 3-2 -业务现状分析
    • 3-3 -Flume概述
    • 3-4 -Flume架构及核心组件
    • 3-5 -Flume&JDK环境部署
    • 3-6 -Flume实战案例一
    • 3-7 -Flume实战案例二
    • 3-8 -Flume实战案例三(重点掌握)
  • 第4章 分布式发布订阅消息系统Kafka

    本章节将讲解Kafka的架构以及核心概念,Kafka环境的部署及脚本的使用,Kafka API编程,并通过Kafka容错性测试让大家体会到Kakfa的高可用性,并将Flume和Kafka整合起来开发一个功能

    • 4-1 -课程目录
    • 4-2 -Kafka概述
    • 4-3 -Kafka架构及核心概念
    • 4-4 -Kafka单节点单Broker部署之Zookeeper安装
    • 4-5 -Kafka单节点单broker的部署及使用
    • 4-6 -Kafka单节点多broker部署及使用
    • 4-7 -Kafka容错性测试
    • 4-8 -使用IDEA+Maven构建开发环境
    • 4-9 -Kafka Producer Java API编程
    • 4-10 -Kafka Consumer Java API编程
    • 4-11 -Kafka实战之整合Flume和Kafka完成实时数据采集
  • 第5章 实战环境搭建

    工欲善其事必先利其器,本章将讲解Hadoop、ZooKeeper、HBase、Spark的安装,以及如何使用IDEA整合Maven/Spark/HBase/Hadoop来搭建我们的开发环境

    • 5-1 -课程目录
    • 5-2 -Scala安装
    • 5-3 -Maven安装
    • 5-4 -Hadoop环境搭建
    • 5-5 -HBase安装
    • 5-6 -Spark环境搭建
    • 5-7 -开发环境搭建
  • 第6章 Spark Streaming入门

    本章节将讲解Spark Streaming是什么,了解Spark Streaming的应用场景及发展史,并从词频统计案例入手带大家了解Spark Streaming的工作原理

    • 6-1 -课程目录
    • 6-2 -Spark Streaming概述
    • 6-3 -Spark Streaming应用场景
    • 6-4 -Spark Streaming集成Spark生态系统的使用
    • 6-5 -Spark Streaming发展史
    • 6-6 -从词频统计功能着手入门Spark Streaming
    • 6-7 -Spark Streaming工作原理(粗粒度)
    • 6-8 -Spark Streaming工作原理(细粒度)
  • 第7章 Spark Streaming核心概念与编程

    本章节将讲解Spark Streaming中的核心概念、常用操作,通过Spark Streaming如何操作socket以及HDFS上的数据让大家进一步了解Spark Streaming的编程

    • 7-1 -课程目录
    • 7-2 -核心概念之StreamingContext
    • 7-3 -核心概念之DStream
    • 7-4 -核心概念之Input DStreams和Receivers
    • 7-5 -核心概念之Transformation和Output Operations
    • 7-6 -案例实战之Spark Streaming处理socket数据
    • 7-7 -案例实战之Spark Streaming处理文件系统数据
  • 第8章 Spark Streaming进阶与案例实战

    本章节将讲解Spark Streaming如何处理带状态的数据,通过案例让大家知道Spark Streaming如何写数据到MySQL,Spark Streaming如何整合Spark SQL进行操作

    • 8-1 -课程目录
    • 8-2 -实战之updateStateByKey算子的使用
    • 8-3 -实战之将统计结果写入到MySQL数据库中
    • 8-4 -实战之窗口函数的使用
    • 8-5 -实战之黑名单过滤
    • 8-6 -实战之Spark Streaming整合Spark SQL操作
  • 第9章 Spark Streaming整合Flume

    本章节将讲解Spark Streaming整合Flume的两种方式,讲解如何在本地进行开发测试,如何在服务器上进行测试

    • 9-1 -课程目录
    • 9-2 -Push方式整合之概述
    • 9-3 -Push方式整合之Flume Agent配置开发
    • 9-4 -Push方式整合之Spark Streaming应用开发
    • 9-5 -Push方式整合之本地环境联调
    • 9-6 -Push方式整合之服务器环境联调
    • 9-7 -Pull方式整合之概述
    • 9-8 -Pull方式整合之Flume Agent配置开发
    • 9-9 -Pull方式整合之Spark Streaming应用开发
    • 9-10 -Pull方式整合之本地环境联调
    • 9-11 -Pull方式整合之服务器环境联调
  • 第10章 Spark Streaming整合Kafka

    本章节将讲解Spark Streaming整合Kafka的两种方式,讲解如何在本地进行开发测试,如何在服务器上进行测试

    • 10-1 -课程目录
    • 10-2 -Spark Streaming整合Kafka的版本选择详解
    • 10-3 -Receiver方式整合之概述
    • 10-4 -Receiver方式整合之Kafka测试
    • 10-5 -Receiver方式整合之Spark Streaming应用开发
    • 10-6 -Receiver方式整合之本地环境联调
    • 10-7 -Receiver方式整合之服务器环境联调及Streaming UI讲解
    • 10-8 -Direct方式整合之概述
    • 10-9 -Direct方式整合之Spark Streaming应用开发及本地环境测试
    • 10-10 -Direct方式整合之服务器环境联调
  • 第11章 Spark Streaming整合Flume&Kafka打造通用流处理基础

    本章节将通过实战案例彻底打通Spark Streaming和Flume以及Kafka的综合使用,为后续项目实战打下坚实的基础

    • 11-1 -课程目录
    • 11-2 -处理流程画图剖析
    • 11-3 -日志产生器开发并结合log4j完成日志的输出
    • 11-4 -使用Flume采集Log4j产生的日志
    • 11-5 -使用KafkaSInk将Flume收集到的数据输出到Kafka
    • 11-6 -Spark Streaming消费Kafka的数据进行统计
    • 11-7 -本地测试和生产环境使用的拓展
  • 第12章 Spark Streaming项目实战

    本章节将通过一个完整的项目实战让大家学会大数据实时流处理的各个环境的整合,如何根据业务需要来设计HBase的rowkey

    • 12-1 -课程目录
    • 12-2 -需求说明
    • 12-3 -用户行为日志介绍
    • 12-4 -Python日志产生器开发之产生访问url和ip信息
    • 12-5 -Python日志产生器开发之产生referer和状态码信息
    • 12-6 -Python日志产生器开发之产生日志访问时间
    • 12-7 -Python日志产生器服务器测试并将日志写入到文件中
    • 12-8 -通过定时调度工具每一分钟产生一批数据
    • 12-9 -使用Flume实时收集日志信息
    • 12-10 -对接实时日志数据到Kafka并输出到控制台测试
    • 12-11 -Spark Streaming对接Kafka的数据进行消费
    • 12-12 -使用Spark Streaming完成数据清洗操作
    • 12-13 -功能一之需求分析及存储结果技术选型分析
    • 12-14 -功能一之数据库访问DAO层方法定义
    • 12-15 -功能一之HBase操作工具类开发
    • 12-16 -功能一之数据库访问DAO层方法实现
    • 12-17 -功能一之将Spark Streaming的处理结果写入到HBase中
    • 12-18 -功能二之需求分析及HBase设计&HBase数据访问层开发
    • 12-19 -功能二之功能实现及本地测试
    • 12-20 -将项目运行在服务器环境中
  • 第13章 可视化实战

    本章节将通过两种方式来实现实时流处理结果的可视化操作,一是使用Spring Boot整合Echarts实现,二是使用更加炫酷的阿里云产品DataV来实现

    • 13-1 -课程目录
    • 13-2 -为什么需要可视化
    • 13-3 -构建Spring Boot项目
    • 13-4 -Echarts概述
    • 13-5 -Spring Boot整合Echarts绘制静态数据柱状图
    • 13-6 -Spring Boot整合Echarts绘制静态数据饼图
    • 13-7 -项目目录调整
    • 13-8 -根据天来获取HBase表中的实战课程访问次数
    • 13-9 -实战课程访问量domain以及dao开发
    • 13-10 -实战课程访问量Web层开发
    • 13-11 -实战课程访问量实时查询展示功能实现及扩展
    • 13-12 -Spring Boot项目部署到服务器上运行
    • 13-13 -阿里云DataV数据可视化介绍
    • 13-14 -DataV展示统计结果功能实现
  • 第14章 Java拓展

    本章节作为扩展内容,将带领大家使用Java来开始Spark应用程序,使得大家对于使用Scala以及Java来开发Spark应用程序都有很好的认识

    • 14-1 -课程目录
    • 14-2 -使用Java开发Spark应用程序
    • 14-3 -使用Java开发Spark Streaming应用程序

    感谢来自@akashi_sai 的投稿!!

Angular 4.0从入门到实战 搭建股票管理网站

课程目录

  • 第1章 准备好了吗,那就开始吧!!!

    在这一章里,我们首先会对整个课程的内容做一个简要的介绍,包括章节的安排,实战案例的介绍以及前置知识的介绍等内容。然后我们会从一个比较高的视角对angularJS和angular的架构做一个介绍和比较,使你对angular有一个初步的印象。…

    • 1-1 Angular课程介绍
    • 1-2 Angular简介
  • 第2章 开始Angular开发

    我们会开始开发一个简单的angular应用。首先你会学习标准的angular程序的架构,然后会学习如何搭建一个angular的开发环境,在这个环境中创建项目,编写angular的组件,并最终运行一个angular应用。在这一章的最后,我们会编写股票管理的第一个版本,用这一章学到的知识编写一个组件化的主页出来。…

    • 2-1 内容介绍
    • 2-2 Angular程序架构
    • 2-3 搭建环境
    • 2-4 启动Angular过程介绍
    • 2-5 开发准备
    • 2-6 开发项目组件上
    • 2-7 开发项目组件下
  • 第3章 Angular-路由

    主要讲解angular路由相关的知识。angular的路由提供了一个灵活的方式来在单页应用中进行导航,你将会学习如何在父组件和子组件配置路由,在从一个路由导航到另一个路由时如何传递数据,以及子路由、重定向路由、辅助路由、路由守卫等与路由相关的知识,在这一章的最后,我们会重构之前的股票管理应用,把它重新封装为一些新…

    • 3-1 路由内容介绍
    • 3-2 路由基础
    • 3-3 在路由时传递数据
    • 3-4 重定向路由
    • 3-5 子路由
    • 3-6 辅助路由
    • 3-7 路由守卫
    • 3-8 resolve守卫
    • 3-9 改造股票管理应用
  • 第4章 Angular-依赖注入

    你将会学习关于依赖注入设计模式的知识以及angular是如何实现依赖注入模式的。angular开发中最重要的问题就是如何开发可重用的组件,而依赖注入则是编写可重用组件的重要技术手段之一。我们将会详细讲解angular的提供器和注入器的相关知识。在新的股票管理应用中,我们会使用依赖注入来解耦组件和服务间的依赖。使组件的重…

    • 4-1 依赖注入内容介绍
    • 4-2 依赖注入的好处
    • 4-3 提供器入门
    • 4-4 使用工厂和值声明提供器
    • 4-5 注入器及其层级关系
    • 4-6 改造项目
  • 第5章 数据绑定,响应式编程和管道

    首先会详细的介绍angular中各种数据绑定的方式,然后会介绍响应式编程的基础知识,在angular中,我们会频繁的使用响应式编程来处理各种异步事件。在这一章中,我们还会介绍如何使用管道来格式化和过滤数据。在这一章的最后,我们会综合运用本章学到的知识,为我们的股票管理项目添加一个过滤功能。…

    • 5-1 整章内容介绍
    • 5-2 事件绑定
    • 5-3 Dom属性绑定
    • 5-4 html属性绑定
    • 5-5 双向绑定
    • 5-6 响应式编程
    • 5-7 管道
    • 5-8 实战
  • 第6章 组件间通讯

    主要是讲如何让组件之间以一种松耦合的方式来彼此通讯,我们会学习组件的输入输出属性,会学习一个新的模式:中间人模式,还会学习组件生命周期的相关知识,包括组件生命周期钩子以及angular的变更检测机制等内容,最后我们会使用本章的知识来开发一个高度可重用的星级评价组件。…

    • 6-1 组件间通讯内容介绍
    • 6-2 输入属性
    • 6-3 输出属性
    • 6-4 中间人模式
    • 6-5 组件生命周期钩子概述
    • 6-6 OnChanges钩子
    • 6-7 变更检测和DoCheck钩子
    • 6-8 view钩子
    • 6-9 ngContent指令
    • 6-10 最后的钩子
    • 6-11 本章实战
    • 6-12 本章小结
  • 第7章 表单处理

    主要介绍在angular中如何处理表单,我们会从最基础的html表单入手,首先我们会讨论纯html表单的不足之处,然后介绍angular的表单处理API是如何弥补这些不足的。我们会详细的介绍angular的两套表单处理API,一套叫做模板式表单,另一套叫做响应式表单,介绍它们各自的特性、优势和需要注意的地方。我们还会详细的学习如何使…

    • 7-1 表单处理内容介绍
    • 7-2 表单简介
    • 7-3 模板式表单
    • 7-4 响应式表单
    • 7-5 响应式表单重构
    • 7-6 表单校验上
    • 7-7 表单校验下
    • 7-8 状态字段
    • 7-9 模板式表单校验
    • 7-10 表单处理实战上
    • 7-11 表单处理实战下
    • 7-12 表单处理小结
  • 第8章 与服务器通讯

    这一章讲解了一个angular客户端应用如何使用http协议和WebSocket协议与服务器进行通讯。首先我们会用nodejs和express框架创建一个简单web服务器。然后我们会介绍angular的Http服务,以及如何使用http服务来与服务通讯并响应式的处理服务器返回的数据。接着我们会进入这门课最难的一部分,我们会详细讲解WebSocket协议的特性…

    • 8-1 与服务器通讯内容介绍
    • 8-2 web服务器
    • 8-3 http通讯
    • 8-4 websocket通讯
    • 8-5 本章实战上
    • 8-6 本章实战下
    • 8-7 本章内容小结
  • 第9章 构建和部署

    我们会学习如何编译typescript写成的项目,将其构建为最终可发布的js代码,并将其发布到我们前一章编写的nodejs服务器上去。我们还会讨论angular的多环境支撑能力,学习如何用一套代码适应开发、测试、生产等多种不同的环境。…

    • 9-1 构建和部署
  • 第10章 课程总结

    取经之路终于完成,这一章我们会回顾整门课中学到的知识,并对后面的进一步学习指出一些方向。

    • 10-1 总结

    感谢来自@akashi_sai 的投稿!!

Google资深工程师深度讲解Go语言

课程目录

  • 第1章 课程介绍

    欢迎大家来到深度讲解Go语言的课堂。本课程将从基本语法讲起,逐渐深入,帮助同学深度理解Go语言面向接口,函数式编程,错误处理,测试,并行计算等元素,并带领大家实现一个分布式爬虫的实战项目。

    • 1-1 课程导读
    • 1-2 安装与环境
  • 第2章 基础语法

    量,常量,类型,选择,循环,函数,指针,本章节带领大家学习一门新语言所需的必备语法知识。让大家对Go语言有一个初步的认识!

    • 2-1 变量定义
    • 2-2 内建变量类型
    • 2-3 常量与枚举
    • 2-4 条件语句
    • 2-5 循环
    • 2-6 函数
    • 2-7 指针
  • 第3章 内建容器

    本章节我们来学习数组,切片,Map和字符串。在Go语言中,我们一般不直接使用数组,而是使用切片来管理线性表结构,它的语法类似python的list,不过更强大哦。当然,Map和字符串的学习也是必不可少。掌握至此,我们就可以写一些简单的算法了,刷刷leetcode不在话下,我们就来试一试。…

    • 3-1 数组
    • 3-2 切片的概念
    • 3-3 切片的操作
    • 3-4 Map
    • 3-5 Map例题
    • 3-6 字符和字符串处理
  • 第4章 面向“对象”

    Go语言没有class,只有struct。我们来看看struct如何使用,Go语言给结构体定义类似方法或者成员函数的做法非常有特色。我们还将学习Go语言的包的概念,以及如何封装,如何扩展已有类型等。我们还将学习GOPATH和Go语言项目的目录结构,如何从网上下载依赖包等一系列项目相关的知识。我们将以“树”的结构和遍历作为贯穿本章…

    • 4-1 结构体和方法
    • 4-2 包和封装
    • 4-3 扩展已有类型
    • 4-4 GOPATH以及目录结构
  • 第5章 面向接口

    这一章我们从duck typing的概念开始学起,还将探讨其他语言中对duck typing的支持,由此引出接口的概念。我们将深入理解Go语言接口的内部实现以及使用接口实现组合的模式。

    • 5-1 duck typing的概念
    • 5-2 接口的定义和实现
    • 5-3 接口的值类型
    • 5-4 接口的组合
    • 5-5 常用系统接口
  • 第6章 函数式编程

    在其他通用语言中,函数式编程是“高级”概念,但对于Go语言却非常基本。本章我们将讲解函数式编程的概念并且比较其他语言函数式编程的实现方法。我们将重点理解闭包。这章中我们将采用多样的例题来帮助大家更好的理解闭包,函数作为一等公民等及其常见概念和应用方法。…

    • 6-1 函数式编程
    • 6-2 函数式编程例一
    • 6-3 函数式编程例二
  • 第7章 错误处理和资源管理

    这将是本课程最“无聊”的一章,但却是区分出优秀软件工程师的关键能力。Go语言独特的defer/panic/recover,以及错误机制,在社区有着广泛的争论。我们来深入理解Go语言的错误处理机制,看看Go语言如何区分错误以及异常。最后,我们实现一个Web应用微型项目,采用商业服务的错误处理思路,结合函数式编程,来演示Go语言错误…

    • 7-1 defer调用
    • 7-2 错误处理概念
    • 7-3 服务器统一出错处理
    • 7-4 panic和recover
    • 7-5 服务器统一出错处理2
  • 第8章 测试与性能调优

    Go语言的测试不同于其他如junit,Go语言采用“表格驱动测试”的理念。我们将学习和体会这样的理念,并用Go语言的测试支持库来实践表格驱动测试,并做代码覆盖和性能检测,通过內建的性能调优工具来优化我们之前的算法。最后演示了对http服务器的多种粒度的测试。…

    • 8-1 测试
    • 8-2 代码覆盖率和性能测试
    • 8-3 使用pprof进行性能调优
    • 8-4 测试http服务器(上)
    • 8-5 测试http服务器(下)
    • 8-6 生成文档和示例代码
    • 8-7 测试总结
  • 第9章 Goroutine

    这一章开始我们进入并发编程。我们讲解Goroutine,协程的概念,以及背后的Go语言调度器。

    • 9-1 goroutine
    • 9-2 go语言的调度器
  • 第10章 Channel

    Channel是Goroutine之间通信的桥梁,它和函数一样是一等公民。在介绍完Channel的语法及运行方式后,我们将采用数个例题来演示Go语言并发编程中最常见的任务极其解决模式。

    • 10-1 channel
    • 10-2 使用Channel等待任务结束
    • 10-3 使用Channel进行树的遍历
    • 10-4 用select进行调度
    • 10-5 传统同步机制
  • 第11章 http及其他标准库

    这里我们简要介绍一下Go语言中非常重要而且封装良好的http标准库,回顾并实现http客户端和服务器。我们还介绍了Go语言中其他的标准库。

    • 11-1 http标准库
    • 11-2 其它标准库
  • 第12章 迷宫的广度优先搜索

    这章我们将综合运用学过的知识实现一个广度优先算法来解迷宫,为接下来的实战项目做好技术和算法上的准备。广度优先算法不仅是面试和工作中常用的技术,而且实现上相比大部分其它算法更为复杂,是检验是否熟练掌握一门语言的经典例题。让我们来试一试吧。…

    • 12-1 迷宫_算法
    • 12-2 迷宫代码实现
  • 第13章 开始实战项目

    至此为止,恭喜同学完成了这门课Go语言部分的学习。接下来我们来进入实战项目。本章将介绍项目的具体内容,课题的选择,技术选型,总体架构,以及实现步骤。

    • 13-1 爬虫项目介绍
    • 13-2 总体算法
  • 第14章 单任务版爬虫

    在考虑性能之前我们首先应该考虑正确性。单任务版爬虫确保我们能够正确爬取我们所需的信息。我们应用了之前练习的广度优先算法,抽象出Parser和Fetcher,学习正则表达式,成功实现并运行单任务版爬虫。

    • 14-1 获得初始页面内容
    • 14-2 正则表达式
    • 14-3 提取城市和url
    • 14-4 单任务版爬虫的架构
    • 14-5 Engine 与 Parser
    • 14-6 测试CityListParser
    • 14-7 城市解析器
    • 14-8 用户信息解析器(上)
    • 14-9 用户信息解析器(下)
    • 14-10 单任务版爬虫性能
  • 第15章 并发版爬虫

    为了提升爬虫性能,我们抽象出Worker的概念,并添加调度器,实现并发版爬虫。我们应用接口的概念,完成了由简至复杂的多个调度器的实现。同学可以在实战项目中更真实的体会并学习Go语言并发编程的多种模式。

    • 15-1 并发版爬虫架构
    • 15-2 简单调度器
    • 15-3 并发调度器
    • 15-4 队列实现调度器
    • 15-5 重构和总结
    • 15-6 更多城市
    • 15-7 更多用户与去重
  • 第16章 数据存储和展示

    是时候检验我们项目的成果了。我们将采用Docker+ElasticSearch来存储我们爬取的信息。在简单了解Docker和ElasticSearch后,我们将使用ElasticSearch的Go语言客户端将爬取数据写入。之后我们使用Go语言的模板引擎迅速实现前端网页展示。至此,我们已经可以尝试自己喜欢的搜索条件去查看数据啦。…

    • 16-1 ItemSaver的架构
    • 16-2 Docker和ElasticSearch介绍
    • 16-3 Docker的安装和使用
    • 16-4 ElasticSearch入门
    • 16-5 向ElasticSearch存储数据
    • 16-6 完整爬虫的运行与数据存储
    • 16-7 添加URL与ID
    • 16-8 重构与运行
    • 16-9 标准模板库介绍
    • 16-10 实现前端展示页面
    • 16-11 完善前端展示
  • 第17章 分布式爬虫

    本章在简要介绍分布式概念后,将我们的并发爬虫改写成分布式。我们在很少改动的情况下,加入jsonrpc客户/服务端,实现并部署分布式爬虫。最后探讨实战项目的更多改进方案。

    • 17-1 分布式系统简介
    • 17-2 分布式爬虫架构
    • 17-3 jsonrpc的使用
    • 17-4 ItemSaver服务
    • 17-5 整合ItemSaver服务
    • 17-6 解析器的序列化
    • 17-7 实现爬虫服务
    • 17-8 完整分布式爬虫的运行
    • 17-9 使用连接池链接爬虫集群
    • 17-10 实战项目总结
    • 17-11 进一步的工作
  • 第18章 课程总结

    感谢同学们学到这里,恭喜同学们给自己的技术栈加上了非常重要的Go语言技能。希望同学们带着这门课上学到的知识,更好的参与到项目中去,共同推动Go语言的发展。

    • 18-1 体会Go语言的设计
    • 18-2 课程总结

    感谢来自@akashi_sai 的投稿!!

React16+React-Router4 从零打造企业级电商后台管理系统

课程简介:

React16+React-Router4 从零打造企业级电商后台管理系统
课程针对有一些前端基础,但对前端框架还不够了解,不能灵活使用的同学,手把手带你用React+React-Router从技术选型开始,直至部署上线,开发一个后台管理系统,让你在实际开发中,打开前端框架的大门,告别小白时代!

适合人群及技术储备要求
如果你掌握了前端基础知识,有了一些前端开发经验,但对前端框架的使用还不太了解或接触不深,那这门课正是你需要的,尤其是对React感兴趣的同学,这门课将让你达到熟练使用React的程度

学前必备技术
有JS、HTML、CSS基础,了解Nodejs和Webpack打包工具或者完成了《手把手从0打造电商平台-前端开发》课程的学习

[code]官方课程链接:https://coding.imooc.com/class/179.html[/code]

课程目录:

第1章 课程介绍
本章整体介绍该课程的内容,让同学们了解这个课程的特点和学习方法,以及后台管理系统开发前的一些前置工作,如需求分析、技术选型和数据接口等。
1-1 课程导学
1-2 后台管理系统的需求分析和技术选型
1-3 数据接口定义

第2章 课前知识储备
本章介绍一些后面课程要用到的一些基础知识,为后面的开发打下基础,包括页面加载过程、ES6基础和本地存储相关的知识。
2-1 课前知识储备
2-2 页面加载过程
2-3 ES6基础(1)
2-4 ES6基础(2)
2-5 本地存储
2-6 总结

第3章 前端框架的分析
本章介绍前端框架的共性和应用场景,分析前端加载原理,并对单页和多页应用,框架和原生开发,三大主流框架之间做详细的对比。
3-1 前端框架分析
3-2 前端框架要解决的问题
3-3 三大框架对比
3-4 总结

第4章 开发环境的搭建
搭建项目依赖的开发环境,包括nodejs的安装,yarn的使用,webpack的配置,sass环境的配置以及打包工具webpack的配置方法。
4-1 开发环境的搭建
4-2 git的安装和项目的建立
4-3 nodejs和yarn的安装
4-4 Webpack配置(1)
4-5 Webpack配置(2)
4-6 代码提交

第5章 React框架
系统的介绍React的知识,基础部分通过代码的形式让大家加深理解。此外还有react周边的知识,比如路由工具React-Router,还有React中的几种数据处理方式。
5-1 React框架基础
5-2 初识React
5-3 深入了解React(了解JSX语法)
5-4 深入了解React(React组件)
5-5 深入了解React(生命周期)
5-6 Router原理及React-router
5-7 React数据管理
5-8 总结

第6章 通用部分的开发
本章搭建项目的通用部分,把可以抽离出来的内容用组件的形式组织起来,为业务开发打下基础。
6-1 通用部分的开发
6-2 通用布局的开发(1)
6-3 通用布局的开发(2)
6-4 头部导航的开发
6-5 侧边导航的开发
6-6 通用页面标题的开发
6-7 代码的提交和总结

第7章 基础功能模块的开发
基础功能模块的包含了系统里作为辅助的页面,包括用户的登录退出。用户列表,以及首页和错误页这些基本的页面,零散但不可或缺。这一章会讲到用户登录原理相关的知识
7-1 基础功能模块的开发
7-2 登录页面的开发(1)
7-3 登录页面的开发(2)
7-4 登录页面的开发(3)
7-5 登录状态管理
7-6 首页的开发
7-7 错误页面的开发
7-8 用户列表的开发(1)
7-9 用户列表的开发(2)
7-10 代码提交及总结

第8章 商品模块的开发
本章完成商品模块的开发,包括商品的列表、商品的添加编辑和商品详情,在这一章里会了解到jquery插件改造成react插件的方法
8-1 商品模块的开发
8-2 商品列表的开发(1)
8-3 商品列表的开发(2)
8-4 商品列表的开发(3)
8-5 商品列表的开发(4)
8-6 添加商品页面的开发(1)
8-7 添加商品页面的开发(2)
8-8 添加商品页面的开发(3)
8-9 添加商品页面的开发(4)
8-10 添加商品页面的开发(5)
8-11 添加商品页面的开发(6)
8-12 编辑商品页面的开发
8-13 商品详情页的开发
8-14 代码提交和总结

第9章 品类模块的开发
本章完成对品类模块的开发,包括品类列表,增加品类和修改品类名称等功能。这一块重点内容是对生命周期的运用,加深对生命周期的理解。
9-1 品类模块的开发
9-2 品类列表页的开发
9-3 添加品类页面的开发
9-4 代码的提交和总结

第10章 订单模块的开发
本章完成订单模块的开发,包括订单列表和订单详情,这时候应该对React开发比较熟悉了,这一章我们会快速的完成这个业务功能,来体会这种框架开发真正的效率体现。
10-1 订单模块的开发
10-2 订单列表的开发
10-3 订单详情的开发
10-4 代码提交及总结

第11章 后台管理系统的上线
本章我们将会把代码发布到线上服务器,让同学们可以在外网访问。这一章主要内容就是代码的适配,代码的自动化发布,Nginx的配置和域名的解析等内容。让前端工程师也可以做发布,
11-1 项目上线过程
11-2 代码的上线前准备
11-3 生产环境的配置
11-4 代码发布过程
11-5 nginx和域名的配置
11-6 代码提交及总结

第12章 课程总结
总结本次课程的主要内容,对支持的同学表示感谢!
12-1 总结

课程截图:


感谢来自@akashi_sai 的投稿!!

Vue 2.0实战高级-开发移动端音乐Web APP

课程简介:

全网稀缺Vue 2.0高级实战 独立开发专属音乐WebAPP
目前市面上还没有一个Vue 2.0 的高级教学,都是一些基础的入门课程,你很难找到一个基于Vue.js的复杂应用的教学, 但是,我们为你准备了这门独一无二的Vue 2.0 高级实战课程

学前必看
本课程是Vue.js高级实战课程,对您的学习能力及基础都有很高要求,请务必符合以下技术储备要求, 否则强烈建议您先从《Vue.js高仿饿了么外卖App》这门难度等级稍低的课程开始学习

技术储备要求
1、精通HTML、 CSS和JavaScript编程
2、有了一定Vue.js 基础和Vue.js的实际开发经验
3、已经具备Node.js、npm和webpack的使用经验

[code]官方课程链接:https://coding.imooc.com/class/107.html[/code]

课程目录:

第1章 课程内容介绍
包括课程概述、课程安排、学习前提、讲授方式等方面的介绍,最后演示了整个音乐App的功能,让同学们对课程项目有一个直观的了解。
1-1 导学
1-2 课前必读(源码获取方式)

第2章 项目准备工作
包括项目需求分析、脚手架初始化代码、项目目录介绍及图标字体、公共样式等资源的准备 。
2-1 需求分析
2-2 Vue-cli脚手架安装
2-3 项目目录介绍及图标字体、公共样式等资源准备

第3章 页面骨架开发
包括页面入口、header 组件的编写、路由配置及顶导 tab 组件开发。
3-1 页面入口+header 组件的编写
3-2 路由配置+ tab 顶导组件开发

第4章 推荐页面开发
包括 jsonp 原理介绍和 Promise 封装、轮播图组件开发、歌单接口数据分析和抓取、axios 介绍和后端接口代理、歌单列表组件开发和数据应用、scroll 组件的抽象和应用、vue-lazyloader 懒加载插件的介绍和应用、loading 基础组件开发和应用。…
4-1 页面简介+轮播图数据分析
4-2 jsonp原理介绍+Promise封装
4-3 jsonp的应用+轮播图数据抓取
4-4 轮播图组件实现(上)
4-5 轮播图组件实现(中)
4-6 轮播图组件实现(下)
4-7 歌单数据接口分析
4-8 axios 介绍和后端接口代理
4-9 歌单列表组件开发和数据的应用
4-10 scroll 组件的抽象和应用(上)
4-11 scroll 组件的抽象和应用(下)
4-12 vue-lazyload 懒加载插件介绍和应用
4-13 loading 基础组件的开发和应用

第5章 歌手页面开发
包括歌手数据的抓取和处理、Singer 类的封装、类通讯录组件 listview开发和应用。
5-1 歌手页面布局和设计讲解
5-2 歌手数据接口抓取
5-3 歌手数据处理和 Singer 类的封装
5-4 listview 基础组件的开发和应用-滚动列表实现
5-5 listview 基础组件的开发和应用-右侧快速入口实现(1)
5-6 listview 基础组件的开发和应用-右侧快速入口实现(2)
5-7 listview 基础组件的开发和应用-右侧快速入口实现(3)
5-8 listview 基础组件的开发和应用-右侧快速入口实现(4)
5-9 listview 基础组件的开发和应用-滚动固定标题实现(上)
5-10 listview 基础组件的开发和应用-滚动固定标题实现(下)

第6章 歌手详情页开发
包括子路由的配置及转场动画实现、Vuex 的介绍、Vuex 初始化歌手数据的配置、歌手详情页数据抓取和处理、Song 类的封装、music-list 组件开发。
6-1 歌手详情页布局和设计详解
6-2 子路由配置以及转场动画实现
6-3 初识 Vuex
6-4 Vuex 初始化及歌手数据的配置
6-5 歌手详情数据抓取
6-6 歌手详情数据处理和Song类的封装(上)
6-7 歌手详情数据处理和Song类的封装(下)
6-8 music-list 组件开发(1)
6-9 music-list 组件开发(2)
6-10 music-list 组件开发(3)
6-11 music-list 组件开发(4)
6-12 music-list 组件开发(5)
6-13 music-list 组件开发(6)
6-14 music-list 组件开发(7)

第7章 播放器内置组件开发
包括播放器 Vuex 数据设计和相关应用、播放器基础样式及歌曲数据应用、 播放器展开收起动画的实现、播放器前进后退功能实现、播放器播放时间获取和更新、progress-bar 进度条组件开发、progress-circle 圆形进度条组件开发、播放器模式切换功能实现、播放器歌词数据抓取和解析、播放器歌词左右滑动的实现、播放器底部播…
7-1 播放器页面设计详解
7-2 播放器Vuex数据设计
7-3 播放器Vuex的相关应用
7-4 播放器基础样式及歌曲数据的应用
7-5 播放器展开收起动画(上)
7-6 播放器展开收起动画(中)
7-7 播放器展开收起动画(下)
7-8 播放器歌曲播放功能实现
7-9 播放器歌曲前进后退功能实现(上)
7-10 播放器歌曲前进后退功能实现(下)
7-11 播放器播放时间获取和更新
7-12 播放器progress-bar进度条组件实现(上)
7-13 播放器progress-bar进度条组件实现(中)
7-14 播放器progress-bar进度条组件实现(下)
7-15 播放器progress-circle 圆形进度条组件实现
7-16 播放器模式切换功能实现(上)
7-17 播放器模式切换功能实现(中)
7-18 播放器模式切换功能实现(下)
7-19 播放器歌词数据抓取
7-20 播放器歌词数据解析
7-21 播放器歌词滚动列表实现
7-22 播放器歌词左右滑动实现(上)
7-23 播放器歌词左右滑动实现(下)
7-24 播放器歌词剩余功能实现
7-25 播放器底部播放器适配+mixin的应用

第8章 歌单页面开发
包括歌单页面的布局介绍、Vuex 实现路由数据通讯、歌单详情页数据抓取和处理。
8-1 歌单详情页布局介绍及Vuex实现路由数据通讯
8-2 歌单详情页数据抓取
8-3 歌单详情页数据的处理和应用

第9章 排行榜及详情页开发
包括排行榜布局介绍、排行榜数据抓取和应用、榜单详情页布局介绍、Vuex 实现路由数据通讯、榜单详情页数据抓取和应用。
9-1 排行页面布局介绍及排行榜数据抓取
9-2 排行页排行榜数据应用
9-3 榜单详情页布局介绍及Vuex实现路由数据通讯
9-4 榜单详情页数据抓取和应用
9-5 带排行的song-list组件扩展和应用

第10章 搜索页面开发
包括search-box 组件开发、热门搜索数据抓取和应用、suggest 组件开发、搜索结果保存功能实现、search-list 组件开发、confirm 组件开发。
10-1 搜索页面页面布局和功能介绍
10-2 搜索页面search-box组件开发
10-3 搜索页面热门搜索数据抓取和应用
10-4 搜索页面suggest组件开发(1)
10-5 搜索页面suggest组件开发(2)
10-6 搜索页面suggest组件开发(3)
10-7 搜索页面suggest组件开发(4)
10-8 搜索页面suggest组件开发(5)
10-9 搜索页面suggest组件开发(6)
10-10 搜索页面suggest组件开发(7)
10-11 搜索页面搜索结果保存功能实现(1)
10-12 搜索页面搜索结果保存功能实现(2)
10-13 搜索页面搜索结果保存功能实现(3)
10-14 搜索页面search-list 组件功能实现(上)
10-15 搜索页面search-list 组件功能实现(下)
10-16 搜索页面confirm 组件功能实现
10-17 搜索页面剩余功能实现(上)
10-18 搜索页面剩余功能实现(下)

第11章 歌曲列表组件
包括歌曲列表组件的显示和隐藏控制、播放列表的实现、player mixin 的抽象、 add-song 组件开发、top-list 组件开发、scroll 组件能力的扩展
11-1 歌曲列表组件布局和功能介绍
11-2 歌曲列表组件显示和隐藏的控制
11-3 歌曲列表组件播放列表的实现(1)
11-4 歌曲列表组件播放列表的实现(2)
11-5 歌曲列表组件播放列表的实现(3)
11-6 歌曲列表组件播放列表的实现(4)
11-7 歌曲列表组件播放列表的实现(5)
11-8 歌曲列表组件 playerMixin的抽象(上)
11-9 歌曲列表组件 playerMixin的抽象(下)
11-10 歌曲列表组件add-song组件实现(1)
11-11 歌曲列表组件add-song组件实现(2)
11-12 歌曲列表组件add-song组件实现(3)
11-13 歌曲列表组件add-song组件实现(4)
11-14 歌曲列表组件add-song组件实现(5)
11-15 歌曲列表组件add-song组件实现(6)
11-16 歌曲列表组件top-list组件实现
11-17 歌曲列表组件scroll组件能力的扩展

第12章 用户中心页面
包括收藏列表的 Vuex 数据设计与实现、收藏歌曲功能实现、页面功能开发。
12-1 用户中心页面布局和功能介绍
12-2 用户中心页面收藏列表的Vuex数据设计和实现
12-3 用户中心页面收藏歌曲功能实现(上)
12-4 用户中心页面收藏歌曲功能实现(下)
12-5 用户中心页面剩余功能实现(上)
12-6 用户中心页面剩余功能实现(下)

第13章 编译打包
包括播放内核小 bug 修复、项目编译打包及 node 服务调试、路由组件实现懒加载、Vue.js 升级到最新版。
13-1 编译打包-播放内核小bug修复
13-2 编译打包-项目编译打包及node服务测试
13-3 编译打包-路由组件实现懒加载
13-4 编译打包-Vue.js升级到最新版

第14章 课程总结
包括移动端常用工具 charles 和 vconsole 的介绍、课程回顾。
14-1 移动端调试工具和抓包工具介绍(上)
14-2 移动端调试工具和抓包工具介绍(下)
14-3 课程总结

课程截图:


感谢来自@akashi_sai 的投稿!!