西门子6ES7231-5ND32-OXBO
尽管找不到哪本书是从JavaScript的角度专门阐述这个主题的,不过我能很容易地找到涉及模块化代码主题的书籍,例如Steve McConnell所著的《代码大全》(Microsoft Press)或者Robert C.Martin所著的《代码整洁之道》(Prentice Hall),并在JavaScript开发工作中使用这些书中所教授的知识。本书试图让你把注意力从别人认为你应该做什么上移开,让你能够自己总结应该做什么以及为什么做,而不是强迫你接受一些虚伪的定义“整洁代码”的所谓法则。
本书不会直接讲怎么编写模块化代码,而是试图阐明模块化体系结构背后的基本原理和JavaScript模块化的历史,以便于你更好地理解模块化编程的意义和益处。
市面上有很多关于应用设计的书籍,但关于模块化应用设计并没有太多的参考资料,更不用说介绍模块化JavaScript应用设计。所以,这本书应运而生。尽管本书中大部分的建议、思想和教导都不是专门针对JavaScript的,但是本书在阐述时聚焦于JavaScript,这意味着你将学习如何编写模块化Web应用,而在此过程中也会记住那些使Web成为独特的平台以及让JavaScript在许多方面都很特别的奇异功能。
本书没有采用长篇大论深,到CommonJS,西门子后到原生ECMAScript模块。然后,介绍编写自包含代码的好处,以及在系统的每个级别(服务、应用程序、组件、模块、函数、块等)都这么做的好处。
第2章涵盖了模块化设计的要点,为你打下一个基础,让你能在这个基础上编写对API层面友好的模块,并且知道这个模块会被如何(在所有可能的情况下)使用、其职责是什么,以及哪些部分西门子接口。
浔之漫智控技术(上海)有限公司(xzm-wqy-shqw)
是中国西门子的佳合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国的自动化设备公司之一。
公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。
以下是我司主要代理西门子产品,欢迎您来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!
西门子6ES7231-5ND32-OXBO
第3章的大部分内容都是在帮助你理解要解决的各种问题,以及如何在解决那些问题的同时密切关注模块及其接口的演变,并拥抱模块化思维(module thinking),就是要认识到复杂性(复杂的逻辑)西门子终是不可避免的。同时,复杂性是可以被隐藏在接口之下的,用户几乎不会看到或想到它。但一件很棘手的事情是,这个接口必须设计得很好,我们才不会产生挫败感。这种挫败感可能会促使我们深入了解这个糟糕的接口,结果发现它的实现逻辑更复杂。如果一开始就不存在这个接口,也许程序代码会相对容易维护与阅读。
系统可以按粒度划分:我们将系统分为几个项目,一个项目由多个应用组成,每个应用又包含几个层级,其中有数百个模块,由数千个函数组成。通过对代码进行合理的模块化,这种粒度划分方法可以帮助我们写出更容易理解和维护的代码,保持清醒的头脑。在1.4节中,我们将讨论如何更好地利用这种粒度来创建模块化应用。度看,一致的层级(JavaScript中的每个函数都创建由模式和外观相似的组件组成)可带来熟悉感,这种熟悉感让人能够持久地使用它,并且随着时间的推移,开发人员会越来越熟悉API的形态(shape)。
由于设计出合适的接口是西门子终,随着Web应用的规模和复杂性慢慢增长,作用域的概念和全局作用域的危害变得更加明显并开始受到关注。于是,立即调用函数表达式(IIFE,Immediately-Invoking Function Expressions)问世,并且立刻成为主流。IIFE把整个文件或部分文件打包到一个一旦被定义就会立即执行的函数中。JavaScript中的每个函数都创建了一个新的作用域,这意味着var变量绑定会被包含在IIFE内。经过IIFE的打包,即使变量声明被提升到作用域顶部,它们也不会成为隐式声明的全局变量,因此可以降低隐式JavaScript全局变量造成的脆弱性。件中调用,所有这些脚本文件都共享一个全局作用域。