• 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将这些与我们的模型关联起来。

  • 相关阅读:
    mybatis数组和集合的长度判断及插入
    Getting Started with JavaFX
    抛出 NoClassDefFoundError: javax/validation/constraints/Size 问题的解决方法
    slf4japi整合maven 工程日志配置文件
    一场因OpenJDK引发的血案 之JavaFx
    Spring Boot logback springProperty 设置默认值
    java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive
    Linux curl命令使用代理、以及代理种类介绍
    Mybatis异常_03_Invalid bound statement (not found)
    Spring Boot 中文乱码问题解决方案汇总
  • 原文地址:https://www.cnblogs.com/wlinglinux/p/6723865.html
Copyright © 2020-2023  润新知