前幾天,偶然看見了《人月神話》這本書籍的介紹,但是我就很好奇,一本軟體工程的書籍怎麼會取這樣的一個名字。然後我去圖書館看了一下,發現了一本像小說一樣的外觀,比較陳舊的《人月神話》,於是在那天晚上便泡在了圖書館,有目的的看了下這本書。接下來的三個小時我獲得了花了前三個月都沒學到的,也是像我一樣的編程者最容易忽略的地方,因為我們拿到一個項目,就控制不住“趕快編程的慾望”。
這本書的核心概念在我看來就是“構建概念的完整性”,這個僅僅是個人的觀點。每當我們拿到項目的時候,想到的是怎麼寫代碼,書中的一句話是“想要解決問題,首先要瞭解問題”,我就是一個典型,在完成對目前項目的構思後,馬上便捧起了相關的專業技術書籍,沒有任何其他的考慮,其實這是很低效的。就算是成功的把項目完成了,最終的代碼也不過是堆起來的,到時候,僅僅是多寫了一些代碼,其餘的也就沒了,現在的我是學習階段,要花最少的時間來獲得最多的知識和技能,萬萬不能得不償失。
接下來便是我的讀書筆記:
書中首先談到的是職業快樂,書中的描述總結一下就是“建立的新的事物,自己的設計,自己的努力”,更重要的東西是”這種快樂來自於開發對他人有用的東西,而且為他人所使用“,上次的程式設計大賽,有一個”雲查分“獲得了二等獎,我們也是二等獎,但是,最大的區別卻在”我們再也沒看過代碼,他卻一直在推廣他的軟體“,校園的廣告欄上有他的宣傳,我的郵箱有他的宣傳,四級考試剛過,有次我還聽到有人在談論他的軟體查分很方便。這才是一個被稱得上軟體的東西,我們的二等獎僅僅是代碼的堆積,所學到的也僅僅是那一點點技術。。而我也沒有體會到任何的團隊合作和快樂感.......
接下來是書中的一些原話 1.軟體任務的時間安排 1/3計劃 1/6編碼 1/4構建測試盒早期系統測試 1/4系統的測試盒所有構建完成 當我看見1/6編碼的時候,我十分的驚訝,我的前兩個項目都是編碼佔了9成以上的時間,但是為什麼會僅僅話1/6的時間用於編碼。繼續讀才發現,我以前的錯誤,不,應該叫無知。”軟體活動的根本任務----打造構成抽象軟體的實體的複雜概念結構,軟體的次要任務----使用程式設計語言將這些抽象的實體表達出來“。”概念的完整性是軟體設計中最重要的考慮因素“,簡明精確的描述了軟體的概念,不但可以降低開發成本,還可以提高軟體的成功率。對於我來說,成本就是時間,成功率就是別人玩著開不開心。
還有就是提供了一個開發模型-----漸進開發模型,構建一個即時可啟動並執行系統。以前我的開發都是自上而下的思路,很多的時候要寫完整個的流程才可以進行測試,對於小一點的項目這個也許還沒什麼,但是對目前的我來說5000行代碼就算是一個比較大的項目了。
最後這本書批註:這個神奇的時代還遠遠沒有結束,他依然在飛速發展,更多樂趣,盡在將來。
兩天以後,我在圖書館發現了《代碼大全2》這本書,發現,這才是學校C程式設計大賽的目的所在-------對於大一的我們,沒有開發過1500行以上的代碼,所有我們沒有任何開發經驗,學校不僅僅是想讓我們堆代碼,更重要的是從其中獲得軟體開發的專業知識,即使沒有獲得一等獎,但是,我們所寫出的高品質的代碼才是我們以後出身社會的本錢,當我們規範簡潔清晰地寫出整個軟體的架構,明確的為每一個函數命名,最大化的增加了內聚,減少了耦合,詳細的定義了完整可用的介面,整個代碼別人一看就知道有什麼功能.........這才是我們值得驕傲和自豪的地方,而初期的計劃和定義,也就自然而然的帶給使用者快樂,最重要的是帶給了我們自己快樂。這樣,整個軟體的開發,就好像在談戀愛一樣,每一個字元,每一步思考,都洋溢著幸福。