发表于: 2017-12-10 22:37:13
1 700
一;总结任务二的技能
-----------------------------------------------------技能restful------------------------------------------------------------------
Restful的三个特点:统一资源定位符URI,无状态,统一接口
1;先说URI和URL的定义
URI; Identifier统一资源标识符,三部分组成
主机名;存放资源的自身的名称,由路径表示。
标志符;有的URI指向一个资源的内部,以"#"结束,并跟着一个anchor标志符
相对URI;不包含任何命名规范信息,它的路径通常指同一台机器上的资源
URL; Locator统一资源定位符,三部分组成
第一部分是协议(或称为服务方式);
第二部分是存有该资源的主机IP地址(有时也包括端口号);
第三部分是主机资源的具体地址。,如目录和文件名等。
2;说一下uri和url的具体区别,
先说URI的两种形式,绝对以及相对
上面说了相对的uri,也就是不包含任何命名规范信息,因为它的路径通常指同一台机器上的资源,而实际上还有一种绝对的uri,也就是
使用相对路径来标识;举个例子
绝对uri: …………协议://域名/a/b/c.txt………..
相对uri: ../d.txt………实际上指向的就是……..协议://域名/a/d.txt……
到这里就可以很清晰的看出, URI有绝对和相对之分,绝对的URI方式对标识符出现的环境没有依赖。如果使用文件系统作类比,绝
对的URI类似于从根目录开始的某个文件的径。而相对的URI方式依赖于标识符出现的环境。
然后是区别
实际上就是一句话, URL就是上面绝对URI命名机制的产物;然后说一个缺点就是,当信息资源的存放地点发生变化时,必须对URL作相应的改变,否则无法访问.
3;另一个特点就是统一接口
RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方
法:GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过
HTTP方法,就可以完成对数据的所有增删查改工作。
4;无状态
所谓无状态的,即所有的资源,都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变
简单说一个典型的restful风格
比如查看我的某一篇日报,假如说必须要求先登陆,然后需要找到网站的日报列表,然后找到我的日报,进行相关操作,这样就是有状态
的,因为查看我的日报的每一步骤都依赖于上一个步骤,只要前置步骤失败,则后续操作失败;如果输入一个url直接可以得到我的日报
信息,这种就是无状态的,因为得到我的日报不依赖于其他资源或状态,这种情况下,我的日报就是一个资源,由一个url与之对
应,可以通过HTTP中的GET方法得到资源,这是典型的RESTful风格。
小结, REST,Representational State Transfer是"表现层状态转化"。
如果一个架构符合REST原则,就称它为RESTful架构。RESTful架构,就是一种互联网软件架构;它的有点就是结构清晰、符合标
准、易于理解、扩展方便,是一种优秀的架构风格,所以才会流行采纳,任务之中用restful也会使代码看起来整洁直观.满足以下三个
大的原则:
每一个URI代表一种资源;
客户端和服务器之间,传递这种资源的某种表现层;
客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
最后,再明确一个常见的错误,就是URI包含动词;因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在
HTTP协议中。
-----------------------------------------------------技能MVC------------------------------------------------------------------
1;三层架构是什么?
界面层(UI|User Interface):表现层通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得
业务逻辑层(BLL|Business Logic Layer);针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理
数据访问层(DAL|Data Access Layer);直接操作数据库,针对数据的增添、删除、修改、更新、查找等
2;mvc是什么?
MVC是 Model-View-Controller严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行
了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL
进行对话;简单看一下图…
3;这个确实有点难,看不太懂….再说一下吧….
三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。
MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目。
我们从接手一个项目开始,首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们的三层架构。然后,在
确定了架构以后,我们再根据项目的具体需求去考虑是否需要应用一些设计模式,比如是否应用我们的MVC模式,抽象工厂模式
等等。
4;然后就是具体的springmvc的实现了
小结;这个技能确实很难理解,不过最直观的就是不管是mvc还是三层架构,都是为了解耦合;随着学习这种理论性的概念会越来越好的.
----------------------------------------------------技能Web容器------------------------------------------------------------------
这一块技能就是学习使用web容器的部署应用
1;先是tomcat的使用,知道下载,简单配置修改,还有端口的改变等,就可以了,很简单
2;jetty的使用,类似于tomcat,,还有一点就是利用插件也很方便,就不多说了
小结;这个技能点,就是一个必备工具的使用,不是很难,然后就是尝试不同的web容器,简单对比一下区别,就差不多了
----------------------------------------------分割线----------------------------------------------------
二,几个简单的小技能
1;先说一个任务8的分布式,发现有大佬的代码更方便;就是service的运行可以通过指定的命令退出,这样就避免了查端口,杀端口
这些复杂的步骤;
首先要了解方法…..怎么终止进程….
然后是在service里启动的时候,加上这个方法以及逻辑就可以了;逻辑判断三种方法,他们用的缓存流,实际上可以直接用字节流,
不过最简单的还是scanner..这里就说一个最简单的,直接利用scanner输如加判断就行了
测试结果…..输入预定指令,杀死进程…………很方便……
2; svn的使用;主干合并分支以及分支合并到主干………………….类似的方法操作
找命令
确定谁合并谁……这里注意两个url的使用……
结果同步………
3;再说一下为什么要采取版本控制以及分支主干的开发方式
branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,各自提交自己的修改,并且记录到repository便于查看,
待开发结束后合并回trunk ;
具体来说;
一个项目开发到一半需要增加需求新功能,而该功能可能会影响到项目中的已经存在的代码;与此同时,团队里有人正在进行bug
fix,如果新功能不在branch中开发而直接在trunk中开发,那么就会造成混乱,一边是修复bug一边是提交新代码,引入了不稳定
因素。极端一点,如果新需求的开发过程中不提交,等开发结束再提交,这样看起来不会影响bug的fix,但是也就失去subversion
版本控制的意义,整个repository的日志记录的版本就只有一个,同时最后提交代码的时候,也会有一大堆conflict等着
resolve。
所以明确规范流程就是;使用branch与trunk并行开发,时时提交更迭版本,最后合并到trunk中。
明日计划的事情:
1;时间原因,需要抓紧了,完成剩下的总结吧
2;完善ppt,进行复盘评审
遇到的问题及解决方法:
都是总结,暂无
收获:
1;完成任务二的简单回顾学习
2;学会几个小技能的使用
评论