JD 原文与匹配诊断 先看清楚考官要什么
JD 原文(要点)
- 熟悉金蝶云星空 ERP,根据详细需求进行 ERP 系统二次开发、代码调试、系统测试;
- 能够完成业务系统之间接口开发工作;
- 保证代码的高质量、稳定性与高性能;
- 项目内技术难点的攻克;
- 编写有关技术方案、系统文档、测试文档。
任职要求:计算机或相关专业;精通 C#、.NET Framework、ASP.NET,熟练 VS;SQL Server 熟练(存储过程/函数);金蝶云星空插件开发经验、熟悉 ERP / EMS / WMS 业务逻辑优先;热爱钻研、自学能力、独立开发设计能力、善于沟通、产品理解力。
匹配诊断(面试口径全靠它)
| JD 要求 | 你的简历证据 | 结论 |
|---|---|---|
| 金蝶二开 / BOS / 插件 | 供应商侧 K3 Cloud 五模块(销售·采购·库存·生产·财务)配置与二开;BOS 建模;表单 / 操作插件;WebAPI | 强匹配 ★★★★★ |
| 接口开发(跨系统) | 金蝶↔MOM/WMS(主数据·工单·出入库)、CRM↔ERP/OMS、ESB / WebService / RESTful | 强匹配 ★★★★★ |
| SQL Server + 存储过程/函数 | 瑞森路政(Java+SQL Server)、天正 CRM 报表聚合 | 可匹配 ★★★★☆(补手写) |
| 精通 C# / .NET Framework / ASP.NET | C# 写过插件/工具,但主力 Java | 风险点 ★★☆☆☆(话术见 09) |
| ERP / EMS / WMS 业务逻辑 | ERP / WMS / MOM 实战;EMS 未写 | 补 EMS=能源管理系统(见 07) |
| 方案 / 文档 | 需求规格书、接口文档、开发规范、运维手册 | 强匹配 ★★★★★ |
致命误区,务必避开:面试中别说「我主要靠 AI 写代码」「公司没事干所以离开」「现在都用 AI 了」。正确说法:AI 提效但每行代码我 review、测试、负责;离职原因 = 制造云进入稳定维护期 + 组织岗位调整 + 希望 ERP 方向更专注、持续产出。
面试主线一句话:「十年制造业信息化 + 供应商侧金蝶云星空五模块二开 + 跨系统集成落地 + 文档与交付」——所有回答都往这条线上靠。
01 · 金蝶云星空 · 运维相关 金蝶 运维 升级 备份 故障 权限
这岗位叫「开发运维」:开发解决问题,运维保生产。面试官考你守不守得住生产。
A-01金蝶云星空日常运维包含哪些工作?
标准答法:① 账号与权限(开通、禁用、角色授权、离职回收);② 日常巡检(数据库、应用池、日志、磁盘、备份有效性);③ 版本 / 补丁升级(测试→备份→上线→回归);④ 故障响应与修复(先止损再定位);⑤ 数据修复脚本(备份→审批→小样本→留痕);⑥ 性能优化(慢报表、慢保存、阻塞);⑦ 接口对账(ERP↔MOM/WMS 单据核对);⑧ 用户培训与客服。
A-02生产账套怎么备份?你怎么验证备份有效?
标准答法:每日全量备份 + 日志备份(依 RPO/RTO,如 RPO≤15min);备份文件异地/云存副本;保留周期 ≥ 35 天;定期恢复演练(每月在测试环境完整 restore 一次);校验文件完整性(大小、校验值、
RESTORE VERIFYONLY);备份失败告警到人。金蝶账套数据库大,优先 BACKUP DATABASE ... WITH COMPRESSION,历史数据归档减小体积。A-03金蝶云星空版本 / 补丁升级的完整流程?
标准答法(5 步):① 读补丁说明 / release notes,确认影响的模块与二开插件;② 全库备份 + 重点账套导出;③ 测试环境先升:伙伴补丁兼容性、二开插件重新编译注册(表单/操作插件用了标准内部类,补丁常改签名)、定制 BOS 对象重新发布;④ 回归测试:保存→审核→下推→反审核全闭环 + 报表 + 接口各走一遍;⑤ 生产低峰窗口升级 + 回滚预案(保留升级前备份,失败即还原)。上线后值守观察 1-2 天。
A-04生产报故障(如审核单据报错 / 下推失败),你的应急处理流程?
标准答法:① 先止损:确认影响范围,必要时停用该功能 / 提示业务暂停;② 拿证据:报错原文 + 堆栈、应用日志、IIS 日志、SQL Server 阻塞(
sp_who2 / sys.dm_exec_requests)、金蝶后台日志;③ 分类:数据问题 / 配置问题 / 插件 bug / 补丁冲突;④ 复现:测试环境同单据复现,VS 断点或附加到 w3wp;⑤ 修复:改数据前先备份,跑修复脚本小样本先行;改插件重新编译发布;⑥ 回归 + 观察;⑦ 复盘:写故障报告(现象/根因/修复/预防)。A-05单据保存 / 打开明显变慢,怎么排查?
标准答法:① 先量化:慢在哪个动作、慢多久、何时开始、是否刚打补丁 / 大促 / 月结;② 查阻塞与锁(sp_who2 / 锁等待 / 长事务未提交);③ 查慢 SQL:执行计划、缺索引、隐式转换(F 字段 NVARCHAR 传了 VARCHAR)、
LIKE '%x%' 全表扫;④ 查插件:循环里查数据库(N+1)、同步推外部接口;⑤ 查列表列太多 / 基础资料过大 / 临时表未清理;⑥ 解决:加/改索引、拆查询、异步推送、更新统计信息 UPDATE STATISTICS。A-06账号权限治理怎么做才不出事?
标准答法:角色化授权(权限挂角色不挂人)→ 最小权限(够用即止,特权单独角色双人复核)→ 新人随岗建号、离职 / 调岗即时禁用 → 定期(季度)审计:死账号、超配权限、特权人数、谁开的审批留痕 → 敏感数据(价格 / 成本 / 薪资)单独角色 + 水印 / 导出审计。金蝶按「功能—角色—用户」三层配,多组织注意跨组织授权。
A-07需要跑数据修复脚本(如金额对不上、单据状态卡住),你怎么做?
标准答法:绝不在生产直接开改。流程:① 确认影响范围与行数(
SELECT COUNT(*) ...);② 备份 / 事务内可回滚;③ 修复脚本先在测试账套跑通;④ 生产执行:小样本(几条)先行验证 → 分批执行(每批 N 条 + 进度日志);⑤ 全程留痕:审批单、脚本原文、执行人、前后对账;⑥ 回滚方案准备(反向脚本 / 备份还原)。改标准表前先确认金蝶没有提供官方修复工具,优先用官方工具。A-08金蝶与 MES / WMS 数据对不上,你怎么查?
标准答法:① 按单号 + 日期区间抽取双方各自的单据,逐笔比对;② 看接口日志表(请求 / 响应 / errcode / 重试次数),定位失败段;③ 分类:没推出去(插件未触发 / 接口鉴权失败)/ 对方拒收(字段校验失败 / 幂等去重把重推当重复)/ 推了没回写(回调丢失 → ERP 状态没更新)/ 双方各自改单(人工在两边都改了 → 必须规定单一数据源);④ 修复:补推 / 手工补单 / 对账修正,写差异报告;⑤ 预防:每日自动对账,差异落表告警。
A-09账套数据库越来越大,备份 / 维护怎么做?
标准答法:① 评估:看
sp_spaceused,找出大表(日志表 / 临时表 / 历史业务表);② 归档:历史年度账套分离、归档表搬迁(先小环境验证);③ 维护:重建 / 重组索引、更新统计信息、收缩日志(先调简单恢复 + 备份日志);④ 备份策略:压缩备份、校验恢复演练;⑤ 容量规划:按月增长率预测磁盘;⑥ 变更任何结构先走审批 + 备份 + 回滚预案。A-10用户忘记密码 / 账号被锁,怎么处理?能不能直接改库?
标准答法:不能直接改库,除非万不得已且审批 + 备份。正常路径:走企业微信 / 邮箱重置流程或金蝶自带的「忘记密码」;账号锁定先查原因(输错次数 / 密码策略)——解锁走审批,提示用户修改;特权账号重置必须双人在场。要点:一切账号操作留痕、审批、不私下开门。
A-11公司组织架构调整(新工厂 / 新组织),ERP 侧要做什么?
标准答法:① 建新组织 / 核算组织(经营单位、会计核算体系);② 编码规则统一、与集团规范对齐;③ 基础资料复制(物料 / 客商 / 仓库 / 库位);④ 权限重新分配(新组织用户授权、旧组织交接);⑤ 期初数据导入(库存 / 应收应付余额);⑥ 接口对接(新工厂与 MES/WMS 打通);⑦ 用户培训 + 切换窗口 + 回滚预案。多组织注意:单据 / 报表按组织隔离,跨组织调拨要走专门流程。
A-12打金蝶补丁有哪些坑?
标准答法:① 补丁会改标准元数据 / 标准表结构 / 标准插件——二开直接改过标准代码或直连标准表结构的,补丁后直接挂;② 伙伴补丁与官方补丁顺序问题;③ 测试环境必须先行 + 功能回归;④ 打补丁前务必全库备份;⑤ 升级窗口要业务停用,提前通知;⑥ 补丁后检查二开插件是否重新注册、单据是否能正常保存审核、接口是否通。一句话:备份 + 测试先行 + 回滚预案,缺一不可。
A-13主数据(物料 / 客户 / 供应商)混乱你怎么治?
标准答法:① 现状盘点:重复 / 缺失 / 编码不规范 / 多版本并存;② 制定**编码规则与必填校验**(启用控制、计量单位、规格型号);③ 归口管理(谁建、谁审、谁改——不允许各部门各自乱建);④ 清洗:合并重复(先备份,小样本对账)、停用僵尸数据;⑤ 系统卡点:保存校验、审核校验、接口推送校验,不给脏数据进生产;⑥ 变更留痕 + 定期审计通报。主数据是 ERP 的地基,口径不一全链路报表都错。
A-14老板说报表要「快点、好用点」,你怎么落地?
标准答法(模糊需求三步):① 澄清:谁用、查什么、多久一次、要看到多快、导出 / 看板 / 推送哪种形式、权限给谁;② 拆解 + 原型:字段清单、筛选条件、排序、导出格式,先画草图 / 出原型让用户确认;报表慢先看执行计划 + 索引,再看是否预聚合(大宽表 / 物化);③ 交付 + 迭代:MVP 先上线、收集反馈再优化,全程写需求确认留痕。金句:「模糊需求的解决方式是快澄清、快原型、快迭代、全留痕,不靠猜。」
A-15ERP 系统上线后你做什么监控 / 值守?
标准答法:① 基础监控:服务器 CPU / 内存 / 磁盘、IIS 应用池、SQL 连接数 / 阻塞 / 死锁、备份任务结果;② 应用监控:接口成功率 / 平均耗时 / 失败 TOP、单据保存失败率、定时任务(接口同步 / 对账)成功率;③ 业务监控:每日接口对账差异表;④ 告警:失败即推(企业微信 / 短信)到人,区分 P0(生产停)/ P1(功能不可用)/ P2;⑤ 日报 / 周报:问题清单、解决情况、待办风险;⑥ 值守窗口:发版后 24-48h 重点观察。
A-16新系统 / 新模块切换上线,你怎么保证不翻车?
标准答法:① 切换方案:并行期(新旧双跑核对)→ 切换窗口(停业务 / 冻结单据)→ 数据校验(期初、库存、应收应付)→ 灰度放开;② 回滚预案:备份 + 切换失败回旧方案;③ 用户培训 + 操作手册 + 现场护航;④ 数据一次成型:上线前把脏数据清掉;⑤ 切换后值守 + 每日对账一周;⑥ 出问题先止损,后复盘。原则:先在测试环境全流程彩排一遍,生产不做第一次。
A-17如果整个 ERP 挂了(数据库损坏 / 机房事故),你的灾备思路?
标准答法:① 先止血:确认范围、通知业务停用、启动灾备预案;② 恢复顺序:先恢复数据库(最近全量+日志) → 再恢复应用 / 中间件 → 数据一致性校验(对账)→ 放开业务;③ RPO / RTO 明确写在预案里(如 RPO≤15 分钟、RTO≤4 小时);④ 日常演练:每季度真做一次恢复演练,备份不演练等于没备份;⑤ 云化 / 双活 / 异地备份看预算。要点:预案 + 演练 + 备份校验,三件套缺一不可。
A-18运维手册 / 接口文档 / 测试文档分别写什么?(JD 第 5 条)
标准答法:① 运维手册:系统架构、账号权限清单、部署 / 启停步骤、巡检项、故障处理流程(常见报错 TOP10 + 处理法)、备份恢复步骤、应急联系人;② 接口文档:双方系统、协议(REST/WebService)、鉴权方式、字段对照表(名称/类型/必填/示例)、幂等规则、错误码表、重试策略、调用示例(curl)、对账方式;③ 测试文档:测试范围、用例(正常 / 边界 / 异常)、回归闭环(保存→审核→下推→反审核)、缺陷记录;④ 原则:让三个月后的人(或另一个工程师)能照着做。
02 · 金蝶云星空 · BOS 插件 / 二开 BOS 插件 WebAPI 下推 建模
「不改金蝶原码,用插件 + 平台配置扩展功能」。这是你简历最强的一栏,面试往深了挖就靠它。
B-01BOS 是什么?和直接改金蝶代码有什么区别?
标准答法:BOS 是金蝶云星空的二次开发 / 配置平台(可视化建模 + 插件机制)。和直改原码的区别:① 升级安全——补丁 / 版本升级不覆盖、不冲突;② 可维护——二开集中注册管理,原码不可控多;③ 可交付——插件 dll 独立部署、可禁用 / 回滚;④ 符合伙伴生态(ISV 方案都走 BOS)。原则:标准功能能配就配,配不了再写插件,绝不直接改金蝶标准表和原码。
B-02金蝶云星空常用插件类型有哪些?分别干什么?
标准答法:① 表单插件(界面层):字段值更新后重算、按钮点击前校验、列表过滤;② 列表插件:列表行样式 / 双击打开 / 导出控制;③ 操作插件(业务动作层):保存 / 提交 / 审核 / 下推 / 关闭的前后介入,可读写单据数据、参与事务;④ 值更新服务:字段级联动(改了 A 自动算 B);⑤ 报表 / 打印插件;⑥ 过滤插件、⑦ 单据转换插件(下推时定制映射 / 生成规则);⑧ 子系统插件。记住选型:界面行为用表单,后台动作用操作,字段联动用值更新,下推用转换插件。
B-03表单插件 vs 操作插件 vs 值更新服务,什么需求用哪个?
标准答法:只动界面(提示、重算、显隐、按钮校验)→ 表单插件;要改单据数据 / 调后台逻辑 / 参与事务(审核时扣库存、推单前查库存)→ 操作插件(在 BeforeSave / BeforeOperation 改数据,After 做通知);字段之间联动计算 → 值更新服务;下推单据定制 → 单据转换插件。原则:能配不写、能值更新不写表单、能表单不写操作,最小侵入。
B-04操作插件的生命周期 / 事件顺序是怎样的?
标准答法:一般分 BeforeOperation(操作前校验 / 拦截)→ 标准操作执行(保存 / 审核 / 下推)→ AfterOperation(操作后通知 / 推送)。表单插件对应 BeforeDoAction / AfterDoAction。记住:Before 里只做校验不做不可逆操作(校验不过就抛异常,金蝶自动回滚),After 里做推送 / 通知 / 回写,且要考虑失败补偿(After 异常通常不回滚,需自己落日志 + 支持重推)。
B-05插件怎么编译、部署、注册到金蝶?
标准答法:① VS 新建类库(引用金蝶 BOS 程序集 / 伙伴 SDK),继承对应基类;② 编译 → dll;③ 拷到金蝶应用服务器(或通过 BOS 注册中心上传);④ BOS 设计器:打开对应单据 → 注册插件 → 选事件(表单/操作/转换)→ 保存发布;⑤ 重启 IIS / 应用池(或回收);⑥ 测试环境验证后发布生产。改了插件一定 version bump,别同名覆盖导致缓存旧版。
B-06写插件时性能最容易踩的坑?
标准答法:① 循环里查数据库——单据行数几十几百行,每行一次查询 = 几百次 DB 往返,必挂;改法:一次性批量查(IN / 临时表)再内存匹配;② 不必要的全表读基础资料——加缓存(内存或 Redis);③ 在 Before 里做外部接口调用——同步等待拖死保存,必须异步 / 后置;④ 大数据量单据一次性 Load 全部字段——只取需要的列;⑤ 反射 / 动态编译放循环里;⑥ 日志过多打印大对象。口诀:少查库、不循环查库、不阻塞主流程、能批量不单条。
B-07插件里异常怎么处理才不炸生产?
标准答法:① 区分可回滚异常(校验不过 →
throw,金蝶自动回滚事务)和不可回滚通知(推送失败 → 只记日志 + 告警,不影响保存);② 不吞异常(try {} empty catch {} 是灾难);③ 错误信息给业务能看懂的中文 + 内部错误码落日志;④ 外部依赖(MES/WMS/企业微信)超时要设 timeout + 重试上限;⑤ 关键节点落接口日志表(单据号 / 动作 / 请求 / 响应 / 耗时 / errcode);⑥ 灰度:先测试账套、再单组织、再全量。B-08金蝶云星空 WebAPI 怎么调用?鉴权 / 幂等 / 错误码说说。
标准答法:① 开放平台创建应用 → 拿 appid / appSecret → 调接口换
access_token(缓存复用,别每次换);② 调接口带 token + 功能标识(如查询 / 保存 / 审核 / 下推等标准功能标识);③ 幂等:业务单号作唯一键,重复请求直接认成功不重复建单;④ 错误码:看返回 errcode / message,0 成功,非 0 分类处理(鉴权 / 校验 / 系统错)——鉴权错刷 token,校验错修数据,系统错重试 + 告警;⑤ 限流 + 超时 + 重试(指数退避)+ 日志 + 补偿(重推),这五件套缺一不可;⑥ 联调前先出字段对照表双方签字。B-09BOS 业务对象建模一般建哪些东西?(别把 BOS 说成 BOM)
标准答法:① 业务对象 / 实体:对应一张(或一组)业务表——字段类型 / 长度 / 必填 / 默认值 / 校验规则 / 主键 / 索引;② 单据类型:表头 + 表体结构(如订单头+订单行);③ 表单(界面):页签、字段布局、按钮、显隐 / 必填规则;④ 列表:列、过滤、排序、导出;⑤ 报表 / 查询;⑥ 工作流 / 审批;⑦ 权限 / 菜单挂功能点;⑧ 插件注册。要点:先建模再写代码,金蝶规则是「配置优先、插件补足」。BOM 是物料清单(生产数据),BOS 是开发平台——别混。
B-10下推(单据转换)定制开发怎么做?
标准答法:① 先看标准转换规则能否配置满足(多数能:源单→目标单字段映射、取数规则);② 配置不满足 → 单据转换插件介入:BeforeConvert 校验(如无库存不允许下推)、转换时定制字段赋值 / 拆行 / 合并行、AfterConvert 补写;③ 场景:销售订单→发货通知单→应收;生产工单→领料单;④ 注意:转换走事务,插件抛异常整链路回滚,校验放 Before;⑤ 验证:正常、缺数、超量、重复下推 四类用例。
B-11能不能直接改金蝶标准表结构 / 直连查库?
标准答法:不能改标准表结构(加字段、改类型、改约束)——升级即丢、原码依赖全挂、官方不支持。正确做法:① 需要扩展字段 → BOS 扩展字段 / 扩展实体;② 需要查标准数据 → 用金蝶提供的查询 API / 视图,或直连只读走视图 + 只读账号;③ 直连标准库只用于只读报表 / 对账,写操作必须走 WebAPI / 插件;④ 永远版本可控。一句话:读可以只读只读,写绝不绕过 BOS。
B-12生产模块(BOM / 工单 / 齐套)插件开发说说你的经验?
标准答法(结合简历=制造云 + 金蝶供应商侧生产模块):① BOM 维护校验插件:保存前校验——子件是否有效、替代料、损耗率、版本唯一;② 齐套检查:工单保存前算齐套(BOM × 库存 − 预占),缺料提示并拦截 / 放行可配置;③ 下推校验:工单→领料单转换时校验工艺路线、工序;④ 报工后置:完工入库回写工单状态、触发应收 / 成本凭证接口;⑤ 质量追溯:录入批次 / 序列号 / 检验结果,支持正反查;⑥ 性能:BOM 展开递归、子件查询必须批量。制造业二开核心词:齐套、倒冲、追溯、多组织。
B-13金蝶与 MES / WMS 集成你实际怎么做的?(简历原文题)
标准答法:三件套——① 对接对象:主数据(物料 / BOM / 工艺)、工单(ERP→MES 下推、MES 完工回写)、出入库单(WMS→ERP 生成其他入库 / 领料单);② 方式:金蝶侧操作插件 AfterOperation → 调 MES/WMS WebAPI(token 鉴权)推单;对方完成后回调 / 轮询回 ERP 更新状态;量大走中间表 + 定时扫描或 MQ;③ 治理:单号幂等、推失败落接口日志表 + 告警 + 补推、每日对账(推了多少 / 成功多少 / 失败多少)、人工补单流程。话术收尾:「集成不是连上就行,异常能治、差异能对、责任能分才算交付。」
B-14单据状态变更推企业微信通知,你用什么插件 + 怎么设计?
标准答法:① 用操作插件 AfterOperation(或值更新服务)订阅状态事件(审核 / 下推 / 关闭);② 读接收角色配置(单据类型 + 部门 → 角色 → 成员),组装消息模板(单号 / 物料 / 数量 / 操作人 / 时间 / 跳转);③ 推送方式:定向个人用企业微信应用消息 API(touser + agentid + access_token 缓存),群通知用群机器人 Webhook(安全性弱、只发群);④ 失败处理:errcode 判断 → 日志落表 → 自动重试 / 人工补推;量大走队列异步;⑤ 去重:单据号 + 状态 + 接收人标记已通知;⑥ 通知失败不回滚业务,只告警。口诀:定向应用消息、群聊机器人、幂等不重复、失败能补推。
B-15二开插件在金蝶升级后挂了,你怎么救?
标准答法:① 先止血:BOS 里禁用该插件(不卸载,留现场),确认标准功能恢复;② 看报错:补丁改了标准元数据 / 内部类签名 / 枚举 → 插件编译或反射挂;③ 按补丁文档重新编译注册,测试环境逐项回归(保存→审核→下推);④ 无法快速修 → 功能降级(临时走人工 / 配置绕过);⑤ 复盘:二开尽量不依赖内部实现细节,优先用公开 API / 配置;升级前插件清单 + 兼容性预检清单。预防 > 救火。
03 · 技术债 · 代码质量 · 重构 技术债 重构 遗留系统 Review
JD 第 3、4、5 条的背后命题:这人能不能在不弄垮生产的前提下把代码变好。
C-01什么是技术债?Martin Fowler 的四象限是什么?
标准答法:技术债 = 为了短期速度欠下的技术成本,未来要"还利息"(维护更慢、缺陷更多、改动更险)。Fowler 四象限:鲁莽/慎重 × 故意/无意——慎重且故意(赶工的自觉取舍)、慎重且无意(设计缺陷、经验不足)、鲁莽且故意("先上线再说")、鲁莽且无意(没意识到债)。面试要点:区分"合理的债"和"失控的债",并承认自己写过的债、讲清当时的权衡。
C-02你怎么识别项目里的技术债?
标准答法:① 代码层:重复代码、超长方法/类、圈复杂度高、魔法值、无注释的"天书逻辑"、被改了又改的"热点文件";② 结构层:无测试覆盖、循环依赖、上帝类、直连数据库绕过业务层、硬编码配置;③ 过程层:手工发版、"只有某个人敢动"、每次改动都怕炸、线上频繁小事故;④ 度量:缺陷率、变更失败率、平均修复时长、部署频率;⑤ 工具:SonarQube、圈复杂度分析、依赖扫描。一句话:凡是"越改越怕、越怕越不改、不改就更烂"的地方就是债。
C-03识别出一堆债,先还哪些?优先级怎么定?
标准答法:用 影响 × 频率 × 风险 三维打分:① 阻塞型优先——每次改动都必炸、人人不敢碰、生产事故高频的;② 随修随还(Boy Scout Rule)——路过就顺手改(命名、注释、小重构);③ 专项迭代——大债(架构、数据模型)列入版本计划,给时间窗口;④ 冻结不修——没人动的模块、低风险遗留,记录后放任;⑤ 永远先保生产再谈整洁。口诀:先还"利息最高"的债。
C-04金蝶标准代码 / 遗留外挂系统这种"不能动"的代码怎么还债?
标准答法:原则:不改标准原码,在外层还债——① 用插件/外层服务/适配层包住遗留逻辑,新功能走新通道;② 防腐层(ACL):隔离遗留接口,转换成现代契约;③ Strangler 模式:新模块逐步替换旧路径,最终"绞杀"遗留;④ 能不碰就不碰,封装 + 文档 + 测试哨兵(改之前先补特征测试/对比测试);⑤ 数据侧:历史脏数据写修复脚本而不是在逻辑里打补丁。一句话:对遗留代码,隔离比重构安全,重写比重构危险。
C-05重构前没有测试覆盖,怎么保证不改坏?
标准答法:① 先写特征化测试(characterization tests):不问"设计对不对",只锁定现状行为——给定输入锁输出,作为改造安全网;② 快照/对比测试:改造前后同一批输入的输出逐一 diff;③ 小步提交 + 每步可回滚(一次只改一件事);④ 影子流量:生产流量复制到新路径双跑比对;⑤ 金蝶场景:测试账套全闭环回归(保存→审核→下推→反审核)是最硬的安全网。口诀:先测试、再动刀、小步走、常对比。
C-06什么时候该重构,什么时候该重写?
标准答法:重构:结构还在、只是脏(命名、重复、长方法)——能救就救,成本低风险小。重写:架构性死亡(单体耦合死、无法测试、依赖全过期、业务已变但代码没跟上)——重写但要分阶段 Strangler 替换,绝不"推倒重来一次性切换"。经验法则:① 估算重构成本 < 重写成本 × 1.5 → 重构;② 重写必须新旧双跑、逐步迁移流量;③ 永远不要"重写一个你没完全看懂的系统"。金蝶二开永远不重写标准层,只做外层替代。
C-07业务方催需求不给还债时间,你怎么沟通争取资源?
标准答法:别谈"代码美感",谈业务账:① 用数据说话——"这个模块过去 3 个月修了 7 个 bug,平均 2 天一单,每修一单影响发货 X 单";② 给方案而不是抱怨——"花 5 天补齐测试 + 重构这个模块,之后每个需求快 30%";③ 给止血版(先堵最凶的坑)和根治版(排进迭代)两档选项;④ 争取固定比例(如每迭代 20% 容量还债)而不是一次性大会战;⑤ 把债写进风险登记册,出问题时决策有据。一句话:技术债是给业务方看的"利息报表",不是工程师的审美偏好。
C-08Code Review 你具体看什么?
标准答法:① 正确性:边界(空/超长/并发/重复提交)、异常分支、事务边界;② 安全:SQL 注入(参数化)、XSS、越权(前端传的 userId 后端不盲信)、敏感信息不进日志;③ 性能:循环查库(N+1)、无索引查询、未分页、大对象;④ 可读/可维护:命名、分层、重复、复杂度;⑤ 规范:日志、错误码、注释、.editorconfig;⑥ 测试:关键路径有无用例。态度:对事不对人,先肯定再提改进,给出"为什么"。
C-09你怎么度量"还债有没有效果"?
标准答法:前后对比四个数:① 缺陷密度(单位功能缺陷数);② 变更失败率(发布导致回滚/故障的比例);③ MTTR(故障平均修复时长);④ 交付速度(首次提交到上线时长 / 单需求工时)。辅助:测试覆盖率、圈复杂度趋势、Sonar 阻断项清零、客户投诉率。报告方式:每迭代一页纸给主管和业务方看。
C-10AI 生成的代码引入技术债怎么办?
标准答法:① AI 代码先过人审再进库,review 标准不降(安全/边界/注入/授权);② 测试先行:关键逻辑补单元测试,AI 输出也得有断言;③ 依赖审计:AI 爱引过期/不存在的库,锁版本 + 漏洞扫描;④ 生成的代码要符合项目分层与命名,风格不统一 = 未来债;⑤ 能解释每一行——答不上来的代码不合并;⑥ 把 AI 当"初级同事":产出可用但必须带教。一句话:AI 让你写得快,不能替你对质量负责。
04 · C# / .NET / ASP.NET C# 值引用 GC 异步 委托 EF IIS
JD「精通 C#、.NET Framework、ASP.NET」。按简历口径诚实答:主力 Java,C# 有实战,迁移快。
D-01值类型 vs 引用类型?string 为什么表现得像值类型?
标准答法:值类型直接存值,赋值拷副本(int/double/bool/DateTime/struct/enum);引用类型存地址,赋值拷引用指向同一对象(class/数组/List<T>/string)。string 是引用类型但不可变:
b = "xyz" 让 b 指向新对象,a 不变,因此"看起来像值类型";频繁拼接用 StringBuilder。内存:值类型栈为主(装箱/作字段进堆),引用类型对象在堆、栈存引用。D-02ref vs out vs in?const vs readonly?
标准答法:ref:进来前必须赋值,可读可写;out:进来前不必赋值,方法内必须赋值后才能返回,用于多返回值(
int.TryParse);in:只读引用传参,防拷贝大 struct。const:编译期常量,声明必赋值,隐式 static,只能编译期常量(数值/字符串/bool/enum),改值需重编译所有引用方;readonly:运行期常量,声明或构造函数里赋值,可为实例字段、任意类型,改值不用重编译。口诀:const=死值,readonly=活值。D-03装箱拆箱是什么?性能影响?怎么避免?
标准答法:装箱=值类型→object(堆上分配 + 拷贝);拆箱=object→值类型(类型检查 + 拷贝)。代价:额外分配 + GC 压力。避免:① 别把值类型塞进 ArrayList,用
List<T> 泛型;② 别写 object o = i; int j = (int)o;;③ 接口约束时用泛型而非 object;④ 金蝶/老代码里 DataTable 存值类型多,注意装箱次数。一句话:泛型治百病。D-04GC 回收机制说说?IDisposable / using 干什么?
标准答法:GC 分代回收:Gen0(新对象,频繁快速)→ Gen1(过渡)→ Gen2(长寿对象,全堆扫描慢);大对象进 LOH(≥85KB,不压缩,易碎片)。触发:Gen0 满、内存不足、显式
GC.Collect()(生产别调)。GC 只管托管堆;文件 / 连接 / 锁 / 非托管内存必须手动释放——IDisposable + using 保证离开作用域即 Dispose;终结器(finalizer)是兜底(~Class),不及时。口诀:GC 管内存,IDisposable 管资源。金蝶插件里别持有大对象、大 DataTable 用完即 Dispose。D-05委托、事件、Action / Func 的关系?
标准答法:委托=方法的类型安全引用(把方法当参数传);事件是委托的封装,只允许 += / -= 订阅,限制外部直接触发(发布-订阅);Action<T>=无返回值委托,Func<T,TResult>=有返回值,Predicate<T>=返回 bool。金蝶插件本质就是平台事件 + 委托回调(审核→AfterOperation),理解委托就理解了插件模型。
D-06async / await 原理?为什么不能 .Result 阻塞?
标准答法:async/await = 状态机:编译器把方法拆成状态机,await 处注册续延(continuation),不阻塞线程,IO 完成后在合适上下文继续。
task.Result / .Wait() 死锁(捕获上下文互相等待)——异步方法一路 await 到底,async all the way。ConfigureAwait(false) 库代码不抢上下文。金蝶/ASP.NET 里异步好处:高并发下少占线程池。口诀:异步全链路,不.Result,不阻塞线程。D-07lock / Monitor / 并发安全你怎么用?
标准答法:
lock(obj) = Monitor.Enter/Exit 语法糖,锁住同一对象内的临界区;原则:锁小对象、锁少代码、别锁 this/string(拘留池共享)、别在锁里 await。跨进程用 Mutex,读写多用 ReaderWriterLockSlim,原子操作用 Interlocked,并发集合用 ConcurrentDictionary。ERP 场景:防止重复提交同一张单(库存扣减)要靠 DB 唯一约束 / 乐观并发(版本号),不只靠 lock(多 IIS 进程 lock 无效)。D-08泛型解决了什么?约束有哪些?
标准答法:泛型=类型参数化,一套代码多类型复用 + 编译期类型安全 + 避免装箱(List<T> vs ArrayList)。约束:
where T : class(引用类型)、where T : struct(值)、where T : new()(无参构造)、where T : 基类/接口、where T : U(另一类型参数)。金蝶插件动态对象操作常用泛型工具类。D-09LINQ 延迟执行是什么意思?
标准答法:LINQ 查询(
Where/Select)只保存"怎么做",不立即执行;遇到 ToList / ToArray / Count / foreach 才真正执行(deferred execution)。坑:① 多次枚举重复查询——先 ToList() 物化;② 闭包捕获变量(循环变量被捕获,全部用最后值);③ EF 里 LINQ 翻译成 SQL,别在查询里调用不支持的 C# 方法(会客户端求值,拖垮内存)。D-10异常处理你怎么做?什么不该做?
标准答法:① catch 具体异常,不写裸
catch {};② 不吞异常——至少记日志 + 抛业务异常(带错误码);③ 异常 ≠ 流程控制(别用异常做 if-else);④ 区分可重试(超时/网络)和不可重试(校验失败);⑤ 金蝶插件:校验不过 throw new Exception("中文提示"),平台自动回滚并提示用户;⑥ finally 释放资源;⑦ 栈信息要留(throw; 保留,throw ex; 丢栈)。D-11ASP.NET 请求的生命周期(IIS → 页面)?
标准答法:请求 → IIS 接收 → ASP.NET 管道(HttpApplication)事件:BeginRequest → 认证/授权 → 路由匹配 → 控制器/页面实例化 → 模型绑定 → Action 执行 → Result 执行 → EndRequest。WebForms 还有 Init → LoadViewState → Load → 事件 → Render。补充:应用池(w3wp)回收会丢 Session/内存状态——重启后用户重新登录正常;金蝶插件调试可附加到 w3wp。要点:认证在授权之前,中间件顺序决定行为。
D-12Session / Cookie / ViewState / 缓存怎么选?
标准答法:Cookie:客户端小文本(≤4KB),放 ID/偏好,不存敏感明文(HttpOnly + Secure + 加密);Session:服务端,存登录态/购物车,默认内存——多 IIS 进程需 StateServer/Redis/SQL Server 共享;ViewState:WebForms 页面级隐藏字段,只回传本页;Cache(HttpRuntime.Cache / MemoryCache / Redis):读多写少数据(物料主数据),设过期 + 依赖;数据库:必须持久化。选型口诀:小随身 Cookie、会话 Session、热数据 Cache、大对象/永久 DB。
D-13WebForms vs MVC?金蝶二开用的是什么?
标准答法:WebForms:事件驱动 + ViewState,快但臃肿(老金蝶 K/3、云星空前端有部分遗留);MVC:模型-视图-控制器分离、无 ViewState、可测、URL 友好,现代 .NET 主流(金蝶云星空新版前端 + WebAPI 层)。金蝶云星空的插件机制不依赖页面技术,跑在后端业务层;前端自定义页面一般走 WebAPI + 前端框架。答不出框架细节没关系——讲清分层思想和金蝶的扩展点就行。
D-14ASP.NET 性能优化清单?
标准答法:① 数据库优先(慢的 80% 在 SQL):索引 / 执行计划 / N+1 / 分页;② 缓存:输出缓存、数据缓存、静态文件走 CDN;③ 异步 IO 提升吞吐;④ 会话无状态化(别往 Session 塞大对象);⑤ 连接池(SqlConnection 及时 Dispose,默认 100 连接,泄漏即耗尽);⑥ 减少
ViewState;⑦ 应用池 定期回收 + 固定内存;⑧ 监控:失败请求跟踪(FREB) / perfmon 计数器 / SQL 阻塞。D-15ADO.NET vs Entity Framework?金蝶里用哪个?
标准答法:ADO.NET:手写 SQL + SqlCommand,控制力强、性能高、适合复杂报表 / 大数据量;EF(ORM):对象映射、开发快,学习/转换成本低,但易生成烂 SQL(N+1、全字段 SELECT)。金蝶二开绝大多数走 BOS API / WebAPI,不直接怼库;必须直连时:只读报表用 ADO.NET + 存储过程(参数化防注入),小工具可用 EF。口诀:金蝶里走平台,怼库只读参数化。
D-16List / Dictionary / HashSet 怎么选?
标准答法:List:有序、按索引、查找 O(n)——小数据通吃;Dictionary:Key→Value 哈希,查找 O(1),Key 唯一——按单号/编码查找;HashSet:去重 + O(1) 包含判断——去重、校验存在性;SortedDictionary/SortedList:有序键;Queue/Stack:FIFO/LIFO(批处理队列)。面试加分:Dictionary 不是线程安全的,多线程用
ConcurrentDictionary。金蝶对账用 Dictionary(单号→金蝶单据) O(1) 匹配,性能碾压 List 嵌套循环。D-17string 拼接为什么慢?StringBuilder 原理?
标准答法:string 不可变,
s += x 每次 new 新串 + 拷贝,n 次拼接 = O(n²)。StringBuilder 内部字符数组缓冲,容量不够才扩容(倍增),追加 O(1) 均摊。场景:循环拼接 SQL / HTML / 大文本 / 日志。注意:一次性小拼接(3-4 段)直接 + 没问题,别教条。D-18托管内存泄漏常见原因?
标准答法:GC 不泄漏,引用没断才叫泄漏:① 静态集合/字典只增不删(缓存无淘汰);② 事件订阅没退订(发布者长寿、订阅者被引用);③ 定时器 / 非托管句柄未 Dispose;④ 大对象 LOH 碎片(频繁大字符串/大数组);⑤ 异步续延捕获上下文。定位:dump + dotMemory / PerfView,看 Gen2/LOH 曲线;金蝶里常见:缓存基础资料无过期策略。口诀:泄漏 = 该断的引用没断。
05 · SQL Server 专题 索引 事务 死锁 执行计划 分页
SQL Server + 存储过程/函数是 JD 明文要求,这块必须能手写能讲原理。
E-01存储过程 vs 函数?写个金蝶风格分页存储过程(手写)。
标准答法:存储过程:可有输出参数 / 返回结果集、可改数据、可事务、EXEC 调用;函数:必须有返回值、只能输入参数、不能改数据、可在 SELECT/WHERE 用。分页(2012+):
CREATE PROCEDURE usp_QueryBill @BillTypeID NVARCHAR(50), @Status NVARCHAR(50), @PageNo INT = 1, @PageSize INT = 20, @TotalCount INT OUTPUT AS SET NOCOUNT ON; SELECT @TotalCount = COUNT(*) FROM T_XXX WHERE FBillTypeID=@BillTypeID AND FDocumentStatus=@Status; SELECT FBillNo, FDate FROM T_XXX WHERE FBillTypeID=@BillTypeID AND FDocumentStatus=@Status ORDER BY FDate DESC OFFSET (@PageNo-1)*@PageSize ROWS FETCH NEXT @PageSize ROWS ONLY;老版本用 ROW_NUMBER() 包外层 WHERE rn BETWEEN。条件列建联合索引。
E-02聚集索引 vs 非聚集索引?联合索引最左前缀?
标准答法:聚集索引:索引叶子=数据行本体,表按其物理存放,一张表只能 1 个(一般在主键);非聚集索引:独立 B+ 树,叶子存键值+行指针(RID 或聚集键),可多个。联合索引最左前缀:(A, B, C) 可用 A、A,B、A,B,C、A,C(C 走索引但不定位连续),没有 A 开头用不上;把等值列前置、范围列最后。覆盖索引 = 查询列全在索引里,不回表。金蝶列表查询慢:给 FBillTypeID、FDocumentStatus、FDate 建联合索引,FBillNo 查询用其自身索引。
E-03慢查询你怎么看执行计划?
标准答法:① 先看总成本 %和最贵算子(Key Lookup / Index Scan 往往是元凶);② Index Scan=没走索引或选择性太差→检查 WHERE 列/隐式转换(nvarchar 传 varchar 导致扫描);③ Key Lookup=非聚集索引覆盖不了→建覆盖索引;④ 隐式转换坑:字段 NVARCHAR 传了 VARCHAR 直接全表扫;⑤
LIKE '%xx%' 用不上索引→改 'xx%' 或全文索引;⑥ 统计信息过期 → UPDATE STATISTICS;⑦ SET STATISTICS IO, TIME ON 看逻辑读。口诀:先定位贵算子,再消 Scan 和 Lookup,最后刷统计信息。E-04ACID 是什么?SQL Server 默认隔离级别?
标准答法:ACID:原子性(全成或全滚)、一致性(前后满足约束)、隔离性(并发互不干扰)、持久性(提交落盘不丢,WAL 日志)。默认 READ COMMITTED(已提交读):解决脏读,不解决不可重复读 / 幻读。RCSI(已提交读快照)用 tempdb 行版本,读不阻塞写,很多系统开着它。更严格可选 REPEATABLE READ(防不可重复读)/ SERIALIZABLE(全防,加锁多)。读多写少 → 乐观并发(加版本号)。
E-05脏读 / 不可重复读 / 幻读分别是什么?怎么防?
标准答法:脏读:读到别人未提交的修改 → READ COMMITTED 即防;不可重复读:同事务两次读同一行结果不同(别人改并提交)→ REPEATABLE READ;幻读:同事务两次同条件查询行数变了(别人插删)→ SERIALIZABLE 或间隙锁 / RCSI 快照。金蝶单据并发审核:唯一索引 + 行版本(rowversion)乐观锁防重复审核,不靠长事务。口诀:提交读防脏,可重复读防改,串行化防插删。
E-06死锁是什么?你怎么排查和预防?
标准答法:死锁=两个(或多个)事务互相等对方释放锁(如 T1 锁 A 等 B,T2 锁 B 等 A)。排查:错误日志 / system_health 会话 /
sys.dm_tran_locks / sp_who2 看阻塞链 / 扩展事件抓 xml_deadlock_graph。金蝶里常见:订单保存 vs 汇总报表扫描互相阻塞。预防:① 所有事务按固定顺序访问表(A→B,不交叉);② 缩短事务、别在事务里调外部接口;③ 读多写少开 RCSI;④ 加合适索引减少锁范围;⑤ LOCK_TIMEOUT 设置避免永久等;⑥ 批量操作分批提交。E-07共享锁 / 排他锁 / 更新锁?锁升级是什么?
标准答法:共享锁(S):读,互不兼容写;排他锁(X):写,和任何锁都不兼容;更新锁(U):预防死锁——先拿 U(不互斥 S),确定要改再升级成 X,避免两个事务同时 S→X 升级互相等;意向锁(IX/IS):标记下级要锁。锁升级:行锁/页锁数量超阈值(约 5000 个)升级成表锁——大 UPDATE 全表锁,业务全挂;预防:分批更新 / 索引缩小锁范围。金蝶成本滚算大更新要特别注意。
E-08EXISTS vs IN?UNION vs UNION ALL?
标准答法:EXISTS:找到第一条就停,可用 JOIN 索引,子查询大时优;IN:子查询结果集会物化/排序,适合小集合;现代 SQL Server 优化器二者常选同计划,别教条,看执行计划。UNION 去重(排序/哈希开销),UNION ALL 不去重、快——能确定不重复就用 UNION ALL。口诀:先执行计划,再谈语法偏好。
E-09什么是参数嗅探(parameter sniffing)?
标准答法:存储过程首次编译时按传入参数的值生成计划并缓存,后续调用直接复用;若首次参数导致选了"窄索引 Seek",而后来调用传了"巨量值"(如 status 从 1 变成 '40%' 的范围),计划不再最优→慢如狗。症状:同一过程有时快有时慢。治理:
OPTION (RECOMPILE)、OPTIMIZE FOR UNKNOWN、局部变量绕过、或更新统计信息。口诀:参数两极分化 → 嗅探坑。E-10临时表 vs 表变量?
标准答法:表变量(
@t):作用域限于批处理/函数/过程,不统计信息(默认按 1 行估),无索引(可建主键/唯一),适合几十行;临时表(#t):可索引、有统计信息、可 JOIN、可大批量,作用域会话,适合中间结果几万-百万行。金蝶补丁/数据修复脚本 #t 暂存 + 分批更新。口诀:小表变量、大表临时、临时还能建索引。E-11一条 SQL 慢,你的优化清单(按顺序)?
标准答法:① 拿真实耗时与逻辑读(
SET STATISTICS IO,TIME ON);② 看执行计划:贵算子是 Scan 还是 Lookup;③ 索引:等值列组合索引、覆盖索引消除 Lookup;④ 隐式转换:类型对齐;⑤ 统计信息:UPDATE STATISTICS;⑥ 改写:复杂子查询拆 CTE/临时表、去掉函数包裹列(WHERE YEAR(FDate)=2026 → 范围条件)、UNION ALL;⑦ 分页 2012+ OFFSET/FETCH;⑧ 参数嗅探治理。最后才是"加机器"。口诀:计划→索引→统计→改写→分页→硬件。E-12批量导入百万行数据怎么快?
标准答法:① BULK INSERT / bcp 优先;② 导入前暂时禁用非聚集索引 / 外键(导完重建),换速度;③ 批量提交(每批 1-5 万行)避免日志撑爆;④ 目标表用 TABLOCK;⑤ SIMPLE 恢复模式或导入后收缩日志;⑥ 数据先落暂存表 #staging 再校验清洗导入正式表;⑦ 导入后 UPDATE STATISTICS;⑧ 金蝶标准表不能直接灌——必须走金蝶导入工具 / WebAPI,否则数据不一致(序列号 / 状态机 / 日志缺失)。
E-13哪些写法会让索引失效?
标准答法:① 对索引列做函数 / 运算(
WHERE YEAR(FDate)=...、FQty*2>100)→ 改为范围条件 / 列放左边;② 隐式转换(类型不一致);③ LIKE '%xx%' 前导通配;④ OR 两侧列未全覆盖索引 → 改 UNION ALL / 给每列索引;⑤ NULL 判断、!= / <> 选择性差;⑥ 函数包裹列(UPPER(FName))→ 建计算列持久化索引;⑦ 统计信息过期误判选择性。E-14备份(全备 / 差异 / 日志)怎么选?
标准答法:完整备份:全库基线,每周(或每天);差异备份:上次全备以来的变更,每天,恢复时只需全备+最后差异;事务日志备份:时间点恢复(point-in-time),RPO 决定频率(如每 15 分钟);简单恢复模式无日志备份。恢复链:全备 → 最近差异 → 之后所有日志,按顺序 roll。验证:
RESTORE VERIFYONLY + 定期真恢复演练。金蝶账套大 → WITH COMPRESSION。RPO/RTO 写进预案。E-15怎么查"谁把谁堵住了"?
标准答法:
sp_who2 看 BLKBY 列;sys.dm_exec_requests + blocking_session_id;sys.dm_exec_sessions 找到会话 + 正在跑的 SQL;sys.dm_tran_locks 看锁;定位阻塞源后:① 该事务是否长时间未提交(检查应用是否漏 commit/死循环)→ Kill 或联系业务方;② 缺索引导致扫描锁住大量行 → 加索引;③ 开启 RCSI 让读不堵写;④ 金蝶场景:报表(汇总查询)与录单并发——报表走只读副本 / 夜间跑。E-16数据修复脚本怎么写才安全?
标准答法:① 先
SELECT COUNT(*) 受影响行 核对预期;② 备份 / 事务内可回滚(先 BEGIN TRAN,看影响行数,再 COMMIT 或 ROLLBACK);③ 小样本(10 行)先跑并人工核对;④ 分批更新(WHILE + TOP N + 进度日志),避免单事务锁表;⑤ 禁止不带 WHERE 的 UPDATE/DELETE;⑥ 跑完对账(前后总数、合计金额变化符合预期);⑦ 全程留痕:脚本原文 + 执行人 + 审批单 + 时间。口诀:先查后改、先备份、先小样本、再分批、必对账。E-17INNER / LEFT / RIGHT / FULL JOIN?NULL 参与连接?
标准答法:INNER=只留匹配行;LEFT=左表全留、右表没匹配补 NULL;RIGHT 反之;FULL=都留;CROSS=笛卡尔积;ON vs WHERE:LEFT JOIN 的过滤条件写 ON 保留左表行、写 WHERE 会把 LEFT 变 INNER;NULL 不等于 NULL(
= NULL 永远 UNKNOWN,用 IS NULL);多表 JOIN 顺序 SQL Server 会自动重排,别担心书写顺序,关心的是连接列有索引。E-18金蝶做数据修复你见过哪些坑?(经验谈)
标准答法:① 金蝶单据主表-子表-分录三层,修复只改主表 → 状态不一致;② 序列号 / 流水号独立表,手工插单会号段冲突;③ 审核状态机跨多张表(草稿/已审核/已关闭),改一处全挂;④ 库存 = 批次+库位+状态,改数量不改流水 → 台账对不上;⑤ 直改标准表 → 下次补丁/升级全挂;⑥ 修复前先看有没有官方修复工具 / BOS 修复向导。金句:金蝶表不能裸奔,一切修复走「备份→小样本→分批→对账→留痕」。
06 · 业务系统接口开发 REST 幂等 鉴权 补偿 对账
JD 第 2 条。ERP↔MES/WMS/CRM 的集成是你的强项,讲成体系化方案最加分。
F-01RESTful 是什么?跟 WebService 怎么选?
标准答法:RESTful = 资源 + HTTP 动词 + 无状态 + 统一接口 + 自描述消息:GET 查 / POST 建 / PUT 全改 / PATCH 部分 / DELETE 删,URL 是名词(
/orders/{id})。选型:新系统一律 REST + JSON(轻、好调试、生态好);老系统 / 强类型契约 / 复杂事务用 WebService(SOAP);金蝶云星空 WebAPI 即 REST 风格。原则:先看对方提供什么,再看团队能维护什么。F-02什么是接口幂等?怎么实现?
标准答法:幂等=同一请求发多次,结果与发一次一致(不重复建单、不重复扣库存)。实现:① 业务唯一键(订单号+动作)建唯一索引;② 先查后做:已存在直接返回成功;③ token 去重(申请→提交→作废);④ 分布式用 Redis SETNX 或 DB 唯一约束兜底;⑤ 状态机:只有"待处理→处理中"才能处理,防重复审核。ERP 集成幂等是生命线——网络重试太正常了。
F-03接口怎么做鉴权 / 签名?
标准答法:① appid + secret:服务端保存,不进前端;② token 换签:appid+secret 换 access_token,缓存 2 小时,过期重取;③ 签名:参数按升序拼 + secret + SHA256/HMAC,对方验签验时间戳(防重放);④ IP 白名单;⑤ HTTPS;⑥ 最小权限:按应用分配接口权限(只读/写);⑦ secret 泄露 → 立即换。金蝶 WebAPI:开放平台应用 → appid/secret → token。口诀:appid+secret 换 token,时间戳防重放,签名防篡改。
F-04调用对方接口超时了,你怎么办?
标准答法:① 必须有 timeout(比如 10s),绝不无限等;② 先确认是网络 / 对方慢 / 对方挂(日志 + 对方确认);③ 有限重试:指数退避(1s→2s→4s),最多 3 次,仅对幂等接口重试;④ 失败落接口日志表(状态=待重推);⑤ 异步化:推单不同步阻塞 ERP,扫表重推;⑥ 告警 + 人工补偿入口;⑦ 对方完全挂 → 业务侧降级:ERP 单据正常审核,接口失败仅标记 + 补推,别让外部系统绑架 ERP 可用性。
F-05分布式事务 / 半成功怎么办?(如下推 MES 成功但 ERP 回写失败)
标准答法:跨系统不用强一致,用 最终一致 + 补偿:① 状态机 + 对账:双方各记状态(ERP: 已推/MES: 已建),差异即告警;② 补偿任务:定时扫"ERP 已推 MES 未确认",自动重推或人工复核;③ 对账报表每天给双方签字;④ 预留人工入口修正(补回写 / 作废 / 手工对齐);⑤ 顺序敏感操作做单号幂等。金句:跨系统没有 100% 成功,只有"失败能发现、能补、能对账"。
F-06接口日志表怎么设计?
标准答法:字段:
ID, 接口方向(推/拉), 业务单号, 请求系统, 响应系统, 请求时间, 请求报文(脱敏), 响应报文(脱敏), HTTP状态/业务errcode, 耗时ms, 重试次数, 当前状态(成功/失败待重推/人工处理), 创建/更新时间。索引:(状态, 业务单号) 扫描补推,(业务单号, 方向) 对账。敏感字段脱敏(价格/数量/密钥),日志量大按月归档。对账脚本直接按状态统计成功率。F-07对接两个系统前,接口设计文档要写什么?
标准答法:① 范围与方向:谁推谁、什么单据、什么场景触发;② 协议与鉴权:REST/SOAP、token、IP 白名单;③ 字段对照表:字段名/类型/必填/长度/字典值(枚举映射)/ 示例 / 双方签字——这是扯皮终结者;④ 幂等规则:唯一键;⑤ 错误码:双方错误码对照表;⑥ 重试与补偿:失败怎么办、谁重推;⑦ 联调环境与计划:测试账号、联调时间点、上线窗口;⑧ 对账方式:每日核对什么。金句:没有字段对照表,就没有联调。
F-08接口数据对不上,你的对账方法论?
标准答法:① 左右各拉同一时间窗的单据清单(按单号);② 差集三部分:ERP 有 MES 无 / MES 有 ERP 无 / 两边都有但字段不一致;③ 分类处置:没推→补推;对方拒收→修数据;双边改→定单一数据源+流程约束;不一致→按字段逐项修;④ 自动化对账日报(成功率 / 差异数 / 平均耗时)推双方负责人;⑤ 差异闭环:每条差异有 owner + 处理结果 + 关闭确认。对账是接口交付的"验收标准"。
F-09接口要支撑每天几万单,你怎么做性能?
标准答法:① 异步化:推单走 MQ / 中间表,ERP 主流程不阻塞;② 批量:一次推 N 单,对方批量接口优先;③ 限流:令牌桶保护双方(如 100 QPS);④ 缓存:基础数据(物料/组织)缓存,不每单查库;⑤ 连接池 + 超时;⑥ 幂等 + 重试保证吞吐下的正确性;⑦ 压测:先测小批→再测峰值,看平均/P99 耗时 + 错误率;⑧ 监控:QPS、耗时、失败率、队列堆积。
F-10接口常见安全漏洞?
标准答法:① SQL 注入:一律参数化;② 越权(水平/垂直):服务端校验"这个用户能看/改这张单吗",不盲信前端传参;③ 重放攻击:时间戳 + 签名 + nonce;④ 敏感数据明文:token/价格/身份证加密传输,日志脱敏;⑤ 错误信息泄露:不回显堆栈给用户;⑥ 文件上传:限制类型/大小、杀毒、不落 web 可执行目录;⑦ IP 白名单 + HTTPS + 最小权限。口诀:参数化、校验权、防重放、加密脱敏。
F-11ESB / 消息中间件 / 直连,分别什么场景?
标准答法:直连:点对点、量小、实时性要求、双方稳定(MES 推单 ERP 校验库存);ESB:多系统总线、集中路由/转换/协议适配(企业级多对多集成,天正/统一制造平台用过);消息队列(RabbitMQ/Kafka):削峰填谷、异步、解耦、异构系统(报工数据、设备数据);文件/FTP:老系统、大批量离线(日终批量导 WMS)。选型看:实时性、数据量、系统数量、对方协议。原则:能简单直连不搞总线,能异步不阻塞。
F-12接口联调一般怎么走?
标准答法:① 双方先出接口文档(见 F-07)确认签字;② Mock:对方接口没好,先自己 mock 自测;③ 测试环境单笔:ERP 发一笔 → MES 确认收到 → 回写 → ERP 核对,抓字段/编码/时区/单位;④ 异常用例:缺字段、超量、重复推、对方超时、网络断——逐项验证;⑤ 小批量试运行(一天几十笔)→ 对账无误 → 放量;⑥ 上线前联调报告双方签字;⑦ 上线后第一周每日对账。口诀:文档→Mock→单笔→异常→小批→对账→放量。
07 · ERP / MES / WMS / EMS 业务 单据流 五模块 齐套 能耗
JD「熟悉 ERP / EMS / WMS 业务逻辑优先」——这里给你制造业业务的地图。
G-01ERP 生产/销售/采购/库存/财务五大模块各自干什么、怎么串起来?
标准答法:销售:报价→订单→发货→应收;采购:请购→订单→收货→应付;库存:入/出/调拨/盘点,批次-库位-状态三维;生产:BOM→工单→领料→报工→完工入库;财务:应收应付→总账→成本。串联主线:销售订单 → MRP 运算 → 采购订单 / 生产工单 → 收货 / 领料报工 → 发货 → 开票 → 应收;单据驱动 + 库存/应收应付实时滚动。考核关键词:订单流、库存流、资金流三流合一。
G-02什么是齐套?制造业 ERP 怎么算齐套?
标准答法:齐套 = 工单所需物料齐不齐。算法:展开 BOM → 需求 = Σ(订单量 × 用量 × (1+损耗)) → 可用 = 现有库存 − 已预占 − 在途未到 → 齐套率 = 各子件满足比例的最小值。缺料则提示/拦截下推。注意:① 替代料处理;② 在途采购计入;③ 预占防抢料;④ 多工厂/多组织分别算。价值:防止开工后断料停线。金蝶生产模块齐套检查就是按这个逻辑。
G-03MES 和 ERP 分别管什么?边界在哪?
标准答法:ERP:计划与经营(接单/算料/采购/排产粗计划/成本核算/财务)——管「要做什么、什么时候、钱」;MES:车间层(工序流转/派工/扫码报工/质量检验/设备数据/OEE)——管「怎么做、做到哪、质量如何」。边界:ERP 下推工单给 MES,MES 完工/报工回写 ERP;BOM、工艺路线、工序由 ERP 管、MES 执行。金句:ERP 管计划与账本,MES 管现场与节拍。
G-04WMS 核心流程与库存五要素?
标准答法:流程:收货→质检→上架(策略:按类别/容量/就近)→ 存储(库位/批次/保质期)→ 拣货→复核→打包→发货→ 逆向(退货/调拨/报废/盘点差异)。库存五要素:货主 + 物料 + 批次 + 库位 + 状态(可用/冻结/不合格)。策略关键字:上架策略、波次策略(合并拣货)、FIFO/FEFO(先进先出/效期先出)。WMS 管货的物理流转,ERP 管单与账,两者靠单据+接口同步。
G-05EMS 是什么?能耗管理你怎么理解?(JD 优先项!)
标准答法:制造业语境 EMS 最常见 = Energy Management System(能源管理系统):① 采集水/电/气/汽(抄表、传感器、电表、DCS);② 监测实时能耗、异常报警、分项计量(照明/动力/空调/工艺);③ 分析能效报表、单耗、峰谷时段、碳排统计;④ 优化:削峰填谷、能耗定额考核。少数企业把 EMS 指 ISO 14001 环境管理体系(合规)或设备管理。面试补一句「贵司 EMS 是能源管理方向吗?」——澄清加分。做项目常涉及抄表接口/能耗台账/分项计量报表。
G-06ERP 单据的状态机一般怎么设计?
标准答法:标准顺序:草稿→已提交→已审核→(已执行/已关闭),可反审核回退。设计原则:① 状态只能沿合法路径迁移(草稿不能直接「已审核」),状态机校验写在插件 / 服务层;② 已审核锁定——审核后只能反审核/作废,不能再改,防错账;③ 状态迁移留记录(谁、何时、从→到);④ 反审核要检查下游单据(已下推就不能反审核/须先作废下游);⑤ 状态机 + 权限:不是人人能审核。金蝶标准就是这套状态机,我做的插件都在"状态迁移前后"动手脚。
G-07主数据治理为什么 ERP 特别重要?MRP 运算原理?
标准答法:主数据=物料 / 客商 / BOM / 工艺 / 仓库 / 计量单位——"错一个数,全链错":物料计量错→成本错、BOM 挂错→领料错、客商重复→往来对不上。治理:编码规则 + 必填校验 + 归口管理 + 生命周期(启用/停用)+ 唯一性校验。MRP 运算:毛需求(销售/预测) − 现有可用量 = 净需求 → 按 BOM 层层展开(毛→净→下层)→ 考虑损耗 / 提前期 / 安全库存 / 批量规则 → 输出计划订单(采购/生产)。MRP 是 ERP 的大脑,主数据是它的食物。
G-08VMI / 寄售 / 调拨 业务怎么落?
标准答法:VMI(供应商管理库存):供应商库存放在你的仓库,结算依消耗——ERP 用寄售/寄存物料+所有权到货/领料结算两张单管理,财务做暂估应付;调拨:组织间/仓库间移库,在途状态追踪;替代料:BOM 指定替代范围。ERP 落地关键:① 物料主数据是否寄售标志;② 货权划分报表;③ 盘点按货权分;④ 期末按消耗结算对账。考核:货权与会计准则一致。
G-09ERP 成本核算基本逻辑(为什么制造 ERP 难)?
标准答法:制造成本 = 材料 + 人工 + 制造费用分摊到产品:① 领料倒冲/正冲——完工入库时扣材料(倒冲,简单但账实不符风险)或领料时扣(正冲,准确但单据多);② 工时归集——报工按工序记工时→分摊人工/制造费用;③ 成本滚算——BOM 自底向上滚算出标准成本(金蝶成本助手);④ 差异分析——实际 vs 标准,采购价差/用量差/效率差;⑤ 月末结账依赖全部单据审核完毕。难点:领料与实际耗料不符、报工不及时、制造费用分摊不合理。
G-10企业微信对接 ERP 常见做什么?
标准答法:① 消息推送:审核通知、缺料提醒、异常告警(应用消息 API / 群机器人);② 审批:ERP 单据触发企业微信审批流(请假/用款/采购),审批结果回写 ERP;③ 通讯录同步:人员/部门/岗位与 ERP 用户映射;④ 机器人查询:群里问"订单 XX 进度"自动回复;⑤ 单点登录:企业微信扫码进 ERP;⑥ 注意:corpsecret/token 安全、可见范围、频率限制、失败可重推。这是你简历真实做过的方向,讲经验最稳。
08 · 情景 · 行为面试 冲突 加班 故障 难点
H-01「说一个你解决过的最难技术问题」怎么答?
STAR-R 模板:场景(什么项目/系统)→ 任务(卡在什么)→ 行动(我怎么排查:日志→复现→执行计划→SQL 修/插件修)→ 结果(数字:从 3 分钟到 20 秒 / 故障率降 X)→ 反思(方法论:先量化、先止损、先对账)。例子(用你简历真实):「正泰制造云多工厂上线时,报表 OEE 查询从 40s 降到 2s:定位到 missing index + 隐式转换,加覆盖索引 + 改写查询,上线前影子流量比对。」
H-02「和业务方意见不一致时你怎么办?」
标准答法:① 先听完再回应——澄清对方真实诉求(要的是结果不是方案);② 数据说话——"按现在改动 A,月结报表全错;如果走 B,多 2 天但稳";③ 给选项不给对错——A(快/险)、B(稳/慢)、C(折中);④ 分歧大 → 拉第三方/上级/产品经理决策并留痕;⑤ 决定后全力执行,不阴阳怪气。金句:业务要的不是我喜欢的方案,而是能落地的结果。
H-03「上线前夜发现严重 bug,团队都走了,你怎么办?」
标准答法:① 先止损:能回滚回滚,不能回滚就禁用该功能(BOS 禁用插件 / 取消菜单),保住核心业务;② 评估影响:多少单据受影响、数据是否错乱、能否对账修复;③ 自己能修 → 小样本验证 → 修复 → 回归 → 通知相关方;④ 修不了 → 上报(值班经理/主管),不硬扛;⑤ 次日复盘:为什么没在测试发现、补什么用例。金句:生产第一,面子第二;晚十分钟发布好过错一周。
H-04「你是怎么学新技术的?」(JD 热爱钻研)
标准答法:三个真实动作:① 官方文档优先(金蝶 BOS 开发手册 / 微软 Learn / 官方示例),不信博客里的过时截图;② 小 demo 验证:学插件就建测试账套跑一遍保存→审核→下推闭环;③ 产出倒逼学习:写文档/分享/给团队培训——输出是最好的检验。举例:「K3 Cloud WebAPI 当时没中文资料,我照官方 SDK 示例 + 开放平台调试工具一夜跑通鉴权 → 落成内部调用模板,团队直接复用。」
H-05「你为什么想离开正泰?」(高危题,必答好)
标准答法:「近一年制造云进入稳定维护期,新交付逐渐变少,公司也在做组织岗位调整。我希望找一个 ERP 方向更专注、有持续交付任务的岗位,把我这几年金蝶云星空二开 + 跨系统集成 + 故障处理的积累用在持续产出上。」——不抱怨、不指名道姓、落点到岗位匹配。被追问「转岗怎么看」:「组织调整我尊重,但不匹配的分配对个人成长和公司产出都不好,所以我选择匹配度高的机会。」
H-06「模糊需求你怎么处理?」
标准答法:三步:澄清(谁用、查什么、多久一次、什么叫"快"和"好用"、要导出/看板/推送、权限给谁)→ 拆解 + 原型(字段清单、筛选、导出格式,画草图确认)→ MVP 交付 + 迭代(先上线能跑,收反馈再优化)。金句:模糊需求的解法是「快澄清、快原型、快迭代、全留痕」,不是猜。
H-07「你怎么保证文档交付质量?」(JD 第 5 条)
标准答法:① 文档即交付物:换个人接手也能照着干;② 三类文档别混:需求规格书(WHAT:功能清单/边界/验收标准)、接口文档(字段对照/鉴权/错误码/重试/调用示例)、运维手册(部署/巡检/故障 TOP10/备份恢复);③ 先写再开发(接口文档先行,双方签字再联调);④ 上线即更新(变更必须同步文档);⑤ 给非技术读者也能看懂(避免只有你能看懂的内部黑话)。
H-08「你最有成就感的项目?」
标准答法(用简历真实选一个,推荐制造云多工厂上线):「制造云覆盖多个工厂滚动上线,我先把配置化建模做好(工厂/车间/产线/工位/工序 + 租户隔离,新工厂配置开通不改代码),再打通金蝶↔MES↔WMS↔企业微信的数据链路,上线零带病单据,报表 OEE 从分钟级降到秒级。最骄傲的是方法论:上线前影子比对、上线后每日对账,出过的问题都变成了清单和预案——这比解决某一个 bug 更有价值。」结构:场景→动作→结果(数字)→方法论。
09 · 简历定向追问 + 答法 十年制造业 · 正泰智电云
面试官会沿着你简历逐行追问。每条都要能 1 分钟讲清:场景→动作→结果。
I-011 分钟自我介绍(简历版,直接背)
标准答法:「面试官好,我是黄忠明,浙江大学城市学院计算机本科,2019 年起做制造业信息化。目前在正泰智电云做高级开发,主线是制造云/MOM/MES 实施与金蝶云星空二开——供应商侧 ERP 统一为 K3 Cloud,我负责销售/采购/库存/生产/财务五模块配置与二开,做过 BOS 业务对象建模、表单/操作插件、WebAPI,也承担版本升级、账号权限治理、故障响应、性能优化,并把金蝶与 MOM/WMS/CRM/企业微信的数据链路打通。我擅长的是ERP 业务 + 代码落地 + 现场交付三位一体——既能写代码,也能跟业务聊清楚他到底要什么。」
I-02「你主力 Java,为什么能胜任 .NET 岗?」(最高频风险题)
标准答法:「Java 是我的主力,但我实际用 C# 完成了金蝶插件和工具开发,对 .NET 对应关系很熟:Spring→ASP.NET、MyBatis→ADO.NET/EF、Maven→NuGet、JVM→CLR、都是 IL 中间语言。我真正强的是ERP 业务理解、调试排错、跨系统集成、交付文档——这些是语言无关的,也是这个岗位最难替代的。语言我 1-2 周能补到可用,业务我十年。」风险化解 = 先认主力、再讲迁移、最后讲业务壁垒。
I-03制造云(MOM/MES)你具体做了什么?
标准答法:「负责生产计划、工单派工、报工、物料齐套、工序流转、质量追溯的开发与二开,支撑集团多工厂上线。关键工作:① 把工厂/车间/产线/工位/工序建模并做租户数据隔离——新工厂配置化开通,不改代码、不单独部署;② 接口集成:金蝶↔MES 工单/报工/入库双向打通;③ 报表:生产进度/OEE/产能/质量;④ 交付:需求规格书、接口文档、运维手册,配合上线现场调试。」
I-04MRO 商城(Vue3 + Element Plus)你做了什么?
标准答法:「mro.zhidiancloud.com:工业品 MRO 采购商城,Vue 3 + Vite 前后端分离(Element Plus / Vue Router / Pinia),接入高德地图。我负责商品、询比价、下单、订单页面开发 + 商城运维 + 移动端适配。技术要点:Pinia 状态管理、路由懒加载、组件化复用、接口统一封装(axios 拦截器 + 统一错误提示)、图片懒加载,上线后移动端可独立浏览/下单。」
I-05「云工厂多租户怎么隔离?」多工厂怎么做到配置开通?
标准答法:多租户三种方案:① 共享库 + tenant_id 字段(隔离弱、实现快、适合标准 SaaS)——所有查询自动带租户条件(MyBatis 拦截器 / EF Core 全局过滤器);② 每租户独立 schema(隔离中等);③ 每租户独立库(隔离最强、成本高)。我做的工厂/车间/产线/工位/工序建模 + 租户配置中心:主数据带租户标识,配置表驱动开通,新工厂不改代码、不单独部署;安全关键是防串号——专门的数据隔离测试用例(A 租户绝不能查到 B 的数据)必须有。
I-06条码打印平台(ZPL/CPCL)关键设计?
标准答法:「统一标签模板引擎 + 打印服务,支持 Zebra / TSC / 打标机,ZPL / CPCL 指令直连(免 Windows 打印假脱机)。要点:① 模板版本管理——改模板不影响历史单据重打;② 批量打印 + 补打任务队列;③ 打印日志追溯(谁、何时、打了什么、补打几次);④ 断连重连 + 缺纸/碳带报警。工厂现场网络差,直连指令比 GDI 打印稳得多——这是现场踩出来的经验。」
I-07你在金蝶云星空具体做过哪些二次开发?(主战场题)
标准答法(四层讲):① 配置层:五模块基础资料/单据类型/流程/权限;② 建模层:BOS 业务对象建模(字段/实体/单据);③ 插件层:表单插件(值更新重算、按钮前校验)、操作插件(审核/下推前后介入,如生产订单审核推 MES、状态变更推企业微信按角色通知);④ 集成层:WebAPI 对接 MOM/WMS(工单下推、出入库回写、主数据同步)。结尾:「我最熟的模式是标准功能不满足 → 配置 → 插件补 → 接口集成,全程不改金蝶原码。」
I-08天正 CRM 项目里 Elasticsearch 怎么用的?
标准答法:「炎黄盈动 AWS PaaS 低代码搭主数据 + 审批流,Java 扩展补平台能力;Elasticsearch 做报表检索与聚合,支撑百万级数据报表多维查询 + 导出。关键设计:① mapping:keyword 精确 / text 分词 / date;② 聚合:terms / date_histogram 做多维下钻;③ 深度分页用
search_after / scroll,不用 from+size 硬扛;④ 批量写入 bulk;⑤ 导出异步化(后台任务 + 前端轮询进度)避免大查询卡死;⑥ ES 管检索/聚合,强一致性事务还回 MySQL/SQL Server。」I-09瑞森路政油气监测系统做了什么?
标准答法:「独立开发油气监测系统:传感器采集接入 → 实时监测 → 阈值报警 → 历史趋势 + 统计报表(Java + SQL Server + ECharts),含现场部署、调试、运维,保证监测数据连续上传。锻炼的是软硬结合 + 现场交付 + 7×24 保障——这和 ERP 现场上线是一个能力模型:能写、能部署、能扛住现场。」
I-10「金蝶版本升级你怎么做的?」(JD 运维向必问)
标准答法:「五步:① 读补丁说明确认影响模块 + 二开插件;② 全库备份 + 重点账套导出;③ 测试环境先升:伙伴补丁兼容、二开插件重新编译注册、BOS 对象重新发布;④ 回归:保存→审核→下推→反审核全闭环 + 报表 + 接口;⑤ 低峰窗口升级 + 回滚预案,上线后值守。核心心法:备份 + 测试先行 + 回滚预案,缺一不可。」
I-11「为什么离开正泰?」+「转岗你怎么看」(高危题)
标准答法:① 离开原因:「制造云进入稳定维护期,新交付变少,公司也在做组织岗位调整。我希望ERP 方向更专注、有持续产出的岗位。」——不抱怨、指名道姓不提;② 转岗:「组织调整我尊重,但不匹配的分配对我和公司都不好,所以我选择匹配度高的 ERP 二开岗位。」③ 千万别说「没事干」「被边缘化」——翻译成:项目进入维护期 + 组织调整 + 追求匹配。
I-12「职业规划?」「你的缺点?」「期望薪资?」
标准答法:① 规划:「短期把 ERP 二开体系接住(插件+WebAPI+故障响应),3 个月独立负责模块;中期成为 ERP 方向骨干——带新人、出方案、定规范;长期制造业数字化专家/架构,懂业务、懂代码、懂交付。」② 缺点(真实+改进):「容易陷进细节——修 bug 会抠到根因,后来给自己设 timebox,先止损再深挖」。③ 薪资:先问「贵司这个岗位的薪酬区间?」再谈;不报死数,讲「参考市场 + 匹配我的经验」。
10 · 反问面试官 问得好 = 最后加分
面试尾声「你有什么问题?」——别说「没有」,问这 6 类:
Q-01问团队与汇报关系
「这个岗位在哪个团队、向谁汇报?团队几个人、开发/实施/运维比例?接口人是谁(业务方/实施顾问/运维)?」
Q-02问入职即做什么 / KPI
「入职第一个月主要做什么?KPI 怎么定(响应时效/上线次数/故障率)?如何衡量我做得好不好?」
Q-03问金蝶现状(版本 / 二开方式)
「贵司 金蝶云星空是哪个版本(K3 Cloud 几几)?二开走插件还是直改?WebAPI 集成现状如何,最大的痛点是稳定性还是需求响应速度?」
Q-04问技术债与代码质量
「目前代码库最大的技术债在哪个模块?有没有 Code Review / 测试 / 发布流程?我入职能参与清理债吗?」
Q-05问成长与晋升
「这个岗位半年 / 一年后的成长路径是什么?能被培养成主力吗?有没有内部培训 / 金蝶认证支持?」
Q-06问流程 / 下一步
「后续面试流程(几轮/什么时候)?期望入职时间?有试用期目标吗?希望我提前准备什么?」
※ 面试当天清单 T-1 天 → 结束
- 前一晚:看本宝典 01/02/05/09(运维·BOS·SQL·简历题);早睡 > 多刷 30 题。
- 带:简历 2 份、笔、纸、项目案例清单(能讲 3 个 STAR 故事的那种)。
- 自我介绍掐时间说 3 遍(≤1 分钟)。
- 不会的问题:坦白 + 猜思路(「没现场做过,按原理我猜……」),绝不硬编。
- 金蝶题被问穿时:回到业务主线(订单流/库存流/资金流 + BOS 配置优先)。
- 绝不出现:「开发被 AI 替代」「公司没事干」「我不熟但会努力」(空话)→ 换成 具体证据。
- 谈薪:先问区间,再说期望;不贬低、不抱怨、不画饼。
- 尾声必问 2-3 个反问(见第 10 节);感谢对方时间。
一句话自检(进门前念一遍):「十年制造业信息化 · 供应商侧金蝶云星空五模块二开 · BOS/插件/WebAPI · 跨系统集成 · 多工厂上线交付」——我匹配这个岗位。