拍卖源码架构在拍品详情页上的探索

本文探讨了拍卖详情页的架构设计,强调了稳定性、日志打点和模块通信的需求。采用源码链路开发,利用useRedux进行状态管理,详细介绍了count-down的抽离和页面按需加载的实现。此外,文章讨论了如何通过TS约束模块数据,确保代码质量,并提供了新增模块的步骤。
摘要由CSDN通过智能技术生成

前言

原文地址:github/Nealyang

没有想到之前写的一篇一张页面引起的前端架构思考还收到不少同学关注。的确,正如之前在群里所说,一个系统能有一个非常好的架构设计。但是仅仅对于前端项目页面,其实很难把架构一词搬出来聊个天花乱坠。

但是!好的代码结构的组织的确能够避免一些不必要的采坑。当然,这其中也不乏对前端工程师的工程师素养约束。

一言以蔽之,对于前端项目的架构(代码组织)而言,,好不到哪里去。但是,却可以令人头皮发麻。

当然。。。我还是在尽可能的希望好这也是这篇文章的目的所在。<u>此处权且抛个砖,如果你有更好的见解和想法,欢迎随时交流

拍卖详情页

详情页

图上的点我会在下文中挨个介绍

架构设计图

特点

  • 稳定性要求极高 (这一点区分手淘和天猫,毕竟拍卖…你品)
  • 需要详细的日志打点
  • 模块之间的通信非常多(拍品状态、倒计时、出价等)

对于手淘和天猫的商品,一般都是多个人对多个物品。即使出了问题,也不影响购买,大不了问题修复再购买(最坏的情况)。

但是对于拍卖的拍品。对多对一、价高者得的属性。并且具有一定的法律效应。所以稳定性的要求极其之高。同时拍卖又具有非常高时效性要求,所以 apush、轮询啥的都要求实时更新拍品的状态。

综合以上因素的考虑。最终我们没有选择大黄蜂搭建页面的形式构建起详情页。就先走了源码链路的开发。至于后续是否会推进落地,可能还有待商榷

整体架构

如果你阅读过上一篇文章一张页面引起的前端架构思考,那么可能会对接下来要介绍的目录组织结构比较熟悉。下面简单介绍下改动的部分以及添加的一些东西。

项目级别

目录的职责划分在之前的一篇文章中已经都介绍到了。这里就说下目前的一些改动点:

  • 新增 count-dow
  • 新增loop
  • 移除EVENTS

Count-downloop 都是详情页强相关的,但是由于项目名称为 pm-detail 所以,这里就提到 pages 以外的了。其实提不提的原则很简单。该文件是否可(需)共用

也是秉持着上面的原则,将 EVENTS 文件夹修改到页面容器里面了。毕竟,跨页面的广播需求基本是不存在的。

关于页面容器的介绍,也在之前的一篇《Decorator+TS装饰你的代码》一文中介绍到。这里也不赘述了。

count-down 的简单抽离

倒计时的“递归”交给 RAF 搞定。当然,这里是CountDown上的一个方法。

    /**
     * 开启倒计时
     */
    start() {
   
        let that = this;
        function rafCallback() {
   
            that.time -= new Date().getTime() - that.lastTime;
            that.lastTime = new Date().getTime();
            if (that.time < 0) {
   
                that.time = 0;
            }
            that.updateCallback(that.time);
            that.countDownRaf = window.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 绪论 1 1.1 系统应用背景与功能 1 1.2 系统预览 2 1.3 系统特点 2 第二章 系统要解决的技术问题 4 2.1 连接SQL Server 2000 4 2.2 安装jspSmartUpload文件上传组件 4 2.3 JSP中文乱码问题的处理 5 2.4 页面无刷新地提交数据 6 第三章 系统设计 8 3.1 系统设计思想 8 3.1.1 功能的独立化、模块化。 8 3.1.2 三层架构设计思想 8 3.1.3 系统实现的功能 9 3.2 系统层次概框图 10 3.3 系统模块详细介绍 11 3.3.1 前台模块 11 3.3.2 后台模块 12 第四章 数据库设计 13 4.1 数据库需求分析 13 4.2 数据库逻辑设计 13 第五章 详细设计 19 5.1 系统JavaBean的实现 19 5.1.1 用户出价、商品、短信Bean的功能分析 20 5.1.2 数据库连接类的功能分析 20 5.1.3 管理员登录类的功能分析 20 5.1.4 商品搜索类的功能分析 21 5.1.5 用户登录类的功能分析 21 5.1.6 操作商品类的功能分析 22 5.1.7 操作用户类的功能分析 24 5.1.8 操作短信息类的功能分析 25 5.1.9 操作出价信息类的功能分析 26 5.2 用户界面实现 27 5.2.1 系统首页设计 27 5.2.2 用户登录模块设计 27 5.2.3 用户注册模块设计 28 5.2.4 商品发布模块设计 30 5.3 后台管理界面实现 30 5.3.1 后台登录模块设计 31 5.3.2 系统配置模块设计 31 第六章 系统的运行演示效果 33 6.1 系统前台演示效果 33 6.1.1 搜索商品的运行效果 33 6.1.2 用户注册页面运行效果 33 6.1.3 发布商品页面运行效果 33 6.1.4 浏览商品页面运行效果 35 6.1.5 出价页面运行效果 35 6.2 系统后台演示效果 35 6.1.1 后台用户登录运行效果 35 6.1.2 管理用户运行效果 36 6.1.3 管理商品运行效果 36 6.1.4 管理短信息运行效果 37 第七章 结论 38 参考文献 39 致谢 40
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值