往期回顾

来源:互联网 发布:好用的乳液 知乎 编辑:程序博客网 时间:2024/06/06 10:39

    自从来到北京,开发默认都是linux系统,至于windows还是了解很少的。

1. 了解一下windows命令 。比如:远程桌面:  mstsc   


    MVC到底指什么?在.net开发和python开发之间,对于MVC的定义有本质上的差异,这样MVC将如何解释,才是正确的??

2.模型(model)-视图(view)-控制器(controller)

v - 类似模板渲染后的页面
c - 类似route。route 可以从url提取相应的参数,如controller,action或者其它用户自己定义的变量
controller 主要是处理用户的行为、根据业务逻辑访问model,然后把view展现给用户

    python常用的框架优势,为什么很多人都用它
3.django的优点在于 大和全 ,orm,template,view 都自带了。需要的功能也可以去找第三方的app。  缺点嘛也就是自身的一些缺点,template不怎么好用,数据库用nosql不方便,上下文处理不太灵活等。
Tornado实现了异步机制, 请求处理是基于回调的非阻塞调用,提高并发量
tornado / flask模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块。
django / flask 同步机制开发更方便、简单。如果单次请求内的事物处理时间很短,没必要用异步的,一味的强调异步,只会把架构变复杂了。大多数情况下,不需要异步,比如很多IO操作是同步的(比如读文件、数据库)。

    ORM是什么?
4.orm - Object Relational Mapping 对象关系映射,sqlalchemy就是ORM开发库
ORM就是把数据库映射到对象,让你用操作对象的方式使用数据库

    RESTful的定义方式,你是不是想当然了?
5.被Roy Felding提出(在他的”基于网络的软件架构“论文中第五章)。而REST的核心原则是将你的API拆分为逻辑上的资源。这些资源通过http被操作(GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。)。

在SupportFu里,资源是 ticket、user、group。

一旦定义好了要暴露的资源,你可以定义资源上允许的操作,以及这些操作和你的API的对应关系:

  • GET /tickets # 获取ticket列表
  • GET /tickets/12 # 查看某个具体的ticket
  • POST /tickets # 新建一个ticket
  • PUT /tickets/12 # 更新ticket 12.
  • DELETE /tickets/12 #删除ticekt 12

可以看出使用REST的好处在于可以充分利用http的强大实现对资源的CURD功能。而这里你只需要一个endpoint:/tickets,再没有其他什么命名规则和url规则了,cool!

这个endpoint的单数复数

一个可以遵从的规则是:虽然看起来使用复数来描述某一个资源实例看起来别扭,但是统一所有的endpoint,使用复数使得你的URL更加规整。这让API使用者更加容易理解,对开发者来说也更容易实现。

如何处理关联?关于如何处理资源之间的管理REST原则也有相关的描述:

  • GET /tickets/12/messages- Retrieves list of messages for ticket #12
  • GET /tickets/12/messages/5- Retrieves message #5 for ticket #12
  • POST /tickets/12/messages- Creates a new message in ticket #12
  • PUT /tickets/12/messages/5- Updates message #5 for ticket #12
  • PATCH /tickets/12/messages/5- Partially updates message #5 for ticket #12
  • DELETE /tickets/12/messages/5- Deletes message #5 for ticket #12

其 中,如果这种关联和资源独立,那么我们可以在资源的输出表示中保存相应资源的endpoint。然后API的使用者就可以通过点击链接找到相关的资源。如 果关联和资源联系紧密。资源的输出表示就应该直接保存相应资源信息。(例如这里如果message资源是独立存在的,那么上面 GET /tickets/12/messages就会返回相应message的链接;相反的如果message不独立存在,他和ticket依附存在,则上面的 API调用返回直接返回message信息)

不符合CURD的操作

对这个令人困惑的问题,下面是一些解决方法:

  1. 重构你的行为action。当你的行为不需要参数的时候,你可以把active对应到activated这个资源,(更新使用patch).
  2. 以子资源对待。例如:GitHub上,对一个gists加星操作:PUT /gists/:id/star 并且取消星操作:DELETE /gists/:id/star.
  3. 有时候action实在没有难以和某个资源对应上例如search。那就这么办吧。我认为API的使用者对于/search这种url也不会有太大意见的(毕竟他很容易理解)。只要注意在文档中写清楚就可以了。
    oo,ooa,ood,oop,p2p你都知道是什么吗?
6、oo(object-oriented):基于对象概念,以对象为中心,以类和继承为构造机制,来认识,理解,刻画客观世界和设计,构建相应的软件系统的一门方法;本意----模拟人类的思维方式,使开发,维护,修改更加容易
ooa(object-oriented analysis):强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析-------其实就是进一步对oo进行细化,初步得出该oo的属性与方法(或者简单的理解:在得出的文档中对接口的粗略定义) ­    
ood(object-oriented design):OO方法中一个中间过渡环节,其主要作用是对ooa分析的结果作进一步的规范化整理,以便能够被OOP直接接受------整理和定义oo的属性和方法 ­    
oop(object-oriented programming):采用抽象,继承,封装,多态的对象特性进行编程 ­    
P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。可以理解为“伙伴对伙伴”的意思,或称为对等联网。




0 0
原创粉丝点击