疫情期间,编程语言都摆起了地摊,程序员实惨!

困难年年有,今年特别多。公司要做一个新的网站,可预算有限,听说为了生计,各大编程语言们都摆起了地摊儿,我决定去瞧瞧,看看能不能淘点做网站需要的东西。选择静态web服务器一进集市,这烟火气就扑面而来,平时一个个端着架子的C++、Java、Python居然能放下身段,招呼叫卖,我还是头一回见。 “老哥,需要来点什么?”,C语言给我打起了招呼。“我想要建个网站”,我回答到。“那你可算来对地方了”,C语言摊主起身说到,“建网站总得需要一个Web服务器吧,你看这里,apacheweb服务器,卖的可好了” ...阅读全文

简书 2020-07-18 21:32:47 往复随安_5bb5

容器化Go应用--基础镜像的未知时区问题

用Go开发的应用程序的一个优势在于,可以从"零"开始构建应用的Docker镜像,镜像中仅需要包含Go应用程序编译后的二进制文件,不需要额外安装其他执行环境。这样一来Go应用镜像占用的空间确实很小(通常是几MB),而且也会更安全些。常用的alpine镜像(alpine是专门为容器设计的小型Linux发行版)中存在一个安全漏洞,该漏洞为大量生产容器留下了空的root用户密码,所以如果你的的Go应用程序在没有alpine(或任何其他操作系统)的容器中运行,黑客就不能利用操作系统的漏洞去攻击容器里的应用...阅读全文

掘金 2020年07月18日 kevinyan

踩坑记:Go服务灵异panic

这个坑比较新鲜,周一刚填完,还冒着冷气。 - 1 - 在字节跳动,我们线上服务的所有 log 都通过统一的日志库采集到流式日志服务、落地 ES 集群,配上字节云超(sang)级(xin)强(bing)大(kuang)的监控能力,每一条 panic log 都可以触发一个打给值班同学的电话。 所以我们常常不选电话,只选飞书 ↓↓↓ 但毕竟是 panic,大部分 case 都会迅速被就地正法,除了少数排查费劲、又不对线上产生太大影响的,比如这一个: Error: invalid memory add...阅读全文

Segmentfault 2020-07-22 21:32:34 felix021

震惊,阿里P8都在用的深入浅出kubernetes(K8S)指南,竟然泄露了?

作为一个典型的分布式项目,Kubernetes 的部署一直以来都是挡在初学者前面的一只“拦路虎”。尤其是在 Kubernetes 项目发布初期,它的部署完全要依靠一堆由社区维护的脚本。 其实,Kubernetes 作为一个 Golang 项目,已经免去了很多类似于 Python 项目要安装语言级别依赖的麻烦。但是,除了将各个组件编译成二进制文件外,用户还要负责为这些二进制文件编写对应的配置文件、配置自启动脚本,以及为 kube-apiserver 配置授权文件等等诸多运维工作。 这几年,在跟朋友...阅读全文

简书 2020-07-17 19:32:53 若丨寒

golang 创建redis队列/批量处理队列日志插入数据表

用户登录后 日志记录先存储到redis列表 。 使用定时任务 将redis中到登录日志批量插入日志表 .env文件 #Redis配置 REDIS_HOST=127.0.0.1 REDIS_PASSWORD= REDIS_PORT=6379 #用户登录日志队列任务名称 QueueName=userLoginRecord #定时任务开关 OPEN_TASK=open redis链接 //redis配置 PREDIS = redis.NewClient(&redis.Options{ Addr: os...阅读全文

简书 2020-07-17 19:32:51 顶尖少爷

虚拟化运维--容器云--Helm(十九)

一、Helm简介   Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来管理 Charts。有点类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。   Helm 是 Kubernetes 生态系统中的一个软件包管理工具。Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用,同时,也可以通过helm进行容器云应用的分享。在Kubeapps ...阅读全文

简书 2020-07-17 19:32:50 无剑_君

2020 年 从架构谈起到 Mesh 结束

image image.gif ​ 作者 | 张羽辰(同昭)阿里云交付专家 导读:如今,几乎所有的事情都离不开软件,当你开车时,脚踩上油门,实际上是车载计算机通过力度感应等计算输出功率,最终来控制油门,你从未想过这会是某个工程师的代码。 当我们谈论架构时,我们到底在谈论什么? 面向对象编程?函数式?模块化设计?微服务?这些词汇貌似都和架构这个 buzzword 有点关系,的确我们这个领域充满了很多难以理解的词汇,这些词汇从英语翻译到中文已经丧失了部分上下文,再随着上下文的改变使得意义彻底扭曲,比...阅读全文

简书 2020-07-17 19:32:49 阿里云云栖号

Go进阶45:Golang简洁的日志收集系统(替代ELKB)

golang_es_coverage.png 原文地址mojotv.cn 1. 背景 不废话, Golang 日志查看疼点 linux查看日志,一般开发者对linux命令不是很熟悉, 搜索日志更加难上加难 JAVA生态 ELKB 日志收集搭建复杂, 需要的是一个快速查看搜索,客户端来搜索日志 1.1 前期准备 我们可以使用logrus hook 快速的输出日志到Elastic Search 在使用Chrome Elastic Search GUI插件快速的定位你想用的日志. 收集日志: http...阅读全文

简书 2020-07-17 19:32:43 MojoTech

<casa> iOS应用架构谈 组件化方案

iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构谈 组件化方案简述前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路。我不认为这条组件化之路蘑菇街走对了。分享后我私聊了Limboy,Limboy似乎也明白了问题所在,我答应他我会把我的方案写成文章,于是这篇文章就出来了。另外,按道理说组件化方案也属于iOS应用架构谈的一部分,但是当初构思...阅读全文

简书 2020-07-17 19:32:42 tylor_peacoxk

Go进阶45:Golang简洁的日志收集系统(替代ELKB)

0. 原文地址: https://mojotv.cn/go/golang-ELKB1. 背景不废话,Golang 日志查看疼点linux查看日志,一般开发者对linux命令不是很熟悉, 搜索日志更加难上加难JAVA生态 ELKB 日志收集搭建复杂,需要的是一个快速查看搜索,客户端来搜索日志1.1 前期准备我们可以使用logrus hook 快速的输出日志到Elastic Search 在使用Chrome Elastic Search GUI插件快速的定位你想用的日志.收集日志: https://...阅读全文

Segmentfault 2020-07-22 21:32:33 mojotv_cn

后端程序员一定要看的语言大比拼:Java vs. Go vs. Rust

本文转载自https://blog.csdn.net/chen801090/article/details/105865467/这里只呈现最终比拼结果 三种语言的比较 在得出任何结论之前,我想指出这三种语言之间的关系。Java和Go都是支持垃圾回收的语言,但是Java会提前编译为在JVM上运行的字节码。启动Java应用程序时,JIT编译器会被调用以通过将字节码编译为本地代码来优化字节码,以提高应用程序的性能。 Go和Rust都提前编译为本地代码,并且在运行时不会进行进一步的优化。 Java和Go...阅读全文

51CTO博客 2020-07-17 10:39:52 gisonwin

细说反射&reflect

- 基本介绍 * 反射可以在运行时动态获取遍历的各种信息,比如变量的类型(type),类别(kind) * 如果是结构体变量,还可以获取到结构体本身的信息,(包括结构体的字段,方法) * 通过反射,可以修改变量的值,可以调用关联的方法 * 使用反射,需要import("reflect") - 反射常见应用场景又以下两种 * 不知道接口调用那个函数,根据传入参数在运行时确定调用的具体接口,这种需要对函数或方法反射,例如以下这种桥接模式,比如 func bridge(funcPtr interfac...阅读全文

Segmentfault 2020-07-22 20:32:32 code

golang 嵌套匿名函数实现递归 2020-07-16 (未允禁转)

这两天golang刷题碰到个需求,需要在递归调用中不断修改一个共享变量。但是go的变量只能在函数体内赋值的,我如果在递归函数体内给它赋值的话,那递归过程中就会疯狂赋值,这不对的。。。 于是,我搞了另外一个函数 f ,在 f 里面对共享变量赋值,然后 f 内调用递归函数,并把这个共享变量的指针传给递归函数,比较丑陋地实现了。。。递归函数还得带个共享变量的指针 func f() { var share = 0 recursion(20, &share) fmt.Print(share) } func...阅读全文

简书 2020-07-17 11:32:53 9_SooHyun

修改go的时间类型time.Time序列化为时间戳——以及更通用的自定义json序列化方式

0. 问题 go的json对Time类型的序列化结果是2020-07-16T14:49:50.3269159+08:00这种类型。我们希望改成时间戳。 1. 网上有各种现成的做法 1.1 辅助结构体 package main_test import ( "encoding/json" "log" "testing" "time" ) type SelfUser struct { ID int64 `json:"id"` Name string `json:"name"` CreateTime t...阅读全文

简书 2020-07-17 11:32:52 猫仙草

2020-07-16:如何获得一个链表的倒数第n个元素?

福哥答案2020-07-16: 1.快慢指针。快指针先走n步,然后快慢指针同时走,直到快指针走到尾。 2.两次遍历。第一次遍历获取链表长度,然后计算出序号,然后遍历获取序号下的元素。 3.数组保存。遍历一次保存到数组,然后计算序号,这样就能获取到元素。 4.栈保存。遍历一次链表,遍历的过程中将元素放到一个栈当中,遍历完毕之后再将元素从栈中弹出,弹出的第n个元素就是倒数第n个元素。 最好的方式是第1种方式。但是对于大公司的面试,可不仅仅是解题,还会让你说出好几种方法,面试才能过关。 代码用gola...阅读全文

简书 2020-07-17 11:32:51 福大大架构师每日一题

golang 分析调试高阶技巧

layout: post title: "golang 调试高阶技巧" date: 2020-6-03 1:44:09 +0800 categories: golang GC 垃圾回收 golang 高阶调试 Golang tools nm compile objdump pprof trace 单元测试 执行单元测试 go test 运行 编译,运行 统计代码覆盖率 程序 Debug dlv 调试用法 调试二进制 调试进程 调试 core 文件 调试常用语法 系统整理 应用举例 gdb 调试 ...阅读全文

简书 2020-07-17 11:32:50 奇伢云存储

golang os 包简单使用

一个简单的例子,使用 file.Read(data) 读取文件,并且通过个http 发送给客户端。 package main /* os 包练习 */ /* 这里也遇到一个问题就是,subline每次执行前最好保存一下刚修改的文件,否则 可能会不符合预期结果*/ /* regexp 使用參考:https://wizardforcel.gitbooks.io/golang-stdlib-ref/107.html#example-Regexp-FindStringSubmatch */ /* os ...阅读全文

简书 2020-07-17 11:32:50 天空蓝雨