複雜專案-新功能無法 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
工程師隨手寫
0會員
9內容數
JavaScript 資深工程師,前後端都會一點 常常在程式碼中發現自己幾年前丟出的迴力鏢
你可能也想看
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
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
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News