软件是什么?前端,后端,数据库

软件是什么?

由于很多东西没有实际接触,很难理解,对于软件的定义也是各种各样。但是我还是不理解,软件开发中的前端,后端,数据库到底有什么关系呢

这个问题足足困扰了三年半,练习时长三年半,希望能为你解惑!


前端 : 数据渲染

  • 发送请求
  • 接受响应数据
  • 将数据渲染到页面上

后端 : 数据逻辑处理

  • 捕获请求
  • 根据请求从数据库中取出数据,进行数据处理
  • 将数据响应给前端

前后端数据交互 : 【ajax】

  • 根据url(ip地址)进行数据的交换

数据库 : 数据存储

  • 接收后端请求,按照要求取出数据\存入数据

服务器 :不关机的电脑 

  • 或者可以叫它 软件
  • 服务器连接到互联网中,基本上可以24h找到
  • 1000个人不同时间打开同一个app首页,都是一样的

1-后端

在大学里开始接触编程时,没人告诉我前端,后端分别干什么?为什么要学习数据库?

第一阶段 : c
#include <stdio.h>
int main() {printf("Hello, World!\\n");return 0;
}

一个黑框框打印出了“hello world!”

有点高兴,也有点失落。

我运行了我的第一个“hello world!”,我看着精美的软件与黑不溜秋的弹框。

它好像在嘲笑我的自大,他们说逻辑好学编程就不错!他们说这些软件都是由这些代码组成的,我要怎么才可以让它精美呢?继续跟着老师学习吧!


第二阶段:Java
class Main{public static void mian(String[] args){System.out.println("hello,world");}
}

oh!这次用的是Java语言,它不是黑框框了,是白框框

老师怎么讲错了这个函数的用法?这样学习下去,是不是要和c语言一样,学一半就结束了?

我该如何实现精美的软件!我有点烦躁了!

我不想听老师将的课了,但我想知道软件如何设计出来的!

欢迎来到bilibili大学,你好!我是你的Java导师,我叫阿伟,你可以称呼我:暖男·阿伟!

我完成第一款软件 : 拼图小游戏

但是阿伟老师好像说,好看的效果由前端来完成的

斗地主的很多逻辑是通过算法和数据结构实现的

并且数据不应该存储在本地.txt,应该存储在数据库中更安全


第三阶段:算法与数据结构

cao!这是什么玩意,我要长脑袋了

感谢遇到 :“执 梗”大佬,算法真的很有趣

2-数据库

第四阶段 : MySQL

学校也开了数据库,课上完后,我好像只会在数据库中操作数据!!

我如何在Java中将数据存入MySQL呢?

数据库学了,但是感觉差了点什么...

第五阶段:JDBC

JDBC的作用:可以通过java代码操作数据库

emm,太复杂了,理解mysql我就用两天,放弃.....

我到底要怎么学?没有兴趣学起来真的很难。。

第六阶段:Mybatis

这就是 mybatis : np!

我终于可以在Java中操作数据库了

第七阶段 :springboot

woc!这玩意也看不懂!Java怎么还有注解@,我先看看一些其他知识点吧

xml,json,Maven,软件工程,软件设计....

我好像可以看懂了,你好,哔哩哔哩Javaweb

我完成了’talis智能辅助系统’的后端

根据开发文档:捕获请求,请求处理,数据获取,数据处理,响应数据

我好像明白后端的意义了 : 为前端提供数据处理

3-前端

第八阶段:HTML+CSS

在小小的网页里面画啊画

静态页面弄出来了,但数据操作据说要用Javascript

有点等不及了,我想将前后端连接起来,我要去学JavaScript

第九阶段 : Javascript

这门语言好奇怪,怎么没有int,String这些修饰符

oh! 原来这门语言是这样的 : 基础逻辑 + 页面操作

基础操作不变,多了页面操作,可以捕获html对象,也可以操作浏览器对象

油猴好像就是JavaScript写的,嘿嘿嘿

我勉强可以理解JavaScript,但是我的大学也快结束了,

我必须要知道我大学究竟学了一个什么

第十阶段 : Vue

哦豁!谁知道Vue前面还有一个 :ajax

第十一阶段 : Ajax

黑马大学提供了API,在axios中的 url 设置为api的地址,我就可以获取到数据了

axios({url:'',method:'请求方法',[默认get]params:'查询参数',data:{参数名:值}
}).then(result => {// 对服务器返回的数据进行操作
}).catch(error => {// 处理错误
})

我想起了接口文档! 我是不是可以将url设置为我springboot项目里面的地址

nice! 耗时三年半,我终于理解了软件开发!

项目 :

        需求分析 : 指定需求

        接口文档 : 根据需求分析制定接口文档

        建立数据库 : 创建MySQL数据关系表

        创建项目 : 根据接口文档进行前后端分离开发

                后端,通过请求返回响应数据

                前端,根据根据响应数据进行页面渲染

        打包部署 : 服务器 = 不关机的电脑


前端发起请求 -> 后端捕获请求 -> 分析请求 -> 调用数据库 -> 返回数据 -> 数据处理 -> 响应前端 -> 前端渲染数据 

4-总结

耗时三年半 :

从一无所知 到 两眼一抹黑

从紧跟老师步伐 到 哔哩哔哩自我学习

回顾过往,重新深挖

莫道桑榆晚,红霞映漫天


因为不知道究竟在学什么?所以一直在寻找

很多东西不知道用来干什么?没有深入学习

本篇仅仅为我亲生体验,毕竟人不可能理解未知的事件。

是非对错,但凭心愿,莫问前程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE 中的 v-for 和 v-if 是否可以共存

VUE 中的 v-for 和 v-if 是否可以共存 前言1、面试经2、正确回答3、总结总结&#xff1a; 前言 要成功&#xff0c;先发疯&#xff0c;头脑简单往前冲&#xff01; 三金四银&#xff0c;金九银十&#xff0c;多学知识&#xff0c;也不能埋头苦干&#xff0c;要成功&#xff0c…

获取编译工具链默认的链接脚本

1、ld命令使用“–verbose”参数 命令&#xff1a;riscv64-linux-gnu-ld --verbose想使用自己的链接脚本&#xff0c;链接时使用“-T”指定

基于springboot+vue的高校心理教育辅导系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

【并发编程系列】putIfAbsent和getOrDefault用法

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

day20 最大的二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树

题目1&#xff1a;654 最大二叉树 题目链接&#xff1a;654 最大二叉树 题意 根据不重复的整数数组nums构建最大的二叉树 &#xff0c;根节点是数组中的最大值&#xff0c;最大值左边的子数组构建左子树&#xff0c;最大值右边的子数组构建右子树 nums数组中最少含有1个元素…

Debian 11.8.0 安装图解

引导和开始安装 这里直接回车确认即可&#xff0c;选择图形化安装方式。 选择语言 这里要区分一下&#xff0c;当前选中的语言作为安装过程中安装器所使用的语言&#xff0c;这里我们选择中文简体。不过细心的同学可能发现&#xff0c;当你选择安装器语言之后&#xff0c;后续安…

社科院与美国杜兰大学金融管理硕士项目——在职读研的挑战与应对策略探秘

在繁忙的职场中&#xff0c;许多人渴望提升自己的学术背景和专业素养。社科院与美国杜兰大学金融管理硕士项目是专为金融职场人士打造的在职学习平台。然而&#xff0c;在职读研并非易事&#xff0c;这一兼具学术追求与职业发展的学习模式&#xff0c;对于许多人来说&#xff0…

Picturesocial | 开发实践:如何在15分钟内将应用容器化

在常见的软件架构体系中&#xff0c;容器无疑是一个技术热点。有些开发者在工作中熟练使用容器技术&#xff0c;有些可能刚刚开始容器之旅。 面对容器使用经验不同的各类开发者&#xff0c;我们希望通过这个系列文章&#xff0c;由浅入深地介绍如何使用容器技术来构建&#xf…

17.鸿蒙HarmonyOS App(JAVA)滑动选择器

每天进步一点点,成功在久不在速 滑动选择器 //设置文本样式 picker.setNormalTextFont(Font.DEFAULT_BOLD); picker.setNormalTextSize(40); picker.setNormalTextColor(new Color(Color.getIntColor("#FFA500"))); picker.setSelectedTextFont(Font.DEFAULT_BOLD)…

【Docker】Docker镜像结构及自定义镜像,镜像上传仓库使用

一、引言 Docker镜像是一个只读的Docker容器模板&#xff0c;含有启动Docker容器所需的文件系统结构及其内容&#xff0c;因此是启动一个Docker容器的基础。镜像的结构原理图大致分为四层&#xff1a;共享的内核层、基础镜像层、定制镜像层、可写容器层。 共享的内核层&#xf…

【GAMES101】Lecture 08 图形管线(实时渲染管线)与纹理映射

目录 图形管线 纹理映射 图形管线 给我一个三维模型&#xff0c;给我一个光照条件&#xff0c;我就能够得出渲染的结果&#xff0c;这些东西合起来就是Graphics Pipeline&#xff0c;图形管线&#xff0c;闫神愿称之为实时渲染管线&#xff0c;那下面这个流程图就是这个渲染…

redisson的延时队列机制简述

概述 业务中经常会遇到一些延迟执行的需求&#xff1b;通常想到的都是rabbitmq或者rocketmq的延迟消息&#xff1b; 但是系统中不一定集成了mq&#xff0c;但为了控制分布式下的并发&#xff0c;一般redis都是有集成的&#xff1b; redis的key过期监听那个时间不准确&#xff…

GIS复试Tips(特别是南师大)

注&#xff1a;本文仅个人观点&#xff0c;仅供参考 在这提前㊗️24年考南师大GISer成功上岸&#xff01; 当然&#xff0c;考研是个考试&#xff0c;总有人顺利上岸&#xff0c;稳上岸或逆袭上岸&#xff0c;但可能也有人被刷&#xff0c;这是常态。 所以&#xff0c;㊗️你…

idea设置编辑器背景颜色

文章目录 一、Ided常用工具栏显示二、更改idea主题设置三、设置代码编辑器背景颜色为豆沙绿四、设置新项目 默认Jdk配置、maven配置1、settings for new projects2、structre for new projects 五、修改代码中注释的字体颜色六、设置编辑器字体大小七、文件编码的设置(可以设置…

DC-1靶机刷题记录

靶机下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1GX7qOamdNx01622EYUBSow?pwd9nyo 提取码&#xff1a;9nyo 参考答案&#xff1a; https://c3ting.com/archives/kai-qi-vulnhnbshua-tiDC-1.pdf【【基础向】超详解vulnhub靶场DC-1】 https://www.bilibi…

禅道:从安装到使用,一篇文章带你全面了解

博客前言&#xff1a; 在这个充满竞争和快节奏的世界里&#xff0c;项目管理已经成为了许多行业的关键环节。禅道作为一种功能强大、易用的项目管理工具&#xff0c;正在被越来越多的企业和团队所采用。它不仅能帮助我们高效地管理项目&#xff0c;还能提升团队协作和沟通的效…

为什么JavaScript中0.1 + 0.2 ≠ 0.3

JavaScript中的浮点数运算有时候会出现一点偏差。下面解释为什么0.1 0.2 ≠ 0.3,以及如果你需要精确运算应该怎么做。 如果1 2 3,那么为什么在JavaScript中0.1 0.2 ≠ 0.3?这个原因与计算机科学和浮点数运算有关。 我建议你打开浏览器的控制台,输入0.1 0.2来查看结果。…

带你学C语言-指针(4)

目录 ​编辑 ⚾0.前言 &#x1f3c0;1.回调函数 ⚽2.qsort &#x1f3c9;2.1 qsort函数的模拟实现 &#x1f3be;3.sizeof与strlen对比 &#x1f3be;4.结束语 ⚾0.前言 言C之言&#xff0c;聊C之识&#xff0c;以C会友&#xff0c;共向远方。各位CSDN的各位你们好啊&…

【JS逆向学习】36kr登陆逆向案例(webpack)

在开始讲解实际案例之前&#xff0c;大家先了解下webpack的相关知识 WebPack打包 webpack是一个基于模块化的打包&#xff08;构建&#xff09;工具, 它把一切都视作模块 webpack数组形式&#xff0c;通过下标取值 !function(e) {var t {};// 加载器 所有的模块都是从这个…

【RocketMQ每日一问】RocketMQ nameserver的作用是什么?

Name Server 在 Apache RocketMQ 集群中扮演着以下几个重要作用&#xff1a; 服务注册与发现&#xff1a; Name Server 负责管理和协调整个集群&#xff0c;维护集群中所有 Broker 的信息&#xff0c;包括 Broker 的 IP 地址、端口号、存储容量等。当 Producer 和 Consumer 需…