全栈工程师,也叫全端工程师。是指掌握多种技能,并能利用多种技能
独立完成产品的人前端
技术栈
- 界面设计 Axure
- 前端开发 HTML5+CSS3
- 后端开发 Node.js Express Koa
- 数据库 Mysql Mongodb Redis
- 移动端 Ionic
- Restful API
- OAuth QQ第三方认证
- 单页应用 AngularJs
- WebSocket
- 微信开发
- 设计模式
基础篇
- NODE基础
- Javascript高级
- 面向对象
- 闭包
- 做用域
- this
- 执行上下文
- ......
提升篇
- GIT 原理解析与最佳实践
- ES6+Gulp+Webpack+ ReactJS 高级
- React Native 实战
- AngularJS 高级
- 微信开发
- OAuth QQ第三方认证
- Restful API
Node是什么
- Node.js是一个让JS能够运行在浏览器以外的服务器端的平台它实现了诸如文件系统、模块、包、操做系统API,网络通讯等核心JS没有或不完善的功能
- 它摒弃传统平台依赖多线程来实现高并发的设计思路,而采用单线程,异步式I/O,事件驱动式的程序设计模型
- Node.js使用了来自于Google ChromeV8引擎。V8是目前世界上最快的Javascript引擎
同步和异步
同步是指发起调用以后主线程只能挂起
异步是指发起调用以后主线程能够作别的事情node
什么是I O
I/O输入/输出(Input/Output)sql
node.js的优势
Nodejs基于Javascript语言
统一公共类库,代码标准化
Nodejs选择了目前最快的浏览器内核V8作为执行引擎
Nodejs的社区很是活跃数据库
js模块
不足
js没有模块系统,不支持封闭做用域或依赖管理
没有标准库,没有文件系统API
没有包管理系统,不能自动加载和安装依赖npm
commonjs规范
一个 node.js由大量模块组成, 每一个JS文件都是一个模块
实现了require 方法,npm基于commonjs 实现了自动加载和安装
依赖后端
模块和包的优势
增长内聚性,有助分工协做
方便重构
提升代码质量设计模式
模块使用
定义模块
导出模块 (导出类和对象或常量)
使用模块浏览器
什么是先后端分离
前端:负责View 和Controller 层。
后端:只负责Model 层,业务和数据处理等。服务器
为何要先后端分离?
后端为主的MVC,遇到同步异步结合的页面沟通麻烦
Ajax为主SPA 型开发模式, 若是一个页面请求过多则性能较低
先后端职责不清
限制了前端的发挥空间微信
基于Node.js的先后端分离
后端提供API数据接口
前端负责渲染模板和页面
案例
抓取百度百家生成新闻列表