动效技术调查报告(PAG、Lottie)
前言在开发个人网站的过程中发现动效不理想,难以实现复杂动画(主要是因为菜),就开始探索现成的技术解决方案,于是有了该篇文章。本来就想关注手头这个web端的,但是发现有两个较为成熟的多平台方案——Airbnb公司开源项目Lottie 和 腾讯开源的PAG。⚠️不包含任何教程内容,单纯抒发个人见解
解决方案前端有大致有如下的解决方案,我将其分为了俩大方向,一是以前端程序员代码实现为主,通过JS、CSS、SVG等技术;二是通过设计师相关技术为主,通过AE、Figma等技术工具。篇幅有限,本文主要讨论第二种路线
代码导向1. CSS 动画和 Transitions CSS 动画更适合简单的 UI 交互动画和状态过渡 优势: 简单易学,性能良好,浏览器原生支持,无需引入额外的库。 劣势: 功能相对简单,对于复杂的动画效果,CSS 动画可能力不从心,代码量也会增加。维护复杂动画可能不如 JavaScript 库方便。2. JavaScript 动画库 (例如:GSAP, Anime.js, Velocity.js) 按需求采用,通过引入JS库的形式,调用各种API来实现动 ...
我最近在干什么【2】
前言这系列的上一篇是2024.12.05写的,现在是2025.02.06,这都两个月🤔小久。不是完整全面的技术分享,话题聚焦个人成长(学的技术、了解到的信息、看的书……) 方面。文章偏意识流点,单纯分享我最近在干什么,不定期更新,有话则长无话则短。
学Node.js12月感觉就在磨磨唧唧的学Node.js,同时穿插其其中是各种乱七八糟的一些非专业课考试。Node.js只能说是学了一点点,感觉真就只有一点点,果真上大学影响学习。现在闲下来感觉还是得学Node,也大概是下学期的一个主要发展点🎯吧。
准备期末考总不能真挂科吧,临时抱佛脚临时抱佛脚🤗🦶,真就只有期末周能逼出全力,OOP、DSA、数字逻辑都是考前一天晚上发力救起来的,概统提前四五天开始预习,很幸运嗷,也是有惊无险的都过了。大学里绝大部分专业课就是能花20%的时间干出80%的效果,而剩下20%的东西却要投入80%的时间去卷,对我而言在这些事情上投入过度确实是得不偿失,不如临阵磨枪来的高效。
修官网期末考完后,就又重新回到正轨上去了,开始写项目找找感觉。都是些静态的东西,目前都不需要和后端连桥。修了修muxi官网的一些bug ...
2024年末总结
前言回顾一下我2024年的主要成长点,主要是想记录一下我走过的路。这篇也是文笔水平有限想到啥写啥,纯纯意识流🥸。
人生首个挫折🚧对,我将它视为我人生中第一个真正意义上的挫折,它真的把我打的措手不及,对我未来人生规划彻彻底底的颠覆。虽然在之前的文章中我从未袒露,现实中我也尽量避开,但我还是想在这篇文章中坦然的讲讲吧。这件事情一直是我心上的一道深深的伤疤,很少向别人提起。大一上的我其实一直准备着转专业去当一名教师,计划去摆烂的过一生的,也不能这么说,就是一直幻想是在高中讲台上和学生讲讲课唠唠嗑,安安心心的过日子。计算机其实一直是我的planB或者更准确地说是众多兴趣爱好中的一个,那时候的我对计算机就业是没有任何心理准备的。期间准备转专业的过程不想多言,我努力过,但最后的结果就是转专业失败。我恨在我通过了校内的笔试面试,却卡在了政府的官员身上,这种令人无可奈何的戏剧转折打的我措手不及。我也是从这才懂得努力是不一定会成功的,过往的人生我一直都算是幸运儿,只要努力就能得到正反馈,我也一直觉得会一直心想事成下去,但很遗憾人生就不是这样的,只是我还没遇到罢了。虽然我多想笑着来说,觉得已经看淡,现 ...
Radmin LAN技术分析——NAT穿透
前言本文主要是分析一下Radmin LAN,最近在我们团队要做Radmin LAN的产品体验,我负责技术分析部分。本文不涉及具体操作教程,聚焦于工作原理。Radmin LAN 特别适合用于远程工作、在线游戏或搭建小型虚拟局域网。它不同于传统的企业级 VPN 服务,配置简单且使用方便。Radmin LAN 是由一家创始于1999年的(11-50人规模)的小公司Famatech,专注于桌面和服务器管理远程控制软件的开发。Radmin LAN 实际上就是一个VPN,主要用于连接不同地理位置的设备,让它们仿佛在同一局域网内,官网自己也叫它 Radmin VPN 。之后我会将这两种叫法混叫,当侧重在虚拟局域网时,我会叫它Radmin LAN,而侧重不同设备通信时则叫Radmin VPN。
Radmin LAN 的工作原理Radmin LAN 的工作原理核心在于通过其云服务器搭建起分布式虚拟局域网,让分布在不同地理位置的设备能够像在同一局域网中一样通信。这种原理通常涉及几个关键步骤:
创建虚拟局域网(LAN)
建立点对点(P2P)连接
为每个设备分配一个虚拟 IP 地址以模拟局域网
相互间通信使 ...
我最近在干什么【1】
前言打算开一个新系列,偏休闲点的,不是完整全面的技术分享,话题还是聚焦个人成长(学的技术、了解到的信息、看的书……) 方面。文章偏意识流点,单纯分享我最近在干什么,不定期更新,有话则长无话则短。
JS精进之前为了快速从安卓转型到前端,趁早开始干项目实操,就主打速通,两个月fast learn了前端三件套和React,学得挺粗糙笼统的,没有多少内部整合的时间。计划一轮学How,先用起来;二轮学Why,学学原理机制;三轮学What,读读源码。一个月前(11月初)本计划开始学习RN,走走跨端路线,但也没想到这么快就碰到瓶颈,RN起了个头就推进不下去了。于是乎就把精力重新集中会JS的学习,学了近两周,补了之前略过的知识点和ES6之后的语法糖,查漏补缺的同时学学了闭包、提升、类型转化、GC等等稍微偏底层的知识。
前端工程化其实这件事情应该是贯彻始终的,我也是从最开始的一脸懵逼,啥是vite,为啥不用CRA(create-react-app),ESlint是啥,npm又是啥?当初给我的感觉就是混乱,什么乱七八糟的东西,差生文件多。学习过程中也是东学一点西学一点,不知不觉间凑齐了大致上的拼图,拼成了 ...
JS特性之Hoisting(提升)
前言为了写这篇文章其实也不容易,本来想讲GC的,发现lkq写过了,后来想讲类型转换,发现🗻🐟🏠写过了。🫡🫡🫡最后没办法了,让我水一水喽(bushi)
补一下,现在又学习了些新知识,发现这篇讲的有些错误,以补充或纠正的形式特此改正。(24/11/27)
Hoisting提升🏗️前置知识啥是提升?简单的说 Hoisting 是JS引擎在代码执行前将所有声明提升到其所在作用域的顶部这句话你可以在看完这篇文章后再回头看看这句话,真的是一言蔽之。接下来我会简单讲解一下。
所有声明JS中拢共有
变常量var let const
函数function
类class
模块import export是的这些都会提升,但是JS引擎在处理这些声明时会有不同的细节处理。
所在作用域JS中拢共 global function block module四个常规的作用域,这不会区别自己学去。[[JS作用域]]好像还有词法作用域 (Lexical Scope)、动态作用域 (运行时上下文context)、私有作用域 (Private Scope),嘿🫠我也不会,估计是不同的 ...
终端应用开发沉思录
前言以下所有分析皆是从我的视角出发,探讨下我现行局势下觉得最有可能的实现且有未来发展前景的技术方案。由于本人没有啥开发经验,所以多是纸上谈兵,仅仅记录和分享下我个人想法。
移动App的开发模式:在技术选型上,其实好久没这么犹豫过了,最近几天学到React Native,但迟迟没有全身心投入,就是在疑虑其和市面上的其他技术相比是否值得学习。目前移动应用开发有以下三条主要道路(原生 H5 混合)外加一个国内特色的小程序
开发模式
典型应用场景
优点
缺点
代表技术
原生开发
高性能需求、UI/UX要求严格的场景
性能高,完整API支持,用户体验佳
开发和维护成本高,无法跨平台
Android SDK, iOS SDK, UWP
H5开发
跨平台、快速迭代、内容动态更新的场景
一次开发,多平台适配,更新简单
性能受限,功能受限
HTML, CSS, JavaScript, JSCore, V8
混合开发
跨平台、调用原生功能、性能要求较高的场景
跨平台,调用原生功能,维护成本低
性能较原生略差,复杂功能开发受限
React Native, Weex, uni-a ...
Git通讲-第四章:Git的未来与我的感悟
前言这估计就是本系列的最后一篇文章了,我将在这篇中为系列做个总结,探讨一下git的未来,分享下我洋洋洒洒写了这么多篇文章下来的个人感悟。
Git的未来Git不仅是一个强大且灵活的分布式版本控制系统,而且在过去的十几年中不断发展。其未来发展方向体现在两大方面:核心功能的改进和与生态系统中其他工具的整合。
Git的持续发展随着技术的发展和用户需求的变化,Git的开发者们不断对其进行优化和扩展。比如,近年来的更新中引入了以下改进:
性能优化:为了应对超大规模代码库的管理需求,Git引入了诸如partial clone(部分克隆)和sparse checkout(稀疏签出)等功能,这些功能让开发者能够选择性地检出代码,提高了效率。
安全性提升:随着计算机算力提升,SHA-1算法安全隐患的逐渐增加,Git逐步引入了更强的哈希算法(如SHA-256),以保证数据的安全性和完整性。
用户体验优化:Git的CLI体验也在逐步改进,通过更丰富的输出提示和更多的人性化选项,使得命令的执行更为直观,降低了初学者的使用门槛。
未来,Git可能会继续在以下方面优化:
更加智能的合并和冲突解决工具:Git社 ...
Git通讲-第三章(4):GUI工具和插件
前言这篇文章是我昨天晚上躺在床上突然想起来要写的,感觉Git的Git - GUI Clients像是GitHub Desktop还是值得讲一讲的。Git官网上推荐了39款GUI客户端,我就挑几款介绍一下,主要还是带大家了解一下有这东西。此外,由于之前提到过微软收购了GitHub,也在自家IDE-VScode等中官方支持了一些可视化插件,还是挺好用的。
Git GUI工具以下是几款Git GUI工具的介绍:
1. Sourcetree | Free Git GUI for Mac and Windows
开发者:由Atlassian开发,免费使用。
支持平台:Windows、macOS。
特点:
详细的提交历史可视化:Sourcetree展示了清晰的提交历史图,帮助用户追踪项目进展。用户可以直观地查看提交、分支和合并情况。
分支和合并管理:简化了分支和合并操作的复杂性,通过图形化的分支树状结构,使得Git操作更直观。
子模块支持:能够管理多个子模块(或仓库),方便对大型项目的依赖进行管理。
适用场景:适合需要高效管理分支和分布式项目的用户。
优缺点:
优点:界面详细、功能丰富、免费。 ...
Git通讲-第三章(3):子模块
前言这个子模块(submodule) 也是我在写这章的时候才知道的东西😁,也是把书读厚了,学到新东西了。我也没实践过但是我猜啊,比如在React Native的开发过程中,除了用RN的那一套前端代码,在需要用到某些RN无法实现的功能时,需要进行原生开发,这时候这一个项目同时又前端的代码(typescript)、Android的代码(kotlin)、ios的代码(swift),利用这个子模块(submodule)就可以在这个大项目中又对三块截然不同的代码进行细分管理。嘻嘻,讲都讲到这了那我就简单提提我设想的技术路线,我之前学过一年的安卓开发,期间也接触了ios的开发,也是发现了原生开发的磨叽,想着能否实现跨端,于是发现了React Native,便开始从头来过,走前端路线三件套、React、ts、tailwind等等前端技术,最后过渡到RN,在移动端深入下去🤪🤪🤪。
子模块(submodule)Git中的子模块(submodule)功能主要用来管理一个仓库中的多个独立的项目代码,便于将其作为另一个项目的依赖并一起管理。子模块适合那种多项目组合的场景,比如在一个大项目中嵌入另一个独 ...