⑴ 為什麼程序員內心都拒絕看別人的代碼
因為你不知道他用的什麼套路,需要一步一步看代碼才能搞清楚他是怎麼技術實現業務的,還一個就是編碼規范吧,有人寫的代碼可讀性不高,所以不好理解
⑵ 為什麼程序員不喜歡改別人的代碼
每個人都有自己的開發習慣,以及自己的寫代碼的方式。
例如寫代碼的時候,格式不一樣啦,換行的位置不一樣啊等等。別人的代碼不像是常見的dos,linux命令行之類的,在沒有備注的情況下,很有可能會完全看不懂.咋改?
⑶ 為什麼程序員寫代碼不能規范一些
作為程序員,每個人都有自己的編碼習慣,而且不同公司有不同的規范,所以很難真正的去明確規范編碼具體規范,但是在團隊開發中,這種編碼規范就比較明確了,首先是變數規范,其次把代碼短所實現功能以及作用注釋,其次團隊開發中要求代碼編寫整齊,每個人負責不同的模塊,整合的時候會減少沖突,增強耦合性。
編碼規范其實也是一個程序員真正的職業素養的體現,作為一個好的程序員你要把寫出的東西不僅自己回過頭來看可以看懂,還要讓別人明白你想要表達的意思。
⑷ 程序員的代碼潔癖在什麼情況下是一種惡習
當你把【代碼清潔】當作目的時,就是惡習了。為什麼會存在代碼潔癖,究其根本,是我們對「維護代碼」這種讓人抓狂的事情的實際需求,讓我們越來越注意到清潔的重要。比如說 1 == a 這個,如果從來沒有把 a == 1 寫錯成過 a = 1 導致你調式很長時間過,恐怕這個人能難把這個納入到他的潔癖范疇內,即使他對空格的使用要求近乎苛刻。在我的圈子裡面,一直有很多搞單片機的的。這些人主業是做電子甚至是機械的,當需要一個控制器的時候,會用單片機寫一些非常小的程序來實現控制。我發現在這個圈子裡面,就幾乎沒有代碼潔癖的人,別說潔癖了,代碼的基本清潔都看不到,即使這個人在做電路板的時候一板一眼。為什麼?因為沒有需求,代碼本身長度都很小,而且都是寫過無數遍的基本套路,甚至大段大段的代碼都是用輔助工具直接生成的;這些代碼對他們來說,多亂都很難寫錯,並切,最重要的,這些代碼幾乎都不需要維護,因為功能簡單,程序就是可以做到沒有BUG,需要升級的時候也很少。混亂的代碼,於他們的工作效率,幾乎沒有什麼影響;相反,由於開發環境難以想像的簡陋,整理代碼會浪費他們大量時間。既然代碼潔癖是由需求引起的,那麼我們來反思一個問題:我們做的和我們需要的一致么?其實問題問出來的時候,相信大家有答案了,既然用到了「潔癖」,肯定代表「做多了」,《編程之道》這本故事書裡面有個有趣的小故事:一個初學者被要求編寫一個財務軟體。他瘋狂地工作了很多天,但他的主管檢視他的程序時發現,它寫了一個編輯囂,一個圖形程序集,和人工智慧的界面,但是看不到任何跟財務有關的東西。主管要求解釋時,程序員被激怒了:你太沒耐心了,我會在最後寫財務的部分。這就是一個典型程序員在乾的事情,所有的優秀程序員都要經歷這樣的階段,過度設計、過度優化、過度使用技巧等等等等,因為我們就是這樣的群體,對這些的追求就是我們學習編程提高自己的動力,所以我們必然會經歷這樣的事情
⑸ 如何成為更優秀的程序員 永遠不要復制代碼
一、注意細節,尤其是最小的細節
「差不多」、「很接近」是只能在做馬蹄鐵時用的詞,在軟體開發中,95%的正確仍然是不能用,一個「差不多」能用方法或一個使圖片很「接近」居中的CSS樣式都是不合格、不能用的。這剩下的5%對於整個軟體的有效性十分重要,能造成完全相反的結果。
二、 學無止境
起初這句話聽起來會很迷人,你會很喜歡!我喜歡學習新事物!尤其是當你來自於一個無聊的工作或像釘馬掌這樣永遠不變的事情時。然而,經過了一段時間後,你會發現,這變成了一條永不停息的知識河流,如果你不喜歡水,你會感覺困在了無盡無邊的知識瀑布前,無法停止,也無法窮盡。我每天大概有學到10-20種新的東西,我喜歡這些!我的弟弟卻希望事情永遠不會變化,始終如一,他對我說他永遠都不願意去學編程。
三、 面對壓力、緊張和限定期限
沒錯,每個人都喜歡使用軟體,但你喜歡面對任務的最後期限和最終目標嗎?需要什麼時候完成?做完這些要花多少時間?我們能在這段時間里完成更多的任務嗎?是否還記得要注意細節?你怎麼辦?急匆匆的完成?加班加點希望能多完成一些?在理想世界裡,編程是一個很有趣的活動,我們寫出代碼,讓它們完成很酷的事情,吃著批薩,喝著可樂。而在現實生活中,有的是壓力,雖然不是時刻都這樣,但事情會比那種做一個30分鍾的簡單在線輔導要不同的多。我喜歡挑戰我的極限,我渴望成長,變成一個更棒的程序員,所以我不介意。
你面對時間限制和工作壓力會怎樣?如果你想迴避這些壓力,那你將無法成為一名程序員。
四、有組織能力
我知道有些程序員的生活一塌糊塗,看起來他們似乎沒自我組織能力,但我說的不是這些,我是說管理好工作流程的能力。比如,能否迅速容易的在你的計算機里找到一個東西?我認識的優秀的程序員通常能迅速的定位一個需要的文件,能夠用工具或腳本幫他們處理繁雜的事物,這些都是高效的工作。
當你學到了一個新東西時,你是否把它寫下來?你是否喜歡想出辦法來替你完成那些重復的工作?你能很好的安排各種不同的任務嗎?
五、好奇心
當我還是十幾歲時,教堂里的一位夫人幾乎每月都會對我說一次,她說我應該停止問那麼多為什麼,她說這讓人討厭。雖然受了批評,最終我還是清楚的認識到,優秀的程序員總是在問「為什麼?」這個應用的工作原理是什麼?那個橫跨街道的建築是怎麼建起來的?程序員之間的對話聽起來總是像這樣開始的:「很奇怪他們為什麼要這樣做…?」以前我以為問這么多為什麼是很奇怪的表現,但現在我明白,至少是在軟體開發中,這是一個好的品質。
六、學習能力
我知道,很多的程序員都上過大學,出自高校的,但這不是我要說的。優秀的程序員總是在鑽研程序代碼和文檔,來弄清楚東西的工作原理,他們不會敲開老闆辦公室的們說:「我需要找專業老師,學習這款新軟體」。優秀的程序員在不斷的學習,不斷的靠自己研究出事情的原委——不論是有高學歷還是沒有學歷。
七、人際交往能力
這在程序員中不是一個普遍的特徵。真正優秀的程序員善於與人交往,但大多數程序員缺乏這些能力。如果你善於溝通,你的老闆、你的公司會非常喜歡你。而且,不要因為他們不會編碼就瞧不起他們。
⑹ 為什麼很多程序員寫不出自己的代碼,都要上網復制其他人的代碼。
程序員也是分境界的,如果說遇到一個自己在技術運用上就不會的需求,那肯定是要上網找對應的代碼示例和工具。至於程序員的幾層境界,建議你看看<JavaScript 王者歸來>的1.7.1節,節選了附件傳上來。
⑺ 你們是怎麼看待那些動不動就說別人代碼很亂的程序員
可以把這個作為互相交流的契機,既然他覺得亂,你就跟了解清楚為什麼覺得亂,怎麼才能不亂,說不定他說的有道理,你就能學到東西了,如果他說的不對,就用疑問的方式委婉地提醒他一下,如果他還是那樣,就隨他去了,他的觀點不重要,又不會影響到什麼的話,聽聽就好。
⑻ 為什麼有的程序員的代碼結構混亂
程序員都有一顆工程師的心,所以當他們到一片新的場地想做的第一件事就是,將舊的一切推倒重來。是的,他們決不會滿足於簡單的增量勞動。
或許這種微妙的心理定位可以解釋:為什麼程序員進入新項目組後寧願丟掉舊代碼重新寫,也不願意修修補補。他們認為舊代碼簡直一團糟。
但是,事實上真是這樣嗎?你之所以認為舊代碼一團糟,其實是由編程的一個基本定律決定的,那就是:寫代碼容易,讀代碼難。
為什麼你覺得舊代碼異常混亂?因為讀代碼更難。
這大概就是代碼Reuse難以實現的原因。 這就是你組里的每個人都喜歡用不同的功能將分割的字元串轉換成一個數組。比起猜測舊的功能是怎樣實現的,重新寫一個自己的功能要簡單和有趣多了。
作為這個公理的推論,你可以問問身邊的程序員他們正在奮戰的代碼怎麼樣?「簡直是一塌糊塗!」他們肯定會這樣說。「我簡直想推倒重來!」
為什麼認為代碼這么糟糕呢?「額,看看這個功能,竟然有兩頁長!完全不知道這些東西為什麼在這里!完全不知道這些API是干什麼的。」他們會這樣回答你。
漫畫:讀別人代碼是一種怎樣的體驗?
曾經,Borland的創始人 Philippe Kahn當初就是向記者們吹噓:Quattro Pro會比Microsoft Excel要好用得多,因為它是從頭開始編寫的,全部都是新的源代碼!
但是,認為新代碼比舊代碼好簡直就是荒謬。舊代碼是已經運行過的,測試過的。無數的bug在被發現前都上線運行過,發現之後程序員們可能在花了好些日子才修復了這些bug。這種修復可能是一行代碼,也可能是幾個字元,無數的時間和精力都花在了這些bug修復上。
當你決定拋棄這些舊代碼從零開始的時候,你也丟掉全部前任努力的結果。
新代碼一定比舊代買好?NO,重寫可能會帶來更大的風險。
對技術領導者來說,重寫項目的代碼也是一個異常艱難的決定。因為從公司層面說,重現代碼甚至會威脅產品的市場競爭力。一旦決定重寫代碼,那麼與競品相比,你可能落後了2~3年——在軟體行業,這時間可夠長的。
你理想中的新代碼會帶來產品功能的提升▼
但事實上,即便重寫的新代碼可以實現舊代碼的所有功能和需求,但是為產品帶來的市場競爭力只有邊際提升。因為重寫用的新技術、新語言、新框架並沒有給產品帶來質的飛躍。
更不用說在重寫的漫長過程中可能會遇到一些意外情況,比如:
1、缺錢:資金鏈的斷裂▼
2、缺人:核心程序員離職
最終導致效果不佳:達不到原產品應有的所有功能和需求,白白浪費了時間和金錢,也丟掉了市場競爭力。▼
所以重寫代碼意味著,你在把自己置身於非常危險的境地,可能幾年後你也寫不出比以前更好的代碼。你只是花了一大筆錢把已經存在的代碼又寫了一遍。
當你覺得眼前的舊代碼很爛時,該怎麼辦?
你覺得舊代碼寫的很爛,那又怎樣呢?它們已經上線,已經在實際運行中經受住了考驗。所以當你發現前任留下的代碼亂七八糟的時候,不妨冷靜下來,從以下三個方面入手理解代碼、改善代碼:
1、代碼的結構有問題
如果一段網路代碼突然彈出了自己的對話框,應該是UI代碼需要被處理。這些問題可以被解決掉,你要一次次小心地移動代碼,重構,改變介面。還需要一位細心的工程師立馬仔細地檢查這些改變是否有問題,從而不打擾到其他人。事實上,甚至比較大的結構變化也可以不扔掉代碼來完成。
大牛程序員Joel Spolsky回憶說,曾經在某個項目中,他和他的團隊花了好幾個月重新架構在一點上:把代碼動來動去、清理、創建有意義的基類,並創建了模塊之間的完美介面。但是他們始終非常小心翼翼,並沒有產生新的bug、也沒有丟掉任何舊代碼。
2、代碼的效率不高
曾經,Netscape的渲染代碼被傳非常緩慢。但事實上,這只會影響該項目的一小部分,這部分是你可以優化甚至重寫的。你完全不必重寫全部代碼。優化速度的1%工作量,會讓你獲得99%的爆炸性提高。
3、代碼寫得很醜
有些代碼真的寫的很醜,比如Joel曾參與一個項目,開始用下劃線做開始的成員變數約定,但後來改用更標準的「M_」。所以一半的功能用「_」開始,一半用「M」開始,這看起來真的很醜陋。但這個問題5分鍾就能解決,而不用從頭開始寫全部的代碼。
最後,你要記住,從頭開始再寫一遍並不意味著你會寫出比以前更好的代碼。因為你沒有參與到上一個版本的創建,所以你其實根本就不算有經驗。一旦你准備推倒重寫,你可能會再犯一遍版本一犯過的錯,甚至會產生更多的新問題。
一個總結:
面對糟糕的舊代碼,Keep Calm & Carry On !
在大型商業項目中,推倒重來是非常危險的行為。當然,如果你是在做實驗,想到新演算法可以隨時重寫。
⑼ 使用代碼是程序員為了保密而用嗎
使用代碼是程序員為了保密而用嗎。
軟體開發的基礎就是代碼開發,而且代碼還需要編譯,這個本身和保密並沒有直接的關系。