上门汽车维修预约平台改版
在一项由维修经理按用户选定的时间上门到家门口或公司、现场更换机油与电瓶的汽车维修服务中,我们设计了应用 2.0 改版所依托的结构并搭建了基础。这项工作是把仅停留在构想阶段的设计落实为实际的项目结构,同时必须保留原有的上门维修预约流程。结构一旦模糊,每增加一个功能,需要修改的地方就会蔓延到多个界面。工作从划分界面、通信与设备内存储的边界开始,一直到与共事开发者讨论结构并完成交接。
把停留在构想中的设计落成实际项目的应用结构
上门维修应用 2.0 改版开始时,整体设计还只是构想。我们划分界面模块、数据模型、通信层与设备内存储的边界,将其落实为实际的项目结构。每个界面都把服务器请求、业务规则、界面状态与用户输入分开,明确各界面的职责。衡量标准是:新功能进来时,无需触动既有边界即可接上。

把预约、车辆信息与服务商品请求装进同一框架的通信层
上门维修应用会从多个界面发出性质各异的服务器请求,比如上门维修预约、车辆信息与服务商品。用户先登记车辆、选好机油或电瓶更换等维修商品,再约定维修经理上门的时间与地点。我们按领域整理请求,统一成同一框架,异步返回的响应经由同一条流程接收并接入界面状态。即使请求增多,在哪里新增、在哪里接收响应也只有一种既定方式。

把车辆信息与填写中的预约留在应用内的设备内存储
上门维修应用会在应用内保存车辆信息、用户状态以及临时保存的数据。我们为这些数据设计了设备内存储结构,并单独整理出访问层,按网络状态与界面流程读取和更新所需数据。哪些数据留在设备上、哪些从服务器重新获取,也在这一阶段划分清楚。

与初级开发者对齐、交给资深开发者的设计意图
上门维修应用的结构是与初级开发者一起讨论、验证实现方向而定下的。除了写代码,还解释了界面状态、通信与设备内存储为何要分开,并一起对齐各自的职责。结构工作完成后,把设计决策的理由与可扩展之处整理好,交给接手继续开发的资深开发者。

项目亮点
划清界面、通信与设备内存储边界的应用结构
以同一框架处理预约、车辆信息与服务商品请求的通信层
连同设计决策理由与扩展点一并移交的交接
洞察
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



