1。4 本文组织结构

本系统的整个设计流程基于软件工程的瀑布式设计模式,所以本文组织结构如下:

第一章绪论,介绍系统的研究背景、意义和研究内容;

第二章系统关键技术,介绍系统中设计到的开发语言Go语言和PostgreSQL数据库等;

第三章系统总体设计,从架构设计、模块设计、数据库设计等多个角度介绍系统;

第四章系统详细设计,先介绍了系统的API设计,然后分模块介绍;

第五章结论,先总结过程中的收获,然后提出了系统进一步完善和改进的方案。

第二章 系统关键技术

基于性能的考虑,本系统后端语言为google公司2009年开源的Go语言,利用其开源框架Gin作为Web开发框架;基于稳定性的考虑,数据库采用PostgreSQL;而在接口的设计方面,摈弃传统的SOAP,采用Restful风格,使得API的调用更加清晰。

2。1 Go语言

Go语言,又称golang,是谷歌2009发布的第二款开源编程语言,是一种静态强类型、编译型,并发型,并具有垃圾回收功能的语言[3]。本系统的服务器端采用Go语言开发,占用内存小,且能够处理高并发的请求。Go语言如有如下特性:

(1)并发特性

Go语言引入了goroutine的概念,使得并发变得非常简单。通过在函数调用前使用关键字go,即可让该函数以goroutine方式运行。Goroutine是一种比线程更加轻盈、更省资源的协程。Go语言通过系统的线程来多路派遣这些函数的执行,使得每个用go关键字执行的函数可以运行程一个单位协程[4]。当一个协程阻塞的时候,调度器就会自动把其他协程安排到另外的线程中去执行,从而实现了成武无等待并行运行。

(2)错误处理

Go语言的在错误处方面,并没有采用Java、C++、Python等try catch的异常捕获形式(有时候滥用try catch会很耗资源),而是采用了类似C语言错误码的形式,利用自身多返回值的特性,将函数结果和错误码一同返回。

而在异常方面,则引入了defer、panic和recover三个关键字。用于处理运行时的异常。defer一般用于延迟操作,如读写文件、连接数据库等;panic用于抛出异常,只有在系统遇到无法遇到的异常时,才会用panic,一般情况下不推荐使用;recover用于恢复异常现场,保证程序正常运行。

(3)面向对象和函数式编程

Go语言在编程模式的选择方面很像Python,既有面向对象编程模式,也有函数式编程模式。利用struct关键字建立结构体(和Java中class的含义一样),并且函数可以作为值来传递,同时也有闭包的特性,这两种编程模式的并行方式,使得开发更加灵活。

(4)接口设计

Go语言引入了“非侵入式”接口的概念(主要借鉴Python),让开发者从C++和Java开发的繁杂的接口管理问题中解脱出来。接口只声明某些方法,而一个类只需要实现了这个方法,不用声明,其已经属于这个接口了。

2。2 PostgreSQL数据库

本系统数据库采用PostgreSQL。PostgreSQL是加州大学伯克利分校计算机系开发,是一个开源的关系型数据库。PostgreSQL具有如下特性:

(1)免费开源

MySQL作为关系型数据库,虽然开源,但是在一些高级索引的服务上是需要收费的,PostgreSQL在这方面做得更好,这意味着服务使用者可以在不支付任何费用的情况下,使用PostgreSQL的所有服务。而且其开源的代码写的非常精彩,堪称C语言的典范。

(2)稳定性极强

MySQL的存储引擎MyISAM在崩溃、断电之类的场景下会丢失数据,虽然Innodb等引擎在这方面有了很多进步,但是PostgreSQL在这方面做得更好,更加稳定。

上一篇:AngularJS云平台的移动学习系统前端设计
下一篇:小微商家移动互联进销存信息平台服务器子系统

考证平台静态网页设计与制作

搭建Linux桌面环境的影音平台【1261字】

抖音短视频平台视频推荐模式研究【2528字】

J2ME平台的SOAP协议研究与應用【2420字】

构建下一代网络的开放业...

Linux嵌入式系统开发平台选型探讨【2295字】

ASP.NET微信平台的办证系统设计

ASP.net+sqlserver企业设备管理系统设计与开发

安康汉江网讯

互联网教育”变革路径研究进展【7972字】

LiMn1-xFexPO4正极材料合成及充放电性能研究

张洁小说《无字》中的女性意识

新課改下小學语文洧效阅...

网络语言“XX体”研究

我国风险投资的发展现状问题及对策分析

老年2型糖尿病患者运动疗...

麦秸秆还田和沼液灌溉对...