為了把工作“推”給別人,減少溝通成本,提高工作效率,我開發了這樣一個工具

limingcan發表於2023-03-29

背景

事情是這樣的:
公司一直很想重構官網,所以有一大堆資訊,例如案例資訊、SEO資訊、產品資訊、人物資訊等。本來是想做個後臺管理來管理這些資訊,方便後期運營的同事自己去增刪改查。結果不出所料,又出現了職場領導最愛的三問——“開發需要多久?”、“什麼時候能開發完?”、“大概什麼時候上線?”。

這潛臺詞不就是要快點搞出來嗎?行,跟組裡其他人商量完了以後,後臺管理先不弄了,這樣也省去了後臺介面開發跟管理系統搭建的時間,反正也是一些靜態資料,直接放前端就行了。

實現的思路也很簡單:把頁面中的一些靜態資料,專門模組化抽離了出來,資料都建了相關的json,用json來管理對接人員提供的資料。到了對應的頁面,再按需載入對應的json,渲染出對應的頁面資料。如果有什麼修改,直接改json就好了。
這乍一看,好像確實沒什麼毛病。但是隨著開發的深入,使用json管理資料這種方式,問題也慢慢暴露出來。

現實問題

問題一

繁瑣的修改,導致工作效率下降

我們開發時,如果遇到的是讓人很無語的客戶或者領導(就是那種,一個設計能改幾十稿,文案能改幾百遍的那種),我們肯定會崩潰。相信大家應該也被這種地獄反饋折磨過吧:“領導不喜歡這個文案,要換”,“客戶說這塊資訊不要了”,“這裡有個錯別字,要改一下”,“客戶說這裡要新加一條類別資訊”...
本來程式碼寫的挺有思路的,結果因為這些瑣事被打斷,效率分分鐘大打折扣

問題二

溝通成本的增加

職場有各種各樣的人,有習慣好的,有習慣差的。相信你應該也遇過這種型別的對接人,對領導或客戶的修改意見不是直接截圖,就是沒有彙總,直接把修改意見一條條碎片式直接發群裡。

但我們在專注開發的時候,忙起來資訊基本是沒什麼時間看的,有一些修改意見我們也會錯過。所以得回頭一條條查記錄,遇到不理解的修改意見,又得再問一次對方確認一下,遇到脾氣不好的,可能還會被問煩暴怒。這無疑又增加了許多沒有必要的溝通成本

問題三

無法更方便友好的管理資料

  • 如果需要資料的頁面或模組多了,會導致對應的json檔案也增多。檔案多了,資料太過碎片化,管理那麼多檔案也變得麻煩
  • 資料量很大的時候,,資料會變得很冗長,想直接找到特定的某條資料,是很困難的
  • 遇到資料非常多的頁面或模組,想修改某個文案,即使用了關鍵字檢索,但是如果有相同關鍵字的資料,檢索了也得一個個翻,修改十分麻煩

分析問題

我相信上述問題,大家在平時工作中多多少少是有遇到過吧?所以專案上線後,我自己也分析總結了一下,發現這些問題,在我們很多專案中其實是非常常見的。

個人覺得,資料畢竟是對接人員給我們的,所以像上述的問題一、問題二這種無意義繁瑣的修改,增加的無效溝通成本,應該在對接人員那個階段就要過濾掉才對;作為開發人員的我們,最主要的職責應該是專注開發,跟接收最後確認版本的資料,而不是把時間浪費在那些沒有意義的溝通跟修改上。

在企業中,我們經常用Office等辦公檔案,輸出各種文件,以此方便部門與部門,或者是不同人員之間溝通同步資訊

於是一個想法闖入我的腦海,既然是辦公軟體,又是統計資料,那Excel這個辦公軟體似乎是個非常好的選擇。我又查詢了一下資料,強大的nodeJS,還能將我們的Excel轉成json,看來遇到的問題迎刃而解。

解決問題

透過上述分析,我們可以得出以下解決方案:

我們可以將所有資料整合在一個Excel檔案中,這樣對接人員可以透過這個檔案,可以先很好的去收集客戶或者領導給的資料,然後如果領導或者客戶有什麼修改,就可以直接在這個Excel直接修改。最後等一切確認完畢,對接人員再將這個Excel檔案發回給我們,我們再匯出json資料就可以了。

某種程度來說,我們相當於把修改這個工作前置,“推”給了對接人員。並且在這個過程中,我們不但可以很好的專注我們的開發,只用關注最後發回來的這個Excel,我們還為那些習慣不好的對接人員,養成了資訊彙總,輸出文件的好習慣。這很好的解決了問題一,問題二。

同時,基於Excel的功能,還有在Excel裡面,每一個表(sheet)可以當做我們某個頁面或某個模組的資料,因此上述問題三也得到了有效解決。

所以,我們最後解決上述的問題,就大致變成了以下步驟:

  1. 需要一個Excel檔案,它的作用是用來收集,修改,統計資料
  2. 將這個Excel檔案先給對接人員,讓他們去對接資料的提供者,然後整理修改這些資料,匯出最終確認版本的資料
  3. 透過步驟二,我們拿到這個最終的Excel檔案,再把它轉成我們所需要的json。這樣Exceljson 的版本永遠相同,只要保證Excel版本最新,我們的json也是最新的,降低了資料有誤的風險
  4. 後期模組或者頁面有資料更新,我們更新只需要修改Excel,匯出json,然後替換掉線上的json檔案,不需要重新部署程式碼(這點在開發小程式的時候,尤其重要
後面對接的小哥專門感謝了下我,因為他之前是用Word做的文件,實在是太亂了,我就幫忙做了一個Excel(也不復雜)。因為Excel比起Word,收集修改資料確實方便很多,發給領導或客戶看的時候,也比較一目瞭然。
老闆應該給我加薪 :-)

另外,Excel功能全面,所以用它來管理資料還有以下好處:

  • 更方便的操作。Excel是專業的辦公軟體,在Excel中對資料進行增刪改查,當然要比在我們的編輯器內修改要方便太多
  • 更視覺化。每一個表(sheet)可以當做我們某個頁面或某個模組的資料;每個表(sheet)的名字,就是我們json的名字;表裡每一行資料,就是我們json每一條的資料
  • 更方便的管理。資料都整合在一個Excel檔案中,更加方便我們管理所有模組或頁面的資料
  • 更適合傳播。本著我為人人,人人為我的精神,json不適合在非開發人員中傳播,但是Excel適用於所有人員。不但對接人員可以對這個Excel進行修改,如果你發現Excel裡面有問題,你也一樣可以修改,然後再同步給對接人員。

有了這些好處,所以我們使用Excel來管理我們的資料,不僅能解決上述問題,平時我們開發中,如果資料結構不復雜,我們一樣也能用Excel來管理我們自己開發時候的資料。

工具誕生

因此,基於上述的分析跟解決問題的思路,再結合Excel這個辦公軟體本身的優勢,於是我將這兩者結合在一起,開發了這個終端小工具——ejc-cli

github地址:https://github.com/limingcan562/ejc-cli

  • 如果真的覺得好用或者有幫助到,感謝大家狠狠的給一個star。大家的認可,是我繼續分享創作的動力之一
  • 也歡迎大家fork交流學習
  • 有問題或者有什麼想加的功能,也可以提issue給我,讓我更好的完善它

上述的分析跟解決問題的思路,都離不開要拿來收集,修改,管理資料的Excel這個檔案,於是我大致研究了大部分收集資料的Excel是怎麼做的。發現這類Excel表格結構基本都差不多,都是一行標題,然後下面跟著一條條資料。

所以,為了讓大家更方便的使用,ejc-cli裡面已經內建了一個Excel模板,你不需要再自己製作一個Excel,你只需要執行:

ejc-cli gt

或者將模板檔案儲存到指定目錄:

ejc-cli gt './xlsx_template/'

這樣你就能獲取到一個名為template.xlsxExcel模板檔案。

大家獲取到這個模板檔案後,把對應的一些資訊改成自己的,然後根據上面解決問題的幾個步驟:

  • 先發給對接人員去收集,整理,修改資料
  • 拿到最終版本的Excel檔案(或者用來管理自己開發時的資料)
  • 使用ejc-cli的命令列,匯出我們最後要的json資料

ejc-cli匯出json最簡易的命令列:

ejc-cli -i './xlsx_template/template.xlsx'

關於ejc-cli更多的用法,大家可以去這裡查閱:使用說明

效果展示

模板Excel檔案:

使用效果:

輸出json資料:

最後

寫這篇文章主要還是想表達,雖然平時我們“複製貼上”很舒服,但是我覺得,作為開發者的我們,更應該充當一個創造者,程式碼就像是我們的原材料。我們既然擁有了原材料,那就應該創造一些工具,儘可能讓工具來幫我們做一些重複的事情,或者讓工具把我們的工作、生活變得更加簡單

就像為什麼我想開發ejc-cli這個工具,因為上面說的問題,其實在很多專案中都有遇到,而且不止一次,並且分析過後,我覺得是有辦法把那些不必浪費掉的時間節約回來的。那我們為什麼不利用我們的特長(程式設計),把我們的想法變成現實呢?

最後的最後,創作不易呀,對於ejc-cli

  • 如果真的覺得好用或者有幫助到,感謝大家狠狠的給一個star。大家的認可,是我繼續分享創作的動力之一
  • 也歡迎大家fork交流學習
  • 有問題或者有什麼想加的功能,也可以提issue給我,讓我更好的完善它

相關文章