Go语言错误处理在业务中的应用实践

Go语言错误处理在业务中的应用实践

在前文《Go语言开发规范》一文中,笔者最后简单提到了错误处理error,但受篇幅限制,讲的还是过于简单。这篇文章将从error设计细节和业务开发这两个角度深入讲讲Go语言中对错误处理的工程实践。 讲起Go语言的error,想必网上可以搜索到一大堆相关的技术文章。但笔者细节阅读了一些文章发现,有些文章侧重在error底层实 ...

作者:s0nnet | 发布:2020-03-25 | 分类:Go语言, 代码艺术, 工程能力 | 围观:9237 | 标签:, , | 评论:抢沙发

Go语言开发规范

Go语言开发规范

相信很多开发者在Go有了一定的熟悉之后,就在思考如何写出更佳go style的代码。在网上搜索了之后,想必肯定找出了两份经典的文档说明: Go Code Review Comments:https://github.com/golang/go/wiki/CodeReviewComments Uber Go Style Guide:https://github.com/uber-go/guide/blob/master/style.md (译文版) 没错 ...

作者:s0nnet | 发布:2020-03-20 | 分类:Go语言, 代码艺术, 工程能力 | 围观:8322 | 评论:1条评论

基于Linux PAM的SSH认证企业级实践

基于Linux PAM的SSH认证企业级实践

在上一篇文章《基于Pam-Python模块Linux SSH双因子认证的实际应用》中我讲到了使用Linux PAM模块实现了对ssh登录进行的扩展认证模块。其中对PAM模块的认证机制做了详细的介绍并做了个简单的Demo实现,但考虑到工程化(项目规范程度以及对接企业内部统一认证平台等)以及安全性(如审计、python源码保护等)考虑,之前的 ...

作者:s0nnet | 发布:2020-01-31 | 分类:GNU/Linux, Go语言, Linux系统, 代码艺术, 安全工具, 网络安全 | 围观:7674 | 标签:, , | 评论:抢沙发

愿依旧是那个寻找路的人

愿依旧是那个寻找路的人

傍晚的列车缓缓地驶出了京城,余晖的夕阳却意犹未尽。窗外不断变换的景致,正如我最近这曲折而深思的心路历程。 一、4月9号:提交离职申请,裸辞 时间回到2016年5月,我刚大四准备找实习。刚巧前老板云舒从阿里离职创业,并在知乎上发帖招实习生。我试着投了份简历,也很幸运地被录用。我是一个很珍惜机会的人,记得201 ...

作者:s0nnet | 发布:2019-05-17 | 分类:生活/随想 | 围观:6770 | 标签:, | 评论:抢沙发

Linux下检测漏洞软件包

Linux下检测漏洞软件包

前言 随着开源软件热潮的进一步发展和在互联网上的广泛应用,目前因开源软件存在漏洞而造成的影响变得巨大。如Bash漏洞、Openssl心脏出血漏洞、ImageMagick命令执行漏洞、ffmpeg文件读取漏洞等等。此类软件漏洞往往没能及时修复,主要有以下原因: 1.因为此类漏洞已影响线上业务运行,而往往容易被系统运维管理者忽视; ...

作者:s0nnet | 发布:2018-10-07 | 分类:Go语言, Linux系统, Python, 安全工具 | 围观:11452 | 标签:, | 评论:抢沙发

谈谈欺骗防御技术

谈谈欺骗防御技术

一、什么是欺骗防御 近年来,网络安全形势日益严峻,信息泄露事件更是频繁发生。在这场攻与防的虚拟博弈空间里,攻击者的新型攻击技术已经远远超出了当前的主流防御检测方法。加以0Day攻击、高级持续性(APT)攻击以及基于人性弱点的漏洞攻击等,使得传统的网络安全产品(如WAF、IDS、IPS等)根本无法提供及时检测并阻断威 ...

作者:s0nnet | 发布:2018-09-27 | 分类:安全产品, 网络安全 | 围观:11983 | 标签: | 评论:抢沙发

云计算安全到底是什么?

云计算安全到底是什么?

本文系笔者的老板云舒在公司内部的一次关于《云计算平台安全科普》的技术分享。结合笔者自己对云计算网络安全的的理解以及查阅相关资料的补充,现简单概括并梳理成文。限于云安全范围较广,本文仅讨论云平台底层技术的网络安全问题。更多其他方面的可以继续关注笔者的后期文章。 一、两种最基本的云计算 1. 弹性计算(XE ...

作者:s0nnet | 发布:2018-09-23 | 分类:网络安全 | 围观:9446 | 标签: | 评论:抢沙发

深入学习Go语言标准库sync

深入学习Go语言标准库sync

一、前言 最近在阅读Go Web框架echo的源码时,有看到在Echo结构体中有定义了一个sync.Pool类型的pool,处于好奇,加上之前在编写多goroutine并发程序时只使用到了sync包的WaitGroup方法。处于好奇就跟踪进去看了下sync这个包的源码。不看不知道,一看吓一跳,这个包可是非常的强大,它提供了在高并发编程时遇到的各种竞 ...

作者:s0nnet | 发布:2018-09-17 | 分类:Go语言, 代码艺术 | 围观:9182 | 标签: | 评论:抢沙发

Go语言之Channels实际应用

Go语言之Channels实际应用

正如Golang社区中常说的:“不要通过共享内存来通信,要通过通信来共享内存”。在Go语言中,要传递某个数据给另一个goroutine(协程),可以把这个数据封装成一个对象,然后把这个对象的指针传入某个channel中,另外一个goroutine从这个channel中读出这个指针,并处理其指向的内存对象。Golang从语言层面保证同一个时间只有 ...

作者:s0nnet | 发布:2018-09-04 | 分类:Go语言, 代码艺术 | 围观:15246 | 标签: | 评论:抢沙发

深入理解Go语言中的方法

深入理解Go语言中的方法

Go语言中是没有类对象的,所以也就没有继承、虚函数、构造函数和析构函数、隐藏的this指针等诸多OOP方面的东西。与之相似的是结构体struct。所以 struct接收器的功能是实现go方法的方法。那么struct到底是一种怎样的存在呢? 什么是方法 Go 语言中同时有函数和方法。方法(method)就是一个包含了接受者(receiver)的 ...

作者:s0nnet | 发布:2018-08-28 | 分类:Go语言, 代码艺术 | 围观:10225 | 标签: | 评论:抢沙发

Linux运维利器: SED学习笔记

Linux运维利器: SED学习笔记

在项目部署或者是升级阶段经常需要写一下shell脚本做一些自动化的工作。所有python的fabric框架能做一些自动化部署的工作。但是开发效率较低,尤其在各种未知类型的配置文件修改方面。这个时候就轮到Unix 流编辑器sed上场了。 根据笔者在工作中遇到的常见问题以及搜索sed的相关资料,简单总结一下sed的基本使用方法,特 ...

作者:s0nnet | 发布:2018-08-17 | 分类:GNU/Linux, Linux系统 | 围观:8912 | 标签: | 评论:抢沙发

深入理解Go语言的Channels特性

深入理解Go语言的Channels特性

当我第一次使用Go中的通道(Channels)的时候,我误以为把Channels当作一种数据结构。我将Channels看作为队列来在goroutines之间提供同步访问。 这种概念性的误解理解使我编写了许多糟糕而复杂的并发代码。 而随着时间的推移以及对Go语言的深入理解,我逐渐关注到它的行为特性。 所以现在谈到Channels,我就会想到通信(si ...

作者:s0nnet | 发布:2018-08-10 | 分类:Go语言, 代码艺术 | 围观:11956 | 标签: | 评论:抢沙发