精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

每個開發者都應該知道的10件事

開發 前端
我是一個 Python + Go 開發者,過去幾年一直從事于全球范圍內的應用開發。我和我的團隊每天要應對大約 200 萬的客戶,處理這種規模級別的事務其實是不太容易的,所以,我想分享一下過去幾年我的一些經驗和技巧。

我是一個 Python + Go 開發者,過去幾年一直從事于全球范圍內的應用開發。我和我的團隊每天要應對大約 200 萬的客戶,處理這種規模級別的事務其實是不太容易的,所以,我想分享一下過去幾年我的一些經驗和技巧。

每個開發者都應該知道的10件事

安全問題絕不能是馬后炮

應用的安全問題絕不應該是馬后炮或者降級成為“稍后再考慮的事兒”。我們需要從應用開發的第一天起,就將強有力的安全性考量貫穿到每次討論和開發流程中去,而不是開發到第 300 天才開始考慮。將安全問題放到最后考慮,反而會增加開發的時間,需要回爐重構以適應安全問題。更糟的情況是,你沒有足夠的時間來解決任何漏洞,最終只能交付易受攻擊的代碼。可以去了解下雅虎(Yahoo)這樣的公司,他們是如何做到這一點的。

應用不同,需求也不同。按需為應用做技術選型,而不是迫于行政壓力或市場熱度

每個應用都不盡相同,這一點其實無須贅述。沒有任何一套神圣的準則可以應用于所有應用(當然也包含本條)。當開始開發一個新的應用時,是應用本身及其架構決定了它要使用哪種技術或者基于哪個平臺。在思考“我的應用需要什么?”這個問題之前,就決定使用 gRPC 或者Kubernetes 只會造成一種后果:在你開始動手寫代碼之前,就為以后設置了路障,這也是為什么我們會陷入像 Canonical 這樣公司會為物聯網設備提供 Kubernetes 服務的可笑境地。引用 Jeff Goldblum 的話,“你們的科學家如此醉心于他們能夠干什么,卻不會停下來想一想是否應該這樣做”

你可能不需要微服務

我知道,微服務很迷人。能夠在應用程序中獨立地伸縮各種組件是令人興奮的,這也合理化了基于特定代碼庫的持續工作。但如果誠實地想一想,你可能沒有必要“微服務化”,像諸如此類的原因,“我想將 X 功能和 Y 功能解耦”,“避免壞代碼污染應用的其他部分”,亦或是 “應用程序崩潰時,最小化受影響的半徑”,這些都不是微服務化的借口,反而是壞的開發實踐(保持你現在,需要時再去觸及),code review 標準需要更加嚴格(不滿足要求的代碼暫時不要 merge),缺乏細粒度的安全控制的表現。

你真的需要獨立伸縮應用的不同部分,并且目前有能力解決一個或更多的組件問題(如登錄流程)嗎?

你的應用是運行在基于虛擬服務器的架構上并且想要縮減開支嗎?那么你不應該去探索微服務。

在最好的情況下,你能做到收支相抵。在最壞的情況下,需要啟動額外的實例。假設你有一個包含五個服務的整體應用,然后你將其分解為多個微服務。現在,你有5個應用程序,要么a)為其啟動專用實例,使初始內存占用增加5倍,要么b)使用現有內存占用,只需增加管理它的操作成本。

擁有標準的開發環境

當你與多個開發者協作時,其中一件最有裨益的事情就是在團隊中標準化開發環境。這其實并不意味著非得一起使用基于容器,虛擬化開發環境的“巫術”。當然了,如果你想這么做也可以。但像使用相同版本的開發語言這種簡單的標準,有時就會在團隊中創造奇跡。當同事基于 Go 1.11 版本開發時,你去嘗試基于 Go 1.12 版本去定位 bug 時,你會哭的。在協作中升級版本是有難度的,但如果操作正確升級也可以很順滑。

配置比看起來要困難,按需計劃

與一些熱門網站所說的相反,配置其實要比“把所有東西扔進環境變量”復雜的多。在我看來,配置一個應用程序應該至少有四種方式:

  • 代碼中的默認配置
  • 本地配置文件
  • 命令行標記
  • 環境變量
  • 遠端配置源(如 Hashicorp 的 Consul)

我將遠端配置當做是可選的,但其他四種是必要的。

開發過程中,將依賴的 27 個配置值扔到環境變量中,僅僅是為了在本地運行應用程序,這一點至少是令人沮喪的。或者你可能需要更好的自動化以及一個 Makefile?可以提供一種方式如一個application.yaml文件來訪問本地配置源,允許你設置默認的 “dev” 配置。另外,代碼中的默認配置意思是你只需要設置需要修改的默認配置。當通過像 systemd 這樣的初始系統運行應用時,命令行標記會非常有用,因為它可以在追蹤進程時,更加容易的看到配置信息。當應用運行在容器中時,環境變量會非常實用,但像秘鑰這種配置不適合放在環境變量中。

絕不要將秘鑰如密碼、認證token、證書等一些你不想泄露出去的東西放到環境變量中,因為這樣很不安全,有可能被宿主機上的任何進程讀到。你應該總是使用秘鑰管理器來管理秘鑰,我個人的選擇是Vault by Hashicorp,你可以選擇最適合你的。

按需使用包管理,而不是僅僅因為能用

我們都知道 “left-pad” 事件,一個只有 11 行代碼的 NPM 包從倉庫中移除,為何給全網造成了影響?我們不要這樣做。有合理的導包需求時,才應該使用 package,如特定供應商的SDK(例如 AWS 的 SDK),是一組非常詳細的標準庫的抽象(這就是為什么大家喜歡用 Python 的 Requests 庫而不使用 urllib),或者導入被廣泛使用的框架如 Go 語言的 Echo HTTP server 或者 Python 語言的 Flask WSGI server。一些方便的庫也可以,比如 JavaScript 的 Lodash,它提供了一些標準庫中沒有的公共功能和附加功能。這些外部依賴應該讓開發更容易,并且不需要手工編寫樣板或集成代碼 -- 這些是包管理的益處,但是,像 left-pad 這種,很容易陷入這種陷阱--“這正好有一個能解決問題的庫,直接用舊行了”。每一個你導入的依賴,都會增加不穩定、不安全或者僅僅不可維護的風險。

每導入一個包,新的依賴項本身的風險就會增加——這也稱為傳遞依賴項。如果你導入一個單獨的包,而這個包又導入了五個包,那么你現在就繼承了這五個依賴項以及它們所帶來的所有風險和危險。我和很多業內人士都認為包不應該引入傳遞依賴關系,但這是不現實的,至少包應該盡可能精簡,如果需要更強大的功能,則為用戶提供顯式擴展它的方法。

我現在遵循的一個簡單原則是,如果導入的庫,我自己可以在 10-15 分鐘實現,就自己實現。否則,如果有可用的外部庫,我就使用外部庫。開發過程中謹記這個規則可以讓你避免導入一些不必要的包。如果你不希望每次都從頭開始編寫新的 HTTP 服務器來提供 API,那么這種方法就足了。

如無必要,無需抽象

一個極易陷入的大陷阱就是“抽象所有”的黑洞。“這個我后面可能會復用”的想法可能會使你誤入一些黑暗和可怕的面向對象歧途,我弄清了其中的個中緣由,DRY 原則已經深入人心且理由充分。但是你花太多時間去抽象反而沒有足夠的時間寫邏輯。只需安心編寫代碼,如果你發現需要實現一個與之前完成的其他工作類似的方法或函數,那么你可以返回并抽象它——但同樣要有節制。我個人傾向于遵循的原則是,如果在抽象之前它是一個簡單的三行函數,那么最好保持不變,然后重復它。如果只是 3 行代碼,也許可以自問,它是否需要變成一個函數?

你應該時不時地“涅槃”你的項目

本條準則是最可怕的,它讓管理者緊張,讓產品經理氣急敗壞,讓開發者憤怒,但是你絕對需要它。

每隔一段時間就從頭開始是一件好事,它允許你代碼中刪除垃圾,實現新的想法,而不需要改造現有的代碼庫,并迫使每個人重新評估項目。

把項目想象成森林,每一行代碼都是綿延數英里的大森林中的一棵巨大松樹。隨著森林的演化,灌木叢、丟棄的松針、松果、枯死的樹枝和其他雜物散布于森林之中。這是你厭惡的東西,你的技術債。它會一直不斷堆積,直到某些巨變發生。對于森林而言,這種變化是以野火的形式出現。大火橫掃森林,燒毀了堆積起來的無用垃圾。樹皮足夠厚的樹會留下來,未成熟或未發育完全的樹會在火災中被燒毀。雖然這看起來是森林的盡頭,但它隱藏了一個巨大的秘密:森林一直在等待這場火。耐心地,年復一年地,森林一直在期待這場大火來凈化自己,并帶來變化。因為當大火在樹冠下肆虐時,下一代的參天大樹正在松果中發芽。當大火蔓延到森林地面時,脆弱的幼樹就會冒出來,與被大火熏黑的幸存者為伴。這也是你的應用程序該有的樣子:有彈性的、在清除過程中,編寫良好的部分幸存下來,而其他部分則為新思想和新代碼讓路——就像鳳凰涅槃一樣。

你不是 Google

除非你是 Google,但如果你真的是 Google,為何你還在讀這篇文章呢?關鍵是你大概率不是 Google,不是 Microsoft,不是 Amazon,不是 Twitter,不是 Facebook。你不需要在全世界 17 個不同的數據中心的 10,000 個裸機服務器上編排 150,000 個容器。你的問題通常不會對世界上每一個人造成很大的影響。我們為什么要討論這個?因為你的規模決定了你的操作平臺。如果你正在運行幾百個容器,那么你真的需要 Kubernetes 嗎?你真的需要自己運行 Kubernetes,還是只是想把它添加到你的簡歷中?HashiCorp Nomad 之類的工具非常適合解決中小型問題:它易配置,幾乎不需要維護,有良好的文檔,并且非常容易就可以把應用程序遷移過去,因為它可以與容器、系統進程和 JVM 應用程序一起工作。如果你真的想使用 Kubernetes,為什么不基于把繁雜細節都抽象好的 Rancher 來管理呢?運行 Kubernetes 這樣的復雜系統(它是為谷歌這樣的公司設計的)所帶來的麻煩和開銷對于一個團隊來說是難以承受的。我甚至會直截了當地說,初創公司應該不惜一切代價避免使用它,除非他們的產品是專門針對 Kubernetes 的。需要注意的是,要使用 Google、Amazon 和 Microsoft 在各自的云產品中提供的托管服務。因為他們管理著所有的丑陋的東西,很多管理費用并不是由你來承擔的。但千萬別讓我抓到你在物聯網設備上使用 Kubernetes,千萬不要。

不要照搬網上陌生人的開發哲學

對于開發風格和要遵循的原則,你應該形成自己的想法。即使是上面的 10 條建議也只是僅供討論,我只是網上的過客。

責任編輯:未麗燕 來源: Dockone.in
相關推薦

2019-08-28 14:28:38

2025-08-29 07:00:00

Go并發開發

2013-06-26 09:42:52

Web開發URL編碼URL

2023-11-17 14:18:48

開發編程

2023-11-27 15:49:55

軟件開發系統設計

2023-04-21 10:59:38

CIO制造業

2022-04-27 09:48:56

JS前端開發

2019-11-20 12:09:01

JavaScriptGitHub工具

2018-10-16 11:03:19

API開發者AR

2011-05-26 11:13:36

Flex

2010-03-01 10:20:27

Flex

2010-07-28 14:21:43

Flex

2014-04-09 11:19:12

創業創業前期

2025-03-05 09:21:08

2023-08-11 18:11:49

2018-05-03 08:45:58

Linux命令

2021-03-09 10:26:24

Python開發工具

2025-01-07 10:01:10

2012-02-28 10:52:13

2018-03-07 12:57:53

點贊
收藏

51CTO技術棧公眾號

www中文在线| 熟女人妇 成熟妇女系列视频| 国产精品欧美亚洲| 欧美天堂亚洲电影院在线观看| 亚洲精品ady| 一区二区在线播放视频| 在线不卡日本v二区707| av在线不卡免费看| 国产精品女主播| 国产乡下妇女做爰视频| 国产免费av一区二区三区| 欧美日韩视频不卡| 大j8黑人w巨大888a片| 欧美激情黑人| 91在线免费播放| 国产日韩欧美在线看| 亚洲精品www久久久久久| 久久中文视频| 亚洲精品日韩在线| 2025中文字幕| 国产aa精品| 欧美性猛交xxxx黑人| 久久久久久久香蕉| 午夜不卡视频| 久久丝袜美腿综合| 不卡一区二区三区视频| 一本一道精品欧美中文字幕| 99国产精品| 久久69精品久久久久久久电影好| 亚洲无人区码一码二码三码的含义| 国产精品色呦| 欧美一级欧美一级在线播放| 国产一级做a爰片久久| 欧美二三四区| 欧美日韩激情美女| cao在线观看| 最爽无遮挡行房视频在线| 中文一区在线播放| 日韩欧美一区二区三区久久婷婷| 黄色福利在线观看| 国产伦精一区二区三区| 国产精品视频一区国模私拍| 日韩欧美成人一区二区三区| 精品9999| 久久久久国产精品免费网站| 永久免费看mv网站入口| 欧美电影免费播放| 色悠悠国产精品| 国产探花视频在线播放| 一区二区美女| 亚洲欧美另类人妖| 波多野结衣一本| 亚洲第一福利专区| 亚洲人成网站免费播放| 久久av无码精品人妻系列试探| 欧美爱爱网站| 精品小视频在线| 精品人妻互换一区二区三区| 国产99久久久国产精品成人免费 | 天堂网在线免费观看| 电影一区二区三区| 日本久久一区二区三区| 日本美女高潮视频| 色综合.com| 日韩一级完整毛片| 人妻激情偷乱频一区二区三区| 国产精品色呦| 亚洲人成绝费网站色www| 五月激情四射婷婷| 仙踪林久久久久久久999| 久久久国产精品免费| 青娱乐91视频| 国产精品普通话对白| 国产成人久久精品| 在线观看色网站| 国产成人自拍在线| 国产一区免费| 国内三级在线观看| 亚洲男女毛片无遮挡| 91黄色在线看| 偷拍中文亚洲欧美动漫| 欧美美女视频在线观看| 女同性αv亚洲女同志| 日韩电影不卡一区| 日韩在线免费视频观看| 久久久久久久蜜桃| 麻豆精品91| 91中文字幕在线| 日本xxxxxwwwww| 欧美激情一区二区三区四区| 91视频成人免费| 天堂中文av在线资源库| 精品污污网站免费看| 韩国一区二区三区四区| 九九久久婷婷| 欧美大学生性色视频| 欧美一级特黄视频| 国产美女主播视频一区| 国产伦精品一区二区三区四区视频| 国模吧精品人体gogo| 亚洲精品中文在线影院| 国产亚洲综合视频| 国内精品视频| 一区国产精品视频| 麻豆一区二区三区精品视频| 日韩av一区二区三区四区| 99精彩视频| 麻豆tv免费在线观看| 欧美日韩免费一区| 超碰人人cao| 国产精品一区高清| 国语自产精品视频在线看一大j8| 亚洲午夜精品久久久| 99热99精品| 亚洲成人动漫在线| 91精品店在线| 亚洲欧美福利视频| 日本一级淫片色费放| 国产精品一二一区| 一区二区精品在线观看| 欧美成人ⅴideosxxxxx| 精品国产髙清在线看国产毛片| 国产又粗又猛又爽又黄的视频四季| 91久久中文| 91成人免费在线观看| 日本视频在线观看| 亚洲韩国一区二区三区| 超碰在线免费av| 欧美黄色录像片| 国产精品久久久久久久天堂| 日本在线一二三| 午夜精品久久久久久久蜜桃app| 激情文学亚洲色图| 欧美freesextv| 国产精品入口免费视频一| 九色在线视频蝌蚪| 91久久国产最好的精华液| 男男做爰猛烈叫床爽爽小说| 伊人久久大香线蕉av超碰演员| 91精品国产一区二区三区动漫| 在线观看a视频| 欧美色中文字幕| www亚洲色图| 七七婷婷婷婷精品国产| 手机成人在线| 久久久加勒比| www亚洲欧美| 国产露脸91国语对白| ㊣最新国产の精品bt伙计久久| www.com黄色片| 91综合视频| 91久久久国产精品| 最爽无遮挡行房视频在线| 日韩丝袜情趣美女图片| 久久r这里只有精品| 国产成人午夜精品5599| 成人免费观看在线| 精品淫伦v久久水蜜桃| 午夜精品一区二区三区在线播放| 天天躁日日躁狠狠躁喷水| 精品国产91乱高清在线观看| 欧美 日本 国产| 日韩激情中文字幕| 艳母动漫在线免费观看| 欧美午夜在线播放| 国产做受高潮69| 久草视频视频在线播放| 欧美日韩不卡一区二区| 放荡的美妇在线播放| 成人精品视频一区二区三区| 日韩avxxx| 日韩欧美午夜| 91久久精品国产91久久性色tv| 成人福利电影| 亚洲欧洲日产国产网站| 国产一区二区三区中文字幕| 亚洲一区二区综合| 在线 丝袜 欧美 日韩 制服| 青青草97国产精品免费观看| 免费看污污视频| 秋霞综合在线视频| 国产欧美精品在线播放| 欧美aaa免费| 亚洲性生活视频在线观看| 国产浮力第一页| 色婷婷久久一区二区三区麻豆| 九九热久久免费视频| 波多野结衣在线aⅴ中文字幕不卡| 黄色一级一级片| 欧美不卡视频| 日韩av不卡播放| 日韩精品视频一区二区三区| 欧美亚洲另类视频| 二区三区四区高清视频在线观看| 日韩av中文字幕在线播放| 国产一区二区三区三州| 色呦呦国产精品| 久久国产精品波多野结衣av| 国产网站一区二区| 在线免费看黄色片| 麻豆91精品视频| 国产又黄又大又粗视频| 在线看片不卡| 亚洲不卡1区| 日韩一区二区三区色| 国产精品久久久久久影视| 国产蜜臀av在线播放| 日韩在线观看免费av| 亚州男人的天堂| 欧美一区二区国产| 最近中文在线观看| 精品人伦一区二区三区蜜桃网站| 乱h高h女3p含苞待放| 久久精品人人做人人综合| 日本久久久久久久久久| 国内精品伊人久久久久av影院| www.中文字幕在线| 精品1区2区3区4区| 国产 欧美 日韩 一区| 99精品在线| 天天综合狠狠精品| 美女少妇全过程你懂的久久| 国产精品露出视频| 亚洲图色一区二区三区| 91免费精品国偷自产在线| 亚洲天堂1区| 国产精品99久久久久久白浆小说 | 久久婷婷蜜乳一本欲蜜臀| 欧美不卡三区| 猫咪成人在线观看| 国产精品一区二区三区不卡| 综合视频一区| 亚洲已满18点击进入在线看片| 欧美啪啪网站| 国产美女精品视频免费观看| 色猫猫成人app| 国产精品大陆在线观看| 小黄鸭精品aⅴ导航网站入口| 欧美一级淫片播放口| 免费看男女www网站入口在线| 欧美黄色www| 丁香影院在线| 久久久久国产视频| 嗯~啊~轻一点视频日本在线观看| 久久久久久91| 国产传媒在线观看| 欧美制服第一页| 欧美二三四区| 国产欧美韩国高清| 麻豆视频久久| 国产福利久久| 豆花视频一区二区| 精品国产免费久久久久久尖叫 | 日韩激情片免费| 青青青免费视频在线2| 亚洲欧美国产日韩天堂区| 久草视频视频在线播放| 色悠悠久久久久| 97caopor国产在线视频| 欧美大片在线免费观看| 国产高清视频色在线www| 日韩美女主播视频| 99精品国自产在线| 91亚洲精品视频| 美女呻吟一区| 日韩欧美在线一区二区| 97久久视频| 欧美a级免费视频| 亚洲综合99| 日本在线播放一区二区| 国产精品一级片在线观看| 国产xxxxxxxxx| 久久精品视频在线看| 一级黄色片日本| 亚洲国产一区在线观看| 中文字幕黄色片| 在线播放一区二区三区| 欧美 日韩 国产 成人 在线 91| 国产视频精品自拍| 黄色片网站在线观看| 韩国欧美亚洲国产| 日韩免费小视频| 亚洲综合自拍一区| 一道本一区二区三区| 国产又粗又爽又黄的视频| 亚洲久久成人| 午夜剧场高清版免费观看| 成人手机电影网| 国产精品久久久视频| 亚洲一区二区在线播放相泽| 丰满人妻老熟妇伦人精品| 91精品麻豆日日躁夜夜躁| 亚洲 欧美 自拍偷拍| 久久综合免费视频影院| 成人福利视频| 成人免费视频网站入口| 成人同人动漫免费观看 | 日本欧美一区二区在线观看| 中文字幕人妻一区| 国产精品日产欧美久久久久| 国产成人无码精品亚洲| 91精品国产综合久久久久久久| 无码h黄肉3d动漫在线观看| 久久成人18免费网站| 欧美精品总汇| 精品一区二区久久久久久久网站| 香蕉综合视频| 天堂社区在线视频| 不卡视频在线看| 日本a级片视频| 精品视频在线看| 神马精品久久| 国模精品视频一区二区| www.欧美视频| 亚洲一区二区在| 日韩精品每日更新| 一本加勒比波多野结衣| 亚洲乱码国产乱码精品精的特点| 久久国产香蕉视频| 亚洲美女在线看| 韩日毛片在线观看| 国产精品久久波多野结衣| 欧美一区网站| 911av视频| 国产精品久久久久久久久搜平片| 无码人妻精品一区二区三区蜜桃91 | 欧美裸身视频免费观看| 国产精品无码久久久久| 日日噜噜噜噜夜夜爽亚洲精品| 中文亚洲字幕| 超碰97在线资源站| 天天亚洲美女在线视频| 亚洲毛片在线播放| 欧美黑人xxx| 一区二区在线免费播放| 亚洲区成人777777精品| 国产中文一区二区三区| 精品亚洲乱码一区二区| 欧美日韩国产综合视频在线观看| 婷婷激情在线| 成人精品久久久| 888久久久| 污污视频在线免费| 亚洲一线二线三线视频| 亚洲精品国偷拍自产在线观看蜜桃| 欧美成aaa人片免费看| 精品国产伦一区二区三区观看说明| 9999在线观看| 国产又粗又猛又爽又黄91精品| 91高清免费看| 精品国产乱码久久久久久蜜臀 | 国产一级片在线| 国产精品视频在线观看| 99九九热只有国产精品| 欧美性受xxxxxx黑人xyx性爽| 亚洲欧美韩国综合色| 精品人妻aV中文字幕乱码色欲| 九九视频直播综合网| 国产毛片精品| 国产精品人人妻人人爽人人牛| 国产精品女上位| 99久久久无码国产精品免费| 欧美二区乱c黑人| 台湾色综合娱乐中文网| chinese少妇国语对白| 国产精品每日更新| 超碰免费在线97| 日本久久久久久久| 欧美xxxx中国| 免费在线观看日韩av| 日韩人在线观看| 日本中文字幕视频在线| 成人午夜电影在线播放| 亚洲一区一卡| 国产精品麻豆一区| 精品捆绑美女sm三区| 芒果视频成人app| 国产对白在线播放| 91在线精品一区二区三区| 伊人网免费视频| 国内精品久久久久影院优 | 试看120秒一区二区三区| 成人毛片一区二区| 国产欧美精品在线观看| 国产精品色综合| 欧美与黑人午夜性猛交久久久| 国产精品久久久久久久| 青青草视频网站| 欧美人狂配大交3d怪物一区| a'aaa级片在线观看| 一本色道久久综合亚洲精品婷婷| 成人免费视频国产在线观看| 波多野结衣影片| 久久久久久久久久久亚洲| 欧美日韩国产高清电影| 人妻av一区二区| 51久久夜色精品国产麻豆| 热三久草你在线| 伊人久久在线观看| 亚洲国产精品成人综合 |