成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

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

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

為什么要復制粘貼?

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

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

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

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

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

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

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

[[82430]]

什么時候該復制粘貼?

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

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

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

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

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

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

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

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

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

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

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.

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

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

代碼開發工具

2021-06-03 14:16:49

開發技能代碼

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

2021-09-24 09:59:59

復制粘貼PythonPDF

2019-10-14 09:37:48

PC電腦PC軟件網頁

2020-09-14 17:10:16

微信搜索移動應用

2021-02-22 09:23:04

Windows10 操作系統21H2

2023-02-09 09:07:49

2018-03-23 10:15:28

Windows 10云剪貼板復制粘貼

2023-02-09 09:32:04

ChatGPT數據

2021-08-29 07:43:43

CopyQ操作系統微軟

2019-12-06 10:00:58

代碼開發Java

2023-07-24 00:15:54

微軟聊天
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色视频成人在线观看免 | 韩日精品在线观看 | 91亚洲国产成人久久精品网站 | 成人在线中文字幕 | 国产激情在线播放 | 青青草原综合久久大伊人精品 | 久久国产日韩 | 国产日韩久久 | 精品欧美一区二区在线观看视频 | 国产夜恋视频在线观看 | 久久精品成人一区 | 久久久久国产一区二区三区四区 | 亚洲成人av | 欧美成人免费在线 | 国产欧美精品一区二区 | 香蕉视频一区二区 | 亚洲www啪成人一区二区麻豆 | 自拍亚洲 | 男女深夜网站 | 日本一区不卡 | 91一区二区 | 国产高清免费在线 | 精品一区二区不卡 | 欧美老少妇一级特黄一片 | 99资源| 久久亚洲一区二区三区四区 | 99小视频| 一区二区日本 | 久久新| 午夜小视频在线观看 | 欧美成人一区二区三区 | www国产精品 | 成人依人 | 欧美视频中文字幕 | 九九久久精品视频 | 久久久久国色av免费观看性色 | 日韩一区二区在线视频 | 午夜精品久久久久久久99黑人 | v亚洲| 国产精品一区久久久 | 欧美日在线|