Overview|学习笔记

简介: 快速学习Overview

开发者学堂课程【高校精品课-上海交通大学 -互联网应用开发技术Overview】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/76/detail/15736


Overview

互联网应用开发技术以前叫 web 应用开发,主要讲这个外用的开发技术。

主要有前端和后端,前端以 javascript 来讲。后端的用 Java 来开发,前端的javascript 或者是后端的 Java,都不希望从零开始去构建一个应用,我们会讲一些框架的使用方法,前端主要是有两个,一个是 react 和 Vue,如果大家已经在开发系统上面登录过,你应该能看到前面几次课的内容已经全部放出来了,那么像 react 和Vue,我们已经把内容放上去了,而且我做了一些例子,当然你们再拿下来,在本地需要重新建一个工程,然后把源码导进去,因为这两个应框架里面,它会下载一些像这个 note 的一些这个模块,那些模块如果要全打包的话,每一个都会都会有几百兆,不太适合传到网上,里面一门课只有1G的空间。

后台用的是 Java 的企业版,大家比较熟悉的像 happiness 或者是框架来开发,当然还需要一个数据库。

通过这门课的这个讲解,希望大家就是对 web 开发初步就入门,我在网站上面已经放了这门课的一个要求,就是我们需要开发一个在线的电子书店,然后我们希望以四次迭代的方式来进行验收,就是我们每隔几周有一次迭代,要求你做到一定的程度,然后按往常的规划,我们需要当面答辩的。每一次迭代提交的时候,我们会安排你到实验室或者是办公室来,你要一个一个人当面的验收答辩,但是今年情况可是我估计前面的至少第一次迭代我们可能需要在网上举行,那具体的迭代内容大家可以去看在系统里面的那个要求,这个课程这个系统,你进来之后应该能够看到我放上去的这个课程大纲,然后前面的几页,就是我放这节课的内容,刚才我说的像这个前端的 react 和 Vue 的框架我已经放上去了。

我们开发出来的东西是个什么样子的?这是这个的后端系统的报价,然后将来抛下应该还有一个前端,前端就是我们看到的 rap 或者 VIVO 框架来写这个我已经把她抛下了,后端应该是个 Java 系统,那一个我把它放到了拍成这个,另外一个放到了那个代办不了开发工具了,然后就让他俩分别跑起来,跑起来之后大家看到的样子就是这个样子。我们先看一下。我先把它关掉,大家重新看一下,因为还有登录的页面。

这是一个登录的页面,登录进去之后能看到这个首页,我为什么要去说演示一下这个登录?

我们可以看一下随便点开一本书这个详情,看到一个链接,把这个链接拷过来,再另外一个浏览器里面。我去输入一下,按道理他应该跳到这一页,但是我们做了一个用户认证的一个检查,可以看到他会导致它显示登录失败,我把你重新把捞页面上重新log in。

所以大致上是这样的一个系统,那么我只展示了,就是说我们看到突出的浏览上面有个这样的一个走马灯,比较有每一本书打开以后会看到它的详情,刚才的登录,登录如果说你没有登陆过,想直接跳到某一页的话是看不到的,我们大致上就是要做这样的一个系统。

这个系统我说一下我们的要求,就是我昨天同学在问几次迭代什么意思,那这个作业的要求实际上我算到了这个。

Cos 里头就是这个 PDF 文件,大家可以看到,我在这儿稍微解释一下,我们希望你开发一个密不可分的这样的一个系统,这个系统我们列了一些功能,那这些功能合起来会有20分,详细我解释一下,就是我们希望一个管理员用户的身份,可以管理用户,比如说他禁用,或者是让这个用户使用,然后就是要有动用户的登录注册,然后管理员或者是这个用户进来以后,当然能够去浏览这些书籍,然后购买书籍,就是大家刚才看到了,把它放到购物车里,然后要去下订单。我们管理员还可以对订单进行统计,销量的一些这样的统计,那么这是详细的功能。

技术要求就是说前端应该用 reatct 框架或者 Vue 框架,应该使用 WebPack 打包工具来进行管理的。还希望做移动前端,以及微信小程序或者移动手机端小程序,需要React 框架、Flutter 架构或者类似架构开发的移动端应用,后端呢就是用 Spring 这样的框架,当然有些同学可能不是全站使用 spring 的,可用 spring 加 habit ATS 或者是这样的框架来实现。

后端同样也需要有Maven这样的工具包来打包,开发工具可以用 intelli ,这个 eclipse 它使用的时候就是有些同学觉得不容易,这方面所全部迁移过来,当然你前端也可以向我这里给大家演示的,前端在里跑,后端在 intellIgEnt 这里面跑,两个工具你都可以使用,但实际上这是外包的一个,相当于一个包,你看这里面去跑也可以。另外就是要数据库,数据库有 MySQL 数据库做关系型数据库,另外希望用到 MonggoDB 支付网购的,所以这样的一个技术站下来,大家可以看到,实际上内容会非常的多,所以我们课程里面要求你动手要非常多,调程序可能有时候把它调疯掉。

评分的标准是这样的,四次迭代总共占65分,四次迭代,第一次需要大家提交一个,比如说主要是由静态页面以及这个前端的这种框架,开发的这样一个网站,它主要实际上就是没有后台,所有的数据在前端写死,你能把它展示出来,主要考察的前端框架的使用能力。那这个不需要把整体的网站全部开发完,你至少需要这种页面的这个数据浏览的功能需要那种框架给搭起来。第二次迭代的时候需要把后台装上,那么我们要求就是要应用框架的开发,这样会比较简单,要求你要用到比如说这种对象关系映射以及这种依赖注入框架,然后用前端后端这样的方式进行沟通,把后端配上给他完成,第三次迭代就是我们把重点放在前端的开发上,就是微信和手机的前端应用,就是不是在浏览器里,不是在pc上的客户端开发上,另外要把 notes 的数据库给他加上。

web 基本的这个概念开始,所以我们要去讲 web 的的构成,包括他最基础的这种HTTP 协议,它是怎么去工作?然后要去从前端开始,首先是最基础的静态的页面, H5和 HCS3,然后我们讲这些东西,他实际上这是基础。

我们前端实际上是要跑一个框架,这个框架基本上都是用 javascript 来写的,咱们讲讲这种 javascript 的一些基本的东西,然后进入到 react 和这个 VIVO 的框架去开发。

那这几天我在做 react Vue 的这个课件。以及大家看到的那个我在网站上放上去的那个一些实例。我结果发现实际上要讲的东西比较多,就有可能 react 和 Vue 这块儿在讲的时候,可能会比现在列的这个课时数会多一些。那总的来说,我们会动态去调整,就是后面有一些内容,如果实在来不及讲,我们宁可把前面的时间拖长,让讲的详细一些,让大家尽量去掌握理解后面内容我们可以未来放到大三里面比较好。

那前端在 react 和 Vue 开发出来,也就是说你会在前端绑死的数据的基础上去呈现这个页面,然后去把数据展示出来之后,用户在上面可以做一些简单的交互,比如说排序,在前端的搜索这样的一些动作之后,后面我们就要考虑前后都要连接,那么前后端连接是我们的后端,刚才说了是用 Java 来开发的,我们先讲讲 Java,当然 Java 对大家可能会是一个新的语言,因为大家在大一学程序设计的,可能很多同学是C加加或者 Python,所以我会用一节课一个三节课的时间去给大家讲一讲 Java 的一些基础知识。

然后讲一讲面向对象的一些东西。在这里会去讨论一下。然后我们就进入到 Java 的后端的开发,先来讲你前端发过来的请求,后端是如何进行处理的,然后后端再处理后,实际上所有的内容都在数据库里,所以我们会去讲讲你是怎么去访问这个数据库。然后访问数据库的时候,原生的访问数据库的方法会显得非常的累,那么我们都用了一些框架来解决问题,于是我们要去讲这种R映射的框架,也就是对象关系映射的,比如像 spring 的这些,或者是 happen 。有了这些东西之后,你会访问数据库比较容易。然后,我们要把房子到数据库内容给他推到前端去,于是就讲一下 json 和Ajax。

这次所以我没有看到在讲完后端开发之后,我又回头又去做了一次前端开发的一个介绍,就讲 AJax 和 Jason,至此你前后端就可以通了,然后我们后端需要进一步的去进行优化,所以我们去讲讲后端的这个分层架构,包括一些面向对象设计的一些原理,相接口和实现分离,这些东西它到底应该怎么去实现。

然后后端为了让程序变得可维护性会更好,我们会去讲一讲的一些像依赖注入这样的一些功能。然后我们把所有的工程给他整合一下,后端的所有的框架去整合一下,那么它大致是什么样子的?

然后我们要去在讨论的就是说这学期大家在同步的上,数据库系统,实际上是以关系型数据库为主来讲,但是我们现在看到的很多已经不是关系型数据库,那他用的是notes 的数据库,那么我们也去讲一讲 notes 数据库的应用,以 Mo DB 为例子来讲,希望大家也能用到这个系统里面去。

然后我们再调转枪口,再回到这个前端开发,去讲讲微信小程序的开发,以及移动端的开发。那么移动端的开发呢,因为我们不想引入更多的语言,导致大家会觉得很累,因为比如说你在 iOS 上我可以用 C 去开发,那我们为了简化期间,我们用javascript 框架去开发,比如说像弗拉克,当然到底是不是用 flutter,未来我们可以看,因为还有像这样的 react native 的框架可以去用,到时候我们还可以根据实际的情况去选一个给大家来讲一讲。

所以我们看到的后端也要用框架,然后我们把前后端集成起来,去谈一谈整个前后端的通信里面碰到的若干问题应该怎么去解决。你比如说我们现在看到的都是把数据给他从前端去发请求,后端响应请求推到前端,那如果要是说后端想把数据主动推出来该怎么办?

我们要讨论一下这个通信的问题,另外就是所有的都是请求响应,请求响应的模式能不能改成异步通信?

这是我们要去讨论的问题,再往后,因为我了解到,本来在这个学期,原来我们同步的上有一门课,软件工程概论但是推到了后头,那么这时候带来一个比较大的问题,就是当你再讲快乐里面它会长到面向对象的设计,以及像设计模式这些东西,所以我在前头会把这个课补上,所以我们下来我们讲一讲设计模式相关的东西,会拿Java的例子来给。

然后往后我们会谈到一些异步通信的问题,像推送的问题,像事务管理和多线程并发等等,那这些呢,就属于刚才我说的这个最后一次阶段,我们希望能够实现的。像这种系统开发进阶的问题,刚才谈到了就是前面有一些课程的内容。

在讲的时候可能会比预想的要长一些,因为内容比较多,那如果来不及向后面的一些功能,我们的一些课程里面谈到的功能,让这个事物管理,多线程和并发编程这些东西。

那底下那是这个分布式缓存,以及最后去讲到外服务,那我们按照这个大纲的顺序讲,如果在讲的过程当中,比如说我们在讲前端的应用开发的时候,如果大家碰到很多问题,那么我们延长课时的话,那后面的内容就往后推,这是我们上课涉及到的一些问题。那按照要求课程的内容会放到canvas上面,就是卡斯的这个链接,然后会给大家一个参考文件,让大家去看。

Lucifer:

今天的讲课内容讲,然后其实主要是要让大家来来这个熟悉这个 zoom 这个环境,那我刚才谈到了,就是 zoom 里面,这个操作系统没有做任何约定,这个比如说我现在机器的话,可以看到就是麦克环境,你用 Windows 也可以,用 Linux 也可以,我刚才说到这些所有的工具,你在这两个上面都可以就好。所以我们对操作系统没有什么要求。

我的理解 react 和 vue 是两个功能比较相似的框架,然后我们两个都要学吗?

是这样的,因为我不清楚大家用什么,我往常里面只讲 react,但是最后交作业的时候发现大家都用的是 Vue,我在底下已经把 vue 的东西做好放上去了,但是我放了三个例子。第一个只是让大家去学习的,全是静态页面,你可以看到里面跑。第二个是和 react 类似的,React 里面有一个类似图书浏览的一个例子,在 vue 里面我也做了一个用 vue 的别人做好的一个叫做动态表格的一个框架,也可以来做一个表格的浏览、搜索等等功能,基本上类似。另外就是还做了一个 rock 路由的一个例子,这些大家可以下来去看那具体是哪一个,我们不做限制,你两个都可以用。

作业千万不要把系统帮你安装的东西一起打包文件,大家看到说你去把你写东西打包一下就可以了,不要把系统的东西打包给你提供的一样把系统安装东西打包,如果一打包那个文件就好几百兆了。所以这里面大家看到的例子里面都没有,都没有系统打包进来东西,所以你在你最好是开一个新工程,把相应的那个文件,按照这个压缩包里的那个结构放到这个工程里面去。

我们往常上这个课的时候最常碰到的不是这个代码本身怎么写,而全部是出在了环境上说的东西的时候,我把这个装好了,为什么使用访问不到我前端,这个为什么老是编译都通不过,没有报程序代码本身的错,就是说我进来之后看到这里没有一个红叉,但是跑起来,跑起来实际上很多东西都是因为环境的问题,你直接问我或者问助教,在很大程度上我们也不是马上能帮你看出来的,浪费很多时间不一定能看出来,就像昨天晚上,实际上我只是多打一个斜杠,这个问题非常的细小,不太容易被看到,因为它爆出来的错不会报到这,他也不报什么措施,所以当时调了很久,所以我想说的就是说,大家可能在碰到问题的时候,你可能要借助百度去搜一搜,可能会比直接我们还要更快一些。

本来我想让助教给大家把所有的环境安装好,做一个虚拟机镜像出来,但是助教做一个出来之后,有8.9G 根本没有办法给大家,所以这个方法不可行,大家还需要在家上去安装三个环节。

相关文章
|
3月前
|
存储 网络协议 Linux
Overview of Concepts
Overview of Concepts
44 1
|
存储 SQL Cloud Native
GalaxyEngine Overview
PolarDB-X 是由阿里巴巴自主研发的云原生分布式数据库,融合了分布式 SQL 引擎 GalaxySQL 和分布式存储引擎 GalaxyEngine,其中 GalaxyEngine 是新一代面向分布式场景的 MySQL 发行版本,作为官方 MySQL 版本的一个分支,除了吸收和跟进官方版本的持续改进以外,尤其在分布式场景下,实现了 Lizard 分布式事务和全局一致性解决方案、 Galaxy X-Protocol 交互协议 pipeline request、 X-Engine 存储引擎、 Galaxy X-Paxos Cluster 保证数据零丢失并持续可用,以及共享的 RDS MySQL
1200 0
GalaxyEngine Overview
|
机器学习/深度学习 存储 缓存
Overview|学习笔记
快速学习 Overview
167 0
Overview|学习笔记
|
机器学习/深度学习 运维 算法
an introduction|学习笔记
快速学习 an introduction
an introduction|学习笔记
|
Java BI 开发框架
pentaho Report Designer 入门教程(二)
       采用Pentaho Report Designer5.1版本,也是最新的版本。 一、       安装和介绍 介绍部分内容略,首先安装jdk,并配置java相关环境变量,下载pentaho report并解压,直接运行即可。 二、       第一个示例 三、在Swing程序中集成 示例程序主要有三个部分,程序目录如下图:
3551 0
|
SQL XML 人工智能
Hands-on data analysis 第一章
Hands-on data analysis 第一章
139 0
|
存储 数据采集 Prometheus
Prometheus - Introduction
云原生监控方案 Prometheus 的历史发展介绍
210 0
Prometheus - Introduction
|
存储 数据库 索引
数据分区------《Designing Data-Intensive Applications》读书笔记9
进入到第六章了,我们要开始聊聊分布式系统之中的核心问题:数据分区。分布式系统通常是通过大规模的数据节点来处理单机没有办法处理的海量数据集,因此,可以将一个大型数据集可以分布在多个磁盘上,查询负载可以分布在多个处理器上。
1347 0