我看了git
3.我上班後,發現之前同事寫的程序真是垃圾,根本看不懂,沒法維護。我要推翻重寫!後來一個老員工笑嘻嘻地告訴我,咱們如今看到的程序,就是去年的新員工憤怒地推翻重寫以後的結果,你們反映 尚未之前的版本好用呢。web
我對這段話所表達的意思有異議,由於這個新員工可能由於我的習慣很差或者編程能力不夠,或者時間不足致使等出現了各類各樣的問題,可這不表明將來的人重寫的結果是怎麼樣,這個老員工很明顯就是在警告這個新人,這徹底是先入爲主的想法,並且,我之前看過別人公司的項目,也不知道是何時開始寫的了,裏面的函數、類沒有註釋,而且結構混亂,有一些內容已經沒有必要存在了,但是對於新人來講卻沒法作處理,因此這些老項目極可能真的有這些問題。第二,最後這句「尚未之前的版本好用呢」 意思是說新員工新完成的項目須要一步到位,雖然之前的很難維護,可它是通過好幾代的修復bug,而新建的項目天然會有一些問題,難道之前的項目剛作出來時你們就沒有怨言嗎?知足全部人的要求,那可真是太難了。
而後根據個人經驗,面對像這種從開始或者通過不少次修改致使項目更難維護,此時應該作軟件重構,而不是推翻一切重寫,由於那樣太浪費精力和時間。算法
我對 源代碼管理 不理解,書中的內容是數據庫
有些時候,咱們要爲了每一個需求寫一些特殊功能,不久後又要把這些功能在合併會主要版本。有些程序要配置不一樣的界面,運行在中文、英文或者其餘語言的操做系統上;有些程序還有32位版本、64位版本等。編程
在 有些時候,咱們要爲了每一個需求寫一些特殊功能,不久後又要把這些功能在合併會主要版本。
這裏我仍是理解的,這個我在使用GitHub 或者git 時就會知道有時候會建立一些分支,當這些分支完成時即可以合併到主分支中。可是後面的 配置不一樣的界面
不涉及到分支的問題,還有後面的,通常都是經過 xml
或者 conf
等的配置文件完成這些設置,這只是一種配置程序兼容性時所使用的方法,沒法理解這和源代碼管理有什麼關係。而後我經過 www.baidu.com
搜索 源代碼管理 定義
找不到與之相關的信息,和 源代碼管理 相關的也都是一些git 等軟件相關的。不過我所不理解的問題卻是和 配置管理
有關。瀏覽器
我對 職業道德規範
不理解,由於我不知道這個道德規範的界限在哪裏,何爲道德,何爲不道德。若是一個軟件侵犯了用戶的利益,好比我的隱私泄漏形成財產損失、名譽損失,這裏徹底能夠經過法律訴訟來解決。以書中舉的例子,限制用戶安裝其餘軟件,製做軟件的公司應該也能夠有本身的選擇吧,若是說這種行爲讓用戶很不爽,或者說浪費用戶時間,不少軟件也在未通過用戶的贊成的狀況下展現廣告,難道這也是不道德的嗎?安全
我對第9頁的軟件工程的難題中的第二個複雜性
的「 而軟件工程師的肉眼一般一次只能看到30-80行源代碼(至關於顯示器的一屏)「的表述不太贊成,雖然只能看到30-80行,可是現代IDE 提供hierarchy (層級瀏覽),或者文件大綱,再加上工程師的記憶力,並且只要記住關鍵點,這些方法都可以讓工程師對本身所操做的部分有更高的把握。網絡
我對第9頁的軟件工程的難題中的第五個「非連續性」 的解釋有異議,現代軟件須要擁有的特性就是提供給用戶反饋,無論用戶作了什麼,須要提醒用戶當前的操做是無效的,或者不支持當前操做,不能什麼都不作,好比按下按鈕,須要經過按鈕的變化告訴用戶你的操做確認了,等待完成就行了,而且這個操做也應該是當即的,若是是個耗時操做那就應該是線程了。若是一個軟件進行了操做,一個軟件,一個系統,卻沒有任何輸出,包括視覺輸出,那用戶是很不樂意使用這個軟件的。數據結構
在第14頁引用的費曼的話,架構
你能夠知道一種鳥的名字在全世界各類語言怎麼說,可是說完以後,你仍是不瞭解這個鳥。因此咱們要觀察這個鳥的行動--這纔是最重要的。
這句話好像就是說,我餓了,喝了一杯水,仍是餓同樣。
1. 這些軟件的開發者是怎麼說服你(陌生人)成爲他們的用戶的?他們的目標都是盈利麼?他們的目標都是賺錢用戶的現金麼?仍是別的?
2. 這些軟件是如何到你手裏的(郵購,下載,互相拷貝....)?你當時上幾年級?你對這個軟件的感受如何?
3. 這些軟件是如何處理bug 的?又是如何更新版本的?
4. 同一類型的軟件之間是如何競爭的?