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

復(fù)制粘貼代碼真的有問題嗎?

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

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

但它同時(shí)也很自然,找一些已經(jīng)在運(yùn)行的代碼,跟你所需要的非常像,復(fù)制,粘貼,并用它作為起點(diǎn)。幾乎每個(gè)人都這么干過。因?yàn)橛行r(shí)候,復(fù)制過來的代碼不僅僅是方便,而且就算我們所需要的

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

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

為什么要復(fù)制粘貼?

程序員復(fù)制粘貼,因?yàn)檫@樣可以節(jié)省時(shí)間。首先,你必須站在一個(gè)起點(diǎn),你要知道你的代碼要做什么事?你所要做的就是那里需要增加,哪里需要修改。你就可以專注于理解不同點(diǎn)。這時(shí)你變得更加自由–你可以清理你不需要的代碼。這一切都很主要。因?yàn)槟憧赡懿恢滥阈枰A舻模阈枰淖兊模钡侥氵M(jìn)入更深的層面。

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

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

找到一個(gè)共同的設(shè)計(jì),正確的抽象和變化,以支持不同的現(xiàn)實(shí)和異常處理。你最終的代碼可能變得無法理解,難以維護(hù),直到不得不改變—因?yàn)樵瓉淼脑O(shè)計(jì)沒有預(yù)料到不同情況下的異常和擴(kuò)展,重構(gòu)只能到此結(jié)束,你需要一個(gè)全的設(shè)計(jì)和實(shí)施。

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

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

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

[[82430]]

什么時(shí)候該復(fù)制粘貼?

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

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

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

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

什么時(shí)候復(fù)制粘貼會變成問題?

什么時(shí)候復(fù)制粘貼會成為問題,有幾個(gè)主要因素。

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

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

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

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

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ù)制粘貼不是免費(fèi)的。和軟件開發(fā)中的其它想法和實(shí)踐一樣,它沒用對錯(cuò)之分。它是一個(gè)工具,你可以善用,也可以濫用。

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.

意識到這些是非常重要的,假設(shè)我們有復(fù)制粘貼,我們必須為我們的工作負(fù)責(zé)。

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

責(zé)任編輯:張偉 來源: 伯樂在線
相關(guān)推薦

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

應(yīng)用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

復(fù)制粘貼PythonPDF

2019-10-14 09:37:48

PC電腦PC軟件網(wǎng)頁

2020-09-14 17:10:16

微信搜索移動應(yīng)用

2021-02-22 09:23:04

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

2023-02-09 09:07:49

2018-03-23 10:15:28

Windows 10云剪貼板復(fù)制粘貼

2023-02-09 09:32:04

ChatGPT數(shù)據(jù)

2021-08-29 07:43:43

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

2019-12-06 10:00:58

代碼開發(fā)Java

2023-07-24 00:15:54

微軟聊天
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: a在线观看 | 黄色av网站在线观看 | 99热在线免费 | 色就是色欧美 | 亚洲欧美自拍偷拍视频 | 成人免费区一区二区三区 | 日韩高清中文字幕 | 国产精品乱码一区二三区小蝌蚪 | 98久久 | 久久午夜精品福利一区二区 | 日本中文字幕日韩精品免费 | 亚洲三区在线 | 亚洲成人av| 天天拍天天操 | 亚洲精品久久久久avwww潮水 | 青青草精品视频 | 欧美国产日韩一区二区三区 | 一区二区三区日本 | 黄色在线免费观看 | 亚洲自拍偷拍av | 狠狠的干 | 欧美视频第二页 | 国产精品久久久久国产a级 欧美日韩国产免费 | 亚洲一区三区在线观看 | 一区二区在线视频 | 狠狠操狠狠干 | 日本三级电影在线看 | 狠狠草视频 | 99精品一区二区三区 | 国产精品片aa在线观看 | 久久久久国产 | 亚洲欧美综合精品久久成人 | 超碰在线97国产 | 99re在线视频免费观看 | 99精品免费 | 国产人久久人人人人爽 | 欧美精品日韩精品国产精品 | 精品国产乱码久久久久久a丨 | 亚洲精选一区 | 蜜桃一区二区三区 | 亚洲精品久久久久中文字幕二区 |