2018-04-17 JS进阶第7讲笔记

预计耗时2个小时14分钟,开始给大家灌输一些函数式编程的思想。

1、函数式编程是数学运算的一种方式
  • 函数有输入有输出,函数给出一个输入,给出一个输出的结果。符合数学的一个规律。


    函数式编程
  • 学习其他语言的同学,需要想一下JAVA等语言,是否有这样第一个特性。以下的设计都不符合函数式编程的思想。输入有一个唯一的一个值。老师表示自己会慢慢地给大家渗透函数式编程。

2018-04-17 JS进阶第7讲笔记_第1张图片
函数式编程的思想
  • 在调整代码的时候,一定要认知本质

  • 老师讲了一个问题,在例子演示的时候,有加一个中间件。以前的代码做了以下的处理,这种的改造处理没有毛病。


    2018-04-17 JS进阶第7讲笔记_第2张图片
    很多代码调整到一起
  • JS的代码可以写的如行云流水一样,这块可能只要JS能够做到。拓展的一个知识,好玩的中间件。看谁不爽,就把谁的IP给封掉。老师就在GitHub上找到了一个ipfilter,对于IP地址进行拦截的中间件。

2018-04-17 JS进阶第7讲笔记_第3张图片
很多好玩的中间件
2018-04-17 JS进阶第7讲笔记_第4张图片
拦截的结果
  • 前端最麻烦的是什么?就是进行页面的构建。ejs虽然相对好一点,但是还是不够爽。进行页面构建的时候,我只关注于body这块。用Expresslayout这个中间件的原因就是提高生产率,但是整个招数治标不治本。最高级的玩法,就是VUE和REACT。

  • 老师讲了一个问题:既然最爽的是VUE,REACT,那么为什么还要学习这个基础的复杂的东西?第一:因为只有了解这些基础的东西,再看到一些高级的东西的时候,能将很多新的技术,看的非常的透彻。第二:技术远远没有发展到可以把以前的基础,全部抛弃掉,直接使用新的东西。如果只学习了新的东西,那么在需要使用一些基础的方式,解决问题的时候,你自己就不知道有这个方式。

2、针对sample进行理解
  • 玩一段Post的代码,老师将:tag改成了":xxx"的方式。
console.log(req.params) ; 
//自动的匹配到了/posts/create的路由
2018-04-17 JS进阶第7讲笔记_第5张图片
":tag"
  • 要学习WebAPP对于URL的认知非常的重要。
2018-04-17 JS进阶第7讲笔记_第6张图片
这样的一个路由

post请求有一个body,非常的重要

关于路由的认知

非常重要的一个图

中间件是对于数据进行整理和加工的,让代码对于数据操作更加的方便。

Express三大的功能

数据进入后都到了req 这块,数据出口是res,next是用于对于流程的处理。

3、细细的品味代码
  • 好好的看一下社区21小结的文章。

  • 下周的整个学习的作业是:21—27。老师表示没有赶上进度的同学完全不要去担心。

  • 云飞表示自己完全掉队了,老师说不要担心,后期的代码可以和大家来进行交流。

  • 苹果电脑的插件。安装一个东西,就一个得到电脑的所有的快捷键。cheetsheet,已经安装。

4、最后的闲聊
  • 老师在最后讲到了微服务的这个概念,最近同事有说到这个事情,但是并没有给出解释出具体的东西

  • 技术的东西,随着自己的认知不断的升级,再看同一个代码,同一个知识点的话,对一个东西有了一个特别深的认知。

  • 阮一峰:阿里的支付宝的同事。他的文章点击率是非常的高,主要是技术的同事,第一遍可能没有看懂,第二次然后重复重复的去看,然后文章的流量就慢慢地被带起来了。他的文章的风格就是简短,精悍,内容比较的精准。

  • 关于犀牛书:遇到的问题的时候,需要不断地反反复复的品味,这样才能有新的认知。老师表示如果大家扔给他一个问题,如果自己不知道的话,还是需要自己去找犀牛书来查

  • 老师以前并没有写文章的习惯。以前觉得自己蒙头学习,闷头学技术的能力还算可以。但是老师通过给大家教授知识的过程中,自己的收获特别的大,并且渐渐地培养了写技术文档的习惯。

  • 老师表示技术的文档,主要是前端,Server,数据库相关的文档,但是操作系统,视频等底层的技术文档都特别的少。老师表示自己在接触前端和服务端的知识在15年开始的。底层技术的人,可能就不需要有域名之类的东西。底层的技术文档,比较深,那么看的人看不懂,自然也看得很少。

  • 老师在15年开始学习日语的时候,由于培训学习的那个音频之类,界面都特别的low,所以老师萌生了想要学习前端的想法,最初自己搞出来一个东西,最终由于版权的问题,被投诉了。老师持续学习前端和服务端的动力,是REACT。老师通过和同事的交流的时候,知道了REACT,渐渐的对此有了痴迷的状态。

  • 老师表示自己并不是真正做前端的专业人员,但是老师表示他对于前端的痴迷,以及研究可能也不亚于那些专业做了很多前端项目的人。此处应该有掌声。自学的能力,简直太棒。

  • 结构化的编程需要follow到整个过程,函数式编程:定义整个过程,然后把数据给到他。如果你能把整个过程定义了,那么这个东西的生产率将有多高。

  • 微服务:微服务设计不应是一个讲求标准答案, 简单粗暴的设计过程。而应该是一个考量各方因素下的一个决策的过程。并且不会因为一个节点出现了问题,导致整个服务都无法提供服务。比如说美图秀秀有很多模板,比如其中一个模板错误之后,不能影响其余的版本的正常的使用,所以就需要使用微服务的设计模式。

5、好的学习方式
  • 好的学习方式,老师表示就是和其他人进行沟通。老师通过判断大家的问题,能够知道现在学习的人的学习的进度是什么?关门自己噼里啪啦的自己学的这种的方式不好。

  • 老师自己学习的过程中,如果遇到问题的时候,会不断的与其同事进行这方面问题的交流与沟通。同事会告诉他:你用这个试试。不断的尝试的过程中,竟然掌握了很多各种方式的技术。

  • 二狗老师把大家定义为工程师,让大家自己来尝试新的语言,技术。敢于比别人沟通、交流、真的特别的重要。不要花太多的时间讨论如何学习,各种技术之间的差异?直接上来开干,找到一个方向直接起来干。

  • REACT 是用来解决前端开发的。NATIVE-APP 是有一个独立的安装包的,安装在本地的。本地的APP是可以运行的,最早的手机,是没有办法装app的手机,后来植入了JAVA虚拟机之后,就可以安装一些比较难用的app。REACT-NATIVE:开发出来的app,可以生存的不同的操作系统里面,并且可以反调一些操作系统里面的硬件的设施,具备了操作手机里面的一些东西的权限。

  • REACT解决了前端的问题。REACT-NATIVE是解决了跨平台的问题。FACEBOOK这样的国际型的公司,都是特别牛逼的,他们真的是在做一些改变世界的事情。老师表示如果自己再年轻一点的话,一定要拼命的去到国外这些牛逼的公司,去做一些真正的有创造力的事情。但是如果不在这些牛逼的公司,可以实时的follow这些牛逼的公司,目前正在做的事情,跟着他们关注到最新的事情,这件事情真的是特别好玩的一件事情。

  • 一定要不断的学习,做到可以把老板fire掉。如果公司的平台没有办法支撑到你的发展,你能把公司来fire掉,确实是一个值得尊敬的事情,没有任何的不好意思的地方。

  • 起初的时候,无论是大公司还是创业公司。首先就是养活自己。去大公司历练一下的机会,比如腾讯,百度,阿里啊,这种的机会不是谁都有的。老师表示很多人,毕业进到大公司,机会的特别的小。对于个人而言,有很多弯道超车的机会,可以用2到3年,在某一个行业做到一个专家,然后就可以进到这个公司。

  • 留意到大公司目前正在做的事情,真正的参与到别人的这个项目中,最终别人会邀请你共同参与到这个项目中。老师讲了很多弯道超车的例子,在开源的世界里,只要你有心,那么就有了很多机会。

  • 老师表示自己有一个个人的观点:在学校里面大三大四的时候,在学校学习技术是一个特别特别好的时候。大学生存在很多的问题,转身学习技术是一个非常好的解决方案。老师的经历是自己直接参加了公司的实习。阿里的核心点就是杭州,那里的职位最多。

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