軟體工程師的發明家 從發明家的視角分析軟體

2021-08-25 23:28:06 字數 971 閱讀 5940

明年就大四了,同學要去參加實習生面試,卻又不知如何推銷自己,他在校也做過不少專案,索性我就想讓他以專案為主,圍繞專案展現自己。所以如何讓面試官最快的了解自己的專案成了最大的問題, 我也就做了下模擬,把向遠古人介紹自行車和向對專案一無所知的面試官介紹專案做了模擬。

軟體工程師就像就發明家一樣,每個軟體都是其發明創造的產物。軟體工程屬於工程學,很早就有人把軟體工程和建築學相對比,並因此產生了一本創造性的書籍《設計模式》。既然都是工程學科,那麼將軟體的創造和自行車的創造進行模擬自然是不無道理的。

人認識事物的方式是從抽象到具體,借鑑這種認識方式,我們用一句話去描述系統的概念。

一句話描述介紹系統組成模組分別介紹各個模組的細節

還是以自行車為例,我們從車輪入手,對車輪進行分析。在這一步中,我們可以闡述對車輪具體的設計:比如車輪為什麼是圓的,而不是方的?如何設計車輪才能使其更經久耐用?如何設計設計使其能夠減少摩擦,行駛的更快。諸如此類的問題。

雖然系統可以被分為多個模組,但模組之間並不是簡單的組裝就能成為乙個系統,還少不了重要的一步

模組之間的協作

模組之間的邊界都該盡可能的被設計為介面。車輪和鏈條如何銜接,他們又是如何和腳踏板一起協作來完成行駛功能的,這也就是部件的協作問題。可以把每個部件之間的連線點理解成介面,模組之間通過介面呼叫函式來完成協作。當然,如果要考慮到模組之間的協作的話,可能需要對上一步中所分析出來的模組進行修改,比如說車輪出需要打個洞,來安裝和鏈條銜接的部件。軟體設計也是乙個不斷迭代的過程,不斷的去修改之前的設計,又在不斷的設計中發現新的修改。

這是乙個自頂向下的分析過程,在系統視角裡,我們從責任出發,去發現模組。然後降低視角,在模組視角中從責任出發去發現物件,通過物件協作完成模組內部的責任。再提高視角,通過模組之間的協作完成模組的責任,並不斷的重複上面的操作去完善我們的設計。總結起來就是「責任、物件、協作」。

未來十年,人工智慧會搶走人類發明家的飯碗嗎?

未來十年,技術發明由人類還是智慧型機器創造?這將是乙個日益重要的問題。陸畢德 ruud peters 說。他是飛利浦公司原執行副總裁 首席智財權官。事實上,人工智慧正在改變人類創造發明的歷史。陸畢德認為,通過資料驅動的方法,智慧型組合來自不同領域的技術,可以為未來的產品和服務及其功能生成更多選項。陸...

軟體工程師的健康問題

軟體工程師的健康問題 最近單位那些狗屁事情讓我心情不佳,看什麼都煩。這心上有火,嘴上就長瘡,坐在電腦前整個那就是個痛不欲生。關於it工程師的的健康問題早就在我心裡盤算了一兩年,都是從身體感覺不良開始的,再往前只知道玩命的幹活 其實不知道那是在玩命,還樂此不疲。每天晚上兩點睡覺,七點起來上班,在家裡連...

軟體工程師的職業之路

記得看過某篇文章寫到21世紀世界範圍內最好的前十大職業有軟體工程師一項,平心而論,應該說缺少的是良好職業素養的,有經驗的,合格的軟體工程師。從國內招聘 上的資料也能看出來,近些年由於移動網際網路,網際網路的蓬勃發展,以及因為網際網路對傳統行業的整合一系列影響,軟體工程師需求一直很旺盛,另一方面,高校...