效能,不是不重要,而是,它沒有可維護性重要

2022-03-02 07:02:14 字數 2124 閱讀 3079

剛才看到文章這個看法很有同感,以前也沒有深刻理解到可維護性的重要性。在現在的公司呆了一年半,才明白。因為現在的公司使用者量大,團隊開發人員多,遇到很多難以維護的**,花費人員溝通成本,延緩功能的開發進度,去填補遇到的坑.....

合理浪費堆硬體

因為浪費唄!

什麼?你有沒有搞錯?我的**,至少省了一塊記憶體條!那是你還沒從「窮學生」的角色裡轉換過來。你花一周的時間對**進行了優化(就先不考慮你的優化帶來的維護成本增加了),為老闆省下了一塊記憶體條的錢。你以為老闆會拍著你的肩膀表揚你麼?老闆打不死你!

兄弟,賬不是你那樣算的。當你是學生的時候,你的時間成本是0;但你進入工作崗位,每一天都是要發工資的。

通過**來調高效能,是一種無奈——對硬體效能不夠的妥協(參考:80年代遊戲開發者的辛苦困境。這樣寫效能就高,但為什麼現在沒有誰再這麼寫**了?)。否則,絕大多數情況下,堆硬體比優化**的效果好得多,而且便宜得多。硬體的成本按摩爾定律往下降,我們程式設計師的工資也能按摩爾定律減麼?(注:硬體越來越便宜,而人員工資越來越增加,就拿工廠的普通工人用工成本也在增加)

明明window 10 比window 95更耗效能,為什麼今天沒人用window 95?為什麼vs 2013要10g的空間我們都還屁顛屁顛的趕緊裝上?

為什麼現在大家都用c#,沒人用彙編?(注:彙編比高階語言效能強,接近機器)

我們站在人類文明積累的今天,就應該理所當然的享受這一切成 果。有打火機你不用,你要鑽木取火。如果你是因為要學貝爺荒野求生裝逼,可以理解;如果你說你是因為怕浪費天然氣,我……我……我怎麼說你呢?「給做打火 機的一條活路,行不?」同樣的,程式設計師大神同學,你就當做好事,給下面寫底層做硬體的一條活路吧!你的**都是 010001000010000001010101……了,你讓其他人怎麼活啊?

最後,我突然想到的乙個程式設計師為什麼對效能如此敏感瘋狂,對可維護性毫不在意的乙個可能原因:

大家覺得是不是這樣的?所以,願意把**百鍊成鋼繞指柔的人少。想來,是一種莫名的悲哀和淒涼。

某網友說:

感覺效能問題屬於眼前問題,可維護性問題屬於以後的問題。很多人就是感覺先把眼前自己的事兒處理完就行,程式只要能執行,老闆滿意就萬事大吉,至於以後維護愛誰誰吧,那個時候老子已經另謀高就了,爛攤子留給後面的倒霉蛋吧。

這段話的確說出了目前的現狀,被逼的,上面只看功能完成與否,功能完成的質量不管。那還關係**的可維護性幹嘛。於是把**複製,拷貝函式,只要能跑起來就好了。

效能、可維護性從來都是要折中,過分從**中追求效能會增大開發成本、降低可維護性。

現實中老闆、客戶真不在意那點硬體成本。只要專案快點上線。二期三期四期優化都好說。

張口閉口 談效能的 經理 我之前在北京 也見過 幾個。

最後 用幾個 實際的專案,堵住了他的嘴

—— 別跟我談效能,即使我用濫反射,效能也比你的快。

同意,除了核心功能和高併發的頁面,一直以來寫**的風格,首先就是可讀性,可維護, 然後再是效能。

我的思考:

效能問題:關鍵是找到效能的瓶頸點。而不是糾結於細微的。也就是主要矛盾。把主要矛盾解決掉後,就好多了

就拿php來說,是解釋性語言,解釋性語言是比不上編譯型語言快。但是在web應用中,不涉及到複雜的cpu計算(簡單的增刪查改資料庫,不是分詞這麼複雜的演算法,這種屬於cpu密集型),瓶頸在磁碟讀寫(磁碟i/0)和資料庫上。

所以看不出php的劣勢出來。當達到facebook這樣的應用,他們就會感到一點點php優化,對整個成本的減低,省去很多伺服器。

所以有規模,就是規模成本。經濟學中有個規模效益。通俗例子理解,生產100個要這麼多成本,生產1000也是差不多的成本,但是可以得到更多利潤。所以只能把規模擴大,才能賺到錢。

你達不到那個規模的時候,去談優化效能,帶來的是得不償失的。

而且,就算是解決效能問題,關鍵是找到瓶頸在**,解決了瓶頸,就會帶來質的變化。而不是糾結於細節優化。主次矛盾要分清楚。

單純說效能,那直接用彙編寫**,發明高階語言幹嘛,組合語言更加接近機器二進位制,所以效能更強。但是組合語言不容易維護,因為難懂,難上手。不接近人類的思維習慣。

記得國外有本書中提到乙個觀點:**是寫給人(物件是程式設計師)看的,不是寫給機器看的,如果是寫給機器看的,那麼,直接使用二進位制01011這樣的方式去寫**呢,機器識別就是二進位制。而且,效能更強,不用經過中間轉換,是不是。

效能,不是不重要,而是,它沒有可維護性重要

剛才看到文章這個看法很有同感,以前也沒有深刻理解到可維護性的重要性。在現在的公司呆了一年半,才明白。因為現在的公司使用者量大,團隊開發人員多,遇到很多難以維護的 花費人員溝通成本,延緩功能的開發進度,去填補遇到的坑.合理浪費堆硬體 因為浪費唄!什麼?你有沒有搞錯?我的 至少省了一塊記憶體條!那是你還...

鍍金到底重不重要

鍍金到底重不重要 本人一枚大四動畫專業的妹子,大學四年沒怎麼學習,臨畢業發現工作好難找 o 自己對專業知識掌握地不夠完善,後來就想系統學習一下知識,給自己鍍層金。大學的課程太過偏重理論,想學一點兒實用的企業技術。偶然的機會在學校周圍發現了有中軟卓越的ui視聽課,聽了一周之後,感覺中軟卓越的課程很實用...

XStream XStream 忽略不重要點元素

如果從類中刪除字段,反序列化乙個老的版本包含的字段將導致引發異常。離開中的地方,但將它宣告為瞬態將避免該異常,但 xstream 不會試圖反序列化的字段。xstream x new xstream return super.shouldserializemember definedin,fieldn...