当前位置: 首页 > news >正文

GoNote第三章 主流框架加对比

GoNote第三章 主流框架加对比

Golang主流框架介绍

自从面市以来,Golang成为了程序员在编写API和开发Web服务时的首选之一。近90%的受访者表示会在自己下一组项目中持续使用Golang。与我们熟悉的C和C++类似,Go语言也是现有Golang的“灵魂”。而Golang则是专为并发而设计的。

作为一个编译型语言和开源平台,Golang在独特的功能和更好的替代方案方面可谓各大Web软件开发公司的首选框架。它可以协助开发人员构建出稳定可靠的软件应用。例如,在开发API时,开发人员可以使用Golang框架去构建REST API。

以下是主流的Golang框架,适合用于Web开发:

GIN

Go语言编写的HTTP Web框架,它以更好的性能实现了类似Martini的API,性能更好

GinGonic是一个知名且简约的Golang Web应用框架。该框架拥有各种开发所需的库和功能。许多知名的开发公司都会采用该Web框架,来处理各种监控、跟踪、以及调试等问题。此外,相对其他平台,该框架还具有如下特点:

它使用HTTP路由器,来管理Golang流量。

它使用简单的设计规则,并提供精确的文档。

优点

  • 高性能:Gin是一个轻量级的框架,占用的系统资源相对较少,因此其性能非常高效。
  • 易用性:Gin提供了简单易用的API,能够快速构建RESTful API和Web应用程序,同时还提供了中间件机制,支持多种功能扩展。
  • 社区支持:Gin拥有庞大的开发者社区和生态环境,可以通过各种方式获得支持和解决问题。

缺点

  • 是非常精简的web开发框架,没有提供众多模块。这既是缺点也是优点

GoFrame

GoFrame 是一个强大的 Go Web 应用开发框架,它提供了一系列优秀的功能模块和常用工具,方便开发者快速构建高性能、高可用的 Web 应用程序。

相较于 Go 标准库,GoFrame 提供了更多的功能模块,例如:ORM、Cache、Session、WebSocket、邮件发送等等。此外,GoFrame 也提供了更友好的 API 和更好的性能。

Goframe是一个优秀的Golang Web框架,其主要优点和缺点如下:

优点:

  1. 高性能:Goframe具有非常高的性能,可以轻松处理高并发请求。
  2. 轻量级:Goframe非常轻量级,代码简洁易懂,而且安装和使用非常方便。
  3. 多功能性:Goframe支持RESTful API和Web应用程序的开发,同时还支持ORM和模板引擎等多种功能。
  4. 安全性:Goframe具有良好的安全性,可以对用户输入的数据进行有效的过滤和验证。

缺点:

  1. 社区支持相对较弱:与一些主流框架相比,Goframe的社区支持相对较弱,因此在极端情况下,可能会存在一些问题无法得到及时解决。
  2. 学习曲线较高:由于Goframe使用了一些独特的设计思想和技术实现,因此对初学者来说,学习曲线可能会比较高。
  3. 生态相对薄弱:尽管Goframe提供了不少的功能和扩展支持,但其生态相对薄弱,因此在某些场景下,可能需要进行更多的二次开发和定制。

总体来说,Goframe是一个非常优秀的Web框架,其性能和功能都比较出色,但需要注意的是,对于初学者来说,存在一定的学习难度,而且在一些特殊场景下,可能需要进行更多的自定义开发。

Echo

Echo 高性能、极简Go语言Web框架

优点

  • 高性能:Echo采用了类似Golang的栈处理方式,提供了非常高效的请求处理和路由功能。
  • 轻量级:Echo使用起来非常简单易懂,代码不多,使用非常方便。
  • 中间件机制:Echo内置中间件机制,可以方便地处理各种HTTP请求。

缺点

  • 调试不方便,报错信息不友好
  • 路由性能虽高,但是路由实现的算法底层不支持路由排序,会引起路由冲突
  • 社区支持不如Gin:虽然Echo拥有自己的开发者社区,但相对于Gin来说,其社区规模较小,扩展支持也相对不足。

小结

Echo非常适合于开发轻量级的微服务

Beego

Beego 面向Go编程语言的开源高性能web框架

类似于面向Python的兼容性Django Web框架,Beego具有Web应用程序共有的一系列独特功能和特性。目前,它由八个不同的模块所组成,可按需取舍或组合使用。

除了在大多数Web框架中常见的MVC组件,Beego还包括一个ORM(Object-Relationship Map,对象关系映射),可访问信息与数据、会话管理工具、以及内置的缓存处理程序。同时,它还包含了用于联合操作(joint operations)和HTTP元素、组件、以及各种日志系统的代码库。

我们可以认为Beego是Django在其不同命令行工具中的另一种表示方式。例如,开发人员可以使用bee命令,从头开始构建Beego应用、或使用当前应用程序进行管理。此外,Beego还能够提供如下功能:

类似于Django的CL(命令行)工具。

从头开始、或在现有的应用中构建强大的应用程序。

只需一个bee命令,即可全面开展任何项目。

优点

  • 功能全面:Beego是一个全栈Web框架,提供了很多常用功能(如ORM、模板引擎等),方便开发人员快速构建Web应用程序。
  • 易学习:Beego的设计思想清晰,使用起来相对容易上手。
  • 文档丰富:Beego的官方文档非常详尽,提供了很多示例代码和教程,方便开发人员学习和使用。

缺点

  • 比较臃肿,因为提供了很多支持,当遇到坑时需要花很多时间查源码解决问题
  • 模块众多,这既是优点也是缺点

小结

Beego整体来讲是非常优秀的框架,吸引了大批Go语言初学者作为第一框架,适合工业级项目开发

项目地址:https://github.com/beego/beego

Fiber

一种 Express 风格的、基于 fasthttp 的 HTTP Web 框架

Iris

Iris 自称是全宇宙最快的Go语言Web框架,完备MVC支持,拥抱未来

优点

  • 高性能:Iris采用了高度优化的路由和请求处理机制,在处理大量请求时非常高效。
  • 功能全面:Iris支持TOML文件配置、多语言支持、模板引擎等众多功能。
  • 中间件机制:Iris内置中间件机制,可以非常方便地扩展各种功能。

缺点

  • 不够稳定,社区里有人反馈:最新的release版本是alpha版非常不稳定
  • 支持Iris的人很多,但是目前仍然不如Gin和Echo多
  • 学习曲线较高:Iris相对其他主流框架来说,有一定的学习曲线,需要花费一定的时间来掌握其使用方法。

小结

Iris为了优化性能,不惜自己开发和集成最快的组件,比如日志记录内置了golog模块,比如json序列化就选择了第三方库jsoniter,从框架设计的态度上,非常给力。

go-zero

Go-Zero 是一个基于 Go 语言的微服务开发框架。它旨在提供简单、高效和可靠的微服务开发解决方案。Go-Zero 主要功能包括 RPC、缓存、限流、熔断、监控等。相较于其他 Go 框架,如 Gin 或 Beego,Go-Zero 更加专注于微服务开发,并提供了更多的开箱即用的功能。

go-Micro

go-micro 是一个微服务框架,它可以用于构建可伸缩和可维护的微服务应用程序。它支持多种语言和传输协议,并提供了一系列服务发现、负载均衡、消息传递和远程过程调用(RPC)等基础设施功能。

Gorilla

作为另一个Google顶级Golang框架,Gorilla是应用开发社区中最完备的Web框架。它完美地迎合了net/HTTP库的各种可重用元素和组件。目前,Gorilla能够提供如下特点:

模块化和可扩展性。

通过包含和启用新的扩展、模块、删除包,解决过时的功能给系统带来的隐患。

涵括从原生支持到对Web Sockets的支持。

Martini

由于Martini可以在整个开发过程中轻松地支持与第三方的集成,因此它更像一个精妙的生态系统,而不是一个框架。除了能够以最小的开销去处理大量功能,该Web框架还可以灵活地扩展出其他功能。由于具有极高的可扩展性,因此该框架主要专注于编写Golang服务,以及构建出优秀的Web应用。此外,Martini还能够提供如下特点:

启用诸如路由、异常处理和常用技术服务,以进一步为通配符、变量参数、以及正则表达式结构等提供支持。

Martini拥有非常完备的Golang Web应用社区。该社区虽然不大,但是非常活跃,并且目前他们拥有着约20多个实用插件。

Buffalo

相比其他Golang Web开发框架,Buffalo不但能够协助您快速地启动开发项目,而且可以被用作集成的Web开发生态系统。目前,Buffalo能够提供如下功能:

通过同时满足后端和前端应用开发的需求,实现简单、有效且快速地构建出Web应用。

带有热重载(hot reloading)功能的Buffalo框架,可以通过dev命令,自动观察.html和.go文件,以重建和重新启动二进制文件。

Goji

Goji是一个极其轻量级和快速的GolangWeb开发框架,具有直接组合的能力。目前,该Web框架成为了绝大多数移动应用开发公司、以及从事不同Web项目公司的理想选择。该框架在如下方面进行了探索:

与net/HTTP ServeMux类似,拥有简约的HTTP请求多路复用器(multiplexer)。

Goji不但适合生产环境,而且包括了各种URL模式、可重新配置的中间件栈、以及无缝关闭等功能。

Revel

Revel是面向Web开发人员的最新Golang框架之一。它能够提供如下功能:

它带有一系列预配置的创新特性和功能,可被运用在不同的使用场景中。

该框架并不一定需要寻找相关配置与设置。

与其他Go语言框架不同,Revel完全自给自足,并不依赖任何中间件或第三方插件。

Revel是构建多任务式API的一站式解决方案。

优点

  • 功能全面:Revel是一个全面的Web框架,支持ORM、Websocket、MVC等多种功能,可用于开发各类Web应用。
  • 易学习:Revel的设计原则与Golang相符合,非常易上手,同时也提供了丰富的文档和示例代码。
  • 安全性高:Revel拥有非常好的安全性,可以有效地避免常见的Web安全问题。

缺点:

  • 性能相对较低:Revel的性能虽然不错,但相对于其他主流框架来说,可能略显逊色。

Mango

虽然未能得到主动维护,但是许多Golang用户仍然会使用到模块化的Mango Web框架。Mango框架可帮助您尽可能轻松快速地去构建和创建可重用的HTTP功能模块。此外,它还将一系列应用程序和中间件,包含在一个HTTP服务器对象中,以保持代码的自我导向性(self-directed)。因此,您可以从不同的库中,决定当前项目中需要用到的不同功能。Mango框架还能够提供如下功能:

对于所有类别的Web开发项目,Mango都可以让应用开发人员从各种库选项中进行按需选择,进而简化了应用的实现。

Mango框架能够方便开发人员快速、直接地使用基于HTTP的模块。

为了保持代码的独立性和高效性,它能够与各种应用及中间件协同使用。

Gocraft

作为老牌稳定的框架,Gocraft提供了可扩展和快速路由的功能。此类路由可以被作为新的功能,添加到HTTP或标准库中的网络包里。由于它是一种定制的Go mux中间件包,且具有反射和转换(casting)能力,因此您可以将其静态地植入自己的应用代码中。

此外,您也可以使用当前的内置中间件,自行创建或添加其他功能。由于程序员往往将性能作为优先考虑因素,因此他们会使用Gocraft框架,来轻松地创建和编写后端Web应用。因此,Gocraft混合并提供了如下功能:

程序开发人员可以通过具有内置中间件的移动应用,去访问并添加更多的功能。

Gocraft可以提供更好的API峰值性能。

由于支持自定义的中间件包,因此它可以处理代码的反射和转换。

Web.go

Web.go属于最简单的Google Golang Web框架类。它通过树型路由(tree-routing)系统提供各项附加功能,协助开发者在任何用例中,实施和处理需要路由的项目。

评估指标

指标说明
基本介绍来源各自官网。
模块化设计是否支持模块化插拔设计、模块之间低耦合设计,是否可以独立使用其中某部分组件。
模块完善度框架提供的功能模块是否丰富。模块能否能覆盖日常普遍的开发需求。
使用易用性易用性不仅仅是值框架好不好用,更多是团队能否在低成本下快速接入,长期来看能否低成本维护。
文档完善性参考官网提供的介绍资料,包括但不限于:文档、视频、示例、案例资料。同时,本地中文文档支持也是参考项。
工程化完备是否能够快速接入项目开发,是否提供项目接入规范、设计模式、开发工具链,文档是否完善、源码是否易读、是否便于长期维护。
开发模式框架适用的开发模式,或者官方推荐的开发模式。
工程规范项目接入时的开发规范,如目录规范、设计规范、编码规范、命名规范等。
社区活跃官方与社区沟通是否便捷,问题是否能够快速解答,BUG是否能够快速响应处理。
开发工具链项目开发时使用到的CLI开发工具,如初始化项目、交叉编译、代码生成、swagger、热编译能力等等。
Web: 性能测试来源第三方评测 https://github.com/the-benchmarker/web-frameworks 。
Web: 路由冲突处理存在路由注册冲突时有无良好的解决方案,在业务项目开发中比较常见。
Web: 域名支持Web路由是否支持域名绑定,甚至多域名的绑定。
Web: 文件服务Web服务是否提供静态资源的访问能力。
Web: 优雅重启/关闭Web服务在重启时不会影响请求执行,关闭时会等待正在执行的请求处理完,新请求不再接入。
ORM框架是否自带ORM组件,ORM组件是业务项目的核心组件。无论是自研还是通过第三方组件引入。
Session框架是否提供会话管理组件,无论是通用型Session组件,还是仅针对于Web服务的Session组件。
I18N支持国际化组件支持(常用但非核心组件)。
配置管理配置管理也是框架需要完备的核心组件能力。
日志组件日志组件也是框架需要完备的核心组件能力。
数据校验数据校验也是框架需要完备的核心组件能力。
缓存管理缓存管理也是框架需要完备的核心组件能力。无论是内存还是Redis,无论是自研还是通过第三方组件引入。
资源打包支持将依赖的文件资源例如静态资源、配置文件等固定文件编译到可执行文件中。框架组件自动支持资源检索。
链路跟踪框架是否具备分布式链路跟踪能力,分布式跟踪在微服务架构中是必不可少的能力。
测试框架框架是否支持单元测试接入,提供单元测试接入规范。无论是使用标准库还是第三方测试框架。
突出优点比较明显的几点优点。
突出缺点比较明显的几点缺点。

横向比较

  • 以下部分对比参数涉及评分的部分,满分总共按照10分为标准。
  • 如果标记为"-"的部分,表示不支持或者需要引入第三方插件支持。
  • 以下特性如果官网提供文档则直接提供文档地址,找不到文档但是笔者知道有就会简单标注。
  • 各个"框架"功能特性实现不同,在文档、功能、易用性上存在较大差异,各位朋友可自行查阅链接。
GoFrameBeegoIrisGin
比较版本v1.15.2v1.12.3v12.0.2v1.6.3
项目类型开源(国内)开源(国内)开源(海外)开源(海外)
开源协议MITApache-2BSD-3-ClauseMIT
框架类型模块化框架Web框架Web"框架"Web"框架"
基本介绍工程完备、简单易用,模块化、高质量、高性能、企业级开发框架。最简单易用的企业级Go应用开发框架。目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。一个Go语言写的HTTP Web框架。它提供了Martini风格的API并有更好的性能。
项目地址http://github.com/gogf/gfhttp://github.com/beego/beegohttp://github.com/kataras/irishttp://github.com/gin-gonic/gin
官网地址http://goframe.orghttp://beego.mehttp://iris-go.comhttp://gin-gonic.com
模块化设计---
模块完善度10642
使用易用性99910
文档完善度10864
工程化完备10851
社区活跃910910
开发模式模块引入、三层架构、MVCMVCMVC-
工程规范分层设计、对象设计项目结构--
开发工具链gf工具链bee工具链--
Web: 性能测试10889
Web: HTTPSHTTPS & TLS支持CustomHttpConfiguration支持
Web: HTTP2--支持支持
Web: WebSocketWebSocket服务-
Web: 分组路由路由注册-分组路由NamespaceGroupingRoutes
Web: 路由冲突处理--
Web: 域名支持域名绑定---
Web: 文件服务静态文件服务静态文件处理ServingStaticFiles
Web: 多端口/实例多端口监听、多实例监听-RunMultipleServiceUsingIris-
Web: 优雅重启/关闭平滑重启特性热升级GracefulShutdownOrRestartGracefulRestartOrStop
ORMORM文档ORM文档--
SessionSessionSession-
I18N支持I18NI18NLocalization-
模板引擎模板引擎View设计TemplateRenderingHtmlRendering
配置管理配置管理参数配置-CustomHttpConfig
日志组件日志组件Logging--
数据校验数据校验表单数据验证-CustomValidators
缓存管理缓存管理Cache--
资源打包资源管理bee工具bale命令--
链路跟踪链路跟踪---
测试框架单元测试-TestingTesting
突出优点goframe主要以工程化和企业级方向为主,特别是模块化设计和工程化设计思想非常棒。针对业务项目而言,提供了开发规范、项目规范、命名规范、设计模式、开发工具链、丰富的模块、高质量代码和文档,社区活跃。作者也是资深的PHP开发者,PHP转Go的小伙伴会倍感亲切。beego开源的比较早,最早的一款功能比较全面的Golang开发框架,一直在Golang领域有着比较大的影响力,作者谢大多年组织着国内影响力比较大GopherCN活动。beego有着比较丰富的开发模块、开箱即用,提供了基于MVC设计模式的项目结构、开发工具链,主要定位为Web开发,当然也可以用于非Web项目开发。iris主要侧重于Web开发,提供了Web开发的一系列功能组件,基于MVC开发模式。iris这一年发展比较快,从一个Web Server的组件,也慢慢朝着beego的设计方向努力。gin专注于轻量级的Web Server,比较简单,易于理解,路由和中间件设计不错,可以看做替代标准库net/http.Server的路由加强版web server。献给爱造轮子的朋友们。
突出缺点开源时间较晚,推广过于佛系,目前主要面向国内用户,未推广海外。起步较早,自谢大创业后,近几年发展较慢。非模块化设计,对第三方重量级模块依赖较多。号称性能最强,结果平平。非模块化设计。最近两年开始朝beego方向发展,但整体框架能力还不完备,需要加油。功能简单易用,既是优点,也是缺点。

总结

对于入门者来说,选择一个易于学习的框架比较重要,我推荐Gin和Echo

对于企业开发者来说,需要结合自己的项目特点选择框架,框架只是项目实施的一部分,Go本身就提供了丰富的类库,框架的选择相比于优雅的进行业务实现并没有那么重要。我们可以结合自己的实际项目进行二次封装。

对待新框架的态度:我认为花时间复刻自己的项目,及时复盘,精通一个主流框架,主流语言,比花时间走马观花的了解框架更重要。

综合来说,不同的Golang Web框架都有各自的优缺点。选择一个合适的框架可以根据具体项目需求,比如性能要求、开发难易度、扩展支持等等因素进行权衡。

参考:

https://juejin.cn/post/7067347764899741709

https://zhuanlan.zhihu.com/p/350002797

相关文章:

GoNote第三章 主流框架加对比

GoNote第三章 主流框架加对比 Golang主流框架介绍 自从面市以来,Golang成为了程序员在编写API和开发Web服务时的首选之一。近90%的受访者表示会在自己下一组项目中持续使用Golang。与我们熟悉的C和C类似,Go语言也是现有Golang的“灵魂”。而Golang则是…...

Quartz框架详解分析

文章目录 1 Quartz框架1.1 入门demo1.2 Job 讲解1.2.1 Job简介1.2.2 Job 并发1.2.3 Job 异常1.2.4 Job 中断 1.3 Trigger 触发器1.3.1 SimpleTrigger1.3.2 CornTrigger 1.4 Listener监听器1.5 Jdbc store1.5.1 简介1.5.2 添加pom依赖1.5.3 建表SQL1.5.4 配置文件quartz.propert…...

Nginx专题-基于多网卡的主机配置

文章目录 Nginx 基于多网卡的主机实现一、虚拟机前置环境准备ifcfg-ens32配置文件的内容参考ifcfg-ens33配置文件的内容 二、案例演示修改nginx.conf配置文件解决中文乱码 Nginx 基于多网卡的主机实现 一、虚拟机前置环境准备 点击虚拟机右下角的 红色标框按钮,然后…...

4.2和4.3、MAC地址、IP地址、端口

计算机网络等相关知识可以去小林coding进行巩固(点击前往) 4.2和4.3、MAC地址、IP地址、端口 1.MAC地址的简介2.IP地址①IP地址简介②IP地址编址方式③A类IP地址④B类IP地址⑤C类IP地址⑥D类IP地址⑧子网掩码 3.端口①简介②端口类型 1.MAC地址的简介 …...

放弃 console.log 吧!用 Debugger 你能读懂各种源码

很多同学不知道为什么要用 debugger 来调试,console.log 不行么? 还有,会用 debugger 了,还是有很多代码看不懂,如何调试复杂源码呢? 这篇文章就来讲一下为什么要用这些调试工具: console.lo…...

epoll机制解析

一、epoll实现原理 1、实现原理 epoll通过3个方法来实现对句柄的监控操作,要深刻理解epoll,首先得了解epoll的三大关键要素:mmap、红黑树、链表。下面是epoll的框架图,如下: mmap epoll是通过内核与用户空间mmap同一块…...

基于 SpringBoot + Vue 实现的可视化拖拽编辑的大屏项目

今天给小伙伴们分享一个基于 SpringBoot Vue 实现的可视化拖拽编辑的大屏项目; 一、简介 这个是一个开源的一个BI平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑。 多数据源支持,内置mysql、el…...

我们为什么要写作?

为什么要写书是一个很难回答的问题,因为从不同的角度,会有不同的答案。 最近ChatGPT很火!诸事不决,先问问ChatGPT,看看它是怎么回答的。 ChatGPT给出的答案还是比较全,虽然没有“一本正经的胡说八道”&…...

设计模式:创建者模式 - 建造者模式

文章目录 1.概述2.结构3.实例4.优缺点5.使用场景6.模式扩展 1.概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某…...

String a = new String(“abc“); 创建了几个对象?String a = “abc“; 呢?

String a new String(“abc”); 创建了几个对象?String a “abc”; 呢? 答案:String a new String(“abc”); 创建了1个或2个对象;String a “abc”; 创建了0个或1个都对象 String a new String(“abc”); 创建过程 首先在…...

keepalived+nginx安装

欢迎使用ShowDoc! 1、安装基础包: yum -y install libnl libnl-devel 2、上传包: tar -zxvf keepalived-2.0.20.tar.gz -C /data/imas/base_soft mkdir -p /data/imas/base_soft/keepalived cd /data/imas/base_soft/keepalived-2.0.20 .…...

硬盘格式化工具,强烈推荐这个!

案例:硬盘格式化工具推荐 【我的电脑已经用了好几年了,硬盘存储容量严重不够了,最近想把它格式化,但却不知道怎么操作,大家有什么比较好的硬盘格式化工具可以推荐吗?】 硬盘作为存储设备,我们…...

Python的异常捕获和处理

程序在运行过程当中,不可避免的会出现一些错误,比如:使用了没有赋值过的变量,使用了不存在的索引,一个数字除以0 …… 这些错误在程序中,我们称其为异常。 程序运行过程中,一旦出现异常将会导致…...

oracle学习之rownum和rowid

rownum先百度一波https://www.cnblogs.com/xfeiyun/p/16355165.html rownum是oracle特有的一个关键字。 对于基表,在insert记录时,oracle就按照insert的顺序,将rownum分配给每一行记录,因此在select一个基表的时候,r…...

为什么说过早优化是万恶之源?

Donald Knuth(高德纳)是一位计算机科学界的著名学者和计算机程序设计的先驱之一。他被誉为计算机科学的“圣经”《计算机程序设计艺术》的作者,提出了著名的“大O符号”来描述算法的时间复杂度和空间复杂度,开发了TeX系统用于排版…...

如何用 ModelScope 实现 “AI 换脸” 视频

前言 当下,视频内容火爆,带有争议性或反差大的换脸视频总能吸引人视线。虽然 AI 换脸在市面上已经流行了许久,相关制作工具或移动应用也是数不胜数。但是多数制作工具多数情况下不是会员就是收费,而且替换模板有限。以下在实战的角…...

怎么样成为一名Python工程师?到底要会哪些东西?你会了多少?

目录 重点:爬虫部分项目、源码展示python数据分析可视化大屏看板python爬虫爬取淘宝卤鸭货商品数据python游戏开发python自动化办公 重点: 1、做一名程序员,绝对要耐得住寂寞,并且要一直有点兴趣促进你学习。如果你完全没兴趣&am…...

项目前期1.0

今天是项目的第二天 昨天一顿迷茫,可恶 今天啥也不关先来点基本的构架 #include<queue>//队列 #define FALSE 0 #define TRUE 1 #define ERROR 0 #define OK 1 #define nocnect 999999//未链接的距离 #define maxplace 31//景区的观景点的最大个30数不要0下标的 #defi…...

MySQL语句执行耗时分析

MySQL语句执行耗时分析 MySQL Profile查看SQL执行各阶段耗时Performance Schema查看SQL执行各阶段耗时配置收集哪些用户的SQL执行信息开启SQL执行信息收集的相关特性执行目标SQL获取SQL执行的EVENT_ID获取SQL执行各阶段耗时 MySQL Profile查看SQL执行各阶段耗时 --开启SQL Pro…...

FVM链的Themis Pro(0x,f4) 5日IDO超百万美元,领Filecoin重回高点

交易一直是 DeFi 乃至web3领域最经久不衰的话题&#xff0c;也因此催生了众多优秀的去中心化协议&#xff0c;如 Uniswap 和 Curve。这些协议逐渐成为了整个系统的基石。 在永续合约方面&#xff0c;DYDX 的出现将 WEB2 时代的订单簿带回了web3。其链下交易的设计&#xff0c;仿…...

【PMP】优秀的项目经理如何做好范围管理?

范围管理是项目管理中的一个专用词汇&#xff0c;它的主要任务是界定项目包含且只包含所有需要完成的工作&#xff0c;并对项目其他管理工作起到指导作用&#xff0c;以保证顺利完成项目的所有过程。确定了项目范围&#xff0c;也就确定了项目的工作边界&#xff0c;明确了项目…...

【Linux】 密码相关。pwconv

密码相关。pwconv 在linux中&#xff0c;早期的用户密码&#xff08;经过加密&#xff09;存放在/etc/passwd文件之中&#xff0c;但是大多数的应用程序通常都需要读取这个文件&#xff0c;所以会造成一定的安全隐患 因此后来的linux&#xff08;centos&#xff09;系统将这个…...

揭秘阿里新大招:大模型只是前菜

技术的代际变革往往对商业格局产生深远影响。眼下&#xff0c;随着产业各界对大模型的投入布局加深&#xff0c;一个业界共识逐渐诞生&#xff1a;大模型正在改变云生态&#xff0c;将为云计算行业带来新的奇点。 在过去的一段时间里&#xff0c;市场研究机构IDC在2022年底的预…...

【U8+】win10/11系统注册用友U8硬加密

【问题需求】 由于用友U813.0及之前版本都是硬加密&#xff0c; 并且注册的时候严格要求使用IE浏览器。 但是随着系统的升级&#xff0c;绝大多数的都开始使用win10/11系统。 并且IE浏览器已经不支持win10/11系统&#xff0c; 取而代之的是Edge浏览器。 【经验分享】 以下分享…...

SQL Server 服务器安装配置和使用

目录 一、SQL Server概述 1、SQL Server 环境需求 2、SQL Server的特点和组成 &#xff08;1&#xff09;SQL Server 特点 &#xff08;2&#xff09;SQL Server 基本组成 3、SQL Server 安装需注意 &#xff08;1&#xff09;数据文件的存储位置 &#xff08;2&#xf…...

Spring常见面试题汇总

文章目录 在Spring中&#xff0c;Bean的作用域有哪几个&#xff1f;SpringMVC的执行流程你知道吗&#xff1f;谈谈你对Spring IOC的理解&#xff1f;DI又是什么&#xff1f;谈谈你对Spring AOP的理解&#xff1f;Spring Bean的生命周期你能说出多少&#xff1f;Spring如何解决循…...

javaEE汽车用油加油站销售管理系统servlet

经过我的实地考察&#xff0c;我发现现在的销售管理有以下弊端&#xff1a; (1)、大多数都是人工记录&#xff0c;人工开票&#xff0c;这样既费时费力&#xff0c;还费财&#xff1b; (2)、由于品种种类的增多&#xff0c;记录货品的资料变得麻烦&#xff1b; (3)、对一些顾客…...

CSS动画

CSS中的动画类型 transition补间动画&#xff08;有开头有结尾&#xff0c;浏览器自己补中间&#xff09; 要求元素状态有变化&#xff0c;如hover .container{width:100px;height:100px;background:red;transition:width 1s;/*transition-delay:1s 延迟一秒再动*//*tranisi…...

《花雕学AI》21:ChatGPT能否应对脑筋急转弯?逻辑推理和创造性思维的大考验!

当我们谈到脑筋急转弯时&#xff0c;很多人都会感到兴趣和好奇。脑筋急转弯是一种智力游戏&#xff0c;可以锻炼我们的思维能力以及解决问题的能力。然而&#xff0c;对于许多人来说&#xff0c;脑筋急转弯也是一项相当具有挑战性的任务。在这个过程中&#xff0c;我们需要运用…...

【Vue】学习笔记-列表渲染/数据监视

列表渲染/数据监视 基本列表Key的作用与原理列表过滤列表排序Vue 数据监视原理 基本列表 v-for指令 用于展示列表数据语法&#xff1a;v-for“(item,index) in xxx” :key“yyy”可遍历&#xff1a;数组&#xff0c;对象&#xff0c;字符串&#xff08;用的很少&#xff09;&…...