首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/624230

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

如何带领平均入职2.6个月的新人,完成一次系统重构?

一、背景 我们旧版首页系统属于集中化设计:「全能类」FeedBase加main函数。基本上所有功能耦合在一起。每维护一行代码,必须异常谨慎,以免影响其它逻辑。在这里,先把大致背景给大家介绍一下:系统有6.6万行代码,首页逻辑的学习成本至少3个月;增加一个新feed类型工作量是7个工作日;首页扩展一个Tab工作量是约3周;没有完善的链路跟踪,线上Bug无从下手;首页目前服务端响应p95高达870ms;部分逻辑处于无人维护状态;…… 二、我们该怎么做 其实呢,思路「很」清晰——解耦模块,优化性能。 可是怎么去解耦、解耦成什么、如何优化性能?Java/Go/C……重写? 2018年2月,为了支持兄弟团队业务,首页输出了我们几乎全部的工程师。事实上,目前首页仅有三个工程师、一个实习生。最资深的员工入职只有6个月,其余基本新入职,平均入职2.6个月,且都没有大型项目维护经验。换句话说,全是新人。 以这种现状,我们怎么去重构? 大家都知道重构是一个高大上的事,每个人都很积极,每个人都想做好一些事。但大家之前都在做普通业务,面向PM开发侵染了太多底色。似乎快速完成功能、快速上线比什么都重要,似乎只有...

简化React中的Action的写法,不要中间件,不写dispatch

我们在写React应用时,通常用到redux做状态管理,然后会用到一些中间件来支持异步action,比如redux-thunk.通常我们的代码类似下面这样的: //ActionType R.js export ActionType{ TYPE1:'type1', TYPE2:'type2', TYPE3:'type3', // others } //reducer reducer.js import {ActionType as AT} from 'R' export default function(state={},action){ switch(action.type){ case AT.TYPE1: return { ...state, ...action.data, // or other } case AT.TYPE2: //... default: return state } } //Action Action.js import {ActionType as AT} from 'R' const act = { action1:data=>dispatch=&g...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。