设计模式-接口组合(八)

有一种非常经典的设计原则: 组合优于继承, 多用组合少用继承 为什么少用继承 继承是面向对象的四大特性之一, 表示类之间的 is-a 关系. 支持多态特性, 可以解

设计模式-接口编程(七)

何为"接口"编程 基于接口而非实现编程. 英文: Program to an interface, not an implementation 这条原则是一条比较抽象,泛化的设计思想. 接口的本质: 接口就是一

设计模式-贫血模式(六)

贫血开发模式 传统的MVC结构分为: Model 层, Controller 层, View层. 而做为前后端分离的MVC变为后端被分为: Controller, Service, Model 层. Controller 层负责暴露接口给前端调用. Service 层

设计模式-学习地图(四)

学习之前先罗列一下学习框架地图. 方便今后的学习. 三种编程范式 面向过程 面向对象(最主流) 函数式编程(如go语言) 面向对象7大知识点 面向对象的四

鲁班工具之 Markdown 生成目录(一)

命令行对 markdown 生成目录结构, 主要解决 markdown 不自动生成目录的困扰. 即[TOC]不支持. 工具源码 https://github.com/ekalinin/github-markdown-toc.go 下载安装 1 2 3 4 5 $ wget https://github.com/ekalinin/github-markdown-toc.go/releases/download/1.1.0/gh-md-toc.linux.amd64.tgz $ tar xzvf gh-md-toc.linux.amd64.tgz gh-md-toc $ ./gh-md-toc --version 1.1.0 mac 1 brew install github-markdown-toc 使

Golang err is shadowed during return

复现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 package main import "errors" func main() { TestErr("go", "golang") } func TestErr(t, p string) (s string, err error) { switch t { case "go": err := check(p) if err != nil { // 返回参数里的 err 作

解决tcp6问题

背景: 在 windows 上安装了 vmware linux . 在 linux 上开启一个服务对外提供8080端口, 而在 windows 上无法访问到. 解决思路 使用 netstat -nplt 查看端口上 tcp, 还是 tcp6 查看是否只绑定在 ipv6 上 sysctl

Docker笔记(五) 镜像管理

镜像是 Docker 三大核心概念中最重要的 Docker 三大核心: 镜像 容器 仓库 镜像介绍 Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试远程仓库里拉取. 默