【作業】2020年高等軟件工程系統設計階段思考

首先,按照國際慣例,好久不見。咋說呢,這波我自己感覺彷彿過了一年,但是翻回去一看日期才大半個月。爲啥呢,這陣子太忙了,事情一個接一個,而且大都還是自己完全不擅長卻又不得不做還得做的像樣點的那種。不說別的,代碼都基本上沒時間肝,只能向後一靠眼皮一合呼嚕一響的時候寫點,還真有點尷尬。不過放心,之前挖的博客坑,總會填上的。而且不久的未來,筆者也將會有新的開源項目正式上線,各位大可放心,筆者不會鴿的😄。

然後接下來,進入正題,現在軟工系統設計環節也已經算是告一段落了。對筆者自己而言,實際上還是早已熟悉的內容居多,所以筆者在本文中,還是主要着重說下對設計的一些粗略之見。

設計的路子

其實呢,說到這個,對於筆者本人而言,不算是啥陌生玩意。不是因爲別的,而是因爲乾的太多了,啥玩意好使啥玩意外強中乾啥玩意根本胡扯,早就爛熟於心,當然相對應的,也沒少踩過坑,甚至付出過慘痛的代價。不僅如此,在我們本科的OO課裏頭,也沒少接觸過這類內容,具體可以參考下筆者寫於2018年的一些文章,在本文中不做展開。在本文中,筆者將着重對“設計的路子”這個詞進行解析,談一談個人的理解與看法。

看了下其他同學寫的這次作業,有說注意架構規範的,也有說注意留好項目文檔之類的。不過個人理解,總而言之一句話——規範性,用一個更加文藝且浪漫主義的詞,叫做按圖索驥

咱們也都是計算機專業的學生,小到數分高代離散,大到計算機組成原理、操作系統、編譯原理,應該人人都爛熟於心。在這裏頭,如果你學習之餘喜歡和我一樣瞎琢磨的話,肯定也會產生不少的疑問,例如:

  • CPU的設計,爲啥需要四級流水線?二級三級不行麼?串行不行麼?ALU那種簡單玩意幹啥單獨拎出來?設備控制直接門電路玩起來好不好爲啥一定得走DM?
  • 操作系統的進程,爲啥需要拆成時間片?爲啥得按照四種基本狀態來調度?我直接排着隊來不行麼?還有爲啥要分內核態和用戶態?直接平推到底不行麼?
  • 設計一門新的編程語言的時候,爲啥一定非得去幹淨文法中的左遞歸?咱別遞歸下降好不?暴力大循環大遞歸不香嗎?就算實在不行,咱不從左邊遞歸下降,從右邊咋的就不行了呢?
  • 即便在OO課,也有一堆同學有着五花八門的質疑:OO是啥玩意?OO能幹啥?這程序不用OO不能寫了是咋的?總而言之一句話:OO有啥用。

如果你想過這些問題的話,那恭喜你,你發現了問題的所在。在咱們的考試中,顯然但凡不按照這些來,那就是錯的,就會少不少分,這個人還會被貼上“學渣”、“學藝不精”等精緻的標籤。但是從實際意義上來說,這些真的就不對了麼?並非如此!實際上,能解決問題的一切辦法,都是好的,甭管黑貓白貓抓着耗子就是好貓,這一點毫無疑問

不過既然如此,那麼設計的路子,重要性何在呢?問得好,我自己也想過很久,也順帶思考過更深層次上的相關問題。以下是我個人的一點理解:

  • 設計的路子是一種可以以可控的成本,尋找出一種較優設計的方法

劃一下重點:

  • 尋找設計的方法
  • 成本可控

首先,設計的路子,指的是尋找設計的方法,而不是設計本身。這一點算是基本中的基本,這個概念有些類似於元(meta)的概念,換個更通俗的解釋,那就是,設計的路子,是“漁術“,而非一筐或幾簍子蹦躂着的魚。在計算機行業,有不少類似的例子,例如計算機組成原理中用到的卡諾圖,提供了一種尋找符合對應真值結果的邏輯結構的方法;在編譯原理中,我們有一整套的理論,來基於一個文法規則,構造出一個用於舒舒服服解構源代碼的有限狀態自動機,實際上我們北航這的編譯課上,一大半內容都在圍繞這個。這些內容有個共同的特點,那就是用構造用於構造的方法。而設計的路子,本質上也只是這一思路在軟件工程設計中的體現。

而之後,也是最爲關鍵的一點,就是成本可控。這意味着,我們只需要按照路子來走,就不再需要通過一系列踩坑來提高設計品質。結合現實開發環境來說,雖然學校裏頭,你可以學習試錯,但是在生產環境下,可沒那麼多時間給你走彎路。你的甲方等着要demo,你的投資人等着一個實底,你的上頭等着成果,你的下面等着喫口熱乎的,緊俏得很。而尋找較優設計這件事,要是不能在可控的人力物力時間成本內完成,那麼設計將真正的成爲玄學,變得不可捉摸且難以大規模投入產業。實際上,成本可控,個人理解,這某種意義上,也是一切理論所存在的意義。比如,我們想研究一件事情,在現在看來,似乎沒那麼困難,但是實際上,我們早就踩在了前人的肩膀上,他們爲我們提供了一套經過歲月不斷完善的理論體系。試想,如果你研究一個東西的物理化學性質,而你沒有任何理論,需要從底層一步步開始,從敲石頭,到基本世界觀,到力學三定律,到電子交換規則,再到相對論,再到測不準理論,一步步來,其規模可想而知,基本上規模以幾何級數增長。而這一關鍵問題不能得以解決的話,那麼人類的技術、生產力、社會的發展,遲早將面臨全面瓶頸。而設計的路子,乃至於其他的一切路子,則是發展的基本保證

胡言的亂語

好了,又到了一文一度的傳統藝能時間了,這次說點啥好呢,emmm。

(負能量預警,望讀者們選擇性閱讀,必要時可以跳過,感謝❤️)

首先,還是得總結下這門課程迄今爲止的一切吧。總體來說還行,但是依然離配得上優秀二字,相差甚遠。首先呢,我覺得自己的隊友們都相當不錯,有一定的能力,且基本上還算是靠得住,最起碼在幾度磨合後,變得靠得住了。單純從事情的角度來看,每次都還算是平穩的度過了,而且根據老師的點評來看,似乎問題不算多,當然了,也可能是因爲本就貧乏的內容確實沒啥好說。可是,瞭解筆者我的人,都知道,筆者一直希望能幹票大的,往小了說不滿足於完成課程的那點要求,往大了說希望能遇到有共同信仰的人。但是,事實證明筆者的能力還是欠佳,單獨做一件事還行,但是事情一多,那怕真正比較棘手的只有一件,也會很容易陣腳大亂,戰鬥力跳水式滑坡。而我們這學期的努力,雖然從課程角度來說或許還行,但是也就僅此而已了,終究還是沒能跳出這樣的小格局。而這件事情,我認爲怪不得別人,只能怪自己能力太差,各方面都不咋地,顧頭不顧腚。這事真怨不得別人,而且正好相反,自己的這般狼狽恰恰是對組員一次一次努力的最大褻瀆。我一直認爲,將軍者,帶來勝利纔是一切,可事實是證明,我恰恰還不具備擁有這一切的能力。而且事到如今,木已成舟,怨念也沒啥用,能做的只有好好反思,以後別記喫不記打了。

說完課程這邊,該說說自己了。想起來半年前自己的所想,以及現在的狼狽相,真的覺得有些糟糕。不,不是有些糟糕,而是糟透了。不說別的,我記得我在本科入學的時候,寫過一張卡片,上面寫着對自己四年的期許,這個應該我們系的人都有寫過。然後四年過去,到了2020年,我再次翻出這張卡片,感覺還行,甚至某些地方還算是超額完成了任務,更有一系列的意外收穫。可是現在呢,回想起半年前給自己的期望,自己基本沒完成啥,把半年時間全都用來顧頭不顧腚,用來瞎忙活白忙活,用來丟人現眼了。人的一生超級短,一共也沒幾個半年,可是自己成年前浪費了那麼一大堆時間不說,現在依然繼續霍霍,我真的不明白自己到底何以至此。我記得,我和老師,在半年前還定過讀研一年的整體計劃,但是現在呢,完全沒有像是完成了一半的樣子。不僅如此,自己還並沒有閒着,一天到晚團團轉。或許有些人會覺得盡力而爲如何如何,但是我只覺得,這除了充分說明了自己的弱小和愚蠢外,啥也不能說明,私以爲,這些“優良品質”,恰恰是一個人的原罪,畢竟,弱小和愚蠢遠比邪惡更能害人害己,更加流毒無窮。

好了好了,繼續吐槽也沒啥用,止增笑耳。真要是想要挽回的話,那就得拿出點行動來改變,種一棵樹,最好的時機是昨天,其次今天,大概就是這樣吧。

如果您一直讀到了這裏,那請允許我深深的表示感謝,真的,感謝您能聽我說完這些話,並且我誠摯地希望,能與君共勉。

好的,我得溜了,總得做點啥挽回下不是麼。До скорого~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章