背??景如下:公司一直想对官网进行改版,所以资料非常多,案例信息,SEO信息,产品信息,人物信息等等,本来我想做的一个后台管理来管理这些信息,方便后期操作的同事自己增删改查。不出所料,职场领导最喜欢的三个问题又出现了——“开发需要多长时间?”、“什么时候开发完成?”、“什么时候上线?”。潜台词还不快出来?好吧,跟群里其他人商量后,后台管理就不做了。这样可以节省后台界面开发和管理系统建设的时间。反正就是一些静态数据,放到前端就好了。实现思路也很简单:将页面中的一些静态数据专门模块化提取出来,为数据构建相关的json,用json来管理对接人员提供的数据。当你到达相应的页面时,根据需要加载相应的json,渲染相应的页面数据。如果有修改,直接改json即可。乍一看,似乎没什么不妥。但是随着开发的深入,使用json来管理数据,问题也逐渐暴露出来。实际问题问题1.复杂的修改导致工作效率下降种),我们肯定会崩溃。相信大家应该都被这种见鬼的反馈折磨过:“领导不喜欢这个文案,要改”、“客户说这块资料不用了”、“有一个这里有错字,需要修改”,“客户说这条信息需要修改。”添加一个新的类目信息”……本来写代码的时候花了不少心思,却被这些琐碎的事情打断了,分分钟效率大打折扣。问题2沟通成本增加有各种各样的职场人,有好习惯的,也有坏习惯的都是直接碎片化的发到群里。但是我们在专注开发的时候,忙的时候基本没时间看资料,会漏掉一些修改。所以得回去查记录一个接一个,遇到不懂的修改,还得再问对方确认一下,遇到脾气不好的,可能会很生气,大发雷霆,这无疑增加了很多不必要的沟通费用。问题3.数据管理不能再方便和友好了。如果需要数据的页面或模块过多,对应的json文件也会增加。文件太多,数据太碎片化,管理这么多文件就变得麻烦了。当数据量很大时,数据会变得非常冗余。直接找到特定的数据是非常困难的。页面或模块太多,想修改某个副本,即使使用关键字搜索,但如果有相同关键字的数据,则必须逐条搜索,修改很麻烦分析问题.以上问题相信大家在平时的工作中或多或少遇到过吧?所以在项目上线后,我自己分析总结,发现这些问题其实在我们很多项目中都非常普遍。我个人认为数据毕竟是对接人员给我们的,所以像上述问题1、2这样无意义繁琐的修改,以及无效沟通增加的成本,应该在对接人员阶段过滤掉;作为开发人员,我们的主要职责应该是专注于开发,接收最终确认版本的数据,而不是浪费时间在无意义的沟通和修改上。在企业中,我们经常会使用Office等办公文件来输出各种文档,以方便部门之间或不同人员之间的信息交流和同步。于是一个想法闯入了我的脑海。既然是办公软件和统计数据,那么办公软件Excel似乎是一个非常不错的选择。又查了下资料,强大的nodeJS还可以把我们的Excel转成json,看来遇到的问题都迎刃而解了。解决问题通过上面的分析,我们可以得出以下解决方案:我们可以把所有的数据整合到一个Excel文件中,让对接人员先用这个文件收集客户或者领导给的数据,然后如果领导或者客户有什么修改的话,直接在这个Excel里面修改就可以了。最后,一切确认无误后,对接人员会将Excel文件发回给我们,我们就可以导出json数据了。某种程度上,我们相当于把修改的工作“推”给了对接人员。而且在这个过程中,我们不能只关注我们的开发,而只关注最后发回的Excel。对于不习惯对接的人,我们也养成了总结信息、输出文档的好习惯。这样就很好的解决了问题一和问题二。同时,基于Excel的功能,而在Excel中,每一个工作表(sheet)都可以看作是我们的某个页面或者某个模块的数据,所以上面的问题三也得到了有效的解决。因此,当我们最终解决上述问题时,大致变成了以下步骤:需要一个Excel文件,它的作用是对数据进行采集、修改、统计。先把这个Excel文件给对接人员,让他们提供对接数据。或者,再对数据进行整理修改,导出最终确定的数据版本。通过第2步,我们得到了最终的Excel文件,然后将其转化为我们需要的json。这样Excel和json的版本就一直保持一致。只要Excel版本是最新的,我们的json也是最新的,这样可以降低数据错误的风险。以后的模块或页面有数据更新。我们只需要修改Excel,导出json,替换即可。在线json文件不需要重新部署代码(这在开发小程序时尤为重要)。后来连线的小哥感谢我,因为他之前用Word做文档,太乱了,我帮忙做了一个Excel(不复杂)。因为Excel收集和修改数据比Word方便多了,发给领导或者客户的时候也更加一目了然。老板应该给我加薪吧:-)另外,Excel功能全面,用它来管理数据有以下好处:操作更方便。Excel是一款专业的办公软件。在Excel中增删改查数据当然比在我们的编辑器中修改更方便、更直观。每一张(sheet)都可以看作是我们其中一个页面或模块的数据;每张表(sheet)的名字就是我们json的名字;表格中的每一行数据都是我们每条json的数据,更方便管理。数据集成在一个Excel文件中,更方便我们管理所有模块或页面的数据,更适合传播。本着meforeveryone,everyoneforme的精神,json不适合在非开发人员中传播,而Excel适合所有人。不仅对接人员可以修改这个Excel,如果发现Excel有问题,也可以修改,然后同步给对接人员。有了这些好处,我们使用Excel来管理我们的数据,不仅可以解决上面的问题,而且在我们的开发中,如果数据结构不复杂,我们也可以使用Excel来管理我们自己的开发数据。该工具诞生了。因此,基于以上分析和解题思路,结合办公软件Excel的优点,我将二者结合,开发了这个终端工具——ejc-cligithub地址:https://github.com/limingcan562/ejc-cli如果您真的觉得有用或有帮助,感谢您给它一个星。大家的认可是我继续分享创作的动力之一。也欢迎大家fork交流学习。如果大家有什么问题或者有什么想添加的功能,也可以提交issue给我,以便我更好的完善其上面的分析和解决问题。思路离不开用于收集、修改、管理数据的Excel文件,所以我粗略研究了下Excel中收集的大部分数据是如何完成的。发现这类Excel表格的结构基本相同,都是一行标题,后面是一行数据。所以,为了方便大家使用,ejc-cli内置了Excel模板,不需要自己制作Excel,只需要执行:ejc-cligt或者保存模板文件即可到指定目录:ejc-cligt'./xlsx_template/'这样就可以得到一个名为template.xlsx的Excel模板文件。得到这个模板文件后,把相应的一些信息改成自己的,然后按照上面的步骤解决问题:先发给对接人员,收集、整理、修改数据,得到最终版本excel文件(或者自己开发时使用来管理数据)使用ejc-cli的命令行导出我们要ejc-cli导出的最后json数据json最简单的命令行:ejc-cli-i'./xlsx_template/template.xlsx'关于ejc关于-cli的更多用法,可以去这里查看:使用说明效果展示模板Excel文件:使用效果:输出json数据:最后这篇文章主要是想表达一下,虽然我们平时“复制粘贴”很舒服,但我觉得作为开发者,我们更应该扮演创造者的角色,而代码就像是我们的原材料。既然有了原材料,我们就应该创造一些工具,尽可能让工具帮我们做一些重复的事情,或者让工具让我们的工作和生活更轻松,就像我为什么要开发ejc-cli一样tool,因为上面提到的问题其实在很多项目中都遇到过,而且不止一次,经过分析,我觉得有办法可以节省那些不需要浪费的时间。那我们为什么不利用我们的特长(编程)把我们的想法变成现实呢?最后,创作不易。对于ejc-cli:如果你真的觉得它好用或者有帮助,谢谢你给它一个star。大家的认可是我继续分享创作的动力之一。也欢迎大家fork交流学习。如果大家有什么问题或者有什么想要添加的功能,也可以提交issue给我,以便我更好的改进。
