建房子和寫軟體

2021-08-22 14:15:06 字數 1101 閱讀 9471

建築一般只能修建一次,如果中間出現錯誤,唯一的辦法應該就是炸掉重新來過。軟體卻不同,今天乙個patch ,明天乙個補丁,大家都很習慣。

我有時會想,為什麼人們不能像修建房子一樣的創造軟體?

最初的理解是因為軟體面臨的問題很多:作業系統多樣,開發工具繁多,人員水平不盡相同,等等。但仔細想來,發現全部不對。建築要面臨的問題要遠勝於軟體行業。他們會遇到沙土、淤泥、海水、溝壑等地形;會遇到潮濕、乾旱、大風等天氣;會因為預算而拿不到足夠多的鋼筋水泥;大部分施工人員都不識字等等。但是奇怪的是,普遍來說,建築的質量要比軟體的口碑好得多。

在一般的軟體開發專案管理理論中,會把 時間,成本,質量,功能作為最基本的四個變數來進行權衡,以說明質量的低劣,大部分原因是因為時間很緊,成本不足,功能太多造成。

事實並非如此,有很多專案,耗資巨大,週期很長,功能未必很複雜,但實施結果就是很差。往往是實施第乙個版本,發現問題很多。那麼開始第二期,改正了一些問題,帶來更多的問題。為了填補第二期的問題,開始了漫長的第三期... 如此迴圈往復,直到花光了所有的預算,煩死所有的使用者。

後來發現,這些專案之所以如此失敗,大部分都是因為乙個共同的原因:沒有正確的架構設計。現在很多人在進行軟體開發時,都是號稱有架構設計的。尤其是在j2ee盛行的年代,但凡有規模的系統整合公司,都會說,我們使用websphere(weblogic) + oracle (db2)! 而連剛出校門的學生,也會說:我們的架構是struts + spring + hibernate! 很讓人無語。

軟體架構設計的缺乏體現在兩個方面:

第乙個是對軟體架構設計必要性的認識不足。在建築業內,大部分人都知道,乙個建築在施工之前,是需要請很專業的人來進行設計的。但是在軟體行業,這樣的行為常會受到質疑。老闆認為:我們的開發人員都是幹什麼吃的?開發人員會認為,我的技術很好,為什麼要請人來設計,他懂什麼?

第二是能夠進行架構設計人才的稀缺,真的是很稀缺。

軟體技術是複雜的,知識更新頻繁的,也是枯燥的。這三個特點趕走了很多人。

同時在國內,從事技術工作也是貧窮的,這根稻草壓死更多的人。所以大部分腦子清楚,學歷還不錯,技術熟練的人都改行做了專案經理或者技術管理者。

一切沒有成熟的事物都是混沌和模糊的,沒有天和地,沒有光和火,沒有規則和次序。自計算機出現到現在只有62年,軟體行業真的還很年輕。

杭電ACM 建房子(貪心)

突破口 充分利用每一堵牆,有牆出現,其所在的行 列都加權1 除非遇到另一堵牆才停止 依次從權值由高到低開始建,每建一座,其所在的行 列都設定為n no 除非遇到牆才停止 如下 include include includeusing namespace std char map 6 6 製作一張圖 ...

房子裝修與軟體開發

忽然發現裝修和軟體開發之間竟然那麼的相識,於是乎我就想把軟體開發的流程貫徹到裝修過程中,希望三個月後由於裝修流程的改進,我的裝修效果能較好的滿足客戶 我 的需求。裝修的平面方案花了三天的時間,首先讓設計師了解房子的基本情況以及我們的基本要求,然後共同協商,製作出平面方案,也就是相當於軟體開發的概要設...

關於房子和家具

需求 寫乙個程式關於房子和家具的程式,要求如下 1.房子 house 有戶型,總面積和家具名稱列表 新房子沒有任何的家具 2.家具 houseitem 有名字和占地面積,其中 席夢思 bed 占地 4 平公尺 衣櫃 chest 占地 2 平公尺 餐桌 table 占地 1.5 平公尺 3.將以上三件...