国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Docker統一團隊的開發環境

alin / 2440人閱讀

摘要:開場白作為一個技術團隊的,你是如何保證成員的開發環境達到公司的標準,或者是你定制的最低要求的如果你的回答是差不多就行了,有問題再說,那么,你已經在給自己挖坑了。好的,成員們開始構建你定制的開發環境了。

開場白

作為一個技術團隊的Leader,你是如何保證成員的開發環境達到公司的標準,或者是你定制的最低要求的?
如果你的回答是:差不多就行了,有問題再說,那么,你已經在給自己挖坑了。

同事A的開發環境中用的是PHP 7.1,所以他在代碼里寫了這么一個函數:

function getName(?int $id): string {
    return "name";
}

好的,?int 的意思是你的參數必須是數字,但是可以填一個數字以外的特殊類型,那就是null。


同事B用的是PHP 7.0,那么抱歉,他得這么改:

function getName(int $id = null): string {
    return "name";
}

?int需要被改成int,因為那是7.1的Nullable語法


同事C用的是 PHP 5.6,好的,繼續改吧:

function getName($id = null) {
    return "name";
}

所有的類型定義都得移除,沮喪嗎?



好的,你作為Leader?怎么選擇用哪個同事的代碼作為最終輸出?可想而知,選擇哪個都不合適。

選擇 7.1

同事C 在抱怨,要那么高的版本真的好嗎?我沒用過新特性,也不感興趣。

選擇 7.0

同事A 在抱怨了,新語法多簡潔啊,一個 ?int 就搞定了。

選擇 5.6

同事A/B 在抱怨,為什么不用強類型,寫代碼太沒樂趣了。




為什么

問題出在Leader,給了成員太多的選擇。會有什么后果?

優點 缺點
部分成員的利益受損
內部意見不統一,產生隔閡
可能出現被動學習新知識,生產力下降
維護多個不同時期的項目時,本地環境的版本切換十分不方便
你的領導能力受到質疑
在誘惑面前,人們往往會選擇最有利于自己的方式。不要試圖去挑戰人性,作為Leader的你,必須比任何一個成員都先做出選擇。
正題 Docker

我不想講docker是什么,因為其他人的博客里已經寫爛了。

你需要知道的是,你可以把開發環境扔進docker,然后讓每個成員忘記自己電腦里的開發環境。至于用了什么版本的php、mysql、linux、nginx、nodeJs,已經固定在docker里了。
你再也不用擔心你的成員會用其他版本的環境去寫代碼了,因為你已經制定了你的規矩。

優點 缺點
成員沒得選,只能用同一個版本的環境 Leader需要寫Docker配置
成員只需要知道docker怎么啟動,零學習成本
技術方面的交流障礙減少
代碼符合項目的基本需求,生產力提升
即使再多項目也沒關系,因為每個項目都是docker啟動,不需要考慮版本
Leader可以花更多精力在其它事情了
Dockerfile

也許你已經寫完了所有的Dockerfile配置,并把這些文件放進了項目的根目錄dockers/,同時為你的成員寫好了一個構建腳本build.sh,接著加入版本控制(git,svn),最后推到git服務器等待成員拉取最新的開發環境。好的,成員們開始構建你定制的開發環境了。

# 構建鏡像
sh build.sh

# 查看構建的鏡像
docker images

# 根據鏡像生成容器,僅供參考。本文不講述docker具體用法
docker run -it -d php:7.1 /bin/bash
docker run -it -d nginx:1.14.0 /bin/bash
docker run -it -d mysql:5.7 /bin/bash

犀利的你可能把生成容器的操作寫成一個腳本quick-start.sh,而且用的風聲水起。筆者拍拍你的肩膀,同學,為什么不用docker-dompose呢?

Docker Compose

可以這么說吧,這個東西就像是同時啟動了多個你想要啟動的鏡像,而且你還可以同時結束生成的容器。

# 同時啟動
docker-compose up

# 同時結束
docker-compose down

是的,很任性,你只需要配置一下你需要啟動哪些鏡像,然后把配置放到根目錄docker-dompose.yml中即可。
當然了,還有更多特性,比如 哪些容器之間需要互相關聯,被關聯的容器要用什么別名,需不需要等待關聯容器啟動完成之后再啟動自己,等等。。。

補充

如果您的項目比較多,那么推薦您利用git的子模塊(點擊訪問)去維護你的docker配置。這樣您改配置只要改一個地方,所有項目里面都會同步過去的,極大的提高了您的效率和維護成本。

# 假設已經建好docker的git倉庫   git@git_repository_a
# 那么在您的開發項目中,初始化只需這樣做:
git submodule add git@git_repository_a

# 您會發現項目根目錄多了一個文件 .gitmodules 以及多了一個docker倉庫的文件夾
結語

可能不算是一篇技術文章,只是拋磚引玉,引導新的Leader怎么帶領團隊走向正規化的道路。若是真要寫那么細,可能10篇都不夠寫了。有什么技術方面的問題可以在下方留言。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27339.html

相關文章

  • 五阿哥鋼鐵電商平臺Docker容器云平臺建設實踐——你想知道都在這里!

    摘要:容器云架構方案。容器云架構方案基于容器技術,運維技術團隊開發了五阿哥網站的容器云平臺。多云對接私有云和公有云進行統一托管,包含網絡區域配置,實例開通及的環境初始化配置等。技術選型及實踐鏡像標準眾所周知,的鏡像是分層的。 前言 五阿哥鋼鐵電商平臺(www.wuage.com)是由鋼鐵行業第一的中國五礦與互聯網第一的阿里巴巴聯手打造,并充分運用雙方股東優勢資源,即:阿里巴巴在大數據、電商運...

    jeffrey_up 評論0 收藏0
  • 曾金龍:迅雷云Docker開發實踐

    摘要:問能否談一下迅雷云使用的過程其實最初的時候,迅雷團隊對是懷有謹慎的態度的。三調度算法是迅雷云定制優化的。迅雷在使用這方面一直沒有把數據層面交給迅雷云之外的系統。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/201256 曾金龍就職于迅雷網絡,是國內覆蓋面最廣的迅雷P2P引擎核心研發成員。他畢業于中山大...

    iflove 評論0 收藏0
  • 阿里巴巴1682億背后“企業級”高效持續交付

    摘要:摘要在北京云棲大會上,阿里巴巴高級技術專家陳鑫花名神秀,給大家帶來了億背后的企業級高效持續交付,引起強烈共鳴。 摘要: 在2017北京云棲大會上,阿里巴巴高級技術專家陳鑫(花名神秀),給大家帶來了《1682億背后的企業級高效持續交付》,引起強烈共鳴。神秀從技術負責人關心的研發流程混亂、質量無法保障、環境管理低效、資源浪費等方面,結合阿里巴巴的DevOps實踐,深度解析了企業級持續交付如...

    Youngs 評論0 收藏0
  • 宜信開源|詳解PaaS平臺LAIN功能和架構

    摘要:是宜信公司大數據創新中心開發的開源平臺。為宜信大數據創新中心各個團隊提供了統一的測試和生產環境,簡化了服務的部署與上線流程,也降低了運維人員對系統管理的復雜度。基于容器技術,面向多樣化的技術棧,并且天然隔離系統和應用的依賴。 LAIN是宜信公司大數據創新中心開發的開源PaaS平臺。在金融的場景下,LAIN 是為解放各個團隊和業務線的生產力而設計的一個云平臺。LAIN 為宜信大數據創新中...

    mist14 評論0 收藏0
  • 云計算與 Cloud Native | 數人云CEO王璞@KVM分享實錄

    摘要:分享實錄云計算技術源于互聯網公司,現在云計算已經是下一代企業級的發展趨勢。如何做云計算一直是云計算技術的領導者。互聯網公司的快速發展,已經印證了云計算技術和云原生應用相比傳統構架的巨大優勢。 今天小數又給大家帶來一篇干貨滿滿的分享——來自KVM社區線上群分享的實錄,分享嘉賓是數人云CEO王璞,題目是《云計算與 Cloud Native》。這是數人云在KVM社區群分享的第一彈,之后還有數...

    _Zhao 評論0 收藏0

發表評論

0條評論

alin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<