形式化方法無用? - Hillel
許多程式設計師認為形式化方法是無用的,因為在軟體中“規則就是程式碼”。如果您可以形式指定程式應該做什麼,那麼您需要擁有該程式!
大多數有這種想法的人都不熟悉 "形式規則(形式規範、formal specification) "到底是什麼。
舉個例子,您的產品需要在某個時候從 API 中提取資料。這只是幾行程式碼而已。但有時呼叫會失敗。如果有一個失敗的請求,那麼你需要重試,然後你需要做指數反推,直到一個極限,之後我們就拋錯放棄了。
或者呼叫失敗是因為API拒絕了它,根據幾個錯誤中的一個,你的程式碼需要在重試之前做一些事情,或者可能完全放棄。也許你還需要在呼叫之前做一些驗證。這都需要更多的程式碼。
然後,還有所有用於關注其他方面的程式碼:像日誌程式碼、安全檢查、將他們的傳統資料格式變成你的傳統資料格式、效能駭客等等。所有這些都是實施所必需的,這些只是你程式流程的一部分。
如果我們剝去所有的驗證、日誌、安全、最佳化、重試和錯誤處理程式碼,我們想要的實際的、基本的演算法是什麼?它是否真的有效,或者即使一切都實現得很完美,設計從一開始是否就有Bug?
這就是形式規則的內容。你將所有的複雜性濃縮為 "我們要麼得到API資料,要麼得不到API資料",這樣你就可以停止考慮有關解析API的相關錯誤資訊,從而專注於大的系統。
規則規範不是程式碼。
當然,後來你也可能發現 "解析API錯誤資訊 "足夠重要,以至於你想把它列入規則。而且你可以選擇這樣做。
關鍵字是 "選擇"。你只需要指定對你來說很重要的東西。
相關文章
- 形式化方法
- 什麼是形式化方法
- 好的軟體哲學家有哪些? - Hillel
- 形式化方法應該為複雜軟體工程保駕護航軟體工程
- 群論的形式化驗證
- Stimulus — 需求形式化建模和分析工具
- Stimulus—需求形式化建模和分析工具
- 計算形式化和表徵也有侷限性
- asp.net 應用程式中同步方法呼叫非同步方法無響應解決方法ASP.NET非同步
- 硬體形式化驗證技術調研
- VSCode彈窗無法應用,終端無法鍵入命令列解決方法VSCode命令列
- win10無法啟用Directplay如何解決_win10系統Directplay無法啟用的解決方法Win10
- JDBC無法用SSL連線SqlServer2008的解決方法JDBCSQLServer
- ZigiWave採用無程式碼方法進行DevOps運維整合 – thenewstackdev運維
- win10系統diagnostic service host無法啟用處理方法Win10
- win10應用商店無法登陸怎麼辦_win10應用商店無法登陸賬戶解決方法Win10
- 『無為則無心』Python物件導向 — 58、類方法和靜態方法Python物件
- KDD2018 | 電商搜尋場景中的強化排序學習:形式化、理論分析以及應用排序
- 電腦檔案被佔用無法刪除?Win10系統檔案被佔用無法刪除的解決方法Win10
- win10系統下應用商店無法聯網的解決方法Win10
- windows商店無法載入頁面怎麼解決 微軟應用商店無法載入處理方法Windows微軟
- 用 Ansible 部署無服務應用!
- PyCharm無法啟用PyCharm
- 無限分級 方法總結
- Android SMSSDK無GUI介面整合方法AndroidGUI
- UICollectionView SelectItem方法無效的原因UIView
- win10微軟自帶應用無法開啟怎麼辦_windows10自帶應用無法開啟的解決方法Win10微軟Windows
- windows10應用商店更新不了怎麼辦 win10應用商店無法更新解決方法WindowsWin10
- win10應用商店無法連線伺服器最佳解決方法Win10伺服器
- win10可以聯網無法開啟應用商店最佳解決方法Win10
- 有一千種方法騙社畜,我用“防騙佩奇”平息你的無助
- 全球首個EOS安全管家:區塊鍊形式化驗證平臺VaaS
- 跨越300多年的接力:受陶哲軒啟發,數學家決定用AI形式化費馬大定理的證明AI
- 『無為則無心』Python物件導向 — 59、魔法方法Python物件
- 無線應用安全剖析
- 無模型的強化學習方法模型強化學習
- vue命令無效的解決方法Vue
- springmvc寫了方法無法訪問SpringMVC