Go语言中需要注意结构体方法副本传参与指针传参的区别

我们来看个例子:

执行后结果如下:

可以看到Test1中打印出b结构体的地址在变化,而Test2中没有变化,这说明每一次Test1的调用,都是传入的结构体b的一个副本(拷贝),当在Test1中对内部变量的任何改动,都将会失效(因为下一次访问的时候传入的是b结构体新的副本)。而Test2方法作为指针传参时,每一次传入的都是b结构体的指针,指向的是同一个结构体,因此地址没有变化,且对内部变量做改动时,都是改动的b结构体内容。

在Go语言中的这个差别可能是对OOP设计的一个坑,在Go语言中要想实现OOP的设计,在进行方法封装时,都采用Test2的写法。 Continue reading "Go语言中需要注意结构体方法副本传参与指针传参的区别"

OSI七层模型与TCP/IP五层模型

一直做应用层的开发,对于底层的一些概念比较模糊了,这里稍微整理了一下。

一、OSI参考模型

 1、OSI的来源

        OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。

        ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。

  2、OSI七层模型的划分

       OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。如下图。

        每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。
Continue reading "OSI七层模型与TCP/IP五层模型"

JetBrains 出品的 Go 集成开发环境 GogLand 发布正式版

一直用Gogland的公测版本,从本月初发布了正式版(名字改成Goland了),使用了一下,整体功能和公测版差别不大,希望一些异常崩溃的问题得到了解决。

下载地址:

Linux:https://download.jetbrains.com/go/goland-2017.3.tar.gz 
Windows:https://download.jetbrains.com/go/goland-2017.3.exe 
macOS:https://download.jetbrains.com/go/goland-2017.3.dmg

Linsence Server:http://xidea.online

虽然有破解版,看了一下个人版本一年才89刀,支持下正版。

团队成员不配合,不把项目经理当回事怎么办?

  老师参考答案:

  作为项目经理,要能够展现自身的价值

  从团队成员角度出发,他们一方面希望项目经理能够帮助他们解决困难、排除障碍;另一方面又不希望项目经理过度控制、束缚手脚,

  我们就可以从这两方面着手

  例如我们可以和团队成员沟通,了解他们在工作中遇到的困难(如技术类、协作类),并协调相关资源予以解决

  而在监管部分,项目经理需要结合实际情况,适当程度的“抓大放小”,例如每周五下午召开半小时左右的周例会,会议的主题是本周的计划执行情况、下周的计划内容、存在的风险和问题,让每个人都知道项目的实际情况 Continue reading "团队成员不配合,不把项目经理当回事怎么办?"