之前做开辟的时刻对项目完整没有一个团体的思索,需求来了就晓得做,只体贴本身做的那部份的功用,做完拉到。但近来所做的项目中,碰到了不少题目,本身都不由得吐槽起来了。如:项目经常性延期、代码冗余、增加一个很小的新功用都须要修改许多处所,还对之前的代码逻辑发作不小的影响。这使得我不得不对现有的项目举行思索。
怎样才把项目做的好一点或许更好?
起首,在老板看来,他肯定愿望本日提的需求可以立马就上线。
然后,老板愿望我们做出来的产物有很好的用户体验,有优越的机能。
末了,愿望体系可以稳固运转,出题目时可以尽快修复。
固然,这只是我脑补出来的(我个人的主意,至于老板是不是是这么想我就不清楚了)。
从手艺上来讲就是:
- 可以疾速搭建
- 具有比较好的机能
- 逻辑清楚,易于保护、拓展
- 疾速处置惩罚线上题目
怎样举行疾速搭建?
一、组件封装:大众款式、逻辑提取。
有时刻,我们须要做一个一致的自定义弹窗款式,或许自定义的下拉框等。我们封装成大众组件以后,其他处所须要用到时,只需引入组件和传入数据即可运用,不须要再反复的去写款式或许逻辑。有些以至不须要设想再重新出图,应用组件就可以完成我们的页面开辟了。
封装前:
多个页面中,一样的页面款式和js逻辑没法复用,须要在每一个页面中举行代码的复制粘贴,很能够会遗漏部份代码。发作款式或许js逻辑修改时须要每一个页面都改一遍,很轻易遗漏。
封装后:
可举行代码复用,多个页面中,一样的页面款式和js逻辑直接援用封装好的组件即可。发作款式或许js逻辑修改时,只须要改一个处所即可。
二、 项目的基本搭建
新开一个项目的时刻我们都须要先去做一些基本搭建,比如说:项目目次构造、登录模块封装、http要求处置惩罚和其他辅佐小工具等等。这些东西我们可以做成一个npm包,发到公司内部的私有仓库里,运用的时刻直接一个npm install 就可以疾速的完成项目的基本搭建了。
逻辑清楚,易于保护、拓展
深切明白产物需求,将功用逻辑分别,对应成响应的代码逻辑:
- 哪一部份款式可以封装
- 哪一部份功用可以封装
- 页面里各个逻辑的关联:点击一个按钮,页面中的其他展现要怎样更改
- 各个页面之间的逻辑关联:在当前页面操纵,其他页面需不须要做出响应的更改
假如开辟时不看需求文档,到了末了除了撕逼以外还得返工。
与其他功用模块对接时只管多斟酌,做成可拓展的通用模块。与某个模块对接时,怎样与当前模块完成对接是我们主要斟酌的事变。斟酌完这方面的事变以后,我们还要斟酌一下再有别的一个模块或许多个模块接入时我们要怎样才在代码修改量最小的情况下举行疾速接入。
关于解释:
解释是有必要的,这个对个人和别人都是有优点的。本身一个月之前写的代码,没有解释再回去看时能够也不太懂,何况是别人呢。
假如可以的话,每一个js文件的开首简朴形貌下劈面页面的功用逻辑,让保护的时刻能疾速的相识到当前页面上的东西。
关于文档:
人人都去遵照肯定的范例才更好的去配合制造/保护一个东西,这些范例构成以后肯定要遵照下去。当一个新的小伙伴加入到我们的时刻,我们不能够把每一个范例都行动的跟他讲平常,我们本身也记不住那么多范例。所以,将这些范例整顿成文档很有必要,记不清楚或许不相识的时刻可以重新去翻一翻。另有我们封装好的组件,其别人运用的时刻也不能够花时候去看看你的源码,或许老是来问你要怎样用。如许会很糟蹋人人的时候,障碍全部项目的进度。所以,组件的用法、入参/出参、注意事项等等我们都须要再文档内里形貌清楚。
具有比较好的机能
依据当前做的项目,运用的手艺栈,找出引发机能题目的点,逐一举行优化。就拿我当前做的这个原生小顺序来讲,机能题目主要在以下几点:
- 频仍的挪用setData。
- 在背景举行多个数据要求并举行多个页面setData操纵。
- 初次加载小顺序时包下载比较慢。
处置惩罚方案
题目1: 防止频仍的setData, 将可以兼并的setData兼并,不在页面衬着的变量不在data里声明,在page下的其他字段里声明即可
题目2: 劈面页面的修改须要革新其他页面时,不须要立即对其他页面举行数据革新的行动,给须要革新的页面加个标识,比及该页面显现时经由过程onShow声明周期来推断并革新 数据。
题目3: 运用小顺序的分包加载,加载首页时只需先下载分包即可,进步首页加载速率。
疾速处置惩罚线上题目
碰到线上的bug应当疾速的响应和主动的定位题目涌现的缘由,从根本上去处置惩罚题目,而不是说这不是我的题目,我不必管。
尽早发现题目,在形成更大的影响之前处置惩罚题目:
自行搭建一个毛病网络体系,网络js剧本毛病和接口要求毛病的相干信息,为定位题目供应协助,还可以依据毛病的峰值来搜检当前体系是不是非常。怕麻烦,图费事的还可以费钱运用fundebug。
日前能想到和记得的就只有那么多吧, 先记住,以避免忘记。