发表于: 2021-01-13 23:24:45

1 1425


今天完成的事情:
继续了解web开发的过程
了解抽象类,还是不懂区别和使用场景

项目分层



明天计划的事情:
项目分层-验证
使用mybatis generator代码生成

写好单元测试,和Service。每一张表的增删改查创建好



遇到的问题:

看了抽象类,还是不懂区别和使用场景,只了解到抽象类最基本的用法。



收获:
==============

第三层 后端到app之间的过程


在过去,把静态网页,变成动态网页的过程,是由服务器端来完成的.(云端)


而现在,SPA的天下,把静态网页变成动态网页,是由浏览器端完成的.(SPA是啥?看了介绍,很迷)


这里是由两个项目做出的贡献,一个是Ajax前端,一个是App.


Ajax最早只是用来无刷新获取数据,减少网络传输的数据量.现在被原来当成是前端和后端的标准访问方式.


App其实是脱胎在于原有的CS架构,在CS架构中,过去是通过WEBService等传输数据,用XML来描述,而在现在,多半是用Json.


而手机端,Android和Ipone,其实就是两台小小计算机,手机手机,现在可以理解为就是拿在手里的计算机.


所以Android和Iphone理所当然的选择了用Http的方式,用Json格式来向后端传输数据.

======



这是过去的样子,那个时候,说是WEB开发要学Java和JS
============
那么Andriod和IOS是什么样子的呢?他们理论上来讲和CS架构是等同的.所以他们是这样的.


云端只存放数据,静态页面提前下载好在手机里面,由模板技术转换成动态页面。感觉软件的大小越来越大,这就说明静态页面,素材,代码越来越多,也越来越流畅。之前都是在云端获取的,现在在本地都可以直接获取了。


后端现在做什么呢?一边继续提供WEB服务,一边给Android和IOS提供数据接口(json,之前在pom.xml中必须要导入json格式依赖包。).


两者之间的差别,就在于是过去需要在服务器端用模板技术,把静态网页变成动态网页.(我现在学习还是在浏览器上展示


而现在,需要生成JSON的数据接口,不用再关心页面如何跳转.
==========
后端的主要工作,其实是在架构方面.
这个架构是指?
======

第四层,初级架构图,系统若只如初建,写什么架构来现眼.


一切一切的开端,都来自于互联网的用户压力.


如果没有来自用户访问的压力,那么后端的世界就太简单了.


再重新回过头来看这张图.


在这里,业务层的一个目标就是把数据取出来,再转换成Json数据接口给前端.
而持久层呢,通常是用数据库,而数据最常用的还是关系数据库,在关系数据库中,最常见的是Mysql.

Mysql本身是不提供Json接口的,所以才会出来ORM(mybatis)这种东西,把数据库中的表结构变成Java里的Model,再进一步拼装成Json数据.


看了老大后面的结论:


写出来的代码有两个重要的问题:


不好调试,这是问题之一


性能不好,这是问题之二.


而性能问题是很重要的,


主要就是优化MySQL,用各种方案来优化。


总结:现在我还碰不到这些问题(优化MySQL,自己碰到的只是加上一个索引),看老大的介绍web开发,我目的是想要知道后端的重要点在那里(感觉学过的东西都是重点,都是要掌握的,但感觉学的都挺水的) ,前端和后端靠什么连接的(从宏观来看),后端如何从数据库调用数据,为什么会用到mybatis?因为要将数据库转换成Json数据。感觉之后的学习就是一步一步往这里面(云端)添加东西。



参考网址: WEB开发还有前途吗? - 暗灭的回答 - 知乎 https://www.zhihu.com/question/26669731/answer/466936797
=========================

关于接口和实现你可以再扩展看看抽象类,弄清楚区别和使用场景


看了一下抽象类,看迷糊了,发现是之前的概念不懂(多态又忘记了)。在多态,方法重载,继承,接口直接又绕了一会儿,越绕越迷糊。直接分析下面的情况吧


这上面是StudentServiceImpl实现(并不是继承,接口可以继承其他接口)了StudentService,StudentService进行了覆写(子类如果定义了一个与父类方法签名(方法名相同,方法参数相同完全相同的方法,被称为覆写,然后返回的是studentDao接口中的方法


抽象方法本质上是定义接口规范,子类必须实现。所以StudentService是为了定规范,然后


StudentServiceImpl去实现。


不是很能理解为什么这里返回的是studentDao接口中的方法,这样不就和“ 层与层之间不过度联系”冲突了吗?还是想不到区别和使用场景
=================

项目分层


知道为什么之前无法选择  kbk_parent为父模块,因为maven没有添加成功,maven是空的。
在这里将maven加入进来



===========
添加成功之后,就可以选择kbk_parent为父模块了



依次添加kbk_bs,kbk_dao



第六步:为每个子项目创建依赖关系
kbk_controller项目的pom.xml文件添加kbk_bs依赖:



kbk_bs项目的pom.xml文件添加kbk_dao依赖:



这里需要注意的地方是,项目之间的依赖关系不能构成循环依赖,例如:本项目中kbk_controller依赖了kbk_bs,kbk_bs依赖了kbk_dao,这样是合理的,不会报错,如果kbk_dao又依赖了kbk_controller则会形成循环依赖,项目运行报错


第七步:验证



返回列表 返回列表
评论

    分享到