共计 2213 个字符,预计需要花费 6 分钟才能阅读完成。
最近接触新业务较多,对于理解新业务有一点感想,总结如下:
1. 比理解新业务代码更重要的是要理解新业务,比理解新业务更重要的是业务意识
2. 如果是业务开发,毕业前三年更应该关注于技术以及技术细节,三到五年技术业务并重,五年当前业务为主
以下是对于如何疾速相熟新业务的一些经验之谈.
工具
工欲善其事,必先利其器。
Chrome 多用户模式
不便多个 (大于两个) 用户切换 (管理员 / 用户 / 各种角色)
业务数据库权限 (生产环境)
最好可能领有线上数据库权限,领有最实在的数据,人往往会对不合理假数据本能排挤。
数据库是理解业务最快的形式
日志零碎 (或者 APM)
在须要理解某个业务细节时,能够利用日志零碎
- 在前端进行页面交互,找出要害申请
- 找出要害申请的 requestId (sessionId/transactionId/logId/trackId 等各种名字)
- 依据 requestId 在日志零碎 (或者 APM) 中找到对应的 SQL/redis-command/requests (次要是 SQL)
如果没有 requestId
怎么办?
那只能认真去看代码了
代码仓库
孙子兵法云: 上兵伐谋,其次伐交,其次伐兵,其下攻城。
在相熟新业务时,最上者点来点去相熟零碎,其次与别人交换,其次点页面查 SQL,最下看代码。
代码以服务器端代码为主,疾速浏览以下文件:
- router: 用以定位业务细节的具体逻辑
- 业务逻辑层: 依据 router 点进来后的具体业务逻辑,因为层层嵌套,可能须要点上几十次。 理解代码的具体组织构造,当有须要时再去深刻理解
- constant: 理解业务中各种资源的类型,状态,状态机,以及与数据库字段的对应 (数据库可能存储为 enum, 也有可能是 int)。其中代表的数据比这些数据在编码中怎么用更为重要,当然两者严密相连
对于 constant,最好应用 enum 而非数字保护.
理解业务
理解业务类型
你当初负责的业务的用户是谁?
- 有可能是面向各个离散的无互相关联的 C 端用户
- 也有可能是服务于各大企业 (组织 / 机构) 的 B 端用户。
- 也有可能是服务于宽广公司内共事,比方给运维应用的运维平台,给销售应用的 CRM,给 QA 的测试平台,还有 MIS,OA 等等此类
- 还有可能是用户服务,订单服务,数据服务,商品服务等
不同的业务类型就有不同的工作重心,比方 toB 轻浮,toC 活跃,对内能看就行 …
你当初负责的业务如何来钱
这也是一个关键问题
理解零碎
理解该业务所波及到的外围零碎,与业务类型相干。我简略分为两类
- 前台零碎:面向用户,toC 面向宽广用户,toB 面向企业与企业员工,toB 面向使用者
- 后盾零碎:面向管理员,就是常说的后盾管理系统
相熟零碎次要流程并实操
理解用户的高频操作,次要路径点点点和不懂就问。有些高频操作,须要后盾管理员以及各个角色配合, 这时能够在多用户的 Chrome 中进行操作
- 比方知乎的发问,答题,评论,点赞到后盾的帖子治理封禁等
- OA 零碎的流程发动,以及各个角色的审批
- CRM 的商机,订单,工单操作
理解零碎边界
因为微服务的风行,新业务的所有数据有可能来自于根底服务。在熟悉业务过程中,有必要理解哪些数据本人保护,哪些保护在私有服务
- 用户数据由业务内保护还是用户服务
- 订单数据由业务内保护还是订单服务
- 诸如此类
理解边界零碎
即以上所述的用户服务零碎或者订单服务零碎。理解罕用的表,有必要时能够申请数据库权限
理解用户以及权限 (用户 / 管理员 / 角色 / 企业)
理解业务内有什么权限,以及每个权限组成的角色。
能够含糊分为以下几个表,须要重点关注
- permission: 权限表
- role: 角色表
- user: 用户表
- organization: 企业 / 机构表
另外还须要理解用户登录以及注册过程,有没有第三方登录,以及 toB 方的自家用户零碎的接入
理解数据
比如何查 SQL 更重要的是数据自身,有必要时能够记住,比方:
- 大客户 id 以及 name
- 深度用户的 id 以及 name
- 次要资源 / 内容的 id
- 次要资源 / 内容的 status/type (参照 enum/constant 文件)
以下是常见的一些数据以及 SQL 操作,次要针对一些常量与次要业务
-- 理解用户量,必要时能够记住...
select count(*) from users wehre is_deleted = false
-- 理解某项业务的字段
\d business
select * from business order by id limit 1
-- 理解目前为止该业务有多大量数据
select count(*) from business
-- 理解某项业务的各个状态,以及散布
select status, count(*) from business group by status order by count desc
-- 理解某项业务的各个类型,以及散布
select type, count(*) from business group by type order by count desc
数据系统
如果对系统接入了 GA/ 神策 /GrowingIO 等数据统计零碎,进入零碎理解并记住重要数据,理解用户对系统的应用深度以及常见业务的应用状况。
如果没有接入数据系统怎么办? 参考上一条,手动查 SQL
最初
我在工作之余整顿了一份大厂常见的前端面试题,其中蕴含 HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等,收费分享给大家,还在继续整顿收集整理中,有须要的敌人 点击这里收费支付题目 + 解析 PDF。
篇幅无限,仅展现局部内容
心愿大家明年的金三银四面试顺利,拿下本人心仪的 offer!