【基础】Golang并发编程

Go并发编程

Golang 通过信道来共享变量的值,避免了直接在不同的线程间共享变量;

在任何时间点只有一个协程有权访问变量的值;在设计上就杜绝了数据竞争的情况。

记住:不要通过共享内存来通信,而应该通过通信来共享内存

Read More

【基础】Golang异常处理

什么是异常?

使用Python的时候我们用try..catch.. finall...处理异常,但是Go中则用defer, panic, recover,将异常和控制流程区分开。即通过panic抛出异常,然后在defer中,通过recover捕获这个异常,最后处理。

panic 的中文翻译为 恐慌,当程序遇到错误的时候就会恐慌造成程序崩溃!

比如如下代码(求玩具球的体积):

package main

import (
"fmt"
"math"
)

func GetBallVolumn(radius float64) float64{
if radius<1 {
panic("小球半径不能为负数")
}
return (4/3.0)*math.Pi*math.Pow(radius,3)
}

func main() {
volumn :=GetBallVolumn(-1)
fmt.Println("小球的体积是:",volumn)
}

Read More

【基础】使用Goinstall工具

工作空间

go 工具为公共代码仓库中维护的开源代码而设计。

无论是否公布代码,该模型设置工作环境的方法都是相同的。

Go代码必须放在工作空间内,其实就是一个目录,其中包含三个子目录:

src 目录包含Go的源文件,它们被组织成包(每个目录都对应一个包)

pkg 目录包含包对象

Read More

【基础】Golang入门

什么是Golang

Golang是编译型语言,被誉为21世纪的C语言。

Golang语法简洁且规范,可以快速的开发高性能的应用程序。

因为语法类似C语言,并且保留了指针便于内存操作,Go从1.5版本开始,默认采用多核执行,默认是你的CPU核心数。Go 语言是一门类型安全和内存安全的编程语言,虽然 Go 语言中仍有指针的存在,但并不允许进行指针运算。

Go 语言的另一个目标是对于网络通信、并发和并行编程的极佳支持,从而更好地利用大量的分布式和多核的计算机。

从 2010 年 5 月起,谷歌开始将 Go 语言投入到后端基础设施的实际开发中

Read More

微机原理

微机原理

微机性能指标

1)CPU类型:CPU型号决定了微机系统的档次

2)字长:CPU一次可以同时传送和处理的数码的位数,直接关系到计算机的计算精度、寻址速度和处理能力;字长越长,表示一次处理范围越大,性能越好

3)主频:计算机的时钟频率。CPU单位时间内(秒)发出的脉冲数,吉赫(GHz);主频越高运算越快。

4)内存容量:内存储器可容纳的二进制信息总量。以字节B(Byte)表示,8位二进制为1字节,1024B=1KB。

Read More

代码审计环境配置

代码审计工具选择

Fortify(JAVA)

下载地址:Fortify SCA 20.1.1(自行百度吧)

Fortify SCA(Fortify Static Code Analyzer),是HP的一个静态白盒源代码安全测试工具,内置的五大分析引擎:数据流、语义、结构、控制流、配置流;支持Java、PHP、Asp、SQL等语言。

白盒测试的各种漏洞风险描述或具体修复方案:中文版(仅用于报告编写参考)

Seay源代码审计系统(PHP)

下载地址:https://github.com/f1tz/cnseay

法师写的PHP代码一键审计工具,虽然误报多但是会用的话也是很有用的;

Read More