「哦,笑吧,科廷,老夥計。這是上帝,或者也可以說是命運或自然,跟我們開的乙個玩笑。不過,不管這傢伙是誰或是什麼,他真幽默,哈哈!」
--------------霍華德,《碧血沙金》
專業主義不但象徵著榮譽與驕傲,而且明確意味著責任與義務。
假如不小心在程式中寫了乙個bug,以致於公司損失10萬,對於非專業人士來說,只會聳聳肩:狀況總是難免的,但是對於專業人士來說,自掏腰包!專業人士會為自己的錯誤買單,專業主義就意味著責任與擔當。
開發的軟體有bug會損害軟體的功能,因此,必須要專業,不要留下bug,也許你會說,「那怎麼可能,軟體開發太複雜了,怎麼可能沒有bug!」
當然,你說的沒錯,軟體開發太複雜了,不可能沒什麼bug,但是很不幸,這並不能為你開脫。人體太複雜,不可能盡知全部,但醫生仍誓言不傷害病人,如果他們都不拿「人體的複雜性做託詞」,我們又怎麼好意思推脫我們自己的責任呢?
所謂的專業人士就是能夠對自己的錯誤負責的人,哪怕那些錯誤實際上在所難免。我們必須學會道歉,但是道歉是不夠的,我們不能一而再再而三的犯同樣的錯誤。職業經驗多了之後,我們要將我們的失誤率縮減到0,或者說無限接近於0
在現有**的基礎上,可能我們會覺得現存**正在正常執行,去修改它是非常危險的,但是這種想法是錯誤的,讓軟體保持固定不變才是最危險的,如果一直不對**進行重構,最終到不得不重構的時候你已經發現,**已經僵化了!
「能就說能,不能就說不能。不要說:試試看」
------------------尤達
對話一:
專案經理:明天下班之前把這個模組的報表全部完成!
程式設計師:哦!好,明天一定要嗎?
專案經理:明天報表要上線!
程式設計師:好吧!那我盡量!
這麼簡短的乙個對話過程,沒有任何衝突,雙方都微笑離開,一派和諧。
可能完成這個模組的報表,開發到測試不止1到2天就能結束,但是程式設計師的回答:我盡量試試,這無異於在撒謊,或者說就算完成了也是存在很多bug,根本沒有完全測試。
對話二:
專案經理:明天下班之前把這個模組的報表全部完成!
程式設計師:抱歉,那麼多報表,開發加上測試,這麼短的時間是沒法完成的
專案經理:那什麼時候能結束呢?
程式設計師:一周時間怎麼樣?
專案經理:(在本子上記錄下時間)那一周後提交!
這種對話也是很不專業的,雙方都沒有尋求最佳的可能結果,程式設計師不該問一周時間可不可以,應該直接說:需要一周時間,專案經理也不應該毫無意義的接受這個時間,彷彿他自己的目標無關緊要似的,或者說,在boss面前,專案經理直接匯報說:由於程式設計師的原因,報表不得不推遲上線。
專案經理:明天下班之前把這個模組的報表全部完成!
程式設計師:不行的,這個活至少得1周時間才能完成
專案經理:一周?架構師說你這個技術層次的開發報表30分鐘就能完成一張報表了!
程式設計師:他只是預估我的開發速度,開發報表確實很快,但是開發完成之後,還需要資料進行驗證,測試,測試可要耗費大量工作時間的
專案經理:那明天客戶需要看報表樣例了!
程式設計師:明天下班前你需要哪些報表能正常使用,根據優先順序優先開發!開發部分先用於演示
專案經理:我要報表1,…報表4,先用這4張報表用於演示吧
程式設計師:ok,沒問題
在這個例子中,他們達到了最佳的可能結果,他們各自表態,然後找到雙方都能接受的解決方案!
在此例子中,雙方表現的都非常專業,雖然在交流過程中可能有衝突,但是最終都達到了一直的解決方案,沒有給彼此在交付東西的時候埋雷。
程式設計師的自我修養 讀書筆記
第一部分 溫故而知新 第一章 介紹基本的背景知識 作業系統 執行緒 硬體 1 關於c語言中的hello world這些問題你都清楚嗎?2 計算機硬體裝置的三個核心部件 1 處理器cpu 2 記憶體 3 i o控制晶元 4 作業系統的功能 1 提供抽象介面。2 管理硬體資源 5 多道程式 分時系統 多...
《程式設計師的自我修養》讀書筆記
1 最佳實踐 作為一名程式設計師,你也需要嘗試去理解那些軟體領域最本質的東西,而我的建議就是學習那些最佳實踐。最佳實踐 bestpractice 是乙個管理學概念,即 可使結果最優,並減少出錯可能性的某種技術或方法。最佳實踐一定是要經受住實踐檢驗才得出的。學習本質 是 以慢打快 的策略,但這種策略短...
程式設計師的自我修養 讀書筆記
1 注意不要反回指向棧記憶體的指標或引用,因為在函式返回時改記憶體已經被銷毀了 2 c c 沒有辦法知道指標所指的記憶體容量大小 當陣列作為引數傳遞時,陣列將退化成相同型別的指標 不要指望要指標引數去申請動態記憶體,因為函式會為產生乙個臨時變數指向引數的記憶體,當函式內分配記憶體時,將記憶體的位址賦...