終於有些明白設計和實現的區別

2021-10-06 22:19:32 字數 1074 閱讀 9036

自己學習軟體開發也有些年頭了,因為不是科班出身,大部分的經驗是自己摸索的,雖然也看來不少的系統開發的書,總是不得要領,比如說我看過的《軟體工程》的教材我想有多個版本了,就是不太理解。開發的系統主要是嵌入式系統,一般來說也不是太複雜,所以總的說來我的經驗也算是對付得過去,但是現在嵌入式系統也是越來越複雜了,終於感到自己有些對付不了啦。我的解決方法是找人,花錢培訓,這也就是我專欄中有專案管理、資訊系統等方面內容的原因了,這裡有培訓老師的內容,也有我自己的總結。

我在給別人講解專案管理的時候,我經常舉的例子是蓋雞圈和蓋養雞場的問題。當僅僅養幾隻雞的時候,很可能在乙個星期天你的父親和你找了幾塊磚,幾片瓦,和些粘土在牆角花乙個小時就可以蓋好了,但是如果你家比較幸運,雞生蛋,蛋生雞,有幾萬隻雞時你的雞圈就不夠用了(規模大了),你要蓋乙個大的養雞場,你就要考慮:養雞場蓋多大?有那些功能區?要花多少錢?先買什麼材料?後買什麼材料?...你這時僅僅憑藉腦袋就記不下來了,你要做計畫,做安排....這就是專案管理。最終的產品是養雞場,但是如何蓋好這個養雞場也要花很大精力的。

在開發系統的時候,很多情況下我們(至少是我)就是直接寫**的,然後一遍遍修改、除錯,這哪有設計啊!直接就是實現!好一點的就是寫個流程圖,而流程圖很多時候是給領導看的,或者是用來寫**的,而且是事後,根本沒有起到指導工作的作用。在這樣的情況下,我根本不可能明白軟體工程一書中所說的在「軟體生命週期中,編碼只佔非常小的一部分時間」這一論斷:現實工作中我的工作明明就是編碼和找bug啊!

現在看來,主要的原因就是:我開發的系統不夠大,系統不夠複雜而已!簡而言之,沒見過世面!一到複雜的系統僅僅靠摸索到的經驗,而沒有理論的指導只能是抓瞎!!!

蓋雞窩需要畫圖紙嗎?不需要!蓋大型養雞場呢?當然需要!

現在回到題目:設計和實現的區別。設計相當於畫圖紙,而實現相當於用鋼筋、混凝土、磚等把圖紙上的東西實現。前乙個活是建築設計師幹的,後乙個活是泥瓦匠幹的。想想看設計師和農民工的工資待遇和地位,汗顏!以前的時候因為寫**是沒有實體的,以為編**就是設計,其實不是。這就像乙個泥瓦匠如果蓋乙個普通建築,如搭乙個豬圈,他不需要圖紙,立馬就可以蓋起來,他技術非常好。但是讓他立馬蓋乙個500m的大廈,他就傻眼了!不知道如何入手。不過他是可以參與到蓋500m的大廈的工作中來的,而且非常受歡迎!這就是設計和實現的區別。

藍芽協議版本 終於明白藍芽BT和BLE的區別了

在物聯網領域我們經常聽到藍芽模組ble bt 注意!此bt是經典藍芽模組的意思,不是你想的那樣。同是藍芽模組,ble和bt有啥區別呢?怎麼樣選擇呢?今天通哥就和您嘮一嘮!藍芽4.0標準是2012年推出的藍芽標準,是藍芽3.0的公升級版本,相比3.0版本它更省電 成本更低,3毫秒低延遲 具有超長有效連...

Git裡有些費解的術語和設計

關於暫存區,好幾個地方都寫到了 正在編輯的檔案 unchacked modified,而unchacked modified,的狀態也可以叫 to be committed 這個是一對可逆操作 git add abc.txt git reset head abc.txt git rm abc.txt...

ga 我終於知道post和get的區別

1.1 http的特點 基於tcp ip 一種網路應用層協議 超文字傳輸協議hypertext transfer protocol 工作方式 客戶端請求服務端應答的模式 快速 無狀態連線 靈活 可以傳輸任意物件,物件型別由content type標記 客戶端請求request訊息包括以下格式 請求行...