3天3定制大屏,反向PUA

news/2024/5/20 22:20:57/文章来源:https://blog.csdn.net/m0_68036862/article/details/128049441

摘要

    本次分享一段无讨价还价余地的单人3天定制化大屏全过程(强调说拖拽屏的请绕道,和你想的不一样),要动效、要地图、要流光。天坑的心理博弈到最终解决的过程及技术思路。

前因

     没啥征兆突然接到说,要在下周完成2个大屏的定制开发,起初没提有动效,定时器等等内容的要求,只是说要根据美工的设计完成相关内容,并不觉得有啥难度,周末突发指令,要3D要3个大屏,给我顿时整傻了,挡了3d的无理要求,拗不过加码,3个大屏又附加了动效、定时器、翻牌器,流光等效果。
    总之是能动的都要动,经过一番心态炸裂的心理建设后,👽推掉了其他开发任务,对你没看错,还有3项任务排着队,(安安静静的写代码都是个奢望),周末为了缓解惆怅,试着找了找合适能加速开发过程的组件(主要是效果类),到此处可能会有人吐槽,模板多如牛毛找个模板不香嘛,此处补充一下,未定制稍微好说一些,定制的和常规的模板兼容可能还没手写的快,因此着重找了组件。

过程

     可能是机缘到了运气好,顺手就找了一个符合要求的组件Vue 大屏数据展示组件库,想要的装饰、边框、翻牌器、排名轮播等都有,基本把动效问题解决了一大半,剩下的主要就是地图、图表及内容布局、定时器、数据流调整。

  • 💪 合适的工具找到了,因为内容多,尽量提取卡片等边框组件化,某些可能有标题或者无标题,边框样式不同等,随时写随时加入参兼容,我的步骤是第一个尽量抽组件,第二个兼容扩展组件,第三个基本就不费什么时间了。
  • 💪 解决布局问题,Layout每个UI组件基本都有,但有个问题需注意flex布局问题尽量先搞定gutter栅格间隔,的原理再去处理,避免随意的padding或者margin造成的时间浪费。
  • 💪 echarts之前的社区貌似是被关闭了,很多老哥可能没有找到社区案例的地址,补充一下 地图功能大略和以下差不多,主要就是SVG加载原理加上元素数据的组件。

  • 💪定时器相关的内容,主要是每个区块触发的时间点要区分,因此存在很多的定时任务,关闭时容易遗漏,因此简单做了处理,销毁时统一销毁
/*** 调度器*/
export default class dispatcher {constructor() {this.watcher = [];}startNew(callBack, timer) {var timer = setInterval(callBack, timer);this.watcher.push(timer);}destroyed() {//移除for (let index = 0; index < this.watcher.length; index++) {const element = array[index];clearInterval(element);}}
}复制代码
  • 💪 数据流的处理,之前在文章里面吐槽了单端的问题,因此即便是前期的模拟数据,我也习惯梳理好数据流以待后来适配,并不会因为时间问题随意去搞,避免加重后期的工作量。
  • 💪 最后初步成型后的好处,逐步反哺体现,细化的部分基本轻松就进行了调整,但你以为用组件就完了嘛,以上的组件原理很好,一些不太归纳的svg动画处理成组件后,的的确确增加了便捷性,但定制二字不是说说而已,还是得继承重写,重新定义部分动画。
  • 💪 至此逐步进入尾声,也顺利完成和美工的切磋,加班?开玩笑吧,兽人永不为奴!!,至于后两天的时间,是专门挤出来给领导提意见修改的,“唉,卑微的程序猿!!”

题外话

     行业及职业焦虑就像波光粼粼的水面,哪怕微风一吹,也会震颤不止,外加本段工作沉下来,且情况复杂,越来越发现做软件的特质跟人的问题相关性很强,注定 “江湖只能孤身一人”,正好又是世界杯,之前有讨论,说是中国团队项目对比“乒乓球”和“足球”,英雄主义特质明显,但一直在强调团队协作,工作里面这几年听到最多的是依旧是和人打交道最难,我的焦虑又在烦躁不堪的时候突然冒出头来。
     之后,经历了一些事,又找到一个方向,疫情结束后的方向,在结束前是不是应该预测准备一些东西,于是,内心又莫名的斗志满满,也许焦虑的源头本质就是失去方向,对未来失去斗志和信心才反复的吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_37188.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

身份安全风险分析

摘要 从勒索软件到 APT&#xff0c;身份风险是重要的攻击向量。 管理 Active Directory 的复杂性&#xff0c;导致所有组织都存在1/6的可利用的特权身份风险。 这些身份风险包括使用过时密码的本地管理员、具有不必要权限的错误配置用户、在终端上暴露的缓存凭据等。 当攻击者…

arthas进阶版排查问题之idea插件工具操作

arthas前面的文章讲了怎么去使用命令排查线上问题&#xff0c;线上出了问题就需要我们去排查问题和处理程序异常&#xff0c;但是线上一般出问题不太好解决&#xff0c;总有一些奇怪的问题&#xff0c;当然很多场景是测试测试不到的&#xff0c;我们不能百分百保证线上不出问题…

阿里大咖纯手写的微服务入门笔记,从基础到进阶直接封神

前言 学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的…

AcWing 搜素与图论

搜索 DFS 全排列 代码 #include<iostream> using namespace std;int vis[10], a[10];void dfs(int step, int n) {if (step n 1){for (int i 1; i < n; i)printf("%d ", a[i]);printf("\n");return;}for (int i 1; i < n; i){if (!vis[i…

【调优】大数据常见 Join 的使用场景

【调优】大数据常见 Join 的使用场景 上次写了大表和大表 join 的调优方法&#xff0c;今天总结一下大数据常见的 Join 方法。 1.Shuffle Join 大数据采用的是分布式存储&#xff0c;一个表的数据会分散在各个节点。为了进行 join&#xff0c;通常都会进行 shuffle 操作&…

ESG,TO B长期主义里的「新战役」

中国企业最好的方式是从初始阶段就植入ESG基因&#xff0c;使它逐渐从隐形变成显性基因。长期坚持此类发展导向&#xff0c;对后续发展ESG战略&#xff0c;提升ESG合规能力也将成为一种积累和准备。 作者|三七 编辑|皮爷 出品|产业家 20世纪初期&#xff0c;伦敦得到一个延…

HttpMessageConverter 消息转换器

HttpMessageConverter 简介 HttpMessageConverter 是SpringMVC中提供的一个策略接口&#xff0c;它是一个消息转换器类&#xff0c;Spring Mvc中就是由HttpMessageConverter负责转换HTTP的请求和响应。 默认情况下&#xff0c;Spring Boot 会自动加载如下消息类型转换器&…

数字验证学习笔记——UVM学习1

一、类库地图 在SV模块中&#xff0c;验证环境整体的构建&#xff0c;是从底层模块的验证组件搭建到通信和激励生成这些元素无论是软件对象的创建、访问、修改、配置&#xff0c;还是组件之间的通信等都是通过用户自定义的方式来实现的。UVM验证方法学作为之前所有方法学的融合…

【语音去噪】谱减法+维纳滤波+卡尔曼滤波语音去噪【含Matlab源码 1881期】

⛄一、谱减法维纳滤波卡尔曼滤波语音去噪简介 1 维纳滤波算法 在传统的去噪算法中,维纳滤波因其操作简单、去噪效果好,被公认为一种经典的去噪算法。语音信号在时域的表示为: yi( t) si( t) ni( t) ,其中si( t) 、ni( t) 和yi( t) 分别是第i帧原始语音信号、噪声和被噪声污染…

java检验mp4文件完整性的一个方法:使用ffmpeg

问题引入 最近笔者在写一个多线程下载视频文件的程序&#xff0c;打算让这个程序在我的空闲服务器上运行&#xff0c;但是几轮测试之后发现&#xff0c;有时候会存在下载的视频文件不完整的情况&#xff0c;这就导致了有些文件无法正常播放 问题排查 经过一周的排查后&#…

面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了

由于现在大多计算机都是多核CPU&#xff0c;多线程往往会比单线程更快&#xff0c;更能够提高并发&#xff0c;但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁&#xff0c;你的程序反而不能支持更高的TPS。 时间片 多任务…

Java23种设计模式之第三弹-工厂模式

说起工厂&#xff0c;我们第一反应是制作什么东西的吧~。在现实生活中&#xff0c;工厂 &#xff0c; 就是用于生成一些特定事物的厂商。 回到我们此处说的工厂模式上&#xff0c;什么是工厂模式呢 &#xff0c; 顾名思义&#xff0c;就是生成我们的对象的类就会称成为工厂。 …

关于BigInteger和BigDecimal

BigInteger BigInteger类是用于解决整形类型(含基本数据类型及对应的包装类,)无法表示特别大的数字及运算的问题,即使是占用字节数最多的整形long,能表示的范围也是有限的.理论上,你可以使用BigInteger表示任意整数基于java8中BigInteger的构造方法. BigDecimal的构造方法2 …

[附源码]计算机毕业设计JAVA汽车租赁系统

[附源码]计算机毕业设计JAVA汽车租赁系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis M…

傻白入门芯片设计,芯片键合(Die Bonding)(四)

一、键合( Bonding) 作为半导体制造的后工序&#xff0c;封装工艺包含背面研磨(Back Grinding)、划片(Dicing)、芯片键合(Die Bonding)、引线键合(Wire Bonding)及成型(Molding)等步骤。这些工艺的顺序可根据封装技术的变化进行调整、相互结合或合并。芯片键合(die bonding)工…

Linux之分区【详细总结】

目录分区介绍分区查看指令lsblk ![请添加图片描述](https://img-blog.csdnimg.cn/d7ea5468d719433ea6ee4ab0eb145770.png)lsblk -f挂载案例分五部分组成 虚拟机添加硬盘 分区 格式化 挂载 设置自动挂载虚拟机增加硬盘查看整个系统磁盘情况查询查看整个目录磁盘占用情况磁盘情况…

cpu设计和实现(协处理器hi和lo)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多同学可能不了解mips处理器&#xff0c;如果个人想补充一点mips cpu的知识&#xff0c;可以找些书籍资料来读一下&#xff0c;比如《See Mips R…

Gradle学习笔记之第一个Gradle项目

文章目录前言创建gradle项目gradle目录结构gradle常用命令修改maven仓库地址启用init.gradle的方法关于gradle仓库gradle包装器前言 Gradle是Android构建的基本工具&#xff0c;因此作为Android研发&#xff0c;有必要系统地学一学Gradle&#xff0c;环境windows就可以。 创建…

微服务介绍微服务环境搭建

一、微服务介绍 从互联网早起到现在&#xff0c;系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布 式架构--->SOA架构--->微服务架构&#xff0c;当然还有悄然兴起的Service Mesh(服务网格化)。 微服务架构 微服务架构在某种程度上是面向…

使用 Next.js 搭建 Monorepo 组件库文档

文章为稀土掘金技术社区首发签约文章&#xff0c;14 天内禁止转载&#xff0c;14 天后未获授权禁止转载&#xff0c;侵权必究&#xff01; 阅读本文你将&#xff1a; 使用 pnpm 搭建一个 Monorepo 组件库使用 Next.js 开发一个组件库文档changesets 来管理包的 version 和生成…