0%

1. go简述

1.1 为什么要创造一门编程语言

  • C/C++ 的发展速度无法跟上计算机发展的脚步,十多年来也没有出现一门与时代相符的主流系统编程语言,因此人们需要一门新的系统编程语言来弥补这个空缺,尤其是在计算机信息时代。
  • 相比计算机性能的提升,软件开发领域不被认为发展得足够快或者比硬件发展得更加成功(有许多项目均以失败告终),同时应用程序的体积始终在不断地扩大,这就迫切地需要一门具备更高层次概念的低级语言来突破现状。
  • 在 Go 语言出现之前,开发者们总是面临非常艰难的抉择,究竟是使用执行速度快但是编译速度并不理想的语言(如:C++),还是使用编译速度较快但执行效率不佳的语言(如:.NET、Java),或者说开发难度较低但执行速度一般的动态语言呢?显然,Go 语言在这 3 个条件之间做到了最佳的平衡:快速编译,高效执行,易于开发。
阅读全文 »

2 Go基础

2.1 Go的25个关键字和36个预定义标识符

Go语言的关键字保留很少,只有25个,之所以刻意地将 Go 代码中的关键字保持的这么少,是为了简化在编译过程第一步中的代码解:

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符,其中包含了基本类型的名称和一些基本的内置函数(第 6.5 节),它们的作用都将在接下来的章节中进行进一步地讲解。

append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real string true uint uint8 uintptr
阅读全文 »

1 CSS

css是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。通过使用 CSS 我们可以大大提升网页开发的工作效率!其语法如下:

  • 选择器通常是需要改变样式的 HTML 元素
  • 每条声明由一个属性和一个值组成。
  • CSS声明总是以分号 ; 结束,声明总以大括号 {} 括起来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<style>
p
{
color:red;
text-align:center;
}
</style>
</head>

<body>
<p>Hello World!</p>
<p>这个段落采用CSS样式化。</p>
</body>
</html>

css的注释是同c++的/* */

阅读全文 »

1 vue简介

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面

Vue 是一个框架,也是一个生态。其功能覆盖了大部分前端开发常见的需求。但 Web 世界是十分多样化的,不同的开发者在 Web 上构建的东西可能在形式和规模上会有很大的不同。考虑到这一点,Vue 的设计非常注重灵活性和“可以被逐步集成”这个特点。根据你的需求场景,你可以用不同的方式使用 Vue:

  • 无需构建步骤,渐进式增强静态的 HTML
  • 在任何页面中作为 Web Components 嵌入
  • 单页应用 (SPA)
  • 全栈 / 服务端渲染 (SSR)
  • Jamstack / 静态站点生成 (SSG)
  • 开发桌面端、移动端、WebGL,甚至是命令行终端中的界面
阅读全文 »

1 Django 简介

1.1 基本介绍

Django 是一个高级的 Python Web 框架,用于快速开发可维护和可扩展的 Web 应用程序。

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务。

Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

Django想要理解,首先要明白的就是Django的大致组成,它大致由四部分组成,也就是提到的MTV模型:

  • Model(模型):负责业务对象与数据库的对象(orm)

  • Template(模板):负责把数据展示给用户(前端的东西)

  • View(视图):负责业务逻辑,并在适当的时候会调用Model和Template

  • URL分发器:通过前台请求的url,来分配调到相应的函数操作,类似于网络中的路由表,控制网络的下一跳的地址。

阅读全文 »

1 什么是OpenTelemtry

OpenTelemetry,也称为 OTel,是一个供应商中立的开源可观测性框架 用于检测、生成、收集和导出遥测数据,例如跟踪(trace)、指标(metric)和日志(log)等signal(信号)。OpenTelemetry 是一个可观测性框架和工具包,旨在创建和管理遥测数据,例如跟踪、指标和日志。至关重要的是,OpenTelemetry 是供应商和 与工具无关,这意味着它可以与各种可观测性一起使用

1.1 什么是可观测性?

可观测性是指通过检查系统的内部输出来了解系统内部状态的能力。在软件的上下文中,这意味着能够理解 通过检查系统的遥测数据来检查系统的内部状态,其中遥测数据包括跟踪、指标和日志

要使系统可观察,必须对其进行检测。也就是说,代码必须发出跟踪、指标或日志。然后,必须将检测的数据发送到可观测性后端

阅读全文 »

什么是虚拟化(VMVARE的实现原理是什么,为什么能够在一个系统上虚拟化实现另一个系统?)

VMware是一款强大的虚拟化软件,它能够在一个物理服务器上创建并运行多个虚拟机,每个虚拟机都像是独立的计算机系统,拥有自己的操作系统和应用程序。VMware实现虚拟化的原理主要基于以下几个关键组件和技术:

  • 虚拟机监视器(Hypervisor):VMware通过在物理服务器上安装虚拟机监视器(也被称为VMM或Hypervisor)来实现虚拟化。VMM是一个软件层,位于物理服务器和虚拟机之间,负责管理虚拟机的创建、启动、停止和运行。VMM能够抽象物理服务器的硬件资源,为虚拟机提供一个隔离的、安全的运行环境。

  • 资源隔离:VMM通过创建逻辑分区来将物理服务器的计算资源(如处理器、内存、存储等)分配给不同的虚拟机。每个虚拟机都在自己的逻辑环境中运行,与其他虚拟机相互隔离。这种隔离性确保了每个虚拟机都能够独立运行,互不影响,从而提供了更高的安全性和可靠性。

  • 资源共享:虚拟化平台利用资源池的概念,将物理服务器上的处理能力和存储容量整合在一起,然后动态地按需分配给虚拟机。这意味着物理资源可以根据虚拟机的需求进行灵活分配和调整,提高了资源的利用率和系统的灵活性。

  • 虚拟硬件:VMware虚拟化可以模拟多种虚拟硬件设备,包括处理器、内存、磁盘、网络接口等。每个虚拟机都认为自己拥有独立的硬件资源,可以在其内部安装操作系统和应用程序。这种模拟使得虚拟机能够像真实计算机一样运行各种软件和服务。

  • 内存和存储虚拟化:VMware使用内存分页技术将虚拟机的内存分成固定大小的页面,并映射到物理服务器的内存中。同时,它也将物理服务器的存储资源虚拟化为多个独立的虚拟存储设备,供虚拟机使用。

  • ** 迁移和克隆**:VMware还支持虚拟机的迁移和克隆操作,这意味着虚拟机可以在不同的物理服务器之间轻松迁移,或者创建虚拟机的副本以进行备份或扩展。

通过上述技术和组件的协同工作,VMware能够在单一系统上实现多个虚拟系统的运行。这种虚拟化技术不仅提高了硬件资源的利用率,还简化了系统的管理和维护,使得用户可以更加灵活和高效地部署和管理应用程序和服务。

1. 分布式和集群的区别是什么?

  • 分布式:侧重于将任务分拆多个子任务,部署在不同的服务器上,解决计算能力的问题
  • 集群:侧重同一个业务,部署在多个服务器上,提高系统可用性和性能。

分布式是一个为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。它的核心概念是将一个业务拆分成不同的子业务,并部署在不同的机器上执行,服务之间通过远程调用协同工作,对外提供服务。这种拆分和部署的方式可以大大提高系统的可扩展性、可靠性和性能。

分布式涉及多个技术领域,包括但不限于分布式计算、分布式存储、分布式数据库、分布式文件系统等。这些技术各自有不同的应用场景和优势,如分布式计算可以处理巨量的数据和复杂的计算任务,分布式存储可以实现数据的高可用性和容错性,分布式数据库可以支持大规模并发访问和数据处理等。

阅读全文 »

Here's something encrypted, password is required to continue reading.
阅读全文 »

Cmake

CMake是很多项目首选的项目构建工具。其次,目前很多开发工具,比如VSCode,Clion都支持使用CMake构建项目。使用Cmake能够更加方便的用一个文件实现对C/C++项目的维护管理。

阅读全文 »