為什麼會有人認為程式設計很簡單,只要複製和貼上就可以了?

為什麼會有人認為程式設計就是複製和貼上呢?想起畢業時一個老師給我們講的他自己的段子,他是學計算機的,他一個姑姑是醫生,外科醫生,這兩個人相互看不起對方的職業,他姑姑就認為計算機有什麼難的,不就是打打字嗎?他認為外科醫生有什麼難的,不是拉個刀子嗎?肚子拉開,點一點,心肝脾肺腎,一二三四五,六?哎?多一個,拉去,再縫好。按照這個邏輯,會計就是填填單子,律師就是動動嘴,足球就是一群人搶搶球,有球的踢球,沒球的轉成跑步,程式設計就是打打字,高階一點的打字都不用,複製貼上別人的程式碼。

為什麼會有人認為程式設計很簡單,只要複製和貼上就可以了?

複用和繼承

恩師說過一句話:不會偷懶的程式設計師做不好程式設計師,意思是有一些功能,可以用非常笨拙的方式去實現,但你需要花很大的精力和時間,雖然慢勞動大,但簡單。偷懶的過程就是,你要主動“勤奮”地去思考,這個實現怎麼能簡單一點,效率高一點,還可以支援一定引數的擴充套件,以及擴大適用範圍,讓這個專案的其它功能、其它人可以直接透過繼承或是某種複用的方式來使用,哪怕是複製和貼上。小公司裡可能會更多的重頭寫,大公司裡複製程式碼比較常見,底層的框架早就打好了,在這個架構基礎上,實現不同業務,大公司的業務場景的複雜,沒法用一套程式碼來實現所有的功能。十年前接觸過工商局的一套報表功能,用java實現excel的匯出,當時網上能就查到的現成的解決方法就兩種,隨便選了一種,在這上面做二次封裝,方便其它人傳進幾個引數可以直接呼叫生成報表。剩下的工作基本上屬於體力活了,其它人呼叫這個模組,按照相應的規則來生成,複製貼上就可以了,只需要改改其中的引數名字或個數。這可能是導致外行人認為程式設計只是簡單的複製和貼上的原因之一吧。

為什麼會有人認為程式設計很簡單,只要複製和貼上就可以了?

拿來主義

有現在的東西為什麼不用?開發中有一句話叫“不要造自己的輪子”,只要市面上有這個功能的實現,儘量拿別人的來用,人家寫的程式碼不比你差,github上還有很多優秀的程式設計師一起幫忙最佳化。你要是自己重新寫,一個浪費時間,寫得還不一定比別人的好,所以只要有現成的東西,一定不要自己寫。比如驗證郵箱和手機號的正則表示式,js的一些高複用的功能,還有和第三方平臺的通訊,都有自己已經成熟的程式碼,直接複製貼上就可以,自己寫反而漏洞百出。還有一些已經成熟的半成品,像一些CMS內容管理系統,或者是CRM、商城、論壇,如果企業需要的業務不是定製的,那麼直接下載下來,稍微改改介面和logo就直接可以用,這些都已經經過測試驗證了,並且還有很多外掛,沒必要再耗費時間和精力去現開發。這種拿來主義可能也是造成這種認識的原因吧。

為什麼會有人認為程式設計很簡單,只要複製和貼上就可以了?

知其然,並且知其所以然,初級程式設計師可能只知道複製的內容可以獲得什麼效果,高階程式設計師則知道為什麼可以要這麼寫。