背景
事情是這樣的:
公司一直很想重構官網,所以有一大堆資訊,例如案例資訊、SEO
資訊、產品資訊、人物資訊等。本來是想做個後臺管理來管理這些資訊,方便後期運營的同事自己去增刪改查。結果不出所料,又出現了職場領導最愛的三問——“開發需要多久?”、“什麼時候能開發完?”、“大概什麼時候上線?”。
這潛臺詞不就是要快點搞出來嗎?行,跟組裡其他人商量完了以後,後臺管理先不弄了,這樣也省去了後臺介面開發跟管理系統搭建的時間,反正也是一些靜態資料,直接放前端就行了。
實現的思路也很簡單:把頁面中的一些靜態資料,專門模組化抽離了出來,資料都建了相關的json
,用json
來管理對接人員提供的資料。到了對應的頁面,再按需載入對應的json
,渲染出對應的頁面資料。如果有什麼修改,直接改json
就好了。
這乍一看,好像確實沒什麼毛病。但是隨著開發的深入,使用json
管理資料這種方式,問題也慢慢暴露出來。
現實問題
問題一
繁瑣的修改,導致工作效率下降
我們開發時,如果遇到的是讓人很無語的客戶或者領導(就是那種,一個設計能改幾十稿,文案能改幾百遍的那種),我們肯定會崩潰。相信大家應該也被這種地獄反饋折磨過吧:“領導不喜歡這個文案,要換”,“客戶說這塊資訊不要了”,“這裡有個錯別字,要改一下”,“客戶說這裡要新加一條類別資訊”...
本來程式碼寫的挺有思路的,結果因為這些瑣事被打斷,效率分分鐘大打折扣。
問題二
溝通成本的增加
職場有各種各樣的人,有習慣好的,有習慣差的。相信你應該也遇過這種型別的對接人,對領導或客戶的修改意見不是直接截圖,就是沒有彙總,直接把修改意見一條條碎片式直接發群裡。
但我們在專注開發的時候,忙起來資訊基本是沒什麼時間看的,有一些修改意見我們也會錯過。所以得回頭一條條查記錄,遇到不理解的修改意見,又得再問一次對方確認一下,遇到脾氣不好的,可能還會被問煩暴怒。這無疑又增加了許多沒有必要的溝通成本。
問題三
無法更方便友好的管理資料
- 如果需要資料的頁面或模組多了,會導致對應的
json
檔案也增多。檔案多了,資料太過碎片化,管理那麼多檔案也變得麻煩 - 資料量很大的時候,,資料會變得很冗長,想直接找到特定的某條資料,是很困難的
- 遇到資料非常多的頁面或模組,想修改某個文案,即使用了關鍵字檢索,但是如果有相同關鍵字的資料,檢索了也得一個個翻,修改十分麻煩
分析問題
我相信上述問題,大家在平時工作中多多少少是有遇到過吧?所以專案上線後,我自己也分析總結了一下,發現這些問題,在我們很多專案中其實是非常常見的。
個人覺得,資料畢竟是對接人員給我們的,所以像上述的問題一、問題二這種無意義繁瑣的修改,增加的無效溝通成本,應該在對接人員那個階段就要過濾掉才對;作為開發人員的我們,最主要的職責應該是專注開發,跟接收最後確認版本的資料,而不是把時間浪費在那些沒有意義的溝通跟修改上。
在企業中,我們經常用Office
等辦公檔案,輸出各種文件,以此方便部門與部門,或者是不同人員之間溝通同步資訊。
於是一個想法闖入我的腦海,既然是辦公軟體,又是統計資料,那Excel
這個辦公軟體似乎是個非常好的選擇。我又查詢了一下資料,強大的nodeJS
,還能將我們的Excel
轉成json
,看來遇到的問題迎刃而解。
解決問題
透過上述分析,我們可以得出以下解決方案:
我們可以將所有資料整合在一個Excel
檔案中,這樣對接人員可以透過這個檔案,可以先很好的去收集客戶或者領導給的資料,然後如果領導或者客戶有什麼修改,就可以直接在這個Excel
直接修改。最後等一切確認完畢,對接人員再將這個Excel
檔案發回給我們,我們再匯出json
資料就可以了。
某種程度來說,我們相當於把修改這個工作前置,“推”給了對接人員。並且在這個過程中,我們不但可以很好的專注我們的開發,只用關注最後發回來的這個Excel
,我們還為那些習慣不好的對接人員,養成了資訊彙總,輸出文件的好習慣。這很好的解決了問題一,問題二。
同時,基於Excel
的功能,還有在Excel
裡面,每一個表(sheet
)可以當做我們某個頁面或某個模組的資料,因此上述問題三也得到了有效解決。
所以,我們最後解決上述的問題,就大致變成了以下步驟:
- 需要一個
Excel
檔案,它的作用是用來收集,修改,統計資料 - 將這個
Excel
檔案先給對接人員,讓他們去對接資料的提供者,然後整理修改這些資料,匯出最終確認版本的資料 - 透過步驟二,我們拿到這個最終的
Excel
檔案,再把它轉成我們所需要的json
。這樣Excel
跟json
的版本永遠相同,只要保證Excel
版本最新,我們的json
也是最新的,降低了資料有誤的風險 - 後期模組或者頁面有資料更新,我們更新只需要修改
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.xlsx
的Excel
模板檔案。
大家獲取到這個模板檔案後,把對應的一些資訊改成自己的,然後根據上面解決問題的幾個步驟:
- 先發給對接人員去收集,整理,修改資料
- 拿到最終版本的
Excel
檔案(或者用來管理自己開發時的資料) - 使用
ejc-cli
的命令列,匯出我們最後要的json
資料
ejc-cli
匯出json
最簡易的命令列:
ejc-cli -i './xlsx_template/template.xlsx'
效果展示
模板Excel
檔案:
使用效果:
輸出json
資料:
最後
寫這篇文章主要還是想表達,雖然平時我們“複製貼上”很舒服,但是我覺得,作為開發者的我們,更應該充當一個創造者,程式碼就像是我們的原材料。我們既然擁有了原材料,那就應該創造一些工具,儘可能讓工具來幫我們做一些重複的事情,或者讓工具把我們的工作、生活變得更加簡單
就像為什麼我想開發ejc-cli
這個工具,因為上面說的問題,其實在很多專案中都有遇到,而且不止一次,並且分析過後,我覺得是有辦法把那些不必浪費掉的時間節約回來的。那我們為什麼不利用我們的特長(程式設計),把我們的想法變成現實呢?
最後的最後,創作不易呀,對於ejc-cli
:
- 如果真的覺得好用或者有幫助到,感謝大家狠狠的給一個
star
。大家的認可,是我繼續分享創作的動力之一 - 也歡迎大家
fork
交流學習 - 有問題或者有什麼想加的功能,也可以提
issue
給我,讓我更好的完善它