自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

復制粘貼代碼真的有問題嗎?

開發(fā) 前端
首先要清楚我講得復制粘貼的意思。不是說從互聯(lián)網上復制代碼,我指的是程序員重用代碼的捷徑–當他們遇到的問題與他們之前在另外一個系統(tǒng)中遇到的問題類似的時候,他們開始用現(xiàn)有的代碼副本,并加以改變。

當你編程的時候,復制和粘貼—將你現(xiàn)有的代碼進行再利用,這是不必再重復編碼的***做法。這是一個技術債務的***例子:偷懶,草率和目光短淺,這會讓維護代碼的長期成本增加。

但它同時也很自然,找一些已經在運行的代碼,跟你所需要的非常像,復制,粘貼,并用它作為起點。幾乎每個人都這么干過。因為有些時候,復制過來的代碼不僅僅是方便,而且就算我們所需要的

首先要清楚我講得復制粘貼的意思。不是說從互聯(lián)網上復制代碼,我指的是程序員重用代碼的捷徑–當他們遇到的問題與他們之前在另外一個系統(tǒng)中遇到的問題類似的時候,他們開始用現(xiàn)有的代碼副本,并加以改變。

在開發(fā)和設計階段的早期,復制和粘貼并沒有什么優(yōu)勢。代碼和設計仍可塑的,這時系統(tǒng)需要做的是建立一套正確的抽象。這個時候沒有什么好復制的。當在你開發(fā)的后期時,你已經有大量的代碼,你需要維護龐大的系統(tǒng),復制和粘貼就變得更加復雜。

為什么要復制粘貼?

程序員復制粘貼,因為這樣可以節(jié)省時間。首先,你必須站在一個起點,你要知道你的代碼要做什么事?你所要做的就是那里需要增加,哪里需要修改。你就可以專注于理解不同點。這時你變得更加自由–你可以清理你不需要的代碼。這一切都很主要。因為你可能不知道你需要保留的,你需要改變的,直到你進入更深的層面。

復制和粘貼同樣可以降低風險。如果你改變和擴展現(xiàn)有的代碼,至少它運行了一段時間,通常是更安全的,并且成本較低。

如果你正在構建一個新的 B2B 客戶界面,你會使用新的嗎?通常會采用現(xiàn)有的接口,作為新的起點。然后看看那里需要改變,到年底的時候,你就有了 2 個接口,但通常需要一段的時間來理解這個代碼是什么?

找到一個共同的設計,正確的抽象和變化,以支持不同的現(xiàn)實和異常處理。你最終的代碼可能變得無法理解,難以維護,直到不得不改變—因為原來的設計沒有預料到不同情況下的異常和擴展,重構只能到此結束,你需要一個全的設計和實施。

改變現(xiàn)有的代碼,進行重構和擴展,將會讓你目前的工作增加風險和成本,你不能為了適應網上的新客戶而讓給老客戶帶來問題。你需要格外的小心,你不但要明白你將要做的事每個細節(jié)(新界面),而且要明白現(xiàn)有界面的每個細節(jié),它的行為和假設。

如果你認為這些改變都能被自動化測試工具捕捉到,那你就很天真了—假設你已經有良好的自動化測試工具,你需要整合現(xiàn)有的接口測試,這可能需要花費數(shù)周甚至數(shù)月的時間。讓那些客戶花費這么多的時間適應新界面,他們會不滿意,因為他們都已經習慣了。

現(xiàn)在就復制粘貼,如果需要的話,過些日子要制定計劃來重構和重新設計,是明智的選擇。

[[82430]]

什么時候該復制粘貼?

1. 分叉 — 試探性的原因,如適應不同的平臺或者硬件

2. 模板 — 一些語言不支持某些庫或者共享函數(shù),這時有必要復制粘貼代碼。

3. 定制 — 臨時的解決辦法,只要是臨時的。

4. 微軟克隆的做法 — 一個小組的代碼給另外小組用。這時開源的通常做法,需要擴展來解決專有問題。

什么時候復制粘貼會變成問題?

什么時候復制粘貼會成為問題,有幾個主要因素。

首先,你對你復制的代碼理解程度是多少,你穩(wěn)定程度如何,有多少潛在的 bug。你總不想繼承別人的問題吧。

還要知道這個代碼已經拷貝了多少份?根據“三則重構”(three strikes and you refactor)原則。因為你復制了什么,并且加上改變,就帶來維護上的問題。這個維護的困難就是如何理清問題,因為 2 個版本不足以理解哪些是共有的,哪些是特殊的。

越多次的拷貝,越多的維護上的問題。多個版本的更改和修正增加了維護的風險和成本。保持代碼的同步,需要在多個系統(tǒng)中改變它。

雖然一些工具可以幫助你來尋找復制和粘貼的代碼。隨著時間的推移,不同的程序員尋找復制的副本代碼變得更加艱難。有些程序員建議離職時做好復制標記,以便后來的程序員維護。

Copy and Paste programming doesn’t come for free. But like a lot of other ideas and practices in software development, copy and paste programming isn’t right or wrong. It’s a tool that can be used properly, or abused.

復制粘貼不是免費的。和軟件開發(fā)中的其它想法和實踐一樣,它沒用對錯之分。它是一個工具,你可以善用,也可以濫用。

Brian Foote, one of the people who first recognized the Big Ball of Mud problem in software design, says that copy and paste programming is the one form of reuse that programmers actually follow, because it works.

It’s important to recognize this. If we’re going to Copy and Paste, let’s do a responsible job of it.

意識到這些是非常重要的,假設我們有復制粘貼,我們必須為我們的工作負責。

原文鏈接:Is Copy and Past Programming Really a Problem?

責任編輯:張偉 來源: 伯樂在線
相關推薦

2020-10-29 15:17:49

代碼開發(fā)工具

2021-06-03 14:16:49

開發(fā)技能代碼

2018-07-03 13:17:00

2021-06-06 05:58:45

應用PasteEx工具

2011-08-31 13:43:10

windows8

2020-12-15 06:02:19

瀏覽器Edge智能粘貼

2023-09-26 07:39:21

2019-07-12 14:00:55

xclipLinux命令行

2020-08-27 19:30:39

Chrome瀏覽器

2025-04-18 10:14:29

2023-02-09 09:07:49

2018-03-23 10:15:28

Windows 10云剪貼板復制粘貼

2023-02-09 09:32:04

ChatGPT數(shù)據

2020-09-14 17:10:16

微信搜索移動應用

2021-02-22 09:23:04

Windows10 操作系統(tǒng)21H2

2021-08-29 07:43:43

CopyQ操作系統(tǒng)微軟

2019-10-14 09:37:48

PC電腦PC軟件網頁

2021-09-24 09:59:59

復制粘貼PythonPDF

2019-12-06 10:00:58

代碼開發(fā)Java

2020-11-05 14:28:07

Shell腳本SQL
點贊
收藏

51CTO技術棧公眾號