你是否經常感覺到事情凌亂,互相衝突,且無法高效完成?又或者,你們的團隊內部完成了不少重複工作,資料對接不得不耗費大量的時間手動完成?
讀讀這篇文章吧,你會喜歡的!
本文按如下目錄組織!
一張圖來解釋就是這樣的,假設乙個公司有四個人。他們彼此之間都需要交流,情況是這樣的。每增加乙個人,這個人就需要和先前所有人加一條線,就需要加n條線。
而統一接受乙個中心的調配,彼此之間連線少得多。新來乙個人也只需要加一條線就可以了。
最近我剛參加了乙個機器學習的比賽,這非常棒。我主要做資料處理部分,我的資料處理好一部分之後,就發給隊友用。隊友馬上把他套入了模型中,然後得到了結果。
隊友跑完模型之後說,該死的,結果太差了,我們這樣,再加幾個特徵。
很快我就加完了特徵,但我傳給他之後,他又需要操作一遍,因為他的資料和他的**已經高度巢狀。他就把他改好後的資料傳遞給我,說,算了,我不好改這個,你直接在我這個後面把那幾列加上好吧。
而這當然只是個開始,後來整個專案的過程中,我們也為了我們不合理的分工,缺位的頂層設計吃了很多苦頭。
當然,雖然我們花費了很多時間用在這種沒有意義的互相配合對方的資料。(適合來自對方法的api介面格式這種工作上)最終我們還是完成了任務。
有句話說得好,叫做不要過早優化。所以我們這次做專案,直接啥也沒想,掄起資料就開始幹。但實際上我們為此付出了高昂的代價。不要過早優化指的是,有些優化沒有必要,等一等,你可以讓那些真正有意義的優化沉澱下來。這不等於說,你可以啥也不想就開始幹。
物件導向中一句話說得很好,不應該物件導向實現介面,而應該面向介面實現物件。很多時候,我們的很多時間花在了不必要的安裝環境,資料格式對接上。這其實是不合理,反應了軟體設計者,工具設計者的失職。乙個好的工具,應該能夠讓我們花費更多時間在自己的核心業務上,而不是這種邊邊角角的工作上。
而面向介面,就可以完全實現這點。
頂層設計,就是介面設計。大家都乖乖按介面的指示來互動,這就是最高效的方式。
頂層設計的最大誤區就是,認為只有大型的組織需要頂層設計,我作為乙個個人而言,不需要頂層設計。
但實際上不是如此,與自己相關的一切複雜的,有價值的事務,都應該進行頂層設計。例如你將要寫的乙個複雜的**,或者是你準備開工的乙個開源的大型專案,或者是你想要進行創業,又或者你寫出了乙個成熟的軟體,需要推廣,甚至這個國慶你去哪兒玩,花多少錢。
對,真的出去玩這種事情你可能都需要頂層設計,想清楚你究竟需要什麼?作為乙個個人而言,你出去玩的時候同時受到時間,地點,他人等等諸多限制。出去玩一趟,並且瀟灑的回來,其難度不亞於寫好一長串**且不報錯。
寫長串**不寫注釋是難以想象的,同樣的,出去玩七天,不寫規劃也是不可想象的。
這些你都需要進行頂層設計,例如你會考慮到,我乙個女孩子家,一定要住高階點的酒店,保護自身安全。你也會想到,我應該如何安排玩耍的順序呢?如果缺少乙個頂層設計,缺少頂層設計的決策依據,哪怕你選賓館,你甚至都會陷入泥沼無法自拔。
當然也不是什麼東西都需要頂層設計,例如我聽歌,我就明確了我就是隨意聽聽,當然也就不需要頂層設計了。
實際上,完成乙個頂層設計是沒那麼難的。因為頂層設計這種東西,只要有,就已經幫助很大了。另一方面來說,頂層設計也不是要求一次性做好的,而是可以逐步做,慢慢完善的。
例如你可以檢視我的閱讀指引,那就相當於是我的文章的包含範圍的頂層設計。
頂層設計模組
頂層模組就是最終直接提交給編譯器進行處理並在fpga晶元上直接實現的。如圖所示,a模組例化了b1 b2兩個模組,b1模組中例項化了c1 c2兩個模組,而b2 c1 c2三個模組都是具體的邏輯描述,且不包含任何例化語句。a模組稱為功能最大化模組,是頂層模組的可能性很大。如果fpga設計不是只包含乙個模...
設定頂層 頂層露台如何裝修設計 這些問題要記牢
關於買房,很多人都會抱有浪漫的幻想,特別是哪些渴望親近自然的現代人,閒暇的時候,在這樣乙個自由的愜意小天地裡,吹著涼悠悠的風,靜靜地放空自己,何不逍遙自在。那麼,你知道頂層露台如何設計嗎?頂層露台如何裝修設計 一 設計要點 要根據陽台的位置以及樓層的高度進行設計,另外還要注意陽台的朝向問題,以及光照...
關於頂層規劃的重要性
2022年05月30日18 40 35 工作三年有餘,從最開始的初入深度學習影象領域,到現在說一說自己的感悟。關於個人如何提公升今天暫且不談,下面主要談一談小組。在和同屆同事聊天的過程中,我們都會有同樣的感受,比如 某某小組氛圍很好,某某小組感覺能學到東西 絕大多數人,可以說是99 的人工作就是為了...