Web前端(待续)

来源:互联网 发布:黑手党 知乎 编辑:程序博客网 时间:2024/06/07 00:35
1. web前端工程师职业规划

任何规划和目标的实现都依赖于知识的积累,而知识的积累来源于学习及学习之后的大量实践。
1)职业方向定位:资深WEB前端工程师。
理由:热爱,这是一条单纯的路,更多的是花费精力在技术的钻研上,而不是其他琐事。
2)职业发展目标
大抵可分解为三个阶段:起步阶段,提升阶段,成型阶段。三个阶段有不同的目标
起步阶段

  • 基础知识的掌握
  • 常用工具的掌握(应该掌握一些有大公司或专业团队背景的流行工具,可提升专业度,职业度)
  • 沟通技巧的掌握
  • 良好的开发习惯

提升阶段

  • 高级技术的掌握
  • 产品思想的学习(理解产品,理解用户需求)
  • 各种框架的学习(学习、理解、模仿、创造)
  • 富客户端应用的学习
  • 各种网络协议的学习(TCP/IP,UDP,HTTP,POP3,SMTP)
  • 程序设计(OO,UML,设计模式,设计方法)

成型阶段
这一阶段最重要的是去作新技术的研究,互联网技术发展速度日新月异,不学习就会被淘汰。而且要在知识的广度、深度方面最好挑一个自己擅长和感兴趣的领域深入钻研。

2. 如何理解面向对象

从js的角度,封装
定义一只小猫,可以变好多小猫

function Cat(name,color){    this.name = name;    this.color = color;  }  Cat.prototype.type = "猫科动物";  Cat.prototype.eat = function(){alert("吃老鼠")};
var cat1 = new Cat("大毛","黄色");  var cat2 = new Cat("二毛","黑色");  alert(cat1.type); // 猫科动物  cat1.eat(); // 吃老鼠继承function Animal(){    this.species = "动物";  }

继承
现在有一个”动物”对象的构造函数。

function Animal(){    this.species = "动物";  }

“猫”继承”动物”,使用call或apply方法,将父对象的构造函数绑定在子对象上,即在子对象构造函数中加一行:

 function Cat(name,color){    Animal.apply(this, arguments);    this.name = name;    this.color = color;  }  var cat1 = new Cat("大毛","黄色");  alert(cat1.species); // 动物

js是弱类型语言,所以没有多态。js中没有重载,相同名字的函数不能同时存在,后定义的重名函数会覆盖先定义的函数,即使两个形参不相同。我们可以写一个通用的方法来模拟面向对象的多态。
这里写图片描述

3. MVVM框架,以及特点

MVVM是Model-View-ViewModel的简写,和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点
1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的”View”上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
3. 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码。
4. 可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
这里写图片描述

  1. ViewModel和Model之间的通信,是双向的。
  2. View 与 Model 不发生联系,都通过 ViewModel传递。
  3. View 非常薄,不部署任何业务逻辑,称为”被动视图”(Passive View),即没有任何主动性,而 ViewModel非常厚,所有逻辑都部署在那里。
  4. 它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。
原创粉丝点击