从京东老哥身上学到的第一课:基础功底决定你能走多远

从上个月 23 号入职到现在,短短两周时间,我最大的感受就是——基础真的很重要

我目前在一家公司实习,和几位大佬聊过后才知道,这家公司在技术方向上确实有不错的积累,是一家专注于类似盒马、小象生活场景的自研企业,电商有关,目前自家公司完成了所以和其他公司做技术合作,我在供应链组里头搞 WMS(仓储管理系统)相关的,导师是来自京东的资深开发,目前正带我熟悉项目和业务。

第一个任务就让我意识到:项目比想象中复杂得多

我的第一个任务其实很“简单”:在原有的系统中加一个 tab 页面,用于按日期查询商品的数据。导师告诉我,这是基于一张单表的功能,属于非常基础的需求。

但是做起来我才发现,这并不是单表,而是多表联合查询。我从传参开始,经过 Manage 层 VO 到 DTO,再到逻辑校验和 Service 层拼接条件、调用 Mapper 写 SQL,最后再把 DTO 转 VO 返回给前端。公司有一套自己的开发规范:先查总条数、再查列表数据,分开写查询 SQL,DTO 转 VO 最后交给前端渲染

我上午熟悉了下代码,下午就撸完了接口,结果 Code Review 被导师指出了很多问题。

Code Review 后,我发现“写代码”和“写好代码”是两回事

这次 Code Review 的核心问题其实不是技术实现,而是对业务理解不到位。比如数据穿透的问题,一开始我以为是 Redis 没命中,结果导师指出,根本原因在于:公司和门店是一对多的关系,但门店与公司是一对一,查询逻辑必须受限于当前门店的数据权限,因为这是一个类 SaaS 系统,不同门店的数据必须隔离。

这让我深刻意识到,哪怕是一个简单功能,业务理解不到位,最终的实现都是错的。代码好不好写是一回事,写得对不对、合不合理、业务逻辑对不对,才是企业级开发的关键

第二个任务:从数据实时性到前端交互,都要深入思考

我接到的第二个任务,是写一个 Job 任务用于同步 T+1 数据(即昨日数据),同时支持查询实时数据。前端的时间选择组件也要从“时间范围”变为“多选具体日期”,还新增了一些复杂的查询条件——库存还有部门。

这个任务的技术难度也不是很高,但让我感受到企业开发的流程完整性,包括前端组件改造、后端条件查询构建、Job 定时任务,每个点都要自己把控,不能只关注某一个点,写完代码就要被导师codereview各种拷打了

为什么我说“基础功底真的太重要”?

很多人以为工作了、实习了,就可以不看基础了,但我这两周发现:基础决定你成长的上限和解决问题的能力

  1. SQL 功底必须扎实
    公司虽然有封装的 CRUD 工具,但一旦涉及复杂查询、聚合、分库分表等,都要自己写 SQL。像 GROUP BY、多表 JOIN、聚合函数、分页优化、执行计划分析等,用 AI 辅助当然好,但你看不懂 SQL 怎么分析都没用。

  2. 面向对象思想和封装能力
    公司代码结构复杂,一层套一层,父类、接口、注解、实现类,搞不清楚就像走进了迷宫。设计模式到处都用,理解类与类的关系、本质职责非常关键

  3. 表达能力决定你协作效率
    和导师做 Code Review、和前端沟通接口、和测试确认逻辑,表达不清楚,哪怕你做对了别人也不明白。不能只说“这个那个那个这个”,你得能逻辑清晰地讲清楚“为什么这么设计、哪里影响了什么”。 所以大家在跟李哥做项目的时候同时也要把自己的基础扎实下去,有了李哥的项目和扎实的基础,大厂offer你不拿谁拿?

我个人感觉我目前需要在仔细一遍设计模式,看一看spring全家桶的源码,能看多少是多少,能看懂自研框架哪里用到了设计模式,这么设计的好处在哪,算法要在秋招前刷够top150,准备秋招的项目也要加紧,八股文每天上下班的时候刷面试鸭。 又是共勉的一天!

微信图片_2025-07-08_152441_811.jpg

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
陈少荣
下载 APP