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

[golang] 介绍 | 特点 | 应用场景

编程不仅仅是写代码,更是一种思考方式。”

参考资料
  1. 《Unix编程环境》- Brian W. Kernighan, Rob Pike
  2. 《程序设计实践》- Brian W. Kernighan, Rob Pike
  3. Go语言官方网站:https://golang.org
  4. Rob Pike的个人博客:http://herpolhode.com/rob/

golang最适合(擅长)做什么

Go语言,主要用作 服务器端开发,其定位是用来开发“大型软件”的,适合于需要很多程序员一起开发,并且开发周期较长的大型软件和支持云计算的网络服务。 (推荐学习:go)

Go语言融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性,不仅提高了项目的开发速度,而且后期维护起来也非常轻松。

鉴于Go语言的特点和设计的初衷,从以下几个方面来分析Go语言擅长的领域:

  • 在服务器编程方面,Go语言适合 处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;
  • 网络编程方面,Go语言广泛应用于 Web 应用、API 应用、下载应用等;
  • Go语言还可用于 内存数据库和云平台领域,目前国外很多云平台都是采用 Go 开发。

除了上面介绍到的,Go语言还可以用来 开发底层,例如,以太坊、超级账本等都是基于Go语言开发的。

现在比较流行的区块链技术方面,Go语言也是非常受欢迎的,很多基于区块链的 DApps(去中心化应用)和工具都是用的Go语言来实现的。

下面列举了一些基于Go语言开发的优秀开源项目:

  • 云计算基础设施领域,代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。
  • 基础软件,代表项目:tidb、influxdb、cockroachdb 等。
  • 微服务,代表项目:go-kit、micro、monzo bank 的 typhon、bilibili 等。
  • 互联网基础设施,代表项目:以太坊、hyperledger 等。

Go语言的优势还是比较多的,比如,Go语言的性能非常出色,最关键的是在性能强劲的同时还能像解释型语言一样高效地进行开发。


1.Go语言的诞生与发展

1. Go语言的创作背景

2007年9月20日的下午,在谷歌山景城总部的一间办公室里,一个看似普通的场景却成为了计算机编程语言领域的重要历史时刻。Rob Pike启动了一个C++工程的编译构建,按照以往经验,这需要等待近一个小时。

在这段等待时间里,Rob Pike与Robert Griesemer和Ken Thompson坐在一起,讨论设计一门新编程语言的想法。Rob希望创造一种简洁、小巧、编译快速,同时拥有不俗性能的编程语言,这样他们就不再需要每次编译时都面临漫长的等待。经过一番头脑风暴,Go语言的概念就此诞生。

图片:Go语言Logo

创建Go语言的核心团队成员包括:

  • Rob Pike:Plan 9操作系统的作者之一,UTF-8的设计者,Go语言设计的领头人
  • Ken Thompson:图灵奖获得者,Unix系统创始人,B语言和C语言创始人
  • Robert Griesemer:曾协助制作Java的HotSpot编译器和Chrome浏览器的JavaScript引擎V8

Go语言创建的初衷主要是为了解决两个问题:

  1. 计算机硬件技术更新频繁,性能提高很快,但主流编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能
  2. 软件系统复杂度越来越高,维护成本越来越高,当时缺乏一个足够简洁高效的编程语言。尤其是在Google这样的大型公司,代码库庞大,构建时间长,开发效率低下
2. Go语言的演进历程

Go语言的发展经历了以下几个重要阶段:

  • 2007年9月:Go语言概念初步形成
  • 2008年初:Ken Thompson实现了第一版Go编译器,用于验证之前的设计
  • 2009年11月10日:Google正式将Go语言以开源方式向全球发布
  • 2012年:发布Go 1稳定版本
  • 2015年8月:Go 1.5发布,移除了"最后残余的C代码"

3. Go语言的设计理念

Rob Pike在设计Go语言时融入了自己独特的编程哲学。他认为一门优秀的编程语言应该:

  • 简洁:语法简单明了,减少学习和使用的复杂度
  • 高效:快速编译,高性能运行
  • 实用:解决实际工程问题,而非学术上的完美

有趣的是,虽然Go语言最初是以C为原型,以C++为目标设计,但最终的结果却大相径庭。几个礼拜之前我被问到:“对于Go语言,最令你惊讶的是什么?

当时我就明确地给出了答案:“虽然我希望C++程序员能够使用Go作为替代品,但实际上大部分Go程序员都是从Python和Ruby转过来的,其中却少有C++程序员。”

2、Go语言的技术特色

1. 并发编程模型

Go语言最突出的特点之一是其独特的并发模型,这也体现了Rob Pike的编程哲学

其核心是"Don’t communicate by sharing memory, share memory by communicating."(不要通过共享内存来通信,而是通过通信来共享内存这句被称为Go谚语的名言。

Go语言的并发特性主要体现在两个核心概念上:

  • Goroutine:轻量级线程,由Go运行时管理
  • Channel:goroutine之间的通信机制

  • Goroutine比传统线程更轻量,可以创建成千上万个而不会耗尽系统资源。它们由Go运行时智能调度,能够充分利用多核处理器。
  • Channel则是goroutine之间传递数据和同步的管道

Rob Pike曾解释道:“一旦有两个独立执行的函数,如果Goroutines需要协作,它们就需要相互通信。因此,就产生了通道的概念,它本质上是一个类型化的消息队列。”

2. 简洁的语法设计

Go语言的语法极其简洁,这与Rob Pike追求简单明了的设计理念一致。Go消除了许多其他语言中的冗余和复杂性:

  • 没有类和继承,而是使用结构体(struct)和接口(interface)
  • 不需要分号结束语句
  • 简化的错误处理机制
  • 内置垃圾回收
  • 强类型但有类型推导

这种设计使得Go代码往往比其他语言更加清晰易读,也更容易维护。

// Go语言"Hello, World"示例
package mainimport "fmt"func main() {fmt.Println("Hello, World!")
}
3. 标准库与工具链

Go语言拥有强大而完整的标准库,涵盖了网络、加密、压缩、测试等各种常用功能。同时,Go还提供了完整的工具链,包括:

  • go build:编译程序
  • go test:运行测试
  • go fmt:代码格式化
  • go get:包管理
  • go doc:查看文档

这些工具使得Go语言开发体验非常流畅,也体现了Rob Pike对开发效率的重视。


3、从Go语言看Rob Pike的技术思想

1. 简单胜于复杂

Rob Pike一直坚持"简单胜于复杂"的设计理念。在他看来,简单的设计更容易理解、维护和扩展,而复杂的设计则容易引入问题。

Rob Pike提出的Go谚语中,多次强调了简单性的重要性。例如,Clear is better than clever”(清晰胜过聪明)、“A little copying is better than a little dependency”(少量复制好过少量依赖)等。

这种追求简单的哲学不仅体现在Go语言的设计中,也体现在Rob Pike的整个编程生涯中。

2. 务实的工程态度

Rob Pike始终保持着务实的工程态度。他关注的不是学术上的完美,而是如何解决实际问题。Go语言的许多设计决策都体现了这一点。

例如,Go语言的接口实现是隐式的,不需要显式声明。这种设计使得代码更加灵活,能够更好地适应变化。

// 在Go中定义和实现接口的示例
type Writer interface {Write([]byte) (int, error)
}// File类型隐式实现了Writer接口
type File struct {// ...
}func (f *File) Write(data []byte) (int, error) {// 实现Write方法return len(data), nil
}
3. 对未来技术的前瞻性

Rob Pike对技术发展有着敏锐的洞察力。早在多核处理器还不普及的时候,他就意识到并发编程将成为未来的趋势,并将这一理念融入Go语言的设计中。

在一次采访中,Rob Pike谈到:"需要说明的是,我是一个联合作者。Ken Thompson和Robert Griesemer和我一起启动了这个项目,还有其他很多人也为项目做了巨大贡献,所以请不要把我当成’作者’。"这体现了他谦逊的品格和对团队合作的重视。


4、Rob Pike的人格魅力与影响力

1. 不断挑战与创新的精神

除了编程,Rob Pike还热爱冒险。曾有报道称他在2003年和朋友一起骑自行车时不慎摔断了三根肋骨,锁骨碎裂,肩胛骨纵向分裂。但有趣的是,事后Rob竟然还饶有兴趣地将自己骨头的X射线底片放到了个人博客上和粉丝们一起研究观赏。

这种不畏挑战、乐于尝试的精神也体现在他的编程生涯中。从操作系统到编程语言,从文本编辑器到UI界面,Rob Pike总是勇于探索新的领域。

2. 影响力与荣誉

Rob Pike的工作对计算机科学产生了深远影响:

- UTF-8编码已成为互联网文本的主要编码方式
- Go语言已成为云计算和微服务领域的主流语言之一
- 他的著作影响了几代程序员
3. 技术传承与社区建设

Rob Pike不仅创造了技术,还致力于知识的传播和社区的建设。他通过演讲、文章和书籍分享自己的见解,帮助更多人理解和应用先进的编程理念。

当被问及如何处理批评时,Rob Pike回答道:“很简单,忽略那些讨厌你的人。只需要倾听那些理解你的目标的声音,他们才是你需要关心的人。不是每个人都认同你所做的,不过这没关系,那些参与推进你正在尝试做的事情的人是一个极好的想法、能量和灵感的来源。”

5、结语:编程哲学的传承者

Rob Pike的极客人生展现了一位真正的计算机科学家应有的品质:技术精湛、勇于创新、乐于分享。从贝尔实验室到Google,从Unix到Go,他不断突破自我,创造出影响世界的技术。

Go语言作为他职业生涯的重要成果之一,已经成为现代软件开发的重要工具,特别是在云计算、微服务和DevOps领域。它简洁而强大的设计理念,体现了Rob Pike对编程的深刻理解。

对于今天的程序员来说,学习Rob Pike的技术思想和编程哲学,不仅能够提高编程技能,更能够培养正确的工程态度和创新精神。正如Rob Pike所言:“编程不仅仅是写代码,更是一种思考方式。”


What is Golang and How to Install it?
什么是 Golang 以及如何安装它?

Golang or Go is an open source programming language which was developed by a team of open source programmers in Google. The lead developers of this language, Robert Griesemer, Rob Pike, and Ken Thompson developed Golang technology, as an alternative against the complex language of C++. Since, its development, Golang has been breaking all the trends and surpassing major programming languages such as Python. The popularity of Golang has been increasing as new updates keep coming in, with improved features and resolved bugs making it very efficient as well as easier to learn. Programming languages can be difficult to understand, thus in this article we have elaborately explained the concept of Golang along with answering the question of how to install it in a stepwise manner.
Golang 或 Go 是一种开源编程语言,由 Google 的开源程序员团队开发。这种语言的首席开发人员 Robert Griesemer、Rob Pike 和 Ken Thompson 开发了 Golang 技术,作为 C++ 复杂语言的替代方案。自开发以来,Golang 一直在打破所有趋势并超越 Python 等主要编程语言。随着新更新的不断涌入,Golang 的受欢迎程度一直在增加,改进的功能和解决的错误使其非常高效且更易于学习。编程语言可能难以理解,因此在本文中,我们详细解释了 Golang 的概念,并回答了如何逐步安装它的问题。

  • WHAT IS GOLANG? 什么是 GOLANG?

Golang technology, as its official website says is
Golang 技术,正如其官方网站所说

“Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.”
“Go 是一种开源编程语言,可以轻松构建简单、可靠和高效的软件。”

Golang or Go is a programming language that combines the elements of all the major languages and minuses all the cons. The main feature of Go is that it reduces the complexity that is faced by programmers while learning the C++. The language as the website defines it, is very reliable as it is developed by Google itself. The efficiency of the programming language is due to the language which is easy to read and the program is easy to maintain. Not only this, but Go has a garbage collection of its own along with it being faster than Python. There are already many big firms that have started using Go in their applications and softwares. Golang technology creates various new aspects and job opportunities.
Golang 或 Go 是一种编程语言,它结合了所有主要语言的元素并减去了所有缺点。Go 的主要特点是它降低了程序员在学习 C++ 时面临的复杂性。网站定义的语言非常可靠,因为它是由谷歌自己开发的。编程语言的效率是由于语言易于阅读且程序易于维护。不仅如此,Go 还有自己的垃圾回收,而且它比 Python 更快。已经有许多大公司已经开始在他们的应用程序和软件中使用 Go。Golang 技术创造了各种新的方面和就业机会。

The programming language was created mainly to be efficient as well as easier to operate and learn; and Go has exceeded all the expectations granting users more and more features. Go has not only improved itself since it was created in 2007, but has bested all the major programs, becoming the most renowned programming language as of now.
创建编程语言主要是为了高效以及更易于作和学习;Go 已经超出了所有期望,赋予了用户越来越多的功能。Go 自 2007 年创建以来不仅自我改进,而且击败了所有主要程序,成为迄今为止最著名的编程语言。

  • HOW TO INSTALL GOLANG?
    如何安装 GOLANG?

Installation of programming languages can be a tedious job due to its complex nature. However, in this article we will tell you how to install Golang technology in a stepwise manner to make it easier.
由于其复杂性,安装编程语言可能是一项乏味的工作。但是,在本文中,我们将告诉您如何逐步安装 Golang 技术以使其更容易。

  1. The first step is to go on https://golang.org/ and download the Golang programming language. There are 3 types of versions available on the website; stable, unstable and archive. Out of the three, the stable one is recommended as it is the latest version of the software which means improved language. There are 2 types of files to be downloaded, the zip file and the MSI Installer. The zip file needs to be unzipped before following the remaining steps of the installation process. Whereas the MSI Installer directly installs the program in the hardware.
    第一步是继续 https://golang.org/ 并下载 Golang 编程语言。网站上有 3 种类型的版本可用;稳定、不稳定和存档。在这三者中,建议使用稳定的,因为它是软件的最新版本,这意味着改进的语言。有 2 种类型的文件需要下载,zip 文件和 MSI 安装程序。在执行安装过程的其余步骤之前,需要解压缩 zip 文件。而 MSI 安装程序直接将程序安装在硬件中。
  2. After the file has been downloaded the file is made to run by clicking twice on the download and giving the permission for the program to be run in the system.
    下载文件后,通过双击下载并授予在系统中运行程序的权限,使文件运行。
  3. After the system is allowed to run, a dialog box appears on the screen. Click next, after which the license agreement is written, read it carefully and then click next again. After which the box asks you for the path in which to save the language, for which the C:\Go\ path is recommended, click next once finished and after this click on the install option.
    允许系统运行后,屏幕上会出现一个对话框。单击下一步,然后编写许可协议,仔细阅读,然后再次单击下一步。之后,该框会询问您保存语言的路径,建议使用 C:\Go\ 路径,完成后单击下一步,然后单击安装选项。
  4. To make sure that the Go binaries have been successfully added in the environment variables, go to the environment variables. For this, click on the start option, then type environment variables in the search box. Select the first option that appears. In the environment variables box, go to the option of path appearing under the User Variables. In this, you would find a path specified as %USERPROFILE%\go\bin. To ensure that the installation is completed correctly, open the Command prompt window as an Administrator and try the go command. If all the commands appear correctly, congratulations, you’ve installed the efficient language of Golang successfully!!
    要确保 Go 二进制文件已成功添加到环境变量中,请转到环境变量。为此,请单击开始选项,然后在搜索框中键入环境变量。选择出现的第一个选项。在环境变量框中,转到出现在用户变量下的路径选项。在此,您会发现一个指定为 %USERPROFILE%\go\bin 的路径。为确保正确完成安装,请以管理员身份打开命令提示符窗口并尝试 go 命令。如果所有命令都正确显示,恭喜,您已成功安装 Golang 的高效语言!!

Once completing the entire installation process, you are ready to rock and make use of the most efficient and comparatively simpler programming language, namely Golang or Go.
完成整个安装过程后,您就可以开始使用最有效且相对简单的编程语言,即 Golang 或 Go。

相关文章:

[golang] 介绍 | 特点 | 应用场景

“编程不仅仅是写代码,更是一种思考方式。” 参考资料 《Unix编程环境》- Brian W. Kernighan, Rob Pike《程序设计实践》- Brian W. Kernighan, Rob PikeGo语言官方网站:https://golang.orgRob Pike的个人博客:http://herpolhode.com/rob/ …...

Python 爬虫实战 | 企名科技

文章目录 一、企名科技1、目标网站2、网站特点3、确定解密位置4、扣js代码 一、企名科技 1、目标网站 网址:https://wx.qmpsee.com/articleDetail?idfeef62bfdac45a94b9cd89aed5c235be目标数据:获取消费行业研究下面的13篇文章数据 2、网站特点 服…...

c加加学习之day06->STL标准库->day01

1.介绍:C 标准模板库(Standard Template Library,简称 STL)是一组泛型编程的模板类和函数,旨在提供常用的数据结构、算法和函数对象。STL 是 C 标准库的一部分,极大地提高了编程效率和代码的可重用性。STL …...

并发设计模式实战系列(6):读写锁

🌟 ​大家好,我是摘星!​ 🌟 今天为大家带来的是并发设计模式实战系列,第六章读写锁模式​​,废话不多说直接开始~ 目录 一、核心原理深度拆解 1. 读写锁三维模型 2. 关键实现原理 二、生活化类比&am…...

【网络原理】从零开始深入理解TCP的各项特性和机制.(一)

本篇博客给大家带来的是网络原理的相关知识.其中传输层这一部分非常重要,面试中只要是涉及到网络这一部分知识,几乎是必定会考传输层TCP的. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给…...

基于Pytorch的深度学习-第二章

2.1 CIFAR-10数据集简介 CIFAR-10数据集包含10个类别:plane、car、bird、cat、deer、dog、frog、horse、ship、truck,每个类别有6000张图片。其中训练集图片有50000张,测试集有10000张图片。训练集和测试集的生成方法是,分别从每…...

gitlab-ce容器镜像源(国内)

下载命令 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitlab/gitlab-ce:17.10.4-ce.0 更多参考: https://docker.aityp.com/image/docker.io/gitlab/gitlab-ce:17.10.4-ce.0...

TinyVue v3.22.0 正式发布:深色模式上线!集成 UnoCSS 图标库!TypeScript 类型支持全面升级!

我们非常高兴地宣布,2025年4月7日,TinyVue发布了v3.22.0🎉。 本次 3.22.0 版本主要有以下重大变更: 支持深色模式增加基于 UnoCSS 的图标库更丰富的 TypeScript 类型声明支持 XSS 配置 详细的 Release Notes 请参考&#xff1a…...

Browser-Use WebUI:让AI自动使用浏览器帮你查询信息执行任务

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

使用PyTorch如何配置一个简单的GTP

目录 一、什么是GPT 1. Transformer Block 的核心结构​ ​2. 关键组件解析​ ​​(1) 掩码多头自注意力(Masked Multi-Head Self-Attention)​​ ​​(2) 前馈神经网络(FFN)​​ ​​(3) 层归一化(LayerNorm&…...

【FAQ】针对于消费级NVIDIA GPU的说明

概述 本文概述 HP Anyware 在配备消费级 NVIDIA GPU 的物理工作站上的关​​键组件、安装说明和重要注意事项。 注意:本文档适用于 NVIDIA 消费级 GPU。NVIDIA Quadro 和 Tesla GPU 也支持 HP Anyware 在公有云、虚拟化或物理工作站环境中运行。请参阅PCoIP Graphi…...

02_java的运行机制以及JDKJREJVM基本介绍

1、运行机制 2、JDK&JRE&JVM JDK 基本介绍 (1) JDK 的全称(Java Development Kit Java开发工具包) JDK JRE java的开发工具 [ java, javac, javadoc, javap等 ] (2)JDK是提供给Java开发人员使用的,其…...

go 的 net 包

目录 一、net包的基本功能 1.1 IP地址处理 1.2 网络协议支持 1.3 连接管理 二、net包的主要功能模块 2.1 IP地址处理 2.2 TCP协议 2.3 UDP协议 2.4 Listener和Conn接口 三、高级功能 3.1 超时设置 3.2 KeepAlive控制 3.3 获取连接信息 四、实际应用场景 4.1 Web服…...

ShenNiusModularity项目源码学习(21:ShenNius.Admin.Mvc项目分析-6)

菜单列表页面用于新建、维护及删除系统所有模块所需的菜单信息,包括菜单名称、菜单中的按钮、菜单关联的后台服务地址及请求方式等。菜单列表页面的后台控制器类MenuController位于ShenNius.Admin.Mvc项目的Areas\Sys\Controllers内,页面文件位于同项目的…...

基于单片机的游泳馆智能管理系统

标题:基于单片机的游泳馆智能管理系统 内容:1.摘要 随着人们生活水平的提高,游泳馆的规模和客流量不断增大,传统的管理方式已难以满足高效、便捷的管理需求。本研究的目的是设计并实现一种基于单片机的游泳馆智能管理系统。方法上,采用单片机…...

开发了一个b站视频音频提取器

B站资源提取器-说明书 一、功能说明 本程序可自动解密并提取B站客户端缓存的视频资源,支持以下功能: - 自动识别视频缓存目录 - 将加密的.m4s音频文件转换为标准MP3格式 - 将加密的.m4s视频文件转换为标准MP4格式(合并音视频流)…...

vue2项目,为什么开发环境打包出来的js文件名是1.js 2.js,而生产环境打包出来的是chunk-3adddd.djncjdhcbhdc.js

Vue2项目开发环境与生产环境JS文件名差异的核心原理及配置逻辑如下: 一、文件名差异的底层机制 1‌、Webpack默认命名策略‌ 开发环境默认禁用哈希,采用[id].js命名规则(如1.js),生产环境启用[chunkhash]生成chunk-xxx…...

SQL进阶知识:六、动态SQL

今天介绍下关于动态SQL的详细介绍,并结合MySQL数据库提供实际例子。 动态SQL是指在运行时动态构建和执行SQL语句的技术。这种技术在处理复杂的查询逻辑、参数化查询或在某些情况下需要根据用户输入动态调整查询时非常有用。MySQL支持动态SQL,主要通过PRE…...

Spring Boot常用注解详解:实例与核心概念

Spring Boot常用注解详解:实例与核心概念 前言 Spring Boot作为Java领域最受欢迎的快速开发框架,其核心特性之一是通过注解(Annotation)简化配置,提高开发效率。注解驱动开发模式让开发者告别繁琐的XML配置&#xff…...

java 富文本转pdf

前言: 本文的目的是将传入的富文本内容(html标签,图片)并且分页导出为pdf。 所用的核心依赖为iText7。 因为itextpdf-core的核心包在maven中央仓库中,阿里云华为云等拉不下来,中央仓库在外网,并且此包在中央仓库中未…...

17.第二阶段x64游戏实战-人工遍历二叉树结构

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:16.第二阶段x64游戏实战-分析二叉树结构 上一个内容里把二叉树的结构写了写&am…...

C#基于Sunnyui框架和MVC模式实现用户登录管理

C#基于Sunnyui框架和MVC模式实现用户登录管理 1 Controller1.1 UserManagementController.cs(控制器入口) 2 Model2.1 UserRepository.cs(用户管理模型)2.2 User.cs(用户结构体)2.3 SQLiteHelper.cs&#x…...

Spring Boot实战(三十六)编写单元测试

目录 一、什么是单元测试?二、Spring Boot 中的单元测试依赖三、举例 Spring Boot 中不同层次的单元测试3.1 Service层3.2 Controller 层3.3 Repository层 四、Spring Boot 中 Mock、Spy 对象的使用4.1 使用Mock对象的背景4.2 什么是Mock对象,有哪些好处…...

声音分离人声和配乐-从头设计数字生命第4课——仙盟创梦IDE

音频分离在数字人中具有多方面的重要作用,主要体现在以下几个方面: 提高语音合成质量:通过音频分离,可以将原始音频中的语音部分与其他背景噪音或干扰声音分离开来。这样在进行语音合成时,能够获得更纯净的语音信号&am…...

http协议、全站https

一、http协议 1、为何要学http协议? 用户用浏览器访问网页,默认走的都是http协议,所以要深入研究web层,必须掌握http协议 2、什么是http协议 1、全称Hyper Text Transfer Protocol(超文本传输协议) ### 一个请求得到一个响应包 普通…...

Mediamtx与FFmpeg远程与本地推拉流使用

1.本地推拉流 启服 推流 ffmpeg -re -stream_loop -1 -i ./DJI_0463.MP4 -s 1280x720 -an -c:v h264 -b:v 2000k -maxrate 2500k -minrate 1500k -bufsize 3000k -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream 拉流 ffplay -rtsp_transport tcp rtsp://43.136.…...

css3新特性第七章(3D变换)

css新特性第七章(3D变换) 一、3d空间和景深 元素进行 3D 变换的首要操作:父元素必须开启 3D 空间! 使用 transform-style 开启 3D 空间,可选值如下: flat : 让子元素位于此元素的二维平面内( 2D 空间&…...

redis经典问题

1.缓存雪崩 指缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。 解决方案: 1)Redis 高可用,主从哨兵,Redis cluster,避免全盘崩…...

数据仓库是什么?数据仓库架构有哪些?

目录 数据仓库是什么?数据仓库架构有哪些? 一、数据仓库是什么? 二、数据仓库的架构分层 1. 获取层 2. 数据层 3. 应用层 4. 访问层 三、数据仓库的价值体现 1.决策支持 2.业务优化 3.提升竞争力 四、数据仓库的未来发展趋势 总…...

Nginx 通过 Let‘s Encrypt 实现 HTTPS 访问全流程指南

一、Let’s Encrypt 与 Certbot 简介 Let’s Encrypt 是由非营利组织 ISRG 运营的免费证书颁发机构(CA),旨在推动 HTTPS 的普及。其核心工具 Certbot 能自动化完成证书申请、部署与续期,大幅降低 HTTPS 的配置复杂度。通过 Certb…...

网络知识:路由器静态路由与动态路由介绍

目录 一、静态路由 1.1 什么是静态路由? 1.2 静态路由的好处 1.3 静态路由的局限 1.4 静态路由应用场景 微型办公室网络 性能要求高业务流量 安全性要求高的环境 二、动态路由 2.1 什么是动态路由? 2.2 动态路由的好处 2.3 动态路由的局限 2.4 动态路由的应用场…...

LLaMA3微调全流程:从LoRA到QLoRA,7B参数模型推理速度提升4倍的代码实战

LLaMA3微调全流程:从LoRA到QLoRA,7B参数模型推理速度提升4倍的代码实战 发现了一个巨牛的人工智能学习网站,分享一下给大家!https://www.captainbed.cn/ccc 前言 在大模型时代,LLaMA系列作为开源社区的明星模型&#…...

日内组合策略思路

一、策略概述 本策略是一种针对日内交易设计的策略,其核心在于通过识别市场趋势和突破信号,结合动态止损和止盈机制,实现日内交易的盈利。策略以金字塔式的加仓方式控制风险,并通过灵活的平仓策略锁定收益。 二、交易逻辑思路 市场…...

从空气污染监测到嵌入式仿真教学:基于STM32与MQ135的实践探索

一、嵌入式系统在环境监测中的技术演进 随着全球城市化进程加速,世界卫生组织(WHO)数据显示,92%的人口长期暴露于超标PM2.5环境中。在此背景下,基于STM32微控制器的智能监测系统因其高性价比(单节点成本低…...

【数据结构】Map与Set结构详解

数据结构系列五:Map与Set(一) 一、接口的实现 1.方法上 2.成员上 二、Map的内外双接口结构 1.实现 1.1外部Map接口的实现 1.1.1临摹整体 1.1.2外部类实现整体 1.2内部Entry接口的实现 1.2.1临摹内部 1.2.2内部类实现内部 2.关系 3.意义 3.1逻辑内聚 …...

银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6

一、安装 rbenv 和 ruby-build 1.安装 rbenv git clone https://github.com/rbenv/rbenv.git ~/.rbenv 2. 添加 rbenv 到 PATH echo export PATH"$HOME/.rbenv/bin:$PATH" >> ~/.bashrc echo eval "$(rbenv init -)" >> ~/.bashrc source ~…...

豆包桌面版 1.47.4 可做浏览器,免安装绿色版

自己动手升级更新办法: 下载新版本后安装,把 C:\Users\用户名\AppData\Local\Doubao\Application 文件夹的文件,拷贝替换 DoubaoPortable\App\Doubao 文件夹的文件,就升级成功了。 再把安装的豆包彻底卸载就可以。 桌面版比网页版…...

Linux 命令行与 vi/vim 编辑器完全指南

一、Linux 命令行基础 (一)命令与命令行简介 命令:Linux 系统内置的操作指令,以字符化形式使用,用于指示系统执行特定任务。 命令行(终端):提供字符化的操作界面,用户通…...

海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成

海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成 一、背景介绍 每天有2000万条聊天消息,一年下来几千万亿海量数据。为应对这种规模的数据存储和处理需求,本文将从以下几…...

金融系统上云之路:云原生后端架构在金融行业的演化与实践

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:为什么金融行业也要“云原生”? 金融行业素来以“安全第一、稳定优先”著称,面对每日亿级交易请求、秒级风控响应、PB级数据处理,系统稳定性和性能要求极高。长期以来,大型金融机构往…...

每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)

[洛谷 P1226] 快速幂求模题解 📌 题目链接 https://www.luogu.com.cn/problem/P1226 📝 题目描述 给定正整数 a、b 和质数 p,要求计算: a^b % p其中: 1 ≤ a ≤ 10^90 ≤ b ≤ 10^92 ≤ p ≤ 10^9 &#x1f4a1…...

深度学习小记(包括pytorch 还有一些神经网络架构)

这个是用来增加深度学习的知识面或者就是记录一些常用的命令,会不断的更新 import torchvision.transforms as transforms toPIL transforms.ToPILImage()#可以把tensor转换为Image类型的 imgtoPIL(img) #利用save就可以保存下来 img.save("/opt/data/private/stable_si…...

Spring Boot默认缓存管理

Spring框架支持透明地向应用程序添加缓存,以及对缓存进行管理,其管理缓存的核心是将缓存应用于操作数据的方法,从而减少操作数据的执行次数,同时不会对程序本身造成任何干扰。Spring Boot继承了Spring框架的缓存管理功能&#xff…...

倚光科技:微透镜阵列低成本加工新范式

在光通信、机器视觉、生物医学成像等前沿领域,微透镜阵列凭借其独特的光学特性成为不可或缺的核心部件。然而,传统加工方式往往面临成本高、效率低、精度难控等困境。倚光科技深耕光学加工领域多年,创新运用单点金刚石车床技术,成…...

Vue+Flask豆瓣LSTM影评+推荐算法大数据可视化平台深度学习系统源码

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 编号: F011 视频介绍 VueFlask豆瓣LSTM影评推荐算法大数据可视化平台深度学习系统源码(2023重制) 1…...

【MySQL】基本查询

目录 增加 查询 基本查询 where子句 结果排序 筛选分页结果 修改(更新) 删除 普通删除 截断表 插入查询结果 聚合函数 分组查询 这一节的内容是对表内容的增删查改,其中重点是表的查询 增加 语法: INSERT [INTO] table_name [(column [, …...

hive默认的建表格式

在 Hive 中创建表时,默认的建表语法格式如下: CREATE TABLE table_name (column1_type,column2_type,... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY , STORED AS TEXTFILE;在这个语法中: CREATE TABLE table_name:指定要创建…...

配置RSUniVLM环境(自用)

首先git clone这个仓库,但是好像不太行,就直接下载下来吧 创个容器弄,容器里需要conda gpu 镜像的话 在dockerhub找到了一个:docker pull vkashyap10/llava-next 下载在了 ssh root10.12.107.240 amos123 这个机器上。等会看…...

产品经理对于电商接口的梳理||电商接口文档梳理与接入

接口梳理7个注意点总结 ①注意要测试环境和生产环境。生产上线时候要提醒研发换到生产环境调用。 ②注意必输字段和选输字段,要传入字段的含义和校验。枚举值不清楚含义的要询问对方含义,比如说单据类型字段枚举值是B2C发货单,BBC发货单&am…...

深入探索Spark-Streaming:从Kafka数据源创建DStream

在大数据处理领域,Spark-Streaming是一个强大的实时流处理框架,而Kafka作为高性能的分布式消息队列,二者结合能实现高效的数据处理。今天就来聊聊Spark-Streaming中从Kafka数据源创建DStream的相关知识。 早期,Spark-Streaming通过…...