==================
== 可爱淘哇 ==
==================
交流与建议、BUG反馈!

Go20210514 今日技术分享

技术分享 Golang
今日技术分享 面试官:聊聊 defer 的工作原理。。。 https://mp.weixin.qq.com/s/oWlQU9c9z11CHdOwOMOHxA 深度解密Go语言之基于信号的抢占式调度 https://mp.weixin.qq.com/s/xdhv24Lh-7smOT5ESw2dBw 聊聊如何做技术分享 https://mp.weixin.qq.com/s/iRe1aGShDBeVhLhOSHwbMQ Uber 使用 Go 的规模这么大?!都自己定制的 Go 编译器了 https://mp.weixin.qq.com/s/MO0WNlwecDVLx4QfWklamA 如何让消息队列达到最大吞吐量? https://mp.weixin.qq.com/s/Y1qWYdzNs8EXCFu_DtBH9g 薪资比肩北上广,你会考虑回老家吗?急招哦 https://mp.weixin.qq.com/s/koCxSjX8tXMMY3Yn8c4KpA kubebuilder 进阶: 测试 https://mp.weixin.qq.com/s/tcLIx3E0LyRkNhPO0U8zmg 从0.5到1用golang上线一个web项目 https://mp.weixin.qq.com/s/ZqbDY3IjtH2s5_oeDvhQVQ 从0到0.5用golang写一个web项目 https://mp.weixin.qq.com/s/XXLFwlmOUaD7a3hftYCd2A 译文 Go 的抢占式调度 https://gocn.vip/topics/12062 深度解密 Go 语言之基于信号的抢占式调度 https://mp.weixin.qq.com/s/ESfbVoCGUIdpwFOfGyvz1w 使用 Golang 的交叉编译 https://linux.cn/article-13385-1.html Go 无分支编码 https://mattnakama.com/blog/go-branchless-coding/ Read more...

Go20210513 今日技术分享

技术分享 Golang
今日技术分享 Go:跨团队协作时如何共享对象 https://mp.weixin.qq.com/s/zJaruocUDSzld8ttDyawng template源码分析 https://mp.weixin.qq.com/s/HqcaFEXgQbcRyjYjI6oKGQ kubebuilder 实战: status & event https://mp.weixin.qq.com/s/JuRlClCX7TnQKaW-Rr3Z7g 如何优雅地实现并发编排任务 https://mp.weixin.qq.com/s/M88-VS_H7o754mw5Ra7BYg Prometheus 二次开发之 API 接口 https://mp.weixin.qq.com/s/K7ERtE2KKflYSA9KJOukYg 从TDSQL,看分布式数据库的技术之美 https://mp.weixin.qq.com/s/CbzlPmGJCQKi3UmvwjFC1Q Go Team Leader — rsc大神新开源了一个库,增强模板功能 https://mp.weixin.qq.com/s/3DFejimkPY9tg9QQL2QTqw Wow,联通数科也招Gopher了 https://mp.weixin.qq.com/s/tVY3AuUOYEnMKi7Km4eBCw Go 数组比切片好在哪? https://mp.weixin.qq.com/s/zp1vdhGukEYKpzAdPt--Mw Go 缓存系列之 go-cache https://mp.weixin.qq.com/s/dKlfwJ69s3fUBWYIV57hyg Go 存储基础 — 内存结构体怎么写入文件? https://mp.weixin.qq.com/s/mfNz7r76vZOOgiMSmuVeJA 深度解密Go语言之基于信号的抢占式调度 https://mp.weixin.qq.com/s/ESfbVoCGUIdpwFOfGyvz1w 实现无限缓存的 channel https://colobu. Read more...

Swift语法全面解析

swift 语法基础 编程学习 ios
Swift介绍 Swift 是一门开发 iOS, macOS, watchOS 和 tvOS 应用的新语言。 swift 是一种安全,快速和互动的编程语言。 swift 支持代码预览(playgrounds),这个特性可以允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果。 Swift 通过采用现代编程模式来避免大量常见编程错误: 变量始终在使用前初始化。 检查数组索引超出范围的错误。 检查整数是否溢出。 可选值确保明确处理 nil 值。 内存被自动管理。 错误处理允许从意外故障控制恢复。 基础部分 常量和变量 声明常量和变量, 常量和变量必须在使用前声明,使用 let 来声明常量,使用 var 来声明变量。 示例: let maximumNumberOfLoginAttempts = 10 var currentLoginAttempt = 0 // 类型注解 var welcomeMessage: String 注释 单行注释双正斜杠(//), 多行注释(/* 多行的 */)。Swift 的多行注释可以嵌套在其它的多行注释之中。 示例: // 这是一个注释 /* 这也是一个注释, 但是是多行的 */ /* 这是第一个多行注释的开头 /* 这是第二个被嵌套的多行注释 */ 这是第一个多行注释的结尾 */ 分号 Swift 并不强制要求你在每条语句的结尾处使用分号(;)。 同一行内写多条独立的语句必须用分号分隔。 Read more...

使用 Golang 的交叉编译

Golang 编程学习
在 Linux 上测试软件时,我使用各种架构的服务器,例如 Intel、AMD、Arm 等。当我 分配了一台满足我的测试需求的 Linux 机器[1],我仍然需要执行许多步骤: 下载并安装必备软件 验证构建服务器上是否有新的测试软件包 获取并设置依赖软件包所需的 yum 仓库 下载并安装新的测试软件包(基于步骤 2) 获取并设置必需的 SSL 证书 设置测试环境,获取所需的 Git 仓库,更改配置,重新启动守护进程等 做其他需要做的事情 用脚本自动化 这些步骤非常常规,以至于有必要对其进行自动化并将脚本保存到中央位置(例如文件服务器),在需要时可以在此处下载脚本。为此,我编写了 100-120 行的 Bash shell 脚本,它为我完成了所有配置(包括错误检查)。这个脚本通过以下方式简化了我的工作流程: 配置新的 Linux 系统(支持测试的架构) 登录系统并从中央位置下载自动化 shell 脚本 运行它来配置系统 开始测试 学习 Go 语言 我想学习 Go 语言 有一段时间了,将我心爱的 Shell 脚本转换为 Go 程序似乎是一个很好的项目,可以帮助我入门。它的语法看起来很简单,在尝试了一些测试程序后,我开始着手提高自己的知识并熟悉 Go 标准库。 我花了一个星期的时间在笔记本电脑上编写 Go 程序。我经常在我的 x86 服务器上测试程序,清除错误并使程序健壮起来,一切都很顺利。 直到完全转换到 Go 程序前,我继续依赖自己的 shell 脚本。然后,我将二进制文件推送到中央文件服务器上,以便每次配置新服务器时,我要做的就是获取二进制文件,将可执行标志打开,然后运行二进制文件。我对早期的结果很满意: $ wget http://file.example.com/<myuser>/bins/prepnode $ chmod +x . Read more...

Linux/Mac 使用 GNU Screen 的小技巧

screen linux Mac GNU Screen
学习基本的 GNU Screen 终端复用技术,然后下载我们的终端命令备忘录,以便你能够熟悉常用的快捷方式。 对于一般用户而言,命令行终端窗口可能是令人困惑和神秘的。但随着你对 Linux 终端的进一步了解,你很快就会意识到它的高效和强大。不过,也不需要很长时间,你就会想让终端变得更加高效,除了将更多的终端放到你的终端,还有什么高好的方法能够提升你的终端效率呢? 终端复用 终端的许多优点之一是它是一个集中控制的界面。它是一个能让你访问数百个应用程序的窗口,而你与每一个应用程序进行交互所需要的只是一个键盘。但是,现代计算机几乎总是有多余的处理能力,而且现代计算机专家喜欢多任务处理,导致一个窗口处理数百个应用程序的能力是相当有限的。 解决这一问题的常见答案是终端复用:即将虚拟终端叠放在一起,然后在它们之间移动的能力。通过终端复用器,你保持了集中控制,但是当你进行多任务时,你能够进行终端切换。更好的是,你能够在终端中拆分屏幕,使得在同一时间显示多个屏幕窗口。 选择合适的复用器 一些终端提供类似的功能,有标签式界面和分割式视图,但也有细微的差别。首先,这些终端的功能依赖于图形化的桌面环境。其次,许多图形化的终端功能需要鼠标交互或使用不方便的键盘快捷键。终端复用器的功能在文本控制台上和在图形桌面上一样好用,而且键位绑定是针对常见的终端序列设计的,很方便。 现有两种流行的复用器:tmux 和 GNU Screen。尽管你与它们互动的方式略有不同,但它们做同样的事情,而且大多具有相同的功能。这篇文章是 GNU Screen 的入门指南。关于 tmux 的相关介绍,请阅读 Kevin Sonney 的 tmux 介绍。 使用 GNU Screen GNU Screen 的基本用法很简单,通过 screen 命令启动,你将进入 Screen 会话的第 0 个窗口。在你决定需要一个新的终端提示符前,你可能很难注意到有什么变化。 当一个终端窗口被某项活动占用(比如,你启动了文本编辑器 Vim 或 Jove 或者你在处理音视频,或运行批处理任务),你可以新建一个窗口。要打开一个新的窗口,按 Ctrl+A,释放,然后按 c。这将在你现有窗口的基础上创建一个新的窗口。 你会知道当前你是在一个新的窗口中,因为你的终端除了默认的提示符外,似乎没有任何东西。当然,你的另一个终端仍然存在,它只是躲在新窗口的后面。要遍历打开的窗口,按 Ctrl+A,释放,然后按 n(表示下一个)或按 p(表示上一个)。在只打开两个窗口的情况下, n 和 p 的功能是一样的,但你可以随时打开更多的窗口(Ctrl+A,然后 c ),并在它们之间切换。 分屏 GNU Screen 的默认行为更像移动设备的屏幕,而不是桌面:你一次只能看到一个窗口。如果你因为喜欢多任务而使用 GNU Screen ,那么只关注一个窗口可能看起来是一种退步。幸运的是,GNU Screen 可以让你把终端分成窗口中的窗口。 要创建一个水平分割窗口,按 Ctrl+A,然后按 s 。这将把一个窗口置于另一个窗口之上,就像窗格一样。然而,在你告诉它要显示什么之前,分割的空间是没有用途的。因此,在创建一个分割窗后,你可以用 Ctrl+A ,然后用 Tab 移动到分割窗中。一旦进入,使用 Ctrl+A 然后 n 浏览所有可用的窗口,直到你想显示的内容出现在分割窗格中。 Read more...
Previous Page 7 of 9 Next Page