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

都2021年了,為什么想回看5分鐘前寫的代碼就這么難

新聞 前端
如何才能夠回溯那些被自己覆蓋掉的代碼片段?美國田納西大學的助理教授 Austin Z. Henley 介紹了自己開發的工具 Yestercode,它能讓回溯代碼就像播放視頻拉進度條一樣簡單。

 [[382468]]

寫代碼的時候,反復修改是常見的事,修改之后忘記以前是什么樣子好像也很常見。

如何才能夠回溯那些被自己覆蓋掉的代碼片段?美國田納西大學的助理教授 Austin Z. Henley 介紹了自己開發的工具 Yestercode,它能讓回溯代碼就像播放視頻拉進度條一樣簡單。

這個工具在程序員們聚集的社區 HackerNews 上引發了人們的討論。

都2021年了,為什么想回看5分鐘前寫的代碼就這么難

一項研究發現,Java 開發者在寫代碼的時候平均每 6 分鐘回溯一次,這意味著他們經常會需要使用 undo 按鈕或 Ctrl+z 讓代碼恢復到之前的狀態。這些撤銷動作顯然并不是預先可知的,而且隨后肯定會接著覆蓋重寫。

事實上,在另一項研究中,有開發者在 5 分鐘內進行了 40 次 undo/redo 操作。當被問及為什么要這樣做的時候,程序員的回答通常是:他們在試圖回想起被修改部分代碼的某個中間狀態。那么問題來了,為什么想看到之前寫過的代碼就這么難?

都2021年了,為什么想回看5分鐘前寫的代碼就這么難

Undo 到盡頭

對于代碼工作來說,撤銷和重寫按鈕總是很有意義的設計。但這里會存在一些問題:(1)如果回溯之前的狀態,進行了新的更改,之前的狀態就會丟失。(2)人們無法看到改前改后狀態的直接對比。(3)沒有提示符直觀指示你在撤銷 / 重寫歷史的具體位置。(4)有些代碼編輯器使用全局 undo 堆棧,有些代碼編輯器為每個打開的文檔使用撤消堆棧,這可能會干擾你執行操作順序的思維方式。(5)代碼編輯器中還有很多動作是不會被加入 undo 堆棧中的(比如修改 debugger 選項),這在調試 bug 的時候會讓人頭疼。(6)一次回撤一小步,不知何時才能到盡頭。

這個吐槽的列表還能繼續列下去。

使用版本控制

有人說:「為什么很多程序員都習慣使用 undo/redo?版本控制可以解決所有問題。」

但實際情況是版本控制并不會奏效。當開發人員對代碼進行更改時,他們可能會對代碼進行很多改動并陷入困境,然后過了一會才能意識到想要的是某種中間版本。這就迫使開發人員在他們得到做出決定所需信息之前,保存一個中間版本。除非每隔幾分鐘將代碼放到 git 庫,無論其是否有效,因此版本控制在此并不會有所幫助。

開發人員通常對找到所需信息過于自信,而且他們大大低估了找到這些信息所需的工作量。

復制文件

開發人員在更改過程中,要么復制代碼文件,給相關代碼截圖。他們可能會有這樣的想法:「我要把代碼弄亂了,在弄亂之前,我要用 Ctrl-A 和 Ctrl-V 將它復制到一個新的標簽頁中,然后把該窗口放在編輯器旁邊,用作參考。」甚至有從業 20 年的開發者也是這樣做的。

回到最初的問題:為什么想回頭看 5 分鐘前的代碼就這么難?為什么代碼編輯器不能更好地執行這種行為?

使用 Yestercode 來挽救

Austin Henley 表示他早在 2015 年就開始草擬了一些設計方案,旨在為開發人員提供所需的信息,且所需的工作量較少。在他的設計中,開發人員可以一同查看代碼的新版本和原版本,同時自動記錄重要更改。由于 Henley 可以訪問 LabVIEW 編輯器的源代碼,因此他為 LabVIEW 的實驗版創建了一個帶有已啟用功能的分支。

盡管 LabVIEW 是一種可視化的拖放(drag-and-drop)語言,但這種設計思想也適用于傳統編輯器。然后 Henley 將其演示給了數十位開發人員、經理和其他 LabVIEW 用戶,以獲取反饋并進行迭代。

都2021年了,為什么想回看5分鐘前寫的代碼就這么難

之后,Austin Henley 開發了一個名叫 Yestercode 的工具。它可以讓你在時間軸上瀏覽代碼歷史紀錄就像看 YouTube 視頻一樣。進行回溯編輯時,它可以匯總新的修改,并在時間軸上為這個版本建立分支。在這以后,你可以使用時間軸轉到先前的版本,并與當前版本的代碼并排查看。以前的版本是只讀的,但仍允許人們從中復制粘貼。最后,這個工具還顯示注釋,以便于人們知曉在更高版本上(比如 diff)進行過哪些更改。

幾年前,Henley 花費了一些時間把 Yestercode 做成了 Atom 插件,事實證明它對其他種類的代碼也很有用。

都2021年了,為什么想回看5分鐘前寫的代碼就這么難

這還沒有完,Henley 希望能讓這樣的比較工具接手所有的文字版本,包括 word 文檔、電子表格和 PDF,新的工具目前也已有了原形。

都2021年了,為什么想回看5分鐘前寫的代碼就這么難

這樣真的可以行得通嗎?等到它正式上線之后,我們就可以評判一下了。

 

責任編輯:張燕妮 來源: 機器之心Pro
相關推薦

2018-09-19 13:51:21

遠程醫療

2015-01-05 09:35:54

云計算應用程序開發

2019-08-30 14:58:47

JavaScript程序員編程語言

2020-02-17 13:45:27

抓取代碼工具

2017-01-23 13:08:46

大數據客戶畫像技術

2020-11-10 22:53:54

oracle數據庫

2021-11-19 11:16:29

Git命令Linux

2022-01-12 20:04:09

網絡故障斷網事件網絡安全

2025-02-25 08:36:56

2020-12-08 05:41:46

人工智能人機融合機器學習

2020-02-28 16:10:13

攜號轉網運營商中國電信

2020-12-10 13:37:08

人工智能人機融合

2021-10-15 21:23:24

手機價格配置

2012-06-28 10:26:51

Silverlight

2021-03-10 18:05:16

JavaProtobuf序列化

2021-01-26 05:39:57

Protobuf java

2020-11-19 15:34:47

前端招聘開發

2022-06-12 23:36:26

微服務架構單體應用

2011-05-12 14:57:58

2019-03-08 16:12:05

Docker容器開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级毛片视频免费观看 | 色橹橹欧美在线观看视频高清 | 亚洲欧美日韩精品久久亚洲区 | 亚洲男女视频在线观看 | 91亚洲一区 | 亚洲精品久久久久久久久久久久久 | 精品国产乱码久久久久久闺蜜 | 国产免费一区二区 | 午夜国产| 91香蕉视频在线观看 | 极品销魂美女一区二区 | 9久久婷婷国产综合精品性色 | 天天操天天射综合网 | 97视频久久 | 国户精品久久久久久久久久久不卡 | 欧美日韩黄| 日韩在线免费视频 | 欧美性成人 | 成人免费观看网站 | 999久久久| 欧美激情在线一区二区三区 | 欧美成人免费 | 天天操天天摸天天干 | 久久久精品久久 | 一区二区三区四区不卡 | 国产高清视频一区二区 | 国产免费一区二区三区 | 久久久99精品免费观看 | 情侣黄网站免费看 | 久草免费在线视频 | 国产精品视频一区二区三区四区国 | 国产精品一区二区欧美黑人喷潮水 | av黄色在线 | 91热在线 | 亚洲国产精品久久久久秋霞不卡 | 欧美日韩在线免费观看 | 国产欧美一区二区三区久久人妖 | 国产精品久久久久久影视 | 久久大陆 | 欧美日韩一区不卡 | 精品一区二区三区在线观看国产 |