• javascript 设计模式


    模板

    https://files.cnblogs.com/files/wlinglinux/pizza-template.js

    mvc

    https://files.cnblogs.com/files/wlinglinux/app.js

    重构是使其更容易阅读,更容易维护,但是不改变其功能。也就是说,可能需要拆分大的功能,或复杂的功能,但是不会改变外部,或应用的其他组件访问它们的方式。明白了,也就是说你将改变代码结构,可以说已经是合理的结构。将庞大的不可维护或难以理解的功能拆分了,但是一定不能改变各个组件,相互之间的互动方式。对,这样可以确保提高可读性,维护能力,易与处理代码,但是不会破坏你和其他合作开发者之间已有的约定,以及应用各个部分之间的关系。

    MVC(控制器) MVVM(视图模型) MVP(演示器)

    ,将CSS框架纳入讨论之中只会让人更加困惑,从现在开始,我们只谈纯粹的js库。库其实就是其他人或其他团队编写,打包和分发的一堆js,作为开发人员,会完成许多重复任务,比如发送AJAX请求和操纵DOM,当我们在做这些事时,我们当然不想反复编写相同的代码,

     

    库在这个基础上更进一步,与其让每个开发人员编写自己的AJAX函数,为什么不建一个AJAX库,将它免费分发给所有人来使用呢?为什么不建一个库来简化DOM操作呢?

    JQuery是一个很棒的库, 可以用于DOM操作,AJAX和更多用途,jquery里面的一切只是某些人已经写好的一些js,我们可以直接使用它,而不需要亲自动手重写所有功能代码,更重要的是好的库往往兼容旧版本浏览器,这样可以剥离一些浏览器差异和问题,让你能够专注于构建你的应用,而不是支持旧版本浏览器。

    库是别人写的一堆代码,我们可以在自己的应用中直接使用,当我们在本课程中谈到库和框架时,我们通常指的是组织库和框架,而这里的jquery并不是一个组织库,它确实可以为我们提供许多有用的好方法,但它并不能为我们提供资源来帮助我组织代码。

    组织库就像jquery等库一样,只不过它们并不针对AJAX和DOM操做,而是针对应用组织,MVC或MVVM,我所知道的模型视图以及一些其他东西,虽然有很多不同的组织库,但它们基本上都是采用相似的方式来解决相同的问题,不过,它们的组织和执行确实存在一些细微的差别。

    有些人说框架就是库的集合,也有人说框架调用视图呈现方法,而库需要你来调用它们,打开google会有很多的定义。事实上,如果你看一下维基百科,js库和框架页面的编辑历史记录,你甚至可以看见编辑之间存在的分歧。着听起来像是托词,但我还是想说,不要担心,组织库和框架都能解决相同的问题,而且是以相似的方式,因此,至少对我来说,我们叫它什么并不重要。

    100%-20%没有文档工作效率的变化。因为你需要解析数据,当然取决于你代码大小,你知道,如果它不是一个黑盒子,如果我有那个代码的访问权限,我可以通篇读一下,差不多弄清楚整个意思,但即使这样,也意味着我必须从头到尾,彻底弄明白别人构建的这个东西的内部工作原理。如果没有文档,那简直太难了。你需要花大量时间了理解原本可以轻松搞定的东西,就是这样。所以对于那些正在学习我们的课程,正在学习查阅文档的开发人员,你有什么建议?我的意思是,我自己刚开始编程的时候,我对查阅文档存在很大的抗拒心理,而且这样好像显得我作为程序员不厚优秀似的,比如觉得我竟然还不知道这些,我会查找string.split或者类似的东西,我经常用到它们,我哪里做错了呢?这不是你的问题,我的意思是,你知道,作为编程人员,你需要构思你想让程序做些什么,然后你想让代码达成什么目的,然后将其付诸实践,对吧?还有这个内置API的第四个参数到底是什么,其实并不重要。如果你经常反复用到这些东西,它最终会印在你的脑海里,在此之前尽管查阅文档吧!这绝对不会让人觉得你有任何不足之处。我们正常查阅东西,这很正常,包括各种各样的东西,从最晦涩难懂的知识到如何拆分一个字符串。如果你遇到了一个问题而你并不知道它的答案。最快的解决方案就是去查阅文档,而不是自己坐在那里,在控制台中输入一堆代码,琢磨半天,没有必要嘛。

    我的意思是作为一名工程师或者说作为一名高效的工程师,你并不需要把所有的东西都记到自己的脑袋里,如果你经常使用某些东西,自然就会记住它们。我们不需要死记硬背。我们是在用部件构建程序,如果你不记得如何使用某个部件或工具,尽管去查就好了。我的意思如果你是一个工程师,知道某些软件包,框架或者什么东西的一切细节,但他编程的一塌糊涂,而有一个工程师编程非常不错,经常查阅文档,那么后者才是我们想要纳入团队的人。

    为了强调文档的重要性

    knockout和jquery的工作方式非常相似,监控对象和监控数组实际上都是带有键值的函数。就像jquery是一个带有许多键值和方法的函数一样。

    计算监控对象,他们会在被访问时基于其他变量的值计算生成。监控数组与监控对象非常相似,当我们有重复的元素,例如多个猫时,我们就需要使用监控数组,如果你添加或移除一只猫,knockout将知道哪个元素发生了更改并将自动重新呈现视图,说到视图,绑定可以通过ViewModel将这些与我们的模型关联起来。

  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/wlinglinux/p/6723865.html
Copyright © 2020-2023  润新知