我將程式開發大致分為基礎、工具、管理三部分,我認為這三者是不可分割的,甚至在工作流程中會形成乙個閉環,推動著程式開發。
先想象一下,「程式開發」——「目的地」,「基礎」——「怎麼去開車/開哪一條路」,「工具」——「車」
資料結構在概念上和內容上都是乙個非常難以理解的方面,所以我在這裡將資料結構比喻成思路,那何又為思路呢?
思路,故名思意,思考的道路或者方向。
在程式開發中,我們通常會思考如何去實現某乙個功能,如果將演算法比喻「怎麼去開車」,那麼資料結構就是去選擇「開哪一條路」。
總結——「通過使用什麼資料結構,能夠來為實現這個功能確定乙個方向?」
演算法有的人都將它理解為數學,解決演算法就是解決數學題,學好數學就可以學好演算法。
我認為演算法,是實現乙個功能或解決乙個問題的方法,也就是「怎麼去開車」。
而為了到達目的地,不僅需要要能夠開車,還需要知道開哪一條路,所以演算法和資料結構應是一種相互依賴的關係。
演算法的學習和資料結構的學習是離不開的,在學習資料結構時,也可以了解和學習使用該資料結構時,一般使用了拿一些演算法,需要哪一些演算法,也就是「開車的路上會轉過幾個彎,會出現哪些問題,要怎麼解決?」
一般的邏輯是先確定了開哪一條路再發車,所以總結——「演算法是通過資料結構進而實現功能的基礎之一」。
我將工具分為了三大類別:
程式語言開發環境開發工具/框架
這三我就具體說明了,我要講的只有一句話,也是我個人非常認同的乙個觀點——「程式設計重要的是思想和原理,不是語言,語言只是工具。」
管理,首先要知道為什麼需要管理,如何去管理,在這裡我將管理的要點分為了三個方面:
效能調優:
效能調優是「學習的動力」這一觀點中最突出、最明顯的乙個方面。乙個功能的實現不代表這個功能是完美的,俗話說條條大路通羅馬,到達「目的的」的路也有很多條,也就是說實現這一功能的演算法,往往的多樣的、複雜的。
如何去找到比這條路更快,更穩的路,就是效能調優的過程,優化原先的演算法,採用更好的演算法或資料模型,使得程式的執行效率、資源消耗越少,這便是效能調優,也是效能調優的作用和需要效能調優的原因。檔案管理:
在開發程式時,檔案的位置、大小、分類等,都是有著規範性的。乙個大型專案的開發人員肯定不止乙個人,這時就需要通過規範這些檔案管理的方法,來保證人員分配和工作的有序進行。優秀的檔案管理規範不僅有利於原始碼排查,而且在維護的時候也起到了指明排查方向的作用,實現了點對面,面對點的管理方式。
就像在圖書館,成堆的書籍需要人們通過規範的分類和擺放,才能保證後期在管理圖書時的效率。乙個分類明顯,整理整潔的書架,往往是比乙個沒有分類,雜亂無章的書架找書來得簡單。
維護管理:
維護管理不僅貫穿了整個程式開發的過程,在程式開發後,也起著相當重要的作用。諸如資料庫管理,執行日誌管理、程式/功能更新、功能策劃等我認為都屬於維護管理的範疇。
維護管理在整個程式中起著承上啟下的作用。
「承上啟下」指的是在程式執行過程中,通過維護管理,可以發現程式的不足或者缺點,或者發現程式還可以新增其他功能項,使程式擁有更好的內容,不斷完善,實現富優化。
「三者是不可分割的,甚至在工作流程中會形成乙個閉環,推動著程式開發。」
這是我在文章開始不久便提到的乙個觀點。讀到這裡的人不難發現,管理其實就是作為乙個閉環的起點之一,總體也有著承上啟下的作用的。
1. 當「管理」開始時,便會回到演算法和資料結構的「基礎」一環,來考慮如何優化資料結構和演算法,或者思考用什麼資料結構和演算法來增添新的功能
2. 再而便來到「工具」一環,考慮工具的選擇、採用的框架、環境的搭建和使用等等
3. 再回到「管理」一環,周而復始,從而推動了程式的完善,也就是推動了程式開發!
對程式開發的一些理解
有一句流行語 10 的 是處理正常流程的,90 是用於進行異常處理的 這是許多擁有大量通訊開發經驗教訓的專家們掛在嘴邊的話。在通訊界中,經常是各家的裝置互相聯絡,它們之間通過各種標準化的通訊協議來互相握手互相理解,雖說是 智慧型裝置 但終究是沒有思維的,不具有模糊推理之類的能力 所以,什麼話都說的毫...
MDA開發程式
mda model driven architecture 與uml unified modeling language 同為omg object management group 機構之標準。mda主要將生成的 uml模型,分為下列三個階段 cim computation independent ...
wxPython開發程式
漂亮的介面是乙個gui程式必不可少的一部分,wxpython可以快速簡潔的開發介面。加之python強大的功能和簡潔的語法,可以說wxpython是python在gui中的一種主流應用。乙個基本的wxpython程式必須的五個基本步驟,少一步都不可以。1 匯入必須的wxpython包 2 子類化wx...