軟件工程第十二周

軟件作坊、軟件危機、軟件過程控制、重型控制、敏捷、DevOps

這些術語概括了軟件開發歷史和實踐中的幾個重要概念和階段。讓我們逐一解析它們:

  1. 軟件作坊(Software Craftsmanship):這是軟件開發的早期模式,強調個人技能和經驗。在這種模式下,程序員像工匠一樣,單獨或在小團隊中工作,采用較少的正式結構和流程。它更多地側重于個人能力而不是團隊協作或過程控制

  2. 軟件危機(Software Crisis):這個術語描述了20世紀60年代到70年代初期軟件開發領域的一系列問題。隨著計算機的普及和軟件復雜性的增加,行業開始面臨項目超時、超預算、質量低下等問題。這導致了對更嚴格的軟件工程實踐的需求。

  3. 軟件過程控制(Software Process Control):為了應對軟件危機,行業開始采用更系統化的方法來管理軟件開發。這包括定義明確的開發階段、文檔標準和質量保證措施。這種方法旨在提高可預測性和質量控制。

  4. 重型控制(Heavyweight Processes):在對過程控制的早期響應中,出現了以嚴格規則和過程為特征的方法論,例如瀑布模型。這些方法被認為是“重型的”,因為它們往往是線性的,需要大量文檔工作和階段審查,缺乏靈活性。

  5. 敏捷(Agile):作為對重型控制方法的反應,敏捷開發在21世紀初期興起,強調更快、更適應性強的開發過程。敏捷方法論如Scrum和極限編程(XP)鼓勵迭代開發、團隊協作、客戶反饋和適應性規劃

  6. DevOps:DevOps是敏捷的進一步發展,不僅關注軟件開發,還包括運維方面。它旨在通過自動化、持續集成和持續交付(CI/CD)以及團隊之間緊密合作來提高軟件交付速度和質量。

這些概念反映了軟件開發領域的演變,從早期的個體工匠式開發,到應對軟件危機的過程控制,再到追求更快速、靈活和協作的敏捷和DevOps實踐。每個階段都是對前一個時期挑戰的響應,展現了軟件行業不斷進化和適應新技術、新需求的能力


DevOps

DevOps是一種文化和實踐的集合,旨在提高軟件開發和IT運維的協作和效率。它的核心理念是打破傳統軟件開發(Dev)和運維(Ops)之間的壁壘,通過自動化和持續改進的方法來加快軟件交付速度、提高服務質量,并確保更高效的工作流程。

下面是DevOps的幾個關鍵要素:

  1. 持續集成和持續交付(CI/CD):自動化地將代碼從開發階段轉移到生產環境,確保軟件可以快速、頻繁地發布,同時保持高質量。

  2. 自動化自動化過程減少了人為錯誤,提高了效率和一致性。這包括代碼部署、測試、監控和基礎設施管理

  3. 協作和溝通:鼓勵開發和運維團隊之間的緊密合作,以便更有效地解決問題和共享知識。

  4. 監控和反饋:持續監控軟件和基礎設施的性能,快速響應問題,并利用反饋進行改進。

  5. 微服務和容器化:將應用程序分解成小的、獨立的服務,這些服務可以被快速、獨立地開發和部署。容器技術如Docker和Kubernetes在這一領域非常流行。

  6. 敏捷方法論:敏捷開發方法促進了更快、更靈活的開發過程,這與DevOps的目標一致。

通過這些實踐,DevOps有助于縮短系統開發周期,提高交付效率,減少部署失敗的風險,確保更高的軟件質量,同時提高客戶滿意度和業務競爭力。


云計算服務基本模型

云計算服務的三種主要模型:IaaS(基礎設施即服務),SaaS(軟件即服務),還有一種是PaaS(平臺即服務)。我來簡單地解釋一下它們各自的含義和區別:

IaaS(Infrastructure as a Service,基礎設施即服務)

  • 含義:IaaS提供虛擬化的硬件資源,如虛擬機、存儲空間、網絡等。它允許用戶通過互聯網訪問和管理這些基礎設施,而不需要購買和維護實體服務器。
  • 例子:Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform。
  • 用途:適用于需要高度自定義和控制硬件資源的場景,比如運行特定的操作系統或應用程序。

PaaS(Platform as a Service,平臺即服務)

  • 含義:PaaS提供一個平臺,讓開發人員可以構建、測試、部署和管理應用程序。這個平臺包括了軟件和硬件的基礎設施,還有開發工具、數據庫管理系統等。
  • 例子:Heroku、Google App Engine、Microsoft Azure App Services。
  • 用途:適用于開發人員,因為它簡化了編程環境的設置,讓他們可以專注于軟件開發而非基礎設施管理。

SaaS(Software as a Service,軟件即服務)

  • 含義:SaaS是一種通過互聯網提供軟件應用程序的模式。用戶通常通過訂閱方式使用軟件,而無需安裝和維護任何硬件或軟件。
  • 例子:Google Workspace(前身為G Suite)、Microsoft Office 365、Salesforce。
  • 用途:適合大多數終端用戶和企業,因為它提供即開即用的軟件服務,無需擔心軟件的安裝、更新和維護。

總結來說,IaaS提供的是云中的基礎設施,PaaS提供的是開發應用程序的平臺,而SaaS則直接提供可用的軟件應用。這些服務模型都旨在簡化用戶的IT運營,減少對物理硬件和復雜軟件的依賴,同時提高可擴展性和靈活性。


瀑布模型與敏捷模型

瀑布模型是計劃驅動的,而敏捷模型則是價值驅動的。讓我們來更詳細地探討這兩種方法的特點和差異。

瀑布模型(計劃驅動)

瀑布模型是一種傳統的軟件開發方法,其特點包括:

  • 線性和順序:瀑布模型將軟件開發過程分為幾個順序的階段,如需求分析、設計、實現、測試、部署和維護。每個階段在開始之前都要等待前一個階段完成

  • 重視計劃和文檔:在瀑布模型中,項目計劃和詳細文檔被視為非常重要。在項目開始前,需求和設計應該被完全定義并記錄下來。

  • 難以應對變化:由于其線性和預定的性質,瀑布模型很難適應項目需求或目標的變化。

  • 風險和問題可能在后期才顯現:由于測試和實施階段在開發周期的后期,可能導致較晚發現問題和風險。

敏捷模型(價值驅動)

相比之下,敏捷模型采用了不同的方法:

  • 迭代和增量敏捷方法將項目分解為小的、可管理的部分,稱為迭代。每個迭代都包括自己的需求分析、設計、實現和測試。

  • 響應變化:敏捷模型強調適應性和對變化的快速響應。需求和解決方案在整個項目過程中都在進化。

  • 重視客戶合作:敏捷模型鼓勵與客戶的持續溝通和合作,以確保最終產品符合用戶的實際需求。

  • 交付價值優先:敏捷方法重視交付具有商業價值的軟件,而不是遵循預設的計劃或完成大量文檔工作。

總結

總的來說,瀑布模型適合那些需求穩定、明確,且不太可能在開發過程中發生變化的項目。而敏捷模型則更適合需求不斷變化、需要快速反應市場變化的環境。敏捷模型通過其靈活性和對價值的關注,為快速發展和不斷變化的項目提供了更有效的管理方式。


敏捷軟件開發方法

Scrum 和 Scrum/XP 是敏捷軟件開發方法的兩種形式。它們都是以敏捷原則為基礎,但有一些差異和特點。讓我來解釋一下它們各自的特點。

Scrum

Scrum 是一種流行的敏捷開發框架,其主要特點包括:

  • 角色:Scrum 團隊通常包括產品負責人(Product Owner)Scrum Master開發團隊
  • 沖刺:開發工作分為一系列固定長度的迭代,稱為沖刺(Sprints),通常持續2-4周
  • 日常會議:每天進行短暫的站立會議,討論進展、計劃和挑戰。
  • 沖刺規劃會議:在每個沖刺開始時,團隊確定在接下來的沖刺中要完成哪些工作。
  • 回顧和反思:在每個沖刺結束時進行回顧會議,評估成果并從中學習。

Scrum 側重于管理和組織軟件開發過程,但對于實際的開發實踐并沒有特別具體的指導。?


讓我們更詳細地了解 Scrum 框架中的兩個關鍵組成部分:沖刺(Sprints)和日常站立會議。

沖刺(Sprints)

沖刺是 Scrum 框架中的核心元素,具體特點如下:

  1. 定義:沖刺是一個時間固定的工作周期,在這個周期內,Scrum 團隊致力于完成一個可交付的產品增量。每個沖刺都有清晰的目標和計劃的工作集。

  2. 持續時間:沖刺的持續時間通常是固定的,一般為2到4周。選擇何種長度取決于項目的復雜性和團隊的需求。一旦確定,沖刺的長度在整個項目期間通常保持不變,以維持一致性和節奏。

  3. 計劃:每個沖刺開始之前,團隊會進行沖刺規劃會議,確定在接下來的沖刺中要完成的工作。這些工作通常從產品待辦事項列表(Product Backlog)中挑選出來,并轉換成沖刺待辦事項列表(Sprint Backlog)。

  4. 目標:每個沖刺都有一個具體的目標,圍繞這個目標選擇待辦事項,并在整個沖刺中保持焦點。

  5. 結束:沖刺結束時,團隊應該交付一個“可完成”的產品增量,即滿足定義好的質量標準和完成標準(Definition of Done)的工作。

沖刺的核心目標是完成當前最大價值的待辦項目。這意味著:

  1. 聚焦最重要的任務:團隊在每個沖刺開始時,從產品待辦事項列表(Product Backlog)中選擇最高優先級的任務。這些任務被認為是當前可以為項目帶來最大價值的。

  2. 明確的目標:每個沖刺都設定一個明確的目標,通常是圍繞著交付特定的產品特性或功能。這個目標幫助團隊保持聚焦,并為沖刺期間的所有工作提供方向。

  3. 迭代交付:通過在每個沖刺結束時交付一個可工作的產品增量,Scrum 方法確保項目持續地提供價值,同時允許團隊根據收到的反饋進行調整。

日常站立會議

日常站立會議是 Scrum 團隊溝通和協調的關鍵機制,具體如下:

  1. 定義:這是一個每天舉行的短會議,目的是同步團隊成員之間的工作和挑戰。

  2. 時間:這些會議通常很短,約15分鐘左右,以保持效率。

  3. 站立:會議通常是站立進行的,目的是保持會議的節奏快速和聚焦。

  4. 內容:在會議中,每個團隊成員通常會回答三個問題:

    • 昨天我完成了什么?
    • 今天我計劃完成什么?
    • 我遇到了哪些障礙或挑戰?
  5. 目的:這些會議的目的是為了快速識別問題和障礙,并促進團隊內部的溝通。它們不是用來詳細討論解決方案的,而是為了提供狀態更新和標識需要后續討論的問題。

日常站立會議(也稱為Daily Scrum)的本質是確保團隊成員之間就當天的工作保持同步,它是一個日常迭代的過程。具體來說:

  1. 日常同步:這個會議讓團隊成員分享他們的進展、計劃和面臨的挑戰。這樣做可以確保所有人都對項目的當前狀態有清晰的了解。

  2. 識別阻礙:通過日常溝通,團隊可以快速識別并解決可能妨礙進度的問題,這有助于保持工作流的順暢。

  3. 適應性調整:日常站立會議還提供了一個機會,讓團隊根據前一天的工作和遇到的挑戰做出必要的調整,這增強了團隊對變化的適應能力。

總結

沖刺和日常站立會議是 Scrum 方法中的兩個核心實踐。通過沖刺,團隊可以保持聚焦和節奏,逐步交付產品。而日常站立會議則提供了一個機制,用于日常同步和識別團隊面臨的挑戰,確保所有成員都保持在同一進度上。這兩個實踐共同支持了一個靈活、響應快速的開發環境。


Scrum/XP

Scrum/XP 結合了 Scrum 和極限編程(Extreme Programming,簡稱XP)的特點。它包括了 Scrum 的迭代計劃和團隊結構,以及 XP 的工程實踐。主要特點包括:

  • Scrum 的框架:使用 Scrum 的角色、沖刺和會議等。
  • XP 的技術實踐:包括持續集成、測試驅動開發(TDD)、代碼重構和配對編程等。
  • 強調技術卓越Scrum/XP 更注重開發實踐,確保代碼質量和持續的技術改進。

Scrum 和 Scrum/XP 都是敏捷方法,但它們的側重點略有不同。Scrum 更多關注項目管理和組織流程,而 Scrum/XP 結合了 Scrum 的流程管理和 XP 的技術實踐,提供了一個更全面的框架,既關注項目管理,也關注技術實踐的卓越。選擇哪種方法取決于團隊的特定需求、項目的復雜性和團隊成員的技能水平。


燃盡圖

燃盡圖(Burn-down Chart)是敏捷項目管理中常用的一種工具,用來跟蹤在一個沖刺(Sprint)或整個項目中剩余工作量的減少情況。它是一種可視化的表現方式,幫助團隊了解他們完成任務的進度,以及是否按照計劃進行。以下是關于燃盡圖的一些關鍵點:

特點

  1. 圖表類型:燃盡圖通常是一種折線圖,橫軸表示時間(如沖刺的天數),縱軸表示剩余的工作量(如故事點、小時或其他度量單位)。

  2. 跟蹤進度:圖表中的線條顯示了從沖刺開始到當前日期,預期和實際的工作量減少情況。

  3. 預期進度線:通常會有一條線表示理想的工作量減少趨勢,它從最初的總工作量斜率到零。這條線代表了如果按照計劃完成任務,工作量應該如何減少。

  4. 實際進度線:另一條線顯示了實際的工作量減少情況。這條線的起點也是沖刺開始時的總工作量,但其隨時間的變化反映了實際的完成情況。

用途

  1. 監控進度:燃盡圖使團隊能夠直觀地看到項目進度與計劃之間的差異,幫助他們判斷是否落后或超前于計劃。

  2. 預測完成時間:通過分析燃盡圖,團隊可以估計剩余工作的完成時間,并做出相應的計劃調整。

  3. 促進溝通:燃盡圖作為一種視覺工具,有助于團隊成員、利益相關者和管理層之間的溝通,讓每個人都能理解項目的當前狀態。

重要性

  • 燃盡圖是敏捷開發中一個重要的信息輻射器,它提供了一種快速評估項目狀態的方式。通過觀察燃盡圖,團隊可以及時發現問題,如進度滯后或工作量估計不準確,并采取措施進行調整。

  • 然而,燃盡圖只顯示了剩余工作量的量化度量,它并不提供關于工作質量或項目范圍變化的信息。因此,它最好與其他工具和指標一起使用,以獲得全面的項目視圖。


看板Kanban

看板(Kanban)是一種流行的敏捷方法,用于可視化工作流程和促進工作效率。它起源于豐田的生產系統,后來被適用于軟件開發和其他知識工作領域。看板方法的核心在于通過可視化的方式管理任務和工作流程,以提高透明度和團隊的生產效率。

看板的核心原則

  1. 可視化工作流程

    • 在看板中,工作流程被分解為幾個階段,每個階段都有其對應的區域或列。這些階段可能包括待處理(To Do)、進行中(In Progress)、待審核(Review)和完成(Done)等。
  2. 限制進行中的工作量

    • 看板鼓勵限制在任何給定時間進行的任務數量。這稱為“進行中工作(WIP)限制”。通過限制進行中的工作量,團隊可以更專注于當前任務,減少上下文切換的開銷,并更快地完成工作。
  3. 流動性工作

    • 看板方法強調任務應該持續、平穩地流動通過不同的階段,而不是成批次地移動。
  4. 基于需求拉動工作

    • 在看板系統中,新的任務是基于當前工作流程的容量和需求“拉動”的,而不是被推入。這意味著只有在有足夠容量處理新任務時,才會開始新的任務。

看板的優點

  1. 提高透明度

    • 通過將所有任務可視化,團隊成員可以清晰地看到整個工作流程的狀態,從而更容易識別瓶頸和阻礙。
  2. 靈活性

    • 看板方法允許團隊根據當前的工作負載和優先級靈活調整任務。
  3. 增強團隊協作

    • 由于整個團隊都能看到每個任務的狀態,因此看板促進了更好的團隊合作和溝通。
  4. 持續改進

    • 看板鼓勵團隊持續審視和改進他們的工作流程,以提高效率和效果。

總結

看板是一種簡單但強大的敏捷工具,它通過可視化的方式幫助團隊有效管理工作流程。它的靈活性和對持續改進的強調使其成為許多敏捷團隊首選的方法。


其他術語

Epic(史詩)

  • 定義:Epic 是一個較大的工作單元,通常涵蓋了一個廣泛的目標或需求。它是需求層級中的最高層次,通常跨越多個項目或產品的功能區
  • 特點:Epics 是較為抽象和寬泛的,通常需要較長時間才能完成。它們需要進一步細分為更小的部分才能實施。

Feature(功能)

  • 定義:Feature 是 Epic 的子集,代表特定的產品功能或一組功能
  • 特點:Feature 是對 Epic 進一步的細化,但仍然保持一定的廣度。它涵蓋的是相對較大的功能區域,但比 Epic 更具體。

Story(故事)

  • 定義:Story(通常稱為用戶故事)是進一步細化的需求,它描述了從用戶的角度看特定功能或改進的需求。
  • 特點:Story 是相對較小、具體的功能需求,通常可以在一個迭代或沖刺中完成。用戶故事幫助團隊聚焦于用戶價值。

Task(任務)

  • 定義:Task 是實現 Story 的具體工作項。
  • 特點:任務是需求層級中最具體的部分,代表了實際的工作指令。一個用戶故事可以被分解為多個任務。

從 Epic 到 Task 的粒度遞增

  • 從 Epic 到 Feature 到 Story 到 Task,每個步驟都是將大的需求細分為更小、更具體的部分。
  • 這種分解幫助團隊更好地理解復雜的需求,并將其轉化為具體的工作計劃。
  • 隨著從 Epic 到 Task 的過渡,需求的粒度逐漸增加,具體性和可操作性也隨之提高。

通過這種層次化和逐步細化的方法,敏捷團隊能夠有效地規劃和跟蹤復雜的軟件開發項目,同時確保工作始終聚焦于提供用戶價值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162120.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162120.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162120.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【面試題】for...in 和 for...of 的區別

給大家推薦一個實用面試題庫 1、前端面試題庫 (面試必備) 推薦:★★★★★ 地址:web前端面試題庫 JavaScript 是一門強大而靈活的編程語言,提供了多種迭代對象的方式。兩個常見的迭代方式是 for...in 和…

Boost獲取當前時間并格式化為字符串

格式化為字符串 時間轉字符串有兩種方法 #include <boost/date_time/posix_time/posix_time.hpp> #include <iostream>std::string getCurrentTime() {boost::posix_time::ptime currentTime boost::posix_time::microsec_clock::local_time(); std::string …

centos 安裝k8s教程(一鍵安裝k8s)

第一步 準備幾臺機器 第二步 K8s Manager 服務器中添加docker支持 安裝教程請查看這個博客 docker 安裝詳細教程 點我 第三步安裝 KuboardSpray 教程在這里 第四步 下載k8s資源包 第五步 安裝k8s 點擊安裝后 顯示如下&#xff1a;等待完成

arduino入門一:點亮第一個led

void setup() { pinMode(12, OUTPUT);//12引腳設置為輸出模式 } void loop() { digitalWrite(12, HIGH);//設置12引腳為高電平 delay(1000);//延遲1000毫秒&#xff08;1秒&#xff09; digitalWrite(12, LOW);//設置12引腳為低電平 delay(1000); }

電腦桌面便簽工具選擇哪一款?

隨著互聯網時代的不斷發展&#xff0c;電腦成為日常工作及辦公中必不可少的工具&#xff0c;通過電腦這款工具&#xff0c;大家可以更好的進行工作、學習等方面的交流&#xff1b;電腦桌面便簽由于可以為大家整合一些工作及學習方面的備忘事項及筆記等&#xff0c;因而深受大家…

獲取驗證碼在倒計時未完成前清除驗證碼

場景&#xff1a; 在點擊獲取驗證碼后&#xff0c;驗證碼開始倒計時&#xff0c;在點擊登錄后&#xff0c;出現彈窗不跳轉頁面。因此在出現彈窗后&#xff0c;即使倒計時沒有結束&#xff0c;也要將倒計時的文字變為重新獲取驗證碼。 template代碼 <div class"form-b…

【Vue】Node.js的下載安裝與配置

目錄 一.下載安裝 官網&#xff1a; 二.環境變量的配置 三.設置全局路徑和緩存路徑 四.配置淘寶鏡像 五.查看配置 六.使用npm安裝cnpm ? 一.下載安裝 官網&#xff1a; https://nodejs.org/en/download 下載完之后&#xff0c;安裝的時候一直點next即可&#xff0c…

FlinkCDC實現主數據與各業務系統數據的一致性(瀚高、TIDB)

文章末尾附有flinkcdc對應瀚高數據庫flink-cdc-connector代碼下載地址 1、業務需求 目前項目有主數據系統和N個業務系統,為保障“一數一源”,各業務系統表涉及到主數據系統的字段都需用主數據系統表中的字段進行實時覆蓋,這里以某個業務系統的一張表舉例說明:業務系統表Ta…

BQL是什么如何使用?

BQL是什么如何使用&#xff1f; BQL來源于Business Query Language &#xff0c;是一種業務查詢語言。是北京碩迪制信科技有限公司根據以往統計分析案例研發的一種語言。特點是通過可視化界面對業務語言進行查詢、聚合、排序等操作&#xff0c;通過BQL引擎轉換為數據庫可執行的…

CSGO游戲搬磚市場下跌分析,是跑還是入?

CSGO市場下跌分析&#xff0c;是跑還是入&#xff1f; 以下所有都是阿陽本人最近幾年觀察市場和踩坑的一點經驗&#xff0c;由于篇幅不長所以肯定會很淺薄&#xff0c;大伙下嘴輕點 。 首先現在真的是CSGO市場最低點嗎&#xff1f;后續還會跌嗎&#xff1f;我們究竟是該繼續觀…

Course1-Week1:機器學習簡介

Course1-Week1&#xff1a;機器學習簡介 文章目錄 Course1-Week1&#xff1a;機器學習簡介1. 課程簡介1.1 課程大綱1.2 Optional Lab的使用 (Jupyter Notebooks)1.3 歡迎參加《機器學習》課程 2. 機器學習簡介2.1 機器學習定義2.2 有監督學習2.3 無監督學習 3. 線性回歸模型3.1…

golang學習筆記——使用映射

文章目錄 使用映射聲明和初始化映射添加項訪問項刪除項映射中的循環 使用映射 Go 中的映射是一個哈希表&#xff0c;是鍵值對的集合。 映射中所有的鍵都必須具有相同的類型&#xff0c;它們的值也是如此。 不過&#xff0c;可對鍵和值使用不同的類型。 例如&#xff0c;鍵可以…

Apach Ozone部署

前言 最近由于工作需要&#xff0c;要部署一套ozone。我自己對hadoop這套體系不是很熟悉&#xff0c;所以過程磕磕碰碰&#xff0c;好不容易勉強搭起來&#xff0c;所以記錄一下部署方式 準備 三臺主機&#xff0c;主機均已安裝jdk、hdfs&#xff0c;相關的安裝配置就不另外寫…

python二叉樹鏈樹_樹的鏈式存儲結構

二叉鏈樹是一種樹狀數據結構&#xff0c;其中每個節點最多有兩個子節點&#xff0c;分別稱為左子節點和右子節點。每個節點包含一個數據元素和指向其左右子節點的指針。二叉鏈樹可以是空樹&#xff0c;也可以是具有以下特點的非空樹&#xff1a; 1. 每個節點最多有兩個子節點。…

netstat

netstat 命令用于顯示網絡狀態 參數說明&#xff1a; -a或--all 顯示所有連線中的Socket&#xff0c;默認不顯示LISTEN相關 -n 拒絕顯示別名&#xff0c;能顯示數字的全部轉化成數字 -e或--extend 顯示網絡擴展信息(User&#xff0c;Inode) -p或--programs 顯示正在使用So…

計算機組成原理 the one day

1.計算機系統硬件軟件 cpu運算器控制器 1個字&#xff08;word&#xff09;16bit&#xff1b; difference 1個字節&#xff08;Byte&#xff09;bit&#xff1b; 2.cpu主頻&#xff08;時鐘頻率&#xff09;1/cpu時鐘周期 CPI執行一條指令所需的時間周期數。 執行一條程序的…

JavaEE 多線程01

為什么引入多線程? 首先進程已經能很好的完成多任務這個情景下的并發編程了,那為什么又引入多線程呢? 這是因為在一些情景下,我么需要大量的創建和銷毀進程來完成一些任務,此時多進程對系統的開銷就會很大了. 假設有這樣一個場景,服務器同時接收到很多個服務請求,這個時候服務…

Python基礎教程: sorted 函數

嗨嘍&#xff0c;大家好呀~這里是愛看美女的茜茜吶 sorted 可以對所有可迭代的對象進行排序操作&#xff0c; sorted 方法返回的是一個新的 list&#xff0c;而不是在原來的基礎上進行的操作。 從新排序列表。 &#x1f447; &#x1f447; &#x1f447; 更多精彩機密、教程…

taro h5 ios解決input不能自動獲取焦點拉起鍵盤

描述&#xff1a;頁面中有個按鈕&#xff0c;點擊跳轉到第二個頁面&#xff08;有input&#xff09;&#xff0c;能直接獲取焦點拉起鍵盤輸入 安卓&#xff1a; 直接用focus() ios&#xff1a; focus無效&#xff0c;必須手動拉起 原理&#xff1a; 點擊按鈕的時候拉起一…

一元三次方程求解——浮點數二分

題目描述 思路 根與根之差的絕對值>1。可以得出距離為1的區間最多只有一個根若存在2個數x1和x2&#xff0c;且x1 < x2&#xff0c;f(x1) x f(x2) < 0&#xff0c;則(x1, x2)之間一定有一個根我們可以遍歷每一個區間為1的范圍&#xff0c;先判斷左端點是否是根&#x…