來源:陳皓
十多年前剛走入社會工作的時候,那時的中國軟體開發根本沒有什麼版本管理,也沒有什麼程式設計規範,軟體開發相比起今天來說非常地混亂,那時僅憑自己的一些學習總結了一些C語言程式設計中的好的小筆記,後來,這些筆記寫成了一篇叫《程式設計修養》的文章。今天,又有些感觸,想把這個話題擴大一下,從“個人修養”擴大到“環境保護”,所謂,窮則獨善其身,富則達濟天下,今天的技術人員比十多年前在技術和環境上都富有了許多,所以,也應該或多或少地擔負起“達濟天下”的責任了。
環境保護說白了就是保護一個良好的環境,為好的環境添磚加瓦,與破壞環境的人和事做鬥爭。其實,從技術人員來說,我們可以做一些力所能及的事。因為我們身邊的技術環境還有很大的改善的空間,而一些來之不易的東西還需要我們去小心維護。
環保主義軟體開發
先說說軟體開發中的環保。比如:
●環保需求。當我們分析需求的時候,如果我們能做到不要像“這是到底是誰的錯” 一文中那樣的來者不拒,如果我們在面對需求能多問這樣幾個問題:為什麼 要有這樣的需求?這個功能主要能解決什麼 樣的問題?為什麼不是另外那一種?可不可以簡化一下?其實,我們並不需要創新,只需要真正地問好這幾個問題,我們就可以少看著一些彎路,少一些苦逼的加 班,少一些內耗,少一些埋怨,也就可以為這個社會節省下一些資源,從而環保。
●環保開發。當我們做設計寫程式碼的時候,如果我們多花一些時間去思考一下,我們就可以少一些程式碼(參看“多一些時間少一些程式碼”)。 如果我們在一開始多思考一下,不要急著馬上去用迭代的方式認識世界,多思考一下怎麼把複雜的東西解藕,把複雜的東西簡化,怎麼做出一個優雅的設計,怎麼讓 我們的程式少一些tricky的東西,怎麼讓我們的程式變得更簡潔,更清楚,更直,在一開始思考一下未來需求可能的變化,未來軟體需要怎麼測試,未來的系 統需要怎麼的運維,那麼,我們可以少一些返工,少一些重構,少欠一些債,少一些低階錯誤,少承擔一些系統上線後的壓力,那麼,我們同樣可以為這個社會節約 一些資源。說得再直白一點,你用更少的程式碼產生出更高的效益,少耗一些CPU,就能省一些電,間接地保護了環境。(參看 Why C++?)
●環保文化。當我們在做軟體開發的時候,如果你能影響並幫助你身邊的同事,讓他們寫出更有修養更有效率質量更高的程式碼來,並發動團隊樹立工程師的文化,用團隊去影響你的老闆,你的公司,讓他們能再多一點地重視技術,重視技術人員,那麼你必然也會成為一個受益者。
●環保管理。當你做為一個管理者,做為一個方法推動者,如果你能更多地注重軟體開發中真正創造生產力的程式設計師, 為他們分憂,為他們鋪路,為他們創造條件,那麼,他們就會更多的回饋於你,就會少了一些不信任,就會少了一些被動,就會多一些主動,就會多一分責任,不但 可以激發團隊熱情,同時可以有更大的生產力。同樣是一種環保。
當然,這樣的東西還有很多,你也可能會覺得太過理想主義了,我們不可能馬上改變之,但是我們可以試一試。
技術環保主義
其實,我們身邊有很多可以做的技術環保工作。比如說,在Linux下少用root使用者,SQL的時候,delete前先select,這樣,你就不會做出一些讓你後悔的事(參看程式設計師那些悲催的事), 不會讓你重頭來過,從而至少不會浪費電能。寫程式碼的時候要很小心管理好記憶體,以及各種資源,和執行緒併發,組織好的你的程式碼中的業務邏輯,做好單元測試,自 動化迴歸測試,等,這樣你就可以少一點遇到BUG,在遇到BUG時少一些時間去做調查。操作電腦的時候少下一些破解軟體,少訪問一些奇怪的網站,這樣,你 就會少中一些病毒,少一些損失,少一些重做系統,一樣可以節省電能,最重要的是可以節省你的很多時間,讓你可以去做一些更有價值 的事情。
當然,除此之外,我們更應該做為一個大氣的,高瞻的環保主義者,比如下面的事情:
●拒絕IE6。如果你堅決不用IE6,並影響你身邊的人,讓他們升級IE6,嘗試Chrome 或 Firefox,多告訴一下自己身邊的朋友,怎麼設計口令,怎麼在網際網路上保護自己的隱私和安全,怎麼防木馬,這樣就能少一些問題,少裝兩次系統,就能省 一些電,也就能多一些時間去做一些更有意義的事。也是在為整個世界整個人類做貢獻。(看看某些軟體產商,佔據著使用者桌面的江山,還整天彈窗彈窗的,說這不安全,那不安全的。你還是做安全的,你居然能容忍IE6裝在使用者的機器上,你還做個屁的安全!)
●拒絕抄襲和山寨。如果你鄙視那些赤祼祼地抄襲者,不使用他們的產品,有的人會說你就是想標榜自己的高 尚,ZB,假高尚,大家會說你沒有必要。其實並不是,你這樣做,其實是為了“環保”,為了“保護一個健康的IT環境”,雖然你沒有創新,但是你的行為卻是 在鼓勵創新的環境,這樣,如果當整個大環境都是在創新文化影響之下,才會更健康,技術人員也才會被尊重,而我們自己最終會受益。雖然只是抑制抄襲和山寨, 但是我們間接地為社會做了貢獻。(看看那N多的抄襲團隊,加入他們實在是耗費這個社會的資源) (那個整天覆制這個複製這個複製那個的公司,看看你自己做的那些產品線?亂糟糟的。你自己看看,你有個人空間,還有群空間,還有校友錄,然後你還要做個facebook式的“朋友”,還要搞個微博,然後還要搞個微信,大哥啊,你把這些相似度很大的東西放在了N多的伺服器上,你不覺得浪費嗎?你真是山寨之王啊,自己都一直在複製自己的產品。還有人說你們的產品經理一流,真是腦殘啊。對於你們的複製精神,我只能拜了!)
●拒絕百度搜尋。如果你學得百度還是可以的話,你不妨看看我的微博(這個,這個(抓圖),還有這個), 你會發現百度不單單是廣告的問題,很多東西根本搜不出來,包括他自己的內容。用百度就是浪費時間,浪費計算資源。如果你告訴你身邊的朋友不要用百度搜尋, 而是用Google,並能耐心地教會他們翻薔,這樣,我們就可以讓那些“窮則窮凶極惡,富則為富不仁”的企業少一些自以為是,最重要的是可以讓他們少製造 一些垃圾資訊和垃圾產品,世界少一些垃圾,自然也就環保了。
●拒絕過重的商業氛圍。很多社群的商業氛圍實在是太濃了,全都是廣告。整個社群根本都不是為技術人員來做的,而 為了那些軟體產商,為了那些公司。他們只知道為那些大公司寫軟文,做廣告,開大會。他們只想著掙錢。網頁上全是花花綠綠的廣告,開啟他們的網頁,就會多耗 許多電,瀏覽他們網站上的文章,到他們的大會上聽他們的軟體廣告分享,就會讓自己的生命和時間浪費,自己消耗了體力不說,卻還沒得到什麼營養,相當的不環 保。
●拒絕浮燥。比如:浮燥地創業者們,被風投們一輪一輪地壓榨。為了讓風投滿意,犧牲自己的初衷,去找水軍刷排 名,去發垃圾郵件,去燒錢買吆喝,製造虛假的繁榮,等等。另外,少去追那些新的技術,少一些浮誇,不要開口閉口的就是海量資料,高效能,要當個架構師,經 理,要拿多少多少的工資,與其這樣,還不如多靜下心來研究一下那些十來年的技術,思考一下自己身邊的問題,一步一步走踏實,少摔幾個跟頭,這樣,你也就能 多一些能力,多一些自信,也就能多做一些事,多解決一些問題,你的職業生源走好了,也就很環保了。
還有很多,我相信大家明白我想說什麼。其實,我想說的是,這不單單是一種“個人修養”,這也是一種對社會貢獻的方式,更是一種“低碳環保”的生活方式。
讓我們一起來做有修養的環保主義的程式設計師吧!
(全文完)