-
1 # 蔬菜醬Vegetable
-
2 # IT人劉俊明
作為一名從業多年的程式設計師我來回答一下這個問題。
首先,程式設計師在日常開發中,雖然會有一定的複製貼上(除錯程式碼、註釋、日誌記錄、事務處理等常規功能性程式碼),但是程式碼正式版的重複率還是非常低的。
程式碼重複率是檢驗程式碼質量的一個重要指標,程式碼重複率過高則意味著模組化程度較低,或者抽象層次不夠,這都會引發後續程式碼的擴充套件性問題。隨著功能的逐漸增多,過高的程式碼重複率對於程式設計師來說無異於一場噩夢。目前程式碼重複率較高的專案通常都是歷史遺留專案比較多,這些專案要麼規模較小,要麼設計生命週期較短。
在當前的軟體開發流程中,由於設計和實現通常是分開的,所以程式碼重複率能夠得到有效的控制,從而保障軟體產品最終的質量和擴充套件性。設計通常分為平臺設計、介面設計和功能設計三部分,平臺設計針對基礎性問題,通常是容器類開發,介面設計通常針對行業問題進行設計,而功能設計則針對於應用場景進行具體設計。設計結束之後就是功能的具體實現過程,程式設計師根據介面完成相關功能的呼叫,從而完成業務邏輯的具體實現。通常來說,研發級程式設計師從事設計工作,應用級程式設計師從事功能實現,因為面對的問題不同,各自的知識結構也有不同的要求。
通常平臺部分的實現有非常高的要求,程式碼重複率也非常低(幾乎不存在複製貼上的問題),因為要保障平臺的可擴充套件性就不能有較高的程式碼重複率。當然,測試版本中會有一定的程式碼重複率問題,主要是測試程式碼導致的。當正式版釋出之後,測試程式碼也會隨之剔除。
最後,Code Review是解決程式碼重複率高的有效手段之一。
-
3 # 大學生程式設計指南
程式設計師的本質是解決實際問題,和是不是貼上複製沒有多大的關係,在實際程式設計中特別是應用級的開發複製貼上的比例一定少不了,特別是一些常見的程式設計模式或者方法,如果有現成程式碼當然可以直接拿過來去使用,沒有必要重新去寫,現在就在多年的軟體開發經驗,常見的程式設計師編寫程式碼一般有幾種方式
1.初級入門階段的程式設計師
主要經歷還想著如何能實現,屬於掙扎在溫飽線上的還在為一些簡單功能的實現程式碼而愁眉苦臉,初級的程式設計師為了實現一個簡單的排序功能還要在網上搜例子,最好能找個直接能夠拿來使用的例子,然後對著例子研究如何實現的,如果讓自己單獨去寫是不是能夠完成,基本上剛入行一年的程式設計師都屬於這種狀態,程式碼絕大部分是從網路上搜到一些原始碼在心裡沒底的情況下,拿過來驗證使用,還在琢磨著如何實現最基本的功能而苦惱。
2.能獨立做單元模組的工程師
這個階段的軟體工程師已經具備獨立做小模組的能力,知道大概如何去做,自己先構思一個基本的框架,或者乾脆全部的程式碼直接全部自己來搞定,或者在網上找到能夠和自己功能匹配的程式碼,然後根據自己的想法進入進去,不影響整體的功能,這個時候複製貼上的程式碼已經為我所用了,對於常見的程式碼已經具備自己的獨立思考能力,已經在慢慢滲透是不是有更好的實現程式碼,在琢磨著程式碼如何能高效的實現,這個階段對於程式碼實現時間已經相比第一階段壓縮了許多了。目前國內的程式設計師絕大部分處於這種階段。
3.把程式碼當作工具使用
程式設計思路為主導的階段,這個階段的程式設計師基本上很少提及程式碼的實現,琢磨著實現的功能如何高效有用,在表面上這幫人平時就是上網看看資料或者看看別人寫的程式碼很少拿出大塊的時間在琢磨著如何寫程式碼,程式碼到了一定層面就是工具般的存在,為了實現一種場景可以不受到程式語言的限制,很多人覺得掌握的程式語言越值錢的這種理論是不存在的,程式設計裡面最值錢的是程式設計思想以及實際解決問題的能力,可能我們在平時的程式設計工作中經常有這麼一幫人在公司就是定海神針般的存在,只要遇見難的問題就推給他們,基本上都能給出解決問題的方案。
4. 研究輪子甚至造輪子的工程師
這種屬於架構師級別,有點誇張的甚至都沒怎麼寫過程式碼,完全的設計模式,當然絕大部分的架構師都是寫程式碼出身,而且本身程式碼基本功非常強,常見的大大小小的功能實現起來也不在話下。平時就是研究框架的如何實現,如何能夠穩定的執行起來,是不是能夠構造出新的組合或者框架,平時大部分的時間不一定是在盯著程式碼看,主要還是分析軟體執行內在規律。
複製貼上在平時的工作中使用的非常常見,也沒有必要拿出來大作文章,程式設計最直接的結果是最簡單方式解決問題,沒有必要為了顯示自己能力的強大而去所有的程式碼都要自己去寫。程式設計目的是打造產品,為生活提供更多的便利。
-
4 # alanplus
身為一個程式設計師,真的想說我們有的時候不只複製貼上這麼簡單,還有更簡單的,比如繼承、封裝、直接用開源庫、自動生成程式碼。哪裡需要複製貼上那麼麻煩。來來來,門口大爺把這個背景隨手機殼顏色變化而變化實現下
回覆列表
複製貼上也是種能力,代表能舉一反三。
程式設計師工作過程中複製貼上比例還是很大的,這也沒什麼,能很好的完成工作就好。
能複製貼上的就儘量複製貼上能夠獲取更多自由時間研究新技術,總結工作經驗。