国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

我在蘋果學到的編程技巧

開發 后端 前端
當我還在蘋果在線商店工作的時候,我們從來沒有對在線網站做過負載測試。我們也不覺得需要這么做。

當我還在蘋果在線商店工作的時候,我們從來沒有對在線網站做過負載測試。我們也不覺得需要這么做。然而,當每次史蒂夫·喬布斯在演示某個幻燈片過程中切換到在線商店時,會走下臺來等待,這是非常有趣的經歷。作為事后檢查的一部分,每次在線商店重新上線時,我們都會問自己服務器的瓶頸在哪里:是 CPU、網絡帶寬、磁盤I/O還是內存?雖然準確預測整個系統在實際環境中的行為非常困難,幸運的是我們有一整套的測試策略來確保在重新啟動之前有足夠的測試。

[[75824]]

作者:Joe Moreno

負載測試 / Load Testing

許多公司用負載測試來試驗他們的web應用程序能夠支持怎樣的負載。一個最常用到的,但是錯誤的方式是把web站點上線然后啟動負載測試。這種方式的問題在于,它不會告訴你web站點從在線狀態到不能提供服務這個過程中是如何運行的。當一個web站點在使用狀態時宕機然后重新啟動,這時web站點表現出的行為,一定與負載測試狀態下有很大的區別。例如,我們發現在iTunes商店(iTunesStore)第一次啟動時,一個被信任的 WebObjects組件不是線程安全的,而這個問題只有在該對象處于重負荷情況下才會出現。

初生牛犢 / Cutting My Teeth

當我第一次加入蘋果在線商店開發小組時,我和一位經驗豐富的軟件工程師搭檔,他教會我如何快速地熟悉代碼庫,構建流程以及單元測試和組件測試。由于在線商店已經上線了,我們只有在對新代碼進行測試以及搜集數據之后才能發布。

我的第一項任務是和搭檔一起實現一個在網絡上用特性表形式搜集產品信息的簡單web服務。一般這樣的簡單web服務程序只需要一到兩天,而我們倆在師傅的一步步指導下花了一整個禮拜,通過結對編程方式完成了整個流程。(雖然我們采用結對編程,但是我們使用的是Agile/Scrum,而不是極限編程。每個開發小組可以在保證進度的前提下使用任何他們達成共識的開發技術。我服務的團隊碰巧有幾個經過訓練的scrum大師,他們得到了管理團隊的支持。)

在實際開始編寫產品代碼之前,我們需要編寫單元測試。所有的軟件工程師都被要求先為他們的API編寫單元測試,這個一個很值得學習的規范。(編注:測試在敏捷當中非常重要,參考這篇《敏捷方法中測試人員的價值》。)接下來,我們在Eclipse/WOLips上使用WebObjects/Java編寫代碼,與此同時我們為應用程序設下關鍵的斷點,然后在調試模式下運行,這樣我們就可以單步調試代碼。我見到了有太多在別處工作的軟件工程師,他們不斷地編碼,就像他們在不斷地往墻上扔東西,然后看看到底會有什么會粘在墻上(像碰運氣一樣)。

在我們簽入我們代碼的同時,軟件倉庫會自動構建所有的應用程序,然后對它們運行單元測試。如果你的代碼讓這次構建失敗,開發小組的每個人,包括一到兩位項目經理會受到郵件通知——你就是構建失敗的罪魁禍首。

令牌 / Token

我們有一段非常特殊的軟件代碼,一次只能由一個軟件工程師簽出(check out)、編寫(work on)、然后簽入(checkin)。你只有在得到一個物理令牌時才能夠接觸到這段代碼。在我們這里,這個令牌就是一個DarthTater玩偶,它放在你的工作的格子間或者書架上最顯眼的地方。

搜集度量數據/ Gathering Metrics

一旦我們的服務編碼完成,沒有錯誤,并且被簽入到代碼倉庫后,我們開始組件測試并搜集新代碼的度量數據。這是另外一個在新手團隊里被忽略的步驟。我懷疑“搜集度量數據”這個步驟甚至都沒有被包含在Joel測試中,因為Joel Spolsky的產品是一個桌面應用程序而不是一個需要重負載測試的web程序(或者,也許這個被隱含在“你有測試工程師嗎?”這個步驟里)

甚至在我們考慮將代碼放到實時代碼分支之前,我們就已經對代碼進行了數百萬次的請求測試。在蘋果公司,我們有一個非常復雜的緩存算法,根據我們設定的目標,它可以保存我們需要的任意數目的記錄。我們是否需要五百個或是五萬個產品的請求記錄緩存呢?在一次冷啟動開始之后,我們是否需要對指定的產品用緩存來“熱身”呢?在沒有任何的請求命中時,我們需要等多久才把一個產品從緩存中移除并釋放內存呢?

附注一點,我們的緩存通常是一個哈希表。哈希表的優點在于它的大O表示法運行時間是常量O(1)。當你在一個面試中被問道“什么是最快的查找函數”時,千萬不要說“一個B樹二叉樹”。完美的哈希表通常會輕松勝出。

調整并完成 / Tweaking and Done

我們會不斷調整代碼直到我們得到可接受的度量數據。我們的測量數據會對緩存內存消耗多少以及滿足每個服務請求/響應的時間長短進行度量。根據我們的需求,我們會努力達到99.7%的服務請求在35毫秒之內返回,95%的請求在10毫秒之內返回,沒有單個請求超過50毫秒的響應時間。

這些測試在一個非常接近產品環境的實時數據庫的拷貝中運行。這不能完美地指出web應用程序一旦在實際環境中會如何執行。但是將它變成一個設定期望的很好的辦法,這不會需要很久時間。

在我們“疾跑”(Sprint)結束的時候,所有這些度量數據都會作為敏捷定義“完成”時演示的一部分。這時代碼已經準備就緒可以被檢入質量保證的代碼分支,在代碼發布上線之前還會進行功能測試。

編注:

1. 大O表示法:用來描述算法的時間復雜度,O(1)的時間復雜度最低

2. 疾跑(Sprint):是scrum開發方法的一個最基本開發單元

原文鏈接:http://www.phpchina.com/archives/view-42975-1.html

責任編輯:陳四芳 來源: phpchina.com
相關推薦

2011-07-11 10:34:40

編程技巧蘋果

2013-06-27 10:31:39

2021-01-04 09:06:18

Next.js設計技巧

2013-12-26 09:34:12

開發學習

2021-07-28 07:01:09

薅羊毛架構Vue+SSR

2016-01-18 10:06:05

編程

2018-05-25 17:10:20

谷歌溝通經驗

2020-10-30 12:40:04

Reac性能優化

2019-08-27 10:49:30

跳槽那些事兒技術Linux

2019-08-16 17:14:28

跳槽那些事兒技術Linux

2025-07-28 04:22:00

2020-06-14 15:09:00

JavaScript開發技術

2022-02-18 15:36:53

源碼點文件

2010-01-11 10:28:51

C++編程

2016-01-05 10:37:50

Windows 10蘋果Mac

2021-03-09 09:55:02

Vuejs前端代碼

2019-01-16 10:55:08

Python 開發編程語言

2015-06-29 13:47:19

創業創業智慧

2012-07-12 00:22:03

創業產品

2013-04-11 09:23:36

.NET編程Haskell
點贊
收藏

51CTO技術棧公眾號

91原创国产| 欧美色网址大全| 欧美精品videos另类日本| 欧美裸体在线版观看完整版| 黄色小网站91| 久久精品一区二区| 亚洲成人影院麻豆| 久久精品国产69国产精品亚洲| 日本欧美视频| 女同性恋一区二区| 欧美视频在线观看 亚洲欧| 天堂中文在线播放| 91久久精品国产91久久| 99精品国产热久久91蜜凸| 在线观看免费版| 性色av香蕉一区二区| 快she精品国产999| 午夜国产视频| 日韩视频免费在线观看| 久久精品123| 国产91久久久久蜜臀青青天草二 | 91成人免费看| 国产亚洲欧美日韩精品一区二区三区 | 最新亚洲国产| 欧美风情在线观看| 国产精品tv| 日本精品久久久| 葵司免费一区二区三区四区五区| 久久亚洲精品毛片| 丝瓜av网站精品一区二区| 亚洲成人av电影| 国产特黄在线| 国产午夜亚洲精品理论片色戒| av在线三区| 欧美野外猛男的大粗鳮| 国产精选一区二区三区| 成人精品一区| 国产精品999999| 久久精品亚洲精品国产欧美| aa级大片免费在线观看| 99在线视频首页| 亚洲午夜激情av| 国产亚洲激情在线| 亚洲色图二区| 免费一级淫片| 久久视频精品在线| 精品一区二区在线观看| 日本高清在线观看wwwww色| 色一区二区三区| 国产精品av免费在线观看| 成人福利电影精品一区二区在线观看 | 亚洲欧美韩国| 日本免费高清一区二区| 欧美日韩一级黄| 一区二区三区四区在线观看国产日韩 | 88国产精品视频一区二区三区| 亚洲伦理电影| 日本韩国在线不卡| 亚洲综合视频网| 手机在线电影一区| 欧美日韩国产中文字幕在线| 久久久久久久影院| 精品国产网站在线观看| 碰碰在线视频| 91爱爱小视频k| 亚洲欧美日韩在线| 欧美男插女视频| 国产精品99精品久久免费| 国模精品一区二区三区| 亚洲精品中文字幕在线观看| 91成人福利社区| 午夜久久久久久久久久久| 欧美一卡2卡3卡4卡| 国内不卡的一区二区三区中文字幕| 国产美女作爱全过程免费视频| 精品久久久久久亚洲综合网| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲精品少妇久久久久久| 亚洲精品成a人ⅴ香蕉片| 欧美性受xxx| 国产精品少妇自拍| 亚洲91网站| 日韩av片网站| 4k岛国日韩精品**专区| 国产精品网站一区| 日韩黄色网络| 国产主播福利在线| 国产精品老女人视频| 一本一本大道香蕉久在线精品| 91精品久久久久久久久久不卡| 久久bbxx| 在线观看成人av电影| 国产亚洲视频中文字幕视频| 成人性生交大合| 精品国产麻豆| 四虎精品一区二区永久在线观看| 97精品在线视频| 亚洲美女免费视频| 久久精品一区二区不卡| 污视频网站在线免费| 亚洲欧美丝袜| 色视频www在线播放国产成人| 日本中文字幕一区二区有限公司| 亚洲性色av| 日韩中文字幕组| 国产999精品久久久| 色婷婷国产精品| 免费看欧美女人艹b| 成人在线观看免费视频| www.com操| 国产精品视频区| 亚洲第一页自拍| 国产一区二区导航在线播放| 精品中文在线| 一级在线观看| 亚洲免费不卡| 欧美精品videofree1080p| 免费成人你懂的| 国内在线视频| 性欧美18一19内谢| 欧美一级视频| 擼擼色在线看观看免费| av免费看网址| 欧美与欧洲交xxxx免费观看| 欧美性猛xxx| 久久精品中文字幕| 亚洲一级片在线看| 精品精品国产高清a毛片牛牛| 五月天一区二区三区| 亚洲精品伦理在线| 国产精品一区2区| 色婷婷色综合| 精品肉辣文txt下载| 成人免费网址| 91原色影院| 九一国产精品视频| 一区二区三区av在线| 精品一区精品二区| 国产精品视频观看| 男男视频亚洲欧美| 久久综合欧美| 日韩伦理在线| 国产三级视频| 亚洲日本va| 热久久精品国产| 国产精品免费观看在线| 日韩精品黄色网| 一区二区三区久久| av色综合久久天堂av综合| 在线播放欧美女士性生活| 亚洲成人激情综合网| 成人影视亚洲图片在线| 精品国产导航| 亚洲不卡av不卡一区二区| 精品一区二区三区影院在线午夜| 欧美日韩国产在线看| 91国偷自产一区二区开放时间| 欧美精品一区二区三区在线播放 | 黄页在线播放| 成人免费看片网站| 日韩一二三在线视频播| 免费高清完整在线观看| 亚洲美女在线看| 欧美性三三影院| 国产偷v国产偷v亚洲高清| 久久精品国产亚洲a| 日韩在线理论| 国产伦精品一区二区三区千人斩 | 亚洲欧美影音先锋| 欧美日韩国产精选| 欧美伦理91i| 国产精品一码二码三码在线| 国产精品极品美女粉嫩高清在线| 999热视频在线观看| 超碰97在线看| 国产小视频在线播放| jizzjizz少妇亚洲水多| 成人动漫视频| 福利电影一区二区| 欧美mv日韩mv亚洲| 国产精品影院在线观看| 久久久久免费看黄a片app| а√天堂官网中文在线| 综合伊思人在钱三区| 成人精品亚洲人成在线| 色中色一区二区| 最近中文字幕2019免费| 久久久久久精| av在线播放网| 小处雏高清一区二区三区| 成人免费不卡视频| 黄色成人av在线| 久久国产精彩视频| 亚洲欧美在线网| 自拍偷拍亚洲在线| 国产亚洲精品久久久久久久| 在线观看视频你懂的| 成人av集中营| 国产91精品在线观看| 一区二区三区在线影院|