前言 各位同行有没有想过一件事,一个程序文件,比如hello.go是如何被编译器理解的,平常在编写程序时,IDE又是如何提供代码提示的。在这奥妙无穷的背后,AST(AbstractSyntaxTree)抽象语法树功不可没,他站在每一行程序的身后,默默无闻的工作,为繁荣的互联网世界立下了汗马功劳。 AST抽象语法树 AST使用树状结构来表达编程语言的结构,树中的每一个节点都表示源码中的一个结构。听到这或许你的心里会咯噔一下,其实说通俗一点,在源代码解析后会得到一串数据,这个数据自然的呈现树状结构,它被称之为CST(ConcreteSyntaxTree)具体语法树,在CST的基础上保留核心结构。忽...

  xiWWOvJdSbrL   2024年01月16日   21   0   0 Go

前言 GoFrame是一款模块化、高性能、企业级的Go基础开发框架。GoFrame是一款通用性的基础开发框架,是Golang标准库的一个增强扩展级,包含通用核心的基础开发组件,优点是实战化、模块化、文档全面、模块丰富、易用性高、通用性强、面向团队。GoFrame既可用于开发完整的工程化项目,由于框架基础采用模块化解耦设计,因此也可以作为工具库使用。个人感觉优于Gin和Beego。 本文推荐一个Goland插件,可以更好的配置GoFrame框架开发项目。在进一步开始之前请您注意,由于GoFrame算得上真正意义的Golang企业级、工程化的开发框架,她设计严谨、易于使用、文档丰富且社区活跃,一旦...

  xiWWOvJdSbrL   2023年12月22日   48   0   0 Go

前言 GitHubActions可以构建一组自动化的工作流程,并提供了拉取请求、合并分支等事件来触发他们。一般成熟的开源项目会在每个版本发布时提供releases,它就是通过Actions来自动发布的。本文就以自动发布releases这个例子来认识Actions。 创建workflow workflow被称为工作流,每个工作流以一个yaml文件表达。在仓库中建立.github/workflows/release.yaml文件,如果需要多个工作流,则创建多个yaml文件即可。 release.yaml: 定义工作流的名称 name:teach-studyRelease 定义一个push事件:当...

  xiWWOvJdSbrL   2023年11月17日   19   0   0 代码与软件发布

基础概念 进程与线程 进程是一次程序在操作系统执行的过程,需要消耗一定的CPU、时间、内存、IO等。每个进程都拥有着独立的内存空间和系统资源。进程之间的内存是不共享的。通常需要使用IPC机制进行数据传输。进程是直接挂在操作系统上运行的,是操作系统分配硬件资源的最小单位。 线程是进程的一个执行实体,一个进程可以包含若干个线程。线程共享进程的内存空间和系统资源。线程是CPU调度的最小单位。因为线程之间是共享内存的,所以它的创建、切换、销毁会比进程所消耗的系统资源更少。 举一个形象的例子:一个操作系统就相当于一支师级编制的军队作战,一个师会把手上的作战资源独立的分配各个团。而一个团级的编制就相当于一...

  xiWWOvJdSbrL   2023年11月02日   133   0   0 Go

抄袭转载的太多,请认准原文链接:xtrabackup的介绍与使用 前言 在网上找到教程都是复制粘贴抄袭的,而且还是陈旧资料,不得不说,当前中文互联网环境真是每况愈下。 如果你在网上找xtrabackup的教程,大概率会为你介绍innobackupex。但在最新的2.4版本中,innobackupex已经废弃,只是一个指向xtrabackup的软连接,官方推荐使用xtrabackup,原文地址:TheinnobackupexProgram 本文教程使用的是xtrabackup2.4.28,是当前(本文发布时)最新的xtrabackup2.4版本,可以备份MySQL5.1、5.5、5.6和5.7服...

  xiWWOvJdSbrL   2023年11月02日   54   0   0 MySQL

基础概念 进程与线程 进程是一次程序在操作系统执行的过程,需要消耗一定的CPU、时间、内存、IO等。每个进程都拥有着独立的内存空间和系统资源。进程之间的内存是不共享的。通常需要使用IPC机制进行数据传输。进程是直接挂在操作系统上运行的,是操作系统分配硬件资源的最小单位。 线程是进程的一个执行实体,一个进程可以包含若干个线程。线程共享进程的内存空间和系统资源。线程是CPU调度的最小单位。因为线程之间是共享内存的,所以它的创建、切换、销毁会比进程所消耗的系统资源更少。 举一个形象的例子:一个操作系统就相当于一支师级编制的军队作战,一个师会把手上的作战资源独立的分配各个团。而一个团级的编制就相当于一...

  xiWWOvJdSbrL   2023年11月02日   50   0   0 Go

舞台环境 Ubuntu22.04.2LTS Docker24.0.2 2GBRAM或者更多 CPU2核心或者更多 Rancher2.6.9 测试环境中,我准备了两台Ubuntu服务器,IP分别是192.168.10.43和192.168.10.42,一台用做k8s的master节点,一台note节点,Rancher和master节点公用一台主机。另外,服务器之间的时间一定要精准同步。可以使用在网上找找资料,怎么做到局域网内服务器时间同步。 前置操作 修改主机名 k8s集群中,不允许出现重复的主机名,所以我们先要修改主机名: 192.168.10.43: hostnamectlset-hos...

  xiWWOvJdSbrL   2023年11月01日   83   0   0 Kubernetes

舞台环境 Rancherv2.6.9 K8sv1.24.16 如果你不具备该环境,可以移步使用Rancher安装K8s集群查看。本文适合已经了解了k8s基础概念,想使用rancher管理学习k8s的人群。 创建Nginx负载 Pod用于运行一个容器或者多个容器,大多数的场景使用单容器就可以了,这里我们部署一个拥有3个Pod的nginx。在右侧面板工作负载->Deployments->创建,选择创建一个nginx负载: 创建完成后可以在面板中看见它: 创建service nginx创建完成后,我们需要配置service,使其可以被访问。先获取nginx负载的标签,在右侧面板,...

  xiWWOvJdSbrL   2023年11月01日   53   0   0 Kubernetes

序言 对于正则,许多程序员都觉得它很繁琐,找不到头绪。但其实只要明白了基础语法,正则其实是非常简单的。学习正则表达式一定要躬行实践,自己动手来测试的自己表达式,这将大大有益对于正则表达式的掌握。在正文开始前,先给大家推荐一个好用的正则在线测试工具,本文后面将会使用它来对我们编写的正则表达式做测试:https://c.runoob.com/front-end/854/ 基础语法 正则表达式的基本形式:/pattern/flags 。其中pattern是匹配规则,flage被称为修饰符。我们先来看一个简单的示例: 正则:/you/g 文本:Ifyoushedtearswhenyoumis...

  xiWWOvJdSbrL   2023年11月01日   55   0   0 其他技术区
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~