天天看點

軟體工程的核心問題并非是程式設計

作者:CSDN
軟體工程的核心問題并非是程式設計

【CSDN 編者按】本篇文章介紹了作者在軟體工程領域中遇到的一些常見問題,以及他使用的一些問題解決方法。作者分享了如何定義問題、分析問題、設計解決方案、實作解決方案、測試解決方案、評估解決方案和優化解決方案的過程和技巧。作者還提供了一些有用的資源和工具,以及一些實際的案例和示例。

原文連結:https://addyosmani.com/blog/softeng-problem-solving/

未經允許,禁止轉載!

作者 | Addy Osmani 譯者 | 明明如月

責編 | 夏萌出品 | CSDN(ID:CSDNnews)

軟體工程的重心在于問題解決和批判性思維,而非僅局限于程式設計。

許多人誤以為軟體工程就隻是程式設計,即用程式設計語言編寫指令,讓計算機按照這些指令行事。但實際上,軟體工程的内涵遠超出這個,其中包含了問題解決和批判性思維的重要方面。編寫代碼僅僅是整個過程中的一小部分,這個過程實際上充滿了精确分析、抽象推理和創新解決問題的元素,而鍵盤上的敲擊隻是這個過程的可見輸出。是以,軟體工程的真正關鍵不隻是在于程式設計,而更在于編寫代碼前的部分。

軟體工程的核心問題并非是程式設計

問題解決在軟體工程中的角色

軟體工程的本質實質上是一個問題解決過程。無論是作業系統、移動應用程式還是企業系統,每一款軟體的誕生都是為了解決某個特定的問題或一系列問題。這些問題可能涵蓋從自動化商業流程、提供社互動動平台,到處理大資料集等各種場景。

在工程師開始一個軟體開發項目時,他們首先需要了解他們需要解決的問題。這包括了解問題的細節,預測使用者的需求,以及描繪出問題的界限,包括限制和要求。一旦他們了解了問題,接下來他們就會構思可能的解決方案。

在這個階段,工程師會應用幾種問題解決政策,如分解(把問題分解成更小、更易處理的部分),模式識别(尋找目前問題與之前問題的相似之處)以及抽象(去掉不必要的細節,專注于核心問題)。通過運用這些政策,工程師建構了一個全面的解決方案,他們可以進一步将這個解決方案轉化為軟體系統。

軟體工程的核心問題并非是程式設計

批判性思維在軟體工程中的角色

問題解決隻是軟體工程的一部分,批判性思維同樣構成了其基礎。批判性思維需要對問題進行客觀的分析和評估,進而形成判斷。在軟體工程的每個開發階段,都需要運用到批判性思維。

在設計階段,我們需要在多種可能的解決方案或設計模式中做出選擇,這就需要運用批判性思維。工程師必須對每個選項的優點和缺點進行分析,考慮到各種因素,如可擴充性、可維護性和性能等。這需要深入了解計算機科學原理,并預測系統未來可能的發展路徑。

在實施階段,編寫高效且有效的代碼需要批判性思維。這包括選擇正确的資料結構和算法,確定代碼可讀性,以及維護軟體的安全性和完整性。此外,工程師需要預見并處理可能出現的錯誤和異常,批判性思維在識别潛在的問題和邊緣情況時起着重要作用。

在測試階段,工程師運用批判性思維來發現可能不易被察覺的問題。這不僅包括尋找明顯的錯誤,還包括識别潛在的設計缺陷、可用性問題以及性能瓶頸。

軟體工程的核心問題并非是程式設計

結論

軟體工程是問題解決和批判性思維的有機結合,編碼是其表現形式。敲擊鍵盤産生的代碼隻是一種傳遞媒介,它将解決方案傳達給機器。這些代碼是一個以了解問題、構思解決方案開始,通過精确分析以確定解決方案有效性的過程的最終産物。

随着軟體在我們社會中的應用越來越廣泛,軟體工程師的角色也随之增大。僅僅是程式設計技術熟練的編碼者已經不夠,工程師必須是能夠熟練解決問題、批判性思維的人,能夠在複雜的需求、限制和使用者需求中找到解決方案。綜上所述,軟體工程的核心不僅僅在于程式設計,更在于問題解決和批判性思維。

你是否認同作者 “軟體工程的核心不僅僅在于程式設計,更在于問題解決和批判性思維” 這一觀點?

粉絲福利:

繼續閱讀