webapp-master.zip

  • i6_847909
    了解作者
  • 43.3MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-16 12:26
    上传日期
术语 编程 /* 个人理解:如果编程语言能够实现对应的feature,编程语言完全可以是承载函数式编程或面向对象编程 待详读文章:https://fsharpforfunandprofit.com/posts/thinking-functionally-intro/ https://www.yinwang.org/blog-cn/2013/03/31/purely-functional https://www.yinwang.org/blog-cn/2015/04/03/paradigms https://typelevel.org/cats-effect/ http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and
webapp-master.zip
内容介绍
# 术语 ## 编程 ```js /* 个人理解:如果编程语言能够实现对应的feature,编程语言完全可以是承载函数式编程或面向对象编程 待详读文章:https://fsharpforfunandprofit.com/posts/thinking-functionally-intro/ https://www.yinwang.org/blog-cn/2013/03/31/purely-functional https://www.yinwang.org/blog-cn/2015/04/03/paradigms https://typelevel.org/cats-effect/ http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html https://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html#functors -------------------------------------------------------- 资料来源:https://www.zhihu.com/question/28292740 It is important to understand that functional programming is not just a stylistic difference; it is a completely different way of thinking about programming, in the way that truly object-oriented programming (in Smalltalk say) is also a different way of thinking from a traditional imperative language such as C. 命令式编程(imperative program):比如C语言 函数式编程 是一种风格,也是一种不同角度的思考方式,与编程语言无关 面向对象编程 是一种风格,也是一种不同角度的思考方式,与编程语言无关 风格(范式、经验、思考方式)随便怎么说 -------------------------------------------------------- 函数式编程理论基础是lambda演算式。无类型的lambda演算规则如下: 1、变量(variable) 2、函数(lambda-abstraction) 3、替代(beta-reduction) 需要容易的进行函数式编程,语言需要提供一下特性: 1、closure 2、高阶类型推断:函数可以作为参数,其类型可以非常复杂 3、tail-call:函数式风格没有赋值,也就没有for循环,要实现循环操作只能通过递归实现 命令式编程的理论模型-----图灵机的特点。一条写满数据的纸带,一条根据纸带内容运动的机器。 -------------------------------------------------------- 资料来源2:https://coolshell.cn/articles/10822.html/comment-page-2#comments -------------------------------------------------------- 函数式编程的三大特性(基础???): 1、immutable data(不可变数据):默认变量是不可变的,利于并行 2、first class functions():函数可以像变量一样被创建,修改,并当成变量一样传递,返回或是在函数中嵌套函数 3、递归(tail-call):递归代替for循环 函数式技术点: 1、map&reducer:代替for循环 2、pipeline: 3、recursing递归: 4、currying柯里化: 5、high order function高阶函数:这点和把函数当变量使用类似 函数式编程的优势: 1、parallelization并行: 2、lazy evaluation惰性求值:编译器支持 3、determinis确定性: 函数的确定性,纯 */ ``` ## querystring:一般是指URL上的查询字符串 ```js /* 默认情况下,querystring是指URL上的查询字符串,即?key1=value1&key2=value2 GET方法请求没有请求体,传参方式就是querystring 在URLSchema方案中,为了schema的通用性,定义了安全字符集。为了通用性,URLSchema的所有字符必须符合安全字符集要求。故对不再安全字符集范围内的字符需要编码。 querystring是URLSchema的一部分,故需要进行编码,编码即urlencoded,和application/x-www-form-urlencoded对应 npm包对应有qs:npm install qs */ ``` ## CONTENT-TYPE: POST和PUT请求中,指定了发送给服务器的请求体中数据类型;响应中,指明了响应体中返回数据的类型,但浏览器可能会忽略该值,以实际内容为准 ```js /* 格式:Content-Type:type/subtype;parameter 媒体类型:type/subtype type:数据或资源类型 subtype:数据或资源子类型 例如:text/html,application/json,application/x-wwww-form-urlencoded,image/jpeg parameter:参数 常用的数据类型: application/json:告诉服务端请求体是序列化的JSON字符串 application/x-www-form-urlencoded:表单的默认值,发送数据前要对key和val进行了URL编码(encodeURIComponent) multipart/form-data:表单包含type=file的input元素时数据编码方式 text/plain:空格编码程+,但不对特殊字符编码 */ ``` # 基础设施 * API封装和APILoading * polyfill * ErrorPage * URL查询参数获取 * Alert组件 * Modal组件 * Toast组件 * Mask组件 # vscode源码关键点 * `InstatiationService设计` * `IPCProtocol设计` * `ExtensionHost设计` * `WorkbenchLayout设计` * `VSCode打包机制` * `Electron的API` # vscode中的IPC通信模块设计:通信基础还是Electron的webContents.send、ipcMain.on和ipcRender.send、ipcRender.on * `协议设计protocol` * `通信信道channel` * `连接connection` * `服务端server` * `客户端client` ``` ``` # 面向对象方法:Booch、Coad(1989)、OMT(1991)、UML(1995),UML不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而且对其作了进一步的发展,最终统一为大众接受的标准建模语言 # OMT和UML,题外话,面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP)90年代软件开发方法的主流 * OMT:是1991年由James Rumbaugh等5人提出的,是一种新兴的面向对象的开发方法。开发工作的基础`是对真实世界的建模`。围绕这些对象,使用分析模型进行独立语言的设计。 * OMT:对象模型(类图),是对客观世界实体模拟的对象及对象彼此之间的关系的映射,描述了系统的静态结构。通常用`类图`表示 * OMT:动态模型,规定对象模型中的对象的合法变化序列。通常用`状态图`表示 * OMT:功能模型,指明系统应该做什么。更直接地反映了用户对目标系统的需求。用`数据流图`表示 * OMT:功能模型指明应该做什么,动态模型明确了什么时候做,对象模型定义做事情的实体 ## 设计模式:可复用面向对象软件的基础,则是使用了OMT表示方法 <table> <tr> <th> 技术 <th> <th> 继承 </th> <th> 相识(关联、集合) </th> <th> 聚集(组合) </th> <th> 依赖 </th> <th> 创建 </th> <th> 实现 </th> </tr> <tbody> <tr> <td> OMT </td> <td /> <td> 表述相同 </td> <td> 相识就是关联或者聚合,箭头 </td> <td> 聚集就是组合,白色菱形 </td> <td> 无聚合 </td> <td> 无依赖 </td> <td> 无创建,GOF自创 </td> <td> 无实现 </td> </tr> <tr> <td> UML </td> <td /> <td> 表述相同 </td> <td>
评论
    相关推荐