2018-04-16 JS进阶第6讲笔记

哈哈,12分钟的时候,老师出场了,又说到了格式衬衫的事情。万年不变的程序员梗。

1、闲聊:老师表示有一天闲聊,表示程序原有一半的人都是穿格式衬衫的。
2、输入-> 处理-> 输出
  • Express是什么东西?也就是request -> 处理 -> response 。核心是使用Express的中间件。Express没有什么花哨的东西,主要是针对细节进行学习。

  • 老师表示家树问了老师一个特别好的问题,他给出的答案是让家树,参考老师的例子解决。

  • API(application interface):真正意义由两层的意思,我调用它,它可以给出我一个结果。作者自己、服务的个体,端来区别。
    例如:一个webapp 是 3 个共同开发的。那么三个人对应的角色是不一样的。对于个体而言:每个功能相当于一个函数,开放接口,拱别人使用。站在服务的角度:webapp需要使用到一些DB(数据服务),这种的通信方式是服务之间的通信。端与端之间的角度:比如客户端与服务端之前的通信。VUE前端与WebApp的通信是通过http的请求来完成的。

  • 还有一件事情比较重要。服务端开放的都是一些接口,讨论程序的健壮性的时候,实际上考虑的是服务端。安全性和健壮性是做服务端需要考虑的。那么此刻就有一个问题。老师在群里和大家讨论过一个问题:因为玉飞改了老师的代码,老师就说了一句话,你会后悔的。老师的代码写在那里的时候,是需要对于入库的数据,进行一个数据的合格性的校验,然后判断合格之后,才可以进行数据库的数据写入。

  • 客户端发送给服务端的数据时,服务端接收到后,需要对于数据做一个检查。

3、学习MongoDB
  • Express可以用很多的数据库,不仅仅是MongoDB。可以在dash里面看一下。但是老师表示MongoDB是相对Express比较好的。

  • 重新复习一下Express,Express不仅仅有自己的库,还提供了一些在终端操作的一些指定库。这些指令库,可以创建一些脚手架。如果没有指定库的话,可以使用标准的库来进行处理。

  • MongoDB 也是一样。MongoDB Server 是为了24小时跑运行,还有一个MongoDB Client,操作集合。MongoDB官方提供的操作集合,相对来讲就不是非常的好操作。程序员们搞了一个mongoose,对于MongoDB来进行了封装。那有没有对于MongoDB的Client,老师表示当然有。客户端安装以后,就可以在客户端进行操作。有免费和付费的客户端。

  • 正常的情况下,没有官方是没有Client端,所以提供了一些终端的操作集合。老师演示一下mongoDB Server。服务端启动非常的简单。

    自己操作的时候,本地好像没有按照mongodb,导致无法正常的启动,客户端与服务器端。

  • 尽管没有操作成功,但是还是需要理解客户端与服务端的数据交互的问题。

4、看代码
  • Schema 是一个抽象起来的东西,相当于实例。描述的是数据库中的一张表。MongoDB在构建表的时候,有一个模式。当需要对于表的字段进行拓展的时候,只要去伸缩其中的内容即可。

  • 有一个特别重点的问题,mysql如果想要添加一个字段的时候,写一个建表的语句。MongoDB是一个弹性的数据库,他根本不care数据库里面是什么?自动的检索,自动的增加表字段。MongoDB是文档型的,可伸缩的一个数据库,这一点做的非常的牛逼。这也就是为什么老是带大家用MongoDB的数据库。

  • 站在数据库的角度对于数据做一个限制。还有默认值的设置。


    2018-04-16 JS进阶第6讲笔记_第1张图片
    mongdb的好处
  • 为什么mongdb可以在我对于数据库的表字段增加或者是减少的时候,可以弹性的改变表结构。我们脸上mongdb的数据库之后,需要重新进行表的初始化,只要在这个基础上,才能做到弹性的伸缩。需要停机,重新进行运行。重启的目的是让以下的代码,重新的执行一遍。
2018-04-16 JS进阶第6讲笔记_第2张图片
表结构可以改变的关键
  • MongoDB的操作指令,自己可以写一篇使用的操作指令,写终端指令的时候,就游刃有余了。
    数据库学习就两个方向:一个是代码操作数据库,一个是指令操作数据库。


    2018-04-16 JS进阶第6讲笔记_第3张图片
    mongodb的指令
  • sample-4 的例子来讲一个问题:为什么以下的指令是下面的这个样子的,老师表示这个问题没有人问出来。


    为什么是这样的操作指令

这个操作的指令 DEBUG=first-app:* npm start,吊起来了,DEBUG的模式。还需要关注Express官网开源的这些项目,需要关注这些中间件都是干嘛的,通过这些工具,可以干任何的事情。

  • body-parser:这个中间件是干嘛?后面的学习,大家可以共同针对一个问题进行讨论。mogen也是一样的。

  • DEBUG= FIRST-APP : APP npm start 可以进行某一个代码的调试,一个简单的sample里面任何一个东西,都要focus到其中的细节。这样才能深挖到什么没有关注到的东西,把很多东西用明白之后,可以把学到的东西分享给大家。

5、提出一个需求:分析访问的设备

分析一下,我们的WebAPP可以分析出,访问来着google,手机端,还是哪里?这个时候,就可以体验中间件的魅力了。

2018-04-16 JS进阶第6讲笔记_第4张图片
分析访问的设备
6、未来的学习都是在积累的过程

编程语法掌握完成之后,就是不断的在积累。写循环能搞定,都不是最牛逼的,最牛逼的是眼界是最宽的。还有很多的细节,很多的Express的中间件,未来还需要不断的积累。

7、补充的知识点
  • 客户端并不是特别重要的,Server才是最核心的技术。

  • 现在的demo里面,并没有操作根据某一个具体的条件进行条件的查询。老师表示数据库的操作,自己不熟悉,但是基本上都是先找先查,比大家查的快,因为老师动比较多的套路。先找先搞。

  • 日本有很多公司在中国搞了外包的公司。老师的一个朋友在日本的公司里面,在丰田的公司里面专门做的就是数据查询的工作。一个月也就上万块钱。但是他还有一个优势,就是懂得日语。可以跟日本人进行沟通。(我觉得通过这个例子,大家也可以得到一些启示,多维度的竞争。)

  • 后面会讨论一些函数式的编程,非常的有意思。关于promise,非常的牛逼,老师自己对于promise非常非常的熟悉。关于mongdb报warning的问题,可以暂时进行忽略。后面再进行讨论。

  • 老师表示自己最近在学习golong,想知道在性能的对比上想知道它到底是一个什么样的情况。老师表示自己想通过自己的角度来探索一下。不会太深入的学习,简单的从理解的角度来看一下适合做什么。以前都是看文章别人告诉我的,但是自己感触不深入。编程语言的学习,掌握几个就可以了。

  • 计算机的很多理念,都是源于生活。生活的很多东西,不要去用计算机的思维来进行理解。计算机有一个好处,就是他的CPU特别的快。

你可能感兴趣的:(2018-04-16 JS进阶第6讲笔记)