首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

重构业务系统,这样

重构原因有很多,可能是伴随着业务发展与升级,系统无法快速支持需求迭代,这时就有了重构念头,一般情况下不建议对老系统进行重构,毕竟重构是有代价。...最近参与了一个重构项目,接下来给大家分享下,在重构业务系统过程中经验总结。 1....了解系统 接到重构任务后,不要立刻动手执行重构,而是对当前业务流程和架构状态有个清晰了解,如果开发过当前系统同事还在公司,一定要拉着同事好好讨论。 我们要知道系统一定是给人用,是给哪些人用?...要知道怎么给自己创建不同角色用户,然后登录系统进行操作使用,如果涉及到了一些专有名词,一定要和团队成员沟通并达成一致。 2....业务流程图 通过了解系统之后,清楚业务核心流程,这时要按照理解绘制 业务核心流程图,这里面涉及到与各系统交互,需要考虑跨系统之间交互可否使用异步完成,尽量减少循环调用情况,同时还要确定出当前系统边界

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

MVP

那是因为,要说MVP根本就不是Most Valuable Player好么?今天要说MVP,是Mnimum Valid Product,也就是最小可行性产品。 ? 什么是最小可行性产品?...具有产品核心特质。 最小可行性产品往往只具备产品最基本特质。它可以给用户提供服务,但能且只能提供核心服务。为什么要这样?这里我们就必须要说一说最小可行性产品存在必要性了。...人类思维是天马行空,有时候也是极不靠谱。当你客户或者你设计师向你抛出一个奇葩功能需求,而无奈你又无法说服他们时候,你需要一个最小可行性产品。...在用户反馈良好情况下,这个团队立即开始动手,以迅雷不及掩耳之势开发了这款App,并且大受欢迎。 ? 既然最小可行性产品这么有用,那么如何设计一个?...MVP存在价值就是通过验证核心功能市场需求,判断该产品思路是否可行。而且,针对应用场景不同,原型设计工具选择也可以有很多种。

51770

实现无感刷新token这样

原文: https://juejin.cn/post/6983582201690456071 前言 最近在做需求时候,涉及到登录token,产品提出一个问题:能不能让token过期时间长一点,频繁要去登录...前端:后端,你能不能把token 过期时间设置长一点。 后端:可以,但是那样不安全,你可以用更好方法。 前端:什么方法?...后端:给你刷新token接口,定时去刷新token 前端:好,让思考一下 需求 当token过期时候,刷新token,前端需要做到无感刷新token,即刷token时要做到用户无感知,避免频繁登录...,其他接口怎么解决 当第二个过期请求进来,token正在刷新,我们先将这个请求存到一个数组队列中,想办法让这个请求处于等待中,一直等到刷新token后再逐个重试清空请求队列。...那么如何做到让这个请求处于等待中?为了解决这个问题,我们得借助Promise。

1.4K40

封装element-ui表格,这样

❞ 使用过element-ui表格同学应该都有这样体会,做一个简单表格还比较容易,但如果这个表格包含了顶部按钮,还有分页,甚至再包含了行编辑,那开发工作量就成倍增加,特别是在开发管理系统时候...那怎么? 表格配置 为了满足团队快速开发需要,小编对上面提出来需求进行了封装,然后使用时候,开发人员只需要配置一些JSON便可以完成以上功能开发。...基础配置 一个基础表格包含了数据和列信息,那么如何用封装表格去配置?...添加顶部按钮 表格上面可能会有新增,删除等等按钮,怎么,接下来我们继续通过配置去添加按钮 <zj-table :buttons="buttons" /> </template...最后再来一起看看行编辑 行编辑 比如上例,希望点击行尾编辑按钮时候,可以直接在行上面编辑用户姓名与性别,如何配置?

1.4K40

项目越写越大,这样拆分

写作背景: 在几年前一次 Vue 项目改造中利用原生+H5 形式按模块菜单来拆分了多个 Vue 项目,在拆分时考虑到多项目维护带来成本较大,我们将项目公共使用到资源提升到项目 root 目录下,...将子项目抽取模板通过定制脚手架创建每个子项目到 modules 下,并且支持单独打包、单独发布。...这样项目结构好处同时避免了项目庞大带来首屏加载时间长,也避免了多人开发出现冲突造成矛盾。...这样项目结构在现在看来很多项目都有在使用,比如 Vue、Vite 等,它们共同使用到 PNPM 包管理器来组织这样项目。...同时也在 B 站发现有伙伴使用 PNPM 组建了包含 PC 前端、PC 后端、H5 前端这样项目模板。

2.2K20

拥有云服务器后, 这样

拥有云服务器后, 这样 背景 近期由于工作原因比较忙, 好久没学习了......算是刚重启学习状态吧.最近简单列了个大纲, 定了个初步学习计划, 打算后续学习下: gitlabcicd + k8s基础知识 + 性能测试 言归正传, 根据个人情况分析, 后续要学习内容都是和...「部署服务」相关.所以需要找个合适测试环境, 方便自己学习使用!...虚拟机优缺点分析 以前胖虎是使用自己虚拟机启服务然后学习, 对于优缺点很清楚 「虚拟机优缺点如下」 优点: 免费, 安全性高(其实主要就是免费...)...后续大家就可以使用基本docker命令来部署自己服务了, 很方便! 后续 因为付费买了服务, 自己可能会更加努力学吧, 争取达到物超所值效果, haha~

3.8K40

初入职场怎么就成了个打杂这样破局 No.146

这么快就到6月份了,又到一大批有为青少年离开象牙塔摩拳擦掌准备进入职场大干一番季节。但很多人也开始迷茫起来,毕竟啊,那个以考试成绩唯一标记性成果时代一去不复返了。...当年,刚刚进入职场时候,并没有人告诉职场应该怎么,要注意些什么东西,那时候在也很少在浩如大海网络上得到些许什么建议。...第一份工资是要当回事,毕竟 温饱是基础,不吃饱饭怎么干活 ,但除此之外不要把第一份工资太当回事。...成为一个靠谱的人 进入到职场,感觉每天都在打杂,怎么办,这样天天打杂怎么好好在当前岗位提升自己能力?其实很难一开始就有谁帮你打通任督二脉传递下功力,跟虚竹张无忌那样,不存在。...在这个阶段,一定要保持专注,不要三天打鱼两天晒网,学着A两天就看着B很好就学B,然后过三天又学C,相信我你这样是在骗自己,早晚要崩盘。保持专注,你才可能跑赢 90% 同龄人。

42320

就是这样学 Python

之前,经常被问到这样问题: 看书很枯燥,应该怎么学习 Python? 是小白,适不适合学习 Python? 有没有书籍或者学习资源推荐?...其实,从未研究过怎么学习 Python,也从未把学习 Python 当作一个目标。...假如你已经学会了 Python,然后?如果你也不知道然后干啥,那么先不要学习,没有目标的学习,就是在浪费时间。试想 Python 应用领域那么广,没有一个目标,东一榔头,西一棒子,怎么可能学好。...我们要以终始,先明确学习目标,然后对目标分解,针对每一个小目标去学习,每完成一个小目标,就是一个小小激励,别小看这个激励,正是它推动着不断学习。...这样,你就会变得越来越好。

40020

这样高可用,不要!

背景 据他说,他们应用,级别比电信应用还要高(牛皮一定要吹),所以消息系统要求一条消息都不能丢。他做到了,但是服务不能用了。 这个Case有何而来?...据说是来自一次高管会议上,某位领导对其中一个小问题情绪激动:他测试环境测试某条数据,直接不见了,生产环境并未复现。矛头最终指向了消息系统,直接上升到断电后怎么办云云。 领导发威,事情要特事特办。...思考 高可用是个伪命题,虽然有CAP等耳熟能详理论支持,还是有很多人陷入了这个误区,包括技术决策人。架构作为全局把控人,能出现这样错误,纯属低级。下面,是自己对高可用一点思考。...数据不能丢,还能找回来 分布式系统谈最多就是最终一致性,但鲜有人知,最终一致性包括人工环节,甚至客服介入。一般,产生异常数据概率还是比较小,人工可以处理过来。...分布式系统是个复杂整体,不要以偏概全,搞定了某个组件并不等于搞定真个系统。领导会认为这样,你不能。

36320

写出这样干净代码,老板直夸

(3)值4意义是什么? (4)怎么使用返回列表? 可能当时人知道意思,但接手开发肯定会一脸懵逼。...如:getStudent、listPerson、save 规范方法 短小精悍 有些开发写方法内容上千行,这样方法估计连自己看着都累,为何不将内容作适当抽取。 方法要短小。...认为这样命名比较合适: listByEntity(),这样命名很快就能知道:1.这个方法是返回list;2.这个方法是一个条件查询;3.入参是一个实体。 别害怕长名称。...但如果这样 if(set("userName","lvshen")){ .... } 其他开发阅读这段代码时,会有疑问,这是在表达 username属性值是否之前已设置 lvshen吗?...或者它是在表达username属性值是否成功设置 lvshen?从这行调用很难判断其含义,因为set看不清是动词还是形容词。

36710

怎么把研发安全“没”了

看着手拿白帽子漏洞报告老板逐渐垮下来嘴角,不禁感到丝丝凉意……于是决定拿出最后倔强。 既然项目已经上线,不敢贸然业务切割排查,于是购买了最为一流WAF,把规则控制得天衣无缝,什么?...然而,万万没想到,运维同事说WAF拦截干扰了他们正常业务,要求我交出WAF规则控制权,由他们进行拦截规则管控,于是所有规则被他们限制到最宽松,“正常业务让路”,一同被让进来,还有一众数不清攻击利用手段...是王大锤,成了马栏山不省心集团研发安全工程师,万万没想到,最终一通操作之后,从研发到测试甚至上线后安全建设全部名存实亡,成功把研发安全“没”了。。。...,不更改相关人员原有工作方式,降低落地阻力,上述各种问题,是不是就能解决了?...回到文章开头故事,主人公王大锤如果能够拥有这样系统化专业方案,相信他想把研发安全“没”都难~ *本文作者:刘隽良@默安科技,转载请注明来自FreeBuf.COM

51220

这样

万事开头难,做过生意朋友都知道,如何获取新客户,向来是非常重要一个环节。毕竟有了第一次,才会有后续每一次赚钱机会。 那如何获取新客户?有的人喜欢付费购买精准流量,简单粗暴高效。...主业是老家固城湖大闸蟹,2017 年开始在知乎答题,输出螃蟹各种知识点,截止到目前,知乎粉丝数达到 25000+ ,从中零成本获取 3000+ 客户。...这样后续在知乎打造「螃蟹专家」这个人设时候,用户点开主页资料,就不会有违和感觉,也更有助于拉近大家对信任感。 账号注册好后,可以上手熟悉知乎是怎么。...有价值,他们就会主动帮你点赞,知乎点赞机制类似于微博转发功能,点赞越多,你曝光也就越多。 具体如何创作这篇内容?思路是这样: 1. 根据自己实际情况来创作。...有意向知乎朋友可以借鉴部分思路,这相当于是一条捷径,可以帮助你少走些弯路,但捷径也是要自己一步步走下去,走出来,才是自己路。 万人丛中一握手,使衣袖三年香。深致谢忱!

1.1K00

年底了,领导让统计这样销量,怎么办?

image.png 【面试题】下面左表是项目对应销量,需要把同一项目的销量在合并单元格里计算出销量总额及平均值(实现右表这样效果) image.png 方法一:如果不规定显示格式,可以把项目这一列合并单元格拆分成每一行都显示项目...image.png 动态过程演示如下图 image.png 方法二:如果规定了显示格式,也就是销量总额和销量平均值要和项目的合并单元格格式一致,结果要像下表这样: image.png 如何实现这样效果...1)MATCH公式 image.png 结果意义:从A3起在A3:A$10000区域里,第一个不是空单元格是第几个,也就是A2合并单元格所占行数即是A项目所占行数,同理得到B,C,D等每个项目所占行数...2)IFERROR公式 image.png 3)OFFSET公式: image.png 4)IF与SUM公式: image.png 将公式下拉填充后得到以下结果: image.png 再把A列格式复制到...image.png 【总结】 1.计算合并单元格时,可以把合并单元格拆分然后再用数据透视表功能汇总。

47300

这样爬虫架构,如履薄冰

同样,Scrapy也提供了这样功能配置。 所以说,Scrapy是一个爬虫框架,requests是一个爬虫模块,这就是两者区别的根本所在。下面是Scrapy架构图。...选择重新启动程序,那么你说怎么样才能直接从第999个开始爬取? 这里先讲讲第一个爬虫:爬取10+个地市poi信息。...so,有没有一种方式让既能脱离阅读分析js,还能绕过动态加载? sure!!首先关于动态加载,可以理解「浏览器内核通过执行js在前端渲染数据」。...静态和XHR 静态网页渲染,就是用户访问网站发起请求时,是网站后台将数据渲染(填写)到html上,返回给浏览器展示,这里数据渲染是后台来。...思考 看到这里可能会有人问:前面写分布式、断点续爬、url去重以及动态加载和数据清洗有什么关系? 站在个人角度,觉得是紧密联系在上面谈及数据去重时候,说了有两种方案:集合和数据库。

13410

类似这样甘特图是怎么

,经常延误,到底怎么?...最重要是,Excel简单容易上手,不需要你花太多时间就可以掌握。 这时候我们就可以使用Excel来项目管理里常用甘特图。 2.什么是甘特图? 甘特图是以提出者甘特先生名字命名。...整个文档做起来难度并不是很大,做完之后能够多次重复使用,大大提升了使用愉悦度和效率。 下面教你如何用Excel做出这样项目管理文档。 4.如何用Excel甘特图? 1)如何制作项目计划表?...如果你想深入学习Excel函数功能,也会在最后给出一个补充学习资料,补充学习下就可以。 这里简单解释一下这几个辅助列是怎么计算出来。...辅助列截止时间里值等于开始时间加上需要天数; 已完成天数里today()函数当天日期,里面当天日期和开始日期计算出已完成天数; 未完成天数等于需要天数减去已完成天数 这样我们就把项目计划表做好了。

1.7K2625

这样挑战不用 for 循环

文中以python例子,讲了不少大家其实在别人代码里都见过、但自己很少用语法。 这是一个挑战。要你避免在任何情况下写for循环。...抽取函数或者表达式 上面的两种方法很好地处理了较为简单逻辑,那更复杂逻辑怎么?作为一个程序员,我们会把困难事情抽象成函数,这种方式也可以用在这里。...为了改进,建议你这样: def process_item(item): # setups # condition # processing # calculation return result...results.append((i, j)) 列表解析可以帮助你: results = [(i, j) for i in range(10) for j in range(i)] 如果你要保存很多内部状态怎么...结论 大多数情况下是不需要写for循环。 应该避免使用for循环,这样会使得代码有更好阅读性。

78680

这样写文字轮播

连续加班加点大半个月,活动项目终于算是告一段落了,而今天也将是考验其真正价值时候,现在将这次开发中遇到问题一下总结。...2项目背景 这次项目主要是一次全国酒店人气排名营销活动,主要是基于在微信中传播。 预计访问量达到亿级,并发做到2000+/s,且有不少容错预案,这次主要负责前端首页方面的展示效果。...功能点: 文字无缝轮播(不要在意为什么在移动端还会有这样需求) 3如何实现 我们可以下面三种方法来进行实现: 1 marquee 当一说到文字无缝滚动时,大家最先想到是marquee。...最后是js: 这里还是写jquery,相信大家都能看懂,就是让滚动元素宽度等于他内部元素总宽度减去第一个(或者最后一个)元素宽度,这样能保证无缝效果。...最后要说明为什么要用js动态添加css3类名实现滚动效果,一开始时候也是想直接将css3滚动特效写在滚动元素上,但是在iPhone上发现首次加载当前页面的时候他不会自动滚动。

1.7K20
领券