www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > > 充電吧
[導讀]Joe Moreno在1998年至2007年期間就職于蘋果公司,是蘋果在線商店的一名開發(fā)人員。通過此文,也可對蘋果公司的一些產品開發(fā)細節(jié)有所了解。以下是全文。   當我還在蘋果在線商店工作的時候,我們從來沒有對在線網站

Joe Moreno在1998年至2007年期間就職于蘋果公司,是蘋果在線商店的一名開發(fā)人員。通過此文,也可對蘋果公司的一些產品開發(fā)細節(jié)有所了解。以下是全文。
  當我還在蘋果在線商店工作的時候,我們從來沒有對在線網站做過負載測試。我們也不覺得需要這么做。然而,當每次史蒂夫·喬布斯在演示某個幻燈片過程中切換到在線商店時,會走下臺來等待,這是非常有趣的經歷。作為事后檢查的一部分,每次在線商店重新上線時,我們都會問自己服務器的瓶頸在哪里:是CPU、網絡帶寬、磁盤I/O還是內存?雖然準確預測整個系統(tǒng)在實際環(huán)境中的行為非常困難,幸運的是我們有一整套的測試策略來確保在重新啟動之前有足夠的測試。 
 

作者:Joe Moreno

負載測試 / Load Testing
  許多公司用負載測試來試驗他們的web應用程序能夠支持怎樣的負載。一個最平常用到的,但是錯誤的方式是把web站點上線然后啟動負載測試。這種方式的問題在于,它不會告訴你web站點從在線狀態(tài)到不能提供服務這個過程中是如何運行的。當一個web站點在使用狀態(tài)時宕機然后重新啟動,這時web站點表現(xiàn)出的行為,一定與負載測試狀態(tài)下有很大的區(qū)別。例如,我們發(fā)現(xiàn)在iTunes商店(iTunesStore)第一次啟動時,一個被信任的WebObjects組件不是線程安全的,而這個問題只有在該對象處于重負荷情況下才會出現(xiàn)。
初生牛犢 / Cutting My Teeth
  當我第一次加入蘋果在線商店開發(fā)小組時,我和一位經驗豐富的軟件工程師搭檔,他教會我如何快速地熟悉代碼庫,構建流程以及單元測試和組件測試。由于在線商店已經上線了,我們只有在對新代碼進行測試以及搜集數據之后才能發(fā)布。
  我的第一項任務是和搭檔一起實現(xiàn)一個在網絡上用特性表形式搜集產品信息的簡單web服務。一般這樣的簡單web服務程序只需要一到兩天,而我們倆在師傅的一步步指導下花了一整個禮拜,通過結對編程方式完成了整個流程。(雖然我們采用結對編程,但是我們使用的是Agile/Scrum,而不是極限編程。每個開發(fā)小組可以在保證進度的前提下使用任何他們達成共識的開發(fā)技術。我服務的團隊碰巧有幾個經過訓練的scrum大師,他們得到了管理團隊的支持。)
  在實際開始編寫產品代碼之前,我們需要編寫單元測試。所有的軟件工程師都被要求先為他們的API編寫單元測試,這個一個很值得學習的規(guī)范。(編注:測試在敏捷當中非常重要,參考這篇《敏捷方法中測試人員的價值》。)接下來,我們在Eclipse/WOLips上使用WebObjects/Java編寫代碼,與此同時我們?yōu)閼贸绦蛟O下關鍵的斷點,然后在調試模式下運行,這樣我們就可以單步調試代碼。我見到了有太多在別處工作的軟件工程師,他們不斷地編碼然,就像他們在不斷地往墻上扔東西,然后看看到底會有什么會粘在墻上(像碰運氣一樣)。
  在我們檢入我們代碼的同時,軟件倉庫會自動構建所有的應用程序,然后對它們運行單元測試。如果你的代碼讓這次構建失敗,開發(fā)小組的每個人,包括一到兩位項目經理會受到郵件通知——你就是構建失敗的罪魁禍首。
令牌 / Token
  我們有一段非常特殊的軟件代碼,一次只能由一個軟件工程師檢出(check out)、編寫(work on)、然后檢入(checkin)。你只有在得到一個物理令牌時才能夠接觸到這段代碼。在我們這里,這個令牌就是一個DarthTater玩偶,它放在你的工作的格子間或者書架上最顯眼的地方。
搜集度量數據/ Gathering Metrics
  一旦我們的服務編碼完成,沒有錯誤,并且被檢入到代碼倉庫后,我們開始組件測試并搜集新代碼的度量數據。這是另外一個在新手團隊里被忽略的步驟。我懷疑“搜集度量數據”這個步驟甚至都沒有被包含在Joel測試中,因為JoelSpolsky的產品是一個桌面應用程序而不是一個需要重負載測試的web程序(或者,也許這個被隱含在“你有測試工程師嗎?”這個步驟里)
  甚至在我們考慮將代碼放到實時代碼分支之前,我們就已經對代碼進行了數百萬次的請求測試。在蘋果公司,我們有一個非常復雜的緩存算法,根據我們設定的目標,它可以保存我們需要的任意數目的記錄。我們是否需要五百個或是五萬個產品的請求記錄緩存呢?在一次冷啟動開始之后,我們是否需要對指定的產品用緩存來“熱身”呢?在沒有任何的請求命中時,我們需要等多久才把一個產品從緩存中移除并釋放內存呢?
  附注一點,我們的緩存通常是一個哈希表。哈希表的優(yōu)點在于它的大O表示法運行時間是常量O(1)。當你在一個面試中被問道“什么事最快的查找函數”時,千萬不要說“一個B樹二叉樹”。完美的哈希表通常會輕松勝出。
調整并完成 / Tweaking and Done
  我們會不斷調整代碼直到我們得到可接受的度量數據。我們的測量數據會對緩存內存消耗多少以及滿足每個服務請求/響應的時間長短進行度量。根據我們的需求,我們會努力達到99.7%的服務請求在35毫秒之內返回,95%的請求在10毫秒之內返回,沒有單個請求超過50毫秒的響應時間。
  這些測試在一個非常接近產品環(huán)境的實時數據庫的拷貝中運行。這不能完美地指出web應用程序一旦在實際環(huán)境中會如何執(zhí)行。但是將它變成一個設定期望的很好的辦法,這不會需要很久時間。
  在我們“疾跑”(Sprint)結束的時候,所有這些度量數據都會作為敏捷定義“完成”時演示的一部分。這時代碼已經準備就緒可以被檢入質量保證的代碼分支,在代碼發(fā)布上線之前還會進行功能測試。
編注:
  1. 大O表示法:用來描述算法的時間復雜度,O(1)的時間復雜度最低
  2. 疾跑(Sprint):是scrum開發(fā)方法的一個最基本開發(fā)單元

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

阿聯(lián)酋迪拜2025年8月26日 /美通社/ -- 納斯達克上市公司Robo.ai Inc.今日正式宣布完成品牌煥新升級,并于8月26日正式啟用全新納斯達克股票代碼"...

關鍵字: AI 人工智能 代碼 智能科技

北京2025年8月13日 /美通社/ -- 近日,北京積算科技有限公司(以下簡稱"積算科技")推出一站式AlphaFold3在線算力服務,現(xiàn)已開放免費使用。其內置優(yōu)化后的AlphaFold3模型,支持...

關鍵字: ALPHA 代碼 圖形化 蛋白質

北京2025年7月21日 /美通社/ -- 浪潮信息宣布元腦企智一體機已率先完成對Kimi K2 萬億參數大模型的適配支持,并實現(xiàn)單用戶70 tokens/s的流暢輸出速度,為企業(yè)客戶高效部署應用大模型提供高處...

關鍵字: 模型 AGENT TOKEN 代碼

7月18日,一則“微信安卓安裝包出現(xiàn)5處fxxk”的話題,迅速登上微博熱搜,吸引了眾多網友的熱議和關注。

關鍵字: 代碼 程序員

共鑒AI未來,緬懷先輩貢獻 深圳 2025年5月21日 /美通社/ -- 5月16日下午,深圳市金澄智創(chuàng)AI+傳承迎來了喬遷之喜,一場意義非凡的活動在新址盛大舉行?;顒蝇F(xiàn)場星光熠熠,莊世平前輩之子莊榮新先生、南方財經...

關鍵字: AI AI技術 BSP 代碼

C語言代碼優(yōu)化與性能提升是軟件開發(fā)中至關重要的一環(huán)。優(yōu)化C語言代碼不僅可以提高程序的執(zhí)行效率,還可以減少資源消耗,提升用戶體驗。

關鍵字: C語言 代碼

Qt 路線圖致力于實現(xiàn)與各行業(yè)技術棧的無縫集成,助力企業(yè)與開發(fā)者使用自選工具,更高效地構建、擴展和維護軟件解決方案。 芬蘭埃斯波 2025年5月7日 /美通社/ -- 在今日舉行的2025年Qt全球峰會上,Qt...

關鍵字: GROUP 生態(tài)系統(tǒng) 開發(fā)者 代碼

——首批"專家級數字員工"部署上崗,構建組織傳承與人才戰(zhàn)略的AI導師矩陣 北京2025年4月25日 /美通社/ -- 在生成式AI技術加速重構組織能力與人才機制的當下,如何留住專家經驗、培養(yǎng)管理人才...

關鍵字: AI 智能體 矩陣 代碼

深圳2025年4月21日 /美通社/ --?近日,國家發(fā)展改革委公布第 31 批國家企業(yè)技術中心認定名單,華測檢測認證集團股份有限公司(股票代碼:300012.SZ,簡稱 "CTI 華測檢測")憑借在檢驗檢測領域的全鏈條...

關鍵字: TI IC 代碼 半導體

珠海2025年3月13日 /美通社/ -- 近期,AI工具DeepSeek引發(fā)廣泛關注,大量非專業(yè)投資者試圖借助其生成股票策略,卻面臨現(xiàn)實困境:平臺輸出的Python代碼策略對零編程基礎用戶存在極高使用門檻。即...

關鍵字: EPS 代碼 PSE AI
關閉