複雜專案-新功能無法 release 的警惕

更新 發佈閱讀 3 分鐘

前情提要

之前要做一個影片編輯器的功能更新,原始功能是點擊字型選單的選項後,更新字型。現在要懸停在上面就要把字型 preview 給使用者看

字型的變更的時候會去更新整個 編輯器 (video) 的 state。

研究階段

研究後有以下發現,我只要把原始變更字型的 function 塞到 menu item 的 mouse enter 就好,然後在 mouse enter 一開始做一個 snapshot。在 click out side 把它還原,click on item 時直接變更。

實作階段

第一個狀況

咦,等等是不是有一個 undo 跟 redo,wtf 剛剛沒考慮到。變更字型就會在 undo 跟 redo 的 stack 塞紀錄。既有的那些 function 有沒有辦法讓我在 mouse enter 時忽略 redo 跟 undo 呢?還真的有,在那邊控制一下好了。

第二個狀況

mouse enter 移動時好像有點慢,還好我知道要加 debouce 不要 apply 那麼多次 font。

爆炸

為何我 click item 變更 font 得時候 undo 不回去?幹,由於 push undo 跟 redo 的 stack 放在同一個 function。執行方式如下:

  1. push current state to undo
  2. execute state change with a callback
  3. push the current state to redo

um...所以我的的 step1 的 state 因為好幾個 mouse enter 最後停留在我現在要點擊的 font style 上,所以 current state 壞了。解法也很簡單,就 click item 時把 紀錄好的 snapshot 塞回到 undo 底下,apply 完再塞 current state。

但...我採用 reuse old fuction 所以很多功能必須要拆開來重寫。而我沒有時間了...當初估計三天,現在四天後果斷跟 PM 說,priority 是 low,可不可以先把其他的先做一做往後延。

結論

有時候理想的簡單解,可能會被其他功能影響。評估還是得詳細做,不然可能會出很多包



留言
avatar-img
留言分享你的想法!
avatar-img
工程師隨手寫
0會員
9內容數
JavaScript 資深工程師,前後端都會一點 常常在程式碼中發現自己幾年前丟出的迴力鏢
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
今日無操作, 不知道是系統更新還是怎樣,過去可以複製貼上的功能被修改掉了,需要思考一下如何快速更新文章了。
Thumbnail
今日無操作, 不知道是系統更新還是怎樣,過去可以複製貼上的功能被修改掉了,需要思考一下如何快速更新文章了。
Thumbnail
事源我有個文檔用了前公司最新版本After Effect保存 帶回家才發現這個版本不兼容。而且第一個版本都不能打開(這也算AE超白癡的地方,2023都就已經不能打開2024的文檔)。
Thumbnail
事源我有個文檔用了前公司最新版本After Effect保存 帶回家才發現這個版本不兼容。而且第一個版本都不能打開(這也算AE超白癡的地方,2023都就已經不能打開2024的文檔)。
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
今天來分享一個好像有點廢的小技巧 把網頁變成可以直接用來打字的文字編輯器
Thumbnail
今天來分享一個好像有點廢的小技巧 把網頁變成可以直接用來打字的文字編輯器
Thumbnail
Creative Coding 作品變化概念,有或沒有的差別,隨機性,色彩模式的調整...等
Thumbnail
Creative Coding 作品變化概念,有或沒有的差別,隨機性,色彩模式的調整...等
Thumbnail
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
Thumbnail
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
在數位時代,為了要應付各種場景和需求,所需要的檔案格式也不盡相同。撇除專用格式不談,日常使用的影音圖片格式,還要為個別種類去安裝對應的編輯軟體步驟多少會有些繁瑣。File Converter可以應付一些簡單的媒體格式轉換,過程中不用開啟任何軟體。可以省去不少步驟。
Thumbnail
在數位時代,為了要應付各種場景和需求,所需要的檔案格式也不盡相同。撇除專用格式不談,日常使用的影音圖片格式,還要為個別種類去安裝對應的編輯軟體步驟多少會有些繁瑣。File Converter可以應付一些簡單的媒體格式轉換,過程中不用開啟任何軟體。可以省去不少步驟。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News