golang_module包管理的使用
golang从诞生之初就一直有个被诟病的问题:缺少一个行之有效的“官方”包依赖管理工具。之前golang包管理工具有数十个, 说实话都不是让人非常满意。
go 1.11 有了对模块的实验性支持,大部分的子命令都知道如何处理一个模块,比如 run build install get list mod 子命令。go 1.12 会删除对 GOPATH 的支持,go get 命令也会变成只能获取模块,不能像现在这样直接获取一个裸包。
可以用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。
- GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
- GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
- GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。
在使用模块的时候,GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/pkg/mod 中,也会把 go install 的结果放在 $GOPATH/bin 中。
golang优雅的等待或通知goroutine退出
1. 等待 goroutine 退出
1.1 使用Waitgroup
1 | package main |
- close无缓冲的channle,有广播效果。
- wait 所有go 退出。
node版本管理nvm的安装和使用
我们可能同时在进行2个项目,而2个不同的项目所使用的node版本又是不一样的,或者是要用更新的node版本进行试验和学习。这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,而nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换,而这个正是nvm的价值所在。
1. 介绍
1.1 nodejs,npm,nvm之间的区别
nodejs:在项目开发时的所需要的代码库
npm:nodejs 包管理工具。在安装的 nodejs 的时候,npm 也会跟着一起安装,它是包管理工具。npm 管理 nodejs 中的第三方插件
nvm:nodejs 版本管理工具。也就是说:一个 nvm 可以管理很多 node 版本和 npm 版本。
nodejs介绍和javascript的区别
1. Nodejs 的诞生
话说有个叫 Ryan Dahl 的歪果仁,他的工作是用 C/C++ 写高性能 Web 服务。对于高性能,异步 IO、事件驱动是基本原则,但是用 C/C++ 写就太痛苦了。于是这位仁兄开始设想用高级语言开发 Web 服务。他评估了很多种高级语言,发现很多语言虽然同时提供了同步 IO 和异步 IO,但是开发人员一旦用了同步 IO,他们就再也懒得写异步 IO 了,所以,最终,Ryan 瞄向了 JavaScript。
因为 JavaScript 是单线程执行,根本不能进行同步 IO 操作,所以,JavaScript 的这一 “ 缺陷 “ 导致了它只能使用异步 IO。
选定了开发语言,还要有运行时引擎。这位仁兄曾考虑过自己写一个,不过明智地放弃了,因为 V8 就是开源的 JavaScript 引擎。让 Google 投资去优化 V8,咱只负责改造一下拿来用,还不用付钱,这个买卖很划算。
于是在 2009 年,Ryan 正式推出了基于 JavaScript 语言和 V8 引擎的开源 Web 服务器项目,命名为 Node.js。虽然名字很土,但是,Node 第一次把 JavaScript 带入到后端服务器开发,加上世界上已经有无数的 JavaScript 开发人员,所以 Node 一下子就火了起来。
谷歌云搭建免费服务器
前两年折腾过亚马逊的免费一年aws,后来发现速度很慢就弃用了。俗话说免费的是最贵的,但是google注册之后直接给300刀,货真价实的钱可以用来买服务器,简直不要太好用!
观看1080p无压力

pyqt安装使用打包教程
最近准备开发一个GUI程序, 考察了一些能选用的技术, 在windows下有多门语言可以选择(包括易语言哈哈).
但是最初的想法是不仅要快捷开发而且最好跨平台, 跨平台基本没得选了只能用qt了, 但短时间内用c++开发还是没有勇气的, 于是举棋不定选python.
1. 下载 qt designer
因为 Qt Creator实在太大了, 选用Qt Designer.下载链接: https://build-system.fman.io/qt-designer-download
安装成功后, 最好设置Appearance里为 Dockerd Window, 要不然很别扭