编码与实现

news2024/9/23 21:52:08

1. 程序设计语言

1.1 程序设计语言的概述

  • 程序设计语言是用于书写计算机程序的语言,是一种实现性软件语言。
  • 最早的机器语言,到汇编语言,到现在的高级语言。
  • 语言的发展越来越规范、简单,代码的复用性越来越高。
  • 程序员逐渐从复杂的编码中解放出来,把精力专注在软件的效率、可靠性、可移植性、安全性、易用性等方面。

1.2 程序设计语言的分类和特点

程序设计语言按照级别可以分为两大类:低级语言和高级语言。

低级语言包括机器语言和汇编语言,优点是执行速度快,但代码编写难度较大,可读性较差;另外,低级语言编写的程序与具体的机器有关,想要运行在不同的机器上,必须重写,但是在实现与硬件系统的接口部分时,易于实现、实现效率高。

高级语言的特点是在一定程度上与具体机器无关,具有可移植性;它更接近于人的思维,易于编程,易于阅读,易于修改。但是,运行高级语言程序时,需要先将其翻译成机器语言,运行效率相对较低;对硬件的可控性相对于低级语言较弱。

1.3 程序设计语言的选择

程序设计语言的选择直接影响到开发的难度和软件的质量,所以,程序设计的第一项工作就是语言的选择。

我们不能顺应潮流选择当时比较流行的程序设计语言,而是要考虑我们要开发的系统的应用领域、硬件设备和开发人员的熟练程度以及用户的特殊要求等方面问题。

1.4 程序设计语言选择实例

高校图书借阅系统:

如果要设计一个移动APP,那么开发环境一定要跟绝大部分手机的系统兼容,所以一般会采用Android的开发环境下的JAVA程序设计语言。

如果要设计一个Web网站,那么可以根据用户的需要和程序员的技能选择JAVA、Python等程序设计语言。

2. 程序设计风格

2.1 源程序文档化

  • 标识符的命名:选择精练的意义明确的名字。
  • 使用注释:好的程序编码,注释行占到整个源程序的1/3到1/2。
  • 程序的视觉组织:利用空格、空行和缩进增加程序的层次性和清晰度。

2.2 数据说明标准化

  • 数据说明的次序规范化:数据属性容易查找,利于测试,排错和维护。
  • 说明语句中变量安排有序化:一个说明语句中多个变量名应当按字母的顺序排列。
  • 使用注释说明复杂数据结构:说明在程序实现时这个数据结构的固有特点。

2.3 语句结构简单化

  • 在一行内只写一条语句。
  • 程序要能直截了当地说明程序员的用意。
  • 程序编写要做到清晰。
  • 避免采用过于复杂的条件测试。
  • 数据结构要有利于程序的简化。
  • 要模块化,确保每一个模块的独立性。

2.4 输入/输出方法规范化

  • 输入和输出的方式和格式应当尽可能方便用户的使用。
  • 输入数据都要检验,检查输入项的各种重要组合的合理性,允许使用自由格式输入,允许缺省值。
  • 输入的步骤和操作尽可能简单,保持简单格式。
  • 输入一批数据时,使用输入结束标志。
  • 使用提示符提示交互输入的请求,指明可使用选择项的种类和取值范围。
  • 对输入/输出格式有严格要求时,应保持要求的一致性。
  • 给所有的输出加注解。

3. 程序设计框架

3.1 框架是什么

“框架(Framework)”一词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架。在编程领域,框架就是应用程序的骨架,开发人员可以在这个骨架上加入自己的东西,搭建出符合自己需求的应用系统。 

3.2 为什么要学习框架

实际开发中,随着业务的发展,软件系统变得越来越复杂,如果所有的软件都从底层功能开始开发,那将是一个漫长而繁琐的过程。此外,团队协作开发时,由于没有统一的调用规范,系统会出现大量的重复功能的代码,给系统的二次开发和维护带来不便。

为解决上述问题,框架应运而生。框架实现了很多基础性的功能,开发人员不需要关心底层功能操作,只需要专心地实现所需要的业务逻辑,大大提高了开发人员的工作效率。

3.3 框架优势

  • 提高开发效率:如果采用成熟、稳健的框架,那么一些通用的基础工作,如事务处理、安全性、数据流控制等都可以交给框架处理,程序员只需要集中精力完成系统的业务逻辑设计,降低了开发难度。
  • 提高代码规范性和可维护性:当多人协同进行开发时,代码的规范性和可维护性就变得非常重要。成熟的框架都有严格的代码规范,能保证团队整体的开发风格统一。
  • 提高软件性能:使用框架进行软件开发,可以减少程序中的冗余代码。例如,使用Spring框架开发时,通过Spring的IOC特性,可以将对象之间的依赖关系交给Spring控制,方便解耦,简化开发;使用MyBatis框架开发时,MyBatis提供了XML标签,支持动态的SQL,开发人员无需在类中编写大量的SQL语句,只需要在配置文件中进行配置即可。

4. 当前主流框架

4.1 Spring框架

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的,其主要优势之一就是分层架构。

4.2 Spring MVC框架

 Spring MVC是一个Web开发框架。在MVC模式中,Spring MVC作为控制器(Controller)用于实现模型与视图的数据交互,是结构最清晰的。

Spring MVC框架采用松耦合、可插拔的组件结构,具有高度可配置性,与其他的MVC框架相比,具有更强的扩展性和灵活性。

4.3 MyBatis框架

MyBatis 是Apache的一个开源项目iBatis,2010年这个项目由Apache Software Foundation迁移到了Google Code,并且改名为MyBatis ,2013年11月MyBatis又被迁移到Github。

MyBatis是一个优秀的持久层框架,它可以在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM(Object/Relation Mapping,即对象关系映射)实现。

4.4 Spring Boot框架

Spring Boot 框架是 Pivotal 团队基于 Spring 开发的全新框架,其设计初衷是为了简化 Spring 的配置,使用户能够构建独立运行的程序,提高开发效率。

Spring Boot 框架本身并不提供 Spring 框架的核心特性及扩展功能,它只是用于快速、敏捷地开发新一代基于 Spring 框架的应用,同时它还集成了大量的第三方类库(如Jackson、JDBC、Redis 等),使用户只需少量配置就能完成相应功能。

4.5 Spring Cloud框架

Spring Cloud是一系列框架的有序集合,为开发人员构建微服务架构提供了完整的解决方案,它利用Spring Boot的开发便利性巧妙地简化了分布式系统的开发。例如,配置管理、服务发现、控制总线等操作。

5. 基于SpringBoot开发案例

5.1 基于Spring Boot+MyBatis的学生信息系统的设计与实现案例

基于Spring Boot+MyBatis实现学生信息的新增、修改、删除、查询功能,并实现MySQL数据库的操作。

MySQL数据库创建学生表(t_student),有主键、姓名、年龄、性别、出生日期、身份证号、电话号码信息。

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

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

相关文章

curl和ping

curl获取页面内容,ping测试连通 curl和ping是两个在网络环境中常用的命令行工具,但它们的目的和应用场景有很大的不同。 curl 用途:curl是一个命令行工具,用于传输数据,支持多种协议,包括HTTP、HTTPS、FT…

KaiwuDB 受邀亮相 2024 数博会

8月28-30日,由国家数据局主办,贵州省人民政府承办的 2024 中国国际大数据产业博览会(简称“数博会”)在贵阳启幕。KaiwuDB 受邀携一众产品亮相大会,重点展示了分布式多模数据库 KaiwuDB 2.0 及其在物联网海量异构数据管…

比较stl库的ostringstream与Qt的QString::arg(),QString::number()

需求: 显示一个float或者double类型的数,要求小数点后的数字位数为定值。 考虑STL库的ostringstream或者Qt的QString::arg(), number 对于stringstream,使用比较繁琐,要联合使用std::fixed和std::setprecision才能实现固定小数位数显示&am…

Java并发复习

Java基础 1. 为什么要使用并发编程? 一般我们工作的电脑都有多核,我们创建多个线程,然后操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了CPU使用效率。 在网络购物中,我…

52. 两个链表的第一个公共节点

comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9852.%20%E4%B8%A4%E4%B8%AA%E9%93%BE%E8%A1%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%85%AC%E5%85%B1%E8%8A%82%E7%82%B9/README.md 面试题 52. 两…

逆向基础一阶段检测-2

做题笔记。 前言:只能说,在目前我所打的CTF-reverse,这类题目,第一印象就是它啦。 考查:对混淆代码的识别、反反调试的手段。 下载 查壳。 32ida打开。 还是先用动调的方式去执行。 会发现 程序直接闪退。 切换到汇编窗…

【编译原理】词法分析(编译器、转移图、正则表达式)

#词法分析 目录 编译器的阶段前端 转移图标识符的转移图关键字表算法正则表达式自动生成什么是正则表达式语法糖有限状态自动机(FA)小结 编译器的阶段 源程序→前端→中间表示→后端→目标程序 前端 其中词法分析器的作用: 字符流到单词流…

【CanMV K230 AI视觉】 人体关键点检测

【CanMV K230 AI视觉】 人体关键点检测 人体关键点检测 动态测试效果可以去下面网站自己看。 B站视频链接:已做成合集 抖音链接:已做成合集 人体关键点检测 人体关键点检测是指标注出人体关节等关键信息,分析人体姿态、运动轨迹、动作角度等…

Vue常见面试题目

computed与watch区别 computed(计算属性)watch(侦听器)定义与用途计算属性(computed)用于声明式地描述一些依赖响应式属性的计算值。当依赖的响应式属性值发生变化时,计算属性会重新求值。侦听…

【深度学习】Pytorch基础

目录 梯度下降算法(Gradient Descent)代码实现 梯度下降算法(Gradient Descent) 梯度下降算法在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小…

[网络]TCP/IP协议 之 网络层IP协议(3)

文章目录 网络层IP协议NAT机制 网络层 网络层主要做的事情: 1.路径规划(路由器选择) 2.地址管理 IP协议 1)4位版本 指定IP协议的版本, 4 > ipv4 , 6 > ipv6 2)4位首部长度 4位bit能表示0-15, 单位也是4字节, 所以IP报头最长60字节, 最短20字节 3)8位服务类型(TOS) ty…

【Qt】Qt界面美化 | 绘画

文章目录 绘画概述绘制API1. 图形(1). 线段(2). 矩形(3). 圆形(4). 绘制文本 2. 工具(1). 画笔(2). 画刷 3. 绘制图片QPainter图片操作 绘图设备(1). QPixmap(2). QImage(3). QPicture 结束语 绘画概述 虽然 Qt 已经内置了很多的控件,但还是有很多时候需要“自定义…

源于AI绘画的爆火,尝试做了一个工具网站

这两天做了一个 网页 Demo,实现了一些 AI 图像处理功能,前端用的是 React,后端用的是 Django 现在 ,Demo 中已经实现的功能有两个: 1,人像分割:从图像中把人物分割出来,用一个透明…

Vue与React的Diff算法

虚拟DOM 定义 虚拟DOM是一种用于在前端开发中模拟真实DOM的技术。它是一种抽象的数据结构(简单来说就是一个Javascript对象),用于描述HTML或XML文档的结构和内容。通过将页面的状态和结构保存在内存中,而不是直接操作真实的DOM&am…

C++·io流

本节主要是了解为主,需要具体使用时可以查看文档。 io流操作指的是对各种流的操作,我们经常使用的cin和cout是对标准流的操作,实际上它还可以对文件流操作。 官网资料:Input/Output - C Reference 流输入和流提取功能的实现中有着…

鸿蒙交互事件开发04——手势事件

1 概 述 手势事件是移动应用开发中最常见的事件之一,鸿蒙提供了一些方法来绑定手势事件。通过给各个组件绑定不同的手势事件,并设计事件的响应方式,当手势识别成功时,ArkUI框架将通过事件回调通知组件手势识别的结果。 …

记录一款人气领先的开源国产 ERP 系统

推荐一款人气领先的国产ERP系统,目前在Gitee上有12.3k star,在github上面也有1.2k 管伊佳ERP(原名华夏ERP)基于SpringBoot框架和SaaS模式,立志为中小企业提供开源好用的ERP软件,目前仅支持进销存财务生产功…

2025年第八届计算机图形和虚拟国际会议(ICCGV 2025)即将召开!

2025年第八届计算机图形和虚拟国际会议(ICCGV 2025)将于2025年2月21-23日在中国成都举行。随着信息技术的飞速发展,计算机图形学与虚拟现实技术正以前所未有的速度重塑着我们的认知世界与交互体验。从沉浸式游戏到精准医疗模拟,从…

气压测试实验(用IIC)

I2C: 如果没有I2c这类总线,连接方法可能会如下图: 单片机所有的通讯协议,无非是建立在引脚(高低电平的变换高低电平持续的时间)这二者的组合上,i2c 多了一个clock线,负责为数据传输打节拍。 (i2…

Unity3d中制作触发区域为圆形的按钮

一、常规矩形的Button制作 设置Highlighed Color为绿色。 此时当鼠标在button上方时会显示绿色: 二、圆形Button制作 在Button的Image中选择Source Image为Knob。 程序运行时,鼠标在矩形和圆形之间的区域,button还是会变成绿色。 所以&…