`
weitao1026
  • 浏览: 1048922 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
Angular是框架的一种,不学也能开发前端。学backbone或者ember也能开发前端。没有js的mvc,就光弄个jquery,也能开发前端。

那 到底要不要学?个人觉得就是要看发展趋势。angular是否简化的前端开发,是否符合未来前端的开发趋势。以现在的js的发展程度来看,angular 是符合发展趋势的,第一,解耦前端,第二,可以模块化,第三可测试,第四天生支持json,第五依赖注入等等等,还有一些其他特性使得angular跟随 甚至是推动了前端的开发趋势。

所以说angular学习是有好处的:
1.了解前端的开发趋势
2.学习MV*的设计方法
3.学习模块化编程
4.学习如何测试模块
5.使用angular简化开发流程
6.随着google的大力支持和逐渐流行,公司开始使用angular,有些岗位需要有angular的知识才能工作。
作者:徐海峰
链接:http://www.zhihu.com/question/22284218/answer/20893162
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

优点:
1. 模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令;
2. 是一个比较完善的前端MV*框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能;
3. 自定义Directive,比jQuery插件还灵活,但是需要深入了解Directive的一些特性,简单的封装容易,复杂一点官方没有提供详细的介绍文档,我们可以通过阅读源代码来找到某些我们需要的东西,如:在directive使用 $parse;
4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助,我们的项目从上线到目前,UI变化很大,在摸索中迭代产品,但是js的代码基本上很少改动。
5. 补充:Angular支持单元测试和e2e-testing。

缺点:
1. 验证功能错误信息显示比较薄弱,需要写很多模板标签,没有jQuery Validate方便,所以我们自己封装了验证的错误信息提示,详细参考 why520crazy/w5c-validator-angular · GitHub
2. ngView只能有一个,不能嵌套多个视图,虽然有 angular-ui/ui-router · GitHub 解决,但是貌似ui-router 对于URL的控制不是很灵活,必须是嵌套式的(也许我没有深入了解或者新版本有改进);
3. 对于特别复杂的应用场景,貌似性能有点问题,特别是在Windows下使用chrome浏览器,不知道是内存泄漏了还是什么其他问题,没有找到好的解决方案,奇怪的是在IE10下反而很快,对此还在观察中;
4. 这次从1.0.X升级到1.2.X,貌似有比较大的调整,没有完美兼容低版本,升级之后可能会导致一个兼容性的BUG,具体详细信息参考官方文档 AngularJS ,对应的中文版本:Angular 1.0到1.2 迁移指南
5. ng提倡在控制器里面不要有操作DOM的代码,对于一些jQuery 插件的使用,如果想不破坏代码的整洁性,需要写一些directive去封装插件,但是现在有很多插件的版本已经支持Angular了,如:jQuery File Upload Demo
6. Angular 太笨重了,没有让用户选择一个轻量级的版本,当然1.2.X后,Angular也在做一些更改,比如把route,animate等模块独立出去,让用户自己去选择。

当然使用的人多才会暴露更多的问题,一起为这些问题寻找解决方案是一个社区的良性趋势,选择Angular,的确使我们的开发效率大大提高
PaaS是Platform-as-a-Service的缩写,意思是平台服务。 把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS(Platform as a Service)。
所谓PaaS实际上是指将软件研发的平台(计世资讯定义为业务基础平台)作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。在2007年国内外SaaS厂商先后推出自己的PAAS平台。
 
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。
一款开源软件能否在商业上成功,很大程度上依赖三件事 - 成功的 user case(用例), 活跃的社区和一个好故事。 dotCloud 自家的 PaaS 产品建立在docker之上,长期维护且有大量的用户,社区也十分活跃,接下来我们看看docker的故事。
  • 环境管理复杂 - 从各种OS到各种中间件到各种app, 一款产品能够成功作为开发者需要关心的东西太多,且难于管理,这个问题几乎在所有现代IT相关行业都需要面对。
  • 云计算时代的到来 - AWS的成功, 引导开发者将应用转移到 cloud 上, 解决了硬件管理的问题,然而中间件相关的问题依然存在 (所以openstack HEAT和 AWS cloudformation 都着力解决这个问题)。开发者思路变化提供了可能性。
  • 虚拟化手段的变化 - cloud 时代采用标配硬件来降低成本,采用虚拟化手段来满足用户按需使用的需求以及保证可用性和隔离性。然而无论是KVM还是Xen在 docker 看来,都在浪费资源,因为用户需要的是高效运行环境而非OS, GuestOS既浪费资源又难于管理, 更加轻量级的LXC更加灵活和快速
  • LXC的移动性 - LXC在 linux 2.6 的 kernel 里就已经存在了,但是其设计之初并非为云计算考虑的,缺少标准化的描述手段和容器的可迁移性,决定其构建出的环境难于迁移和标准化管理(相对于KVM之类image和snapshot的概念)。docker 就在这个问题上做出实质性的革新。这是docker最独特的地方。
 
面对上述几个问题,docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScriptJScript,但实际上后两者是ECMA-262标准的实现和扩展。
分享到:
评论

相关推荐

    Angular Styling Jumpstart

    - **Angular样式隔离的好处**:改善CSS复用性,同时减少全局样式污染。 - **Angular虚拟封装(Emulated Encapsulation)的演示**:通过demo展示Angular如何在不支持真正视图封装的浏览器中模拟封装。 - **Angular...

    Angular初学者教程

    7. 组件化的核心概念:Angular框架鼓励开发者进行组件化开发,组件化的好处在于分治策略,能够把应用分解为独立的小块,每个组件可以独立封装逻辑,使开发更清晰、易维护。 通过这些知识点的学习,Angular初学者...

    Angular 权威教程笔记

    笔记内容详实,覆盖了Angular的各个方面,对于想要深入学习和掌握Angular开发的开发者来说,是不可或缺的学习资料。 Angular的核心部分是组件,它是整个应用的基石。Angular中的组件是由带有@Component装饰器的类...

    前端项目-angular-mixpanel.zip

    这样做有两个主要好处:一是使得Mixpanel服务可以在Angular应用的各个组件之间轻松注入,便于在整个项目中使用;二是通过这种方式, Mixpanel的实例可以被模拟或替代,这对于单元测试和集成测试至关重要,因为它允许...

    Learning Angular 2

    ### 学习Angular 2:从零到精通 #### 一、Angular 2简介与学习目标 Angular 2是一款由Google开发的开源前端框架,它为开发者提供了构建高性能的现代移动和桌面应用的强大工具集。本书面向希望使用Angular 2构建下...

    Angular-Utils:一套用于Angular项目的工具

    源代码通常包含了详细的注释和文档,这对于学习和调试都非常有帮助。 文档方面,Angular-Utils 应该提供了详细的使用指南和API参考,这通常会包括如何安装、如何在项目中引入这些工具,以及每个组件或服务的具体...

    前端开源库-angular-html5

    在前端开发领域,Angular是一个非常流行的JavaScript框架,它由Google维护并支持,...通过阅读源码和文档,你可以学习到如何在Angular应用中充分利用HTML5的验证功能,以及如何编写更高效、更健壮的前端表单处理代码。

    Angular脚手架开发的实现步骤

    NG-ZORRO 基于 Angular 框架,使用 Angular 的 Component 模板语言,易于学习和使用。 2. 丰富的 UI 组件 NG-ZORRO 提供了丰富的 UI 组件,包括按钮、表单、表格、导航等,易于快速创建一个美观、实用的用户界面。...

    angular-workshop:角车间

    简介Angular平台概述目标:了解使用Angular有什么好处。 2.基础知识Angular构件块(应用程序体系结构) 目标:了解典型的Angular应用程序的组成部分是什么(组件,服务,模块) 角度CLI 目标:学习如何初始化,搭建...

    angular-pug-scss-webpack:使用Pug,SCSS和Webpack运行Angular的样板代码

    在本文中,我们将深入探讨如何使用Angular框架与Pug(原名Jade)作为模板引擎、SCSS(Sass的预处理器)进行样式编写,并...通过学习和实践这个项目,开发者可以掌握前端开发的最新趋势和技术栈,提升自己的技能水平。

    征服大前端第二季(Node.js、Angular 4、Express 4、Keystone 4)

    但是,得到这些好处是需要付出代价的。因为Angular是一款学习曲线相当陡峭的框架。众多新奇的概念、陌生的编程语言、复杂的项目架构使新手望而却步,这些正是本系列课程诞生的原因。 征服大前端系列课程第二季专注...

    Angular.JS中的指令引用template与指令当做属性详解

    这样做的好处是不需要额外学习新的标签,可以直接在现有的HTML标签中加入自定义的功能。指令可以接收表达式作为值,使得可以动态地为指令传入参数。 在Angular.JS中,指令的作用域可以是隔离的,也可以是共享的。...

    angular-hello-addon

    总的来说,“angular-hello-addon”是一个学习和理解Angular与Nginx集成的良好起点,它展示了如何在实际环境中构建和部署一个简单的Angular应用。通过深入研究和实践,开发者可以进一步掌握这两个技术的结合使用,...

    CRUD-Angular:示例CRUD简化了com前端com Angular 9 e后端com JsonServer

    通过这个示例,开发者可以学习如何在Angular 9中创建CRUD操作,包括与JsonServer的交互,以及如何利用Angular的特性实现动态UI和数据管理。此外,这个项目还为初学者提供了一个实际动手实践的机会,帮助他们更好地...

    AngularForMVC:展示如何将 MVC 与 Angular 结合使用

    **Angular for MVC:结合使用MVC与Angular框架** 在现代Web开发中,Angular是一个非常流行...虽然这需要对两个框架有深入理解,但带来的好处是显著的。不断学习和实践,掌握这种组合,将是提升Web开发技能的重要一步。

    Formly-form:应用正式使用Angular

    5. **社区支持和文档**:作为成熟的开源项目,Formly有活跃的社区支持和详尽的文档,方便开发者学习和解决问题。 **JavaScript在Angular中的角色** JavaScript是Angular的基础,尽管Angular使用TypeScript进行开发...

    miruken-es5-angular:Npm和Bower软件包用于miruken,包括角度集成

    **集成Miruken和Angular** 的好处在于,Miruken的契约和处理程序模式可以很好地补充Angular的依赖注入系统。使用`miruken-es5-angular`,开发者可以在Angular的组件和服务之间引入Miruken的契约,进一步增强代码的可...

    DominionStrict:带有--strict设置的Angular 10中的Dominion Randomizer

    在Angular 10.2的背景下,启用`--strict`模式还可以带来其他好处,如更好的Angular依赖注入类型检查,以及与Angular CLI的更好集成。这使得开发过程更加规范,有助于构建出更健壮、性能更优的Web应用。 项目中的...

Global site tag (gtag.js) - Google Analytics