自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(936)
  • 资源 (1)
  • 收藏
  • 关注

原创 echarts:一个复杂的瀑布图制作

分析一下这个需求,主要有几个难点:答:echarts 官方 把这种柱子叫瀑布图,实现的原理就是使用一个透明的柱子给他顶起来。我直接搬过来原文。我本来想到的是 y 轴的 type 设置为 time但是做着做着,发现不行,我们做瀑布图要用到 stack,而 stack 不支持 type = time那就只能用 type = value 了,也就是要把时间转化为一个数值,比如在上面的图中,最底部是 13:00,我们先以 13:00 为 0,那么 12:00 就是 1,11:00 就是 2,以此类推。那么

2024-02-06 11:51:44 3205

原创 spring:微服务springcloud入门以及eureka、ribbon、hystrix、feign、gateway的使用

微服务的简单入门

2023-12-18 09:00:00 1574

原创 设计模式:DDD领域驱动设计

面对复杂系统,怎能不知道DDD

2023-05-08 18:42:37 1881 7

原创 抽象语法树AST以及babel原理

什么是AST?借用一下百度百科的解释:在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。其实意思就是将代码以树的格式展现出来,举个例子你就明白了:大家可以在这个网站 https://astexplorer.net/ 上输入代码,会被解析为 AST,如图:可以看到,代码的每一个字符都以树的形式展示了出来。AST的应用

2022-04-10 23:47:29 2015

原创 RN:React Native原理以及新架构JSI、Fabric等概念

说明RN需要一个JS的运行环境, 在IOS上直接使用内置的javascriptcore, 在Android 则使用webkit.org官方开源的jsc.so。 此外还集成了其他开源组件,如fresco图片组件,okhttp网络组件等。RN 会把应用的JS代码(包括依赖的framework)编译成一个js文件(一般命名为index.android.bundle), , RN的整体框架目标就是为了解释运行这个js 脚本文件,如果是js 扩展的API, 则直接通过bridge调用native方法; 如果是UI

2022-02-12 21:56:59 18593

原创 webview原理和JSBridge

webview是一个嵌入式的浏览器,我们平常使用频率最高的就是客户端内嵌的webview特点:运行在webview中的JS代码有能力调用原生的系统API,没有传统浏览器沙箱的限制。目前javascript和客户端(后面统称native)交互的常见方式有两种JSBridgeschemaJSBridge当我们在native内打开m页,native会在全局的window下,为我们注入一个Bridge。这个Bridge里面,会包含我们与native交互的各种方法、比如判断第三方App是否安装、获取网

2022-02-09 18:39:10 8863

原创 小程序底层原理

小程序的 Http Rquest 请求是不是用的浏览器 Fetch API?不是, http request是由逻辑层发起,通过native去触发的,且不支持promise。小程序渲染再同一个线程么?小程序是双线程设计,即视图渲染与业务逻辑分别在运行在不同的线程中。这个设计主要是解决web技术中的一个痛点:web页面开发渲染线程和脚本线程是互斥的,长时间的脚本运行可能会导致页面失去响应或者白屏,体验糟糕。小程序为了更好体验,将页面的渲染线程和脚本线程分开设计在不同线程中执行,具体实现:● 视图v

2022-02-07 19:39:14 2464 1

原创 一文搞清楚软链接和硬链接

前言我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data)元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inod

2022-01-06 16:38:53 4254 6

原创 可能是最全的h5唤起App方案

背景调研 h5 唤起 App 方案目的:引导已下载用户打开APP,引导未下载用户下载APP。先说结论ios9 及以上用 Universal Link(uc/qq浏览器不支持,不过safari占比最大)android6及以上用applink(chrome和小众浏览器支持,市场占比还是比想像中大的)其它情况scheme(各种限制及弹窗确认)微信ios7月的版本已经支持ulink了,android还是乖乖走应用宝吧(引导出微信也行,效果不好)ok,接下来我们一个一个聊URL Scheme有

2021-11-08 18:28:49 28123 28

原创 px、pt、dpi、dip、分辨率、屏幕尺寸等等概念

文章目录基本概念屏幕尺寸屏幕比例像素pxpt/point分辨率DPI(点每英寸)PPI(像素每英寸)DIP/DPdensityandroid最后参考资料基本概念屏幕尺寸屏幕的对角线长度,一般讲的大小单位都是英寸。比如我们说 iphone6 是6.7英寸,就是屏幕对角线为 6.7英寸。屏幕比例只确定了对角线长,2边长度还不一定。所以有了4:3、16:9这种,这样就可以算出屏幕边长了。像素pxpx 不是自然界的长度单位,而是一个抽象的单位,比如:windows桌面属性里的“设置”看到,如果是10

2021-08-15 21:28:37 9768 11

原创 web端自动化部署方案

背景为了提高发布效率,践行DevOps,我们使用 gitlab 的 CI 工具作为我们前端项目的自动化部署方案。集成后的开发&发布模式发布测试环境:代码提交到test分支自动发布。发布正式环境:将test代码合并到master分支自动发布。集成CI/CD思路集成步骤1、集成ci脚本# test、preview和master分支默认支持线上部署# develop分支默认是开发分支,不建议(禁止)触发CI/CD流程,姑不作为默认触发部署分支stages: - instal

2021-01-30 23:52:10 1216 3

原创 SEO:基于SPA的搜索引擎优化方案调研

背景由于SPA项目不利于SEO优化,于是有了以下几个方案方案选择方案一:服务端渲染(SSR)直接java或php渲染(那样就又是前后端不分离了,不考虑)服务端起一个node应用优点:SEO 友好首屏渲染快(可在服务端缓存页面,请求到来直接给 html)缺点:代码改动大、需要做特定SSR框架的改动(例如vue的nuxt,react的next)丢失了部分SPA体验node 容易成为性能瓶颈方案二:构建时预渲染方案在项目开发完成之后,将有限的需要SEO的页面挑选出来,借助p

2021-01-14 18:25:19 929

原创 vue:详解vue中的代理proxy

问题我们本地调试一般都是 npm run serve,然后打开 本机ip:8080(localhost:8080)对吧,这时候我们要调接口调试,后端的接口的地址可能在测试环境,也可能是自己电脑的 ip,总之不是你的 lcoalhost:8080,那么你调接口就会产生跨域,那么怎么办呢?就需要proxy出场了复习一下跨域的解决方案jsonpcorsNode中间件代理(两次跨域)nginx反向代理CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案JSONP只支持GET请求,

2020-07-11 22:58:47 78099 40

原创 js:浅谈函数式编程

背景函数式编程是一种编程思想,其余的还有声明式与命令式函数式举例假设我们要把字符串 functional programming is great 变成每个单词首字母大写var string = 'functional programming is great';var result = string .split(' ') .map(v => v.slice(0, 1).toUpperCase() + v.slice(1)) .join(' ');整个过程就是 join(m

2020-05-09 15:18:02 871

原创 公网网卡和私网网卡

Network Interface Card(网络接口卡)简单理解:网卡就是服务器的“网络插座”。电脑想联网,需要网卡。服务器CPU / 内存 / 硬盘│网卡│网络发送数据接收数据MAC 地址管理网络通信名称理解网卡服务器连接网络的接口公网网卡对外提供服务,连接互联网私网网卡内部服务通信,不暴露公网ENI云上的可插拔网卡公网 IP外部访问地址私网 IP内部通信地址公网网卡负责“别人找到你”,私网网卡负责“你的系统之间互相通信”。

2026-08-05 15:50:47 45

原创 Android 根目录相关文件说明

打开 Android Studio 项目,第一层就是,很多人只会点开 app 模块写代码,完全不知道外层文件作用,下面按「必懂核心」「构建配置」「Git&忽略」「缓存日志」分类讲清楚,同时附上 app 模块内部关键文件。

2026-07-31 14:37:54 206

原创 AGP 零基础入门:彻底搞懂 Android Gradle Plugin

AGP 全称 Android Gradle Plugin,中文:Android Gradle 构建插件。Gradle:通用构建工具,负责整体任务调度、依赖管理、任务执行,不止用于 Android,Java、Kotlin 项目都能用。AGP:Android 专属插件,是 Gradle 的「Android 适配器」,让 Gradle 拥有编译安卓代码、打包 APK、处理资源、签名、混淆、多渠道打包的能力。核心结论:Gradle 是引擎,AGP 是专属变速箱,没有 AGP 就没有 Android 项目构建。

2026-07-31 11:18:23 363

原创 AndroidX 完全入门指南

AndroidX 是 Google 推出的新一代 Android 兼容支持库,用来替代老旧的 Android Support Library,统一所有 API 版本适配、兼容低版本系统,让开发者不用再做繁琐的系统版本适配。新项目直接默认 AndroidX,绝不使用任何 Support 库旧项目尽早迁移,避免后续无法适配新版本 Studio、新框架只引入需要的库,不盲目导入全家桶,减少包体积统一依赖版本,避免版本碎片化导致冲突报错优先学习 Jetpack+AndroidX,贴合企业级开发标准。

2026-07-31 11:10:13 292

原创 软件著作权(软著)个人自助办理完整指南

首次申请一律V1.0,后续迭代升级(新增云端同步、导出Excel等)再申请V1.1版本软著。不能只粘贴代码,必须配APP实际截图+文字说明功能,纯文档极易被打回补正。官网填报后自动生成《登记申请表》+《申请确认签章页》,嫌麻烦直接找靠谱代理,只需要发源码+APP截图即可。,所有应用商店均可直接上传使用,可在线验真伪。示例命名:车辆停车记录管理APP V1.0。👉 给你的建议:代码排版能力没问题,审核通过后,直接在后台下载。

2026-07-30 10:03:17 177

原创 2026年Android应用全渠道上架指南

个人开发者仅可做免费工具类、无经营性付费APP;内购、订阅、付费下载全部需要企业营业执照;软著名称必须和应用上架名称高度匹配,否则100%驳回。Android碎片化分发体系对独立开发者非常不友好,但如果是垂直小工具类App,优先跑通小米+应用宝两个个人可上架渠道,最低成本验证产品;后续有商业化需求再办理企业资质,补齐华为、OPPO、vivo等厂商商店。如果计划面向海外用户,Google Play是绕不开的核心阵地,从开发阶段就做好GMS/HMS双端兼容,后续上架会省去大量重构成本。

2026-07-29 17:39:55 345

原创 Android:Sync Project with Gradle Files做了什么

图标就是那个刷新圆环箭头。

2026-07-29 17:33:06 334

原创 ios:报错Embedded binary is not signed with the same certificate as the parent app.

xcode _> setting -> apple accountes -> 选择团队 -> Manage Certificates -> 左下角的加号Apple Development -> 添加后返回点击 Download Manual Profiles 刷新 Profile。苹果开发的证书过期了。

2026-07-27 12:11:29 229

原创 ios:区分 App Store / Ad Hoc / Development

本地插iPhone真机、Xcode直接Run安装调试用,。

2026-07-25 19:38:09 138

原创 ios:GitHub Actions云端Xcode26打包上架TestFlight

彻底摆脱本地Mac硬件限制,Intel电脑永久可用GitHub免费额度比Xcode Cloud更充裕流水线完全自定义,适合长期开发、多项目复用不依赖苹果云端黑盒机制,可控性拉满。

2026-07-25 18:18:06 239

原创 ios:Xcode Cloud上传TestFlight/上架App Store

所有上传 App Store Connect / TestFlight 的应用,必须使用 Xcode 26 + iOS 26 SDK 编译而你的电脑是无法安装完整版 Xcode 26本地打包会报 SDK Version 错误,100%上传失败网上大部分教程都是 M1/M2 本地打包,对你完全不适用很多人误以为必须换Mac,其实不用。本文给你一套「Intel Mac 永久续命」官方最优方案:Xcode Cloud 云端打包无需手动证书、无需p12、无需描述文件、无需换电脑、无需黑苹果、无需租云主机。

2026-07-25 18:11:23 208

原创 ios:证书配置

钥匙串生成CSR → 后台建Apple Distribution证书 → 注册带权限AppID → 生成App Store描述文件 → Xcode勾选自动签名绑定Team → 主App+Widget双Target统一配置完毕。

2026-07-25 18:03:51 344

原创 ios:build流程Archive上传到TestFlight

先点Validate进行预验证。

2026-07-25 17:46:22 365

原创 ios:版本号和Build构建号

主App Build=2,Widget也要改成2,避免版本不匹配异常。上架后商店页面显示的就是这个号,大版本迭代改:1.1、1.2、2.0。:第二次2、第三次3,重复上传会被苹果拒绝。

2026-07-25 17:07:19 266

原创 ios:Bundle ID和内购产品ID

其实,对于个人项目吗,中间的公司我们也填了 wheremycar,但其实应该是公司名称,这样的话内购产品ID应该是。,然后WhereMyCar其实也应该是小写最好,这样BundleID保持纯小写。同一个页面,切到 Widget Extension 这个Target,

2026-07-25 16:21:30 227

原创 ios:环境变量

定义 ObservableObject根视图注入@main任意子页面取用这是 SwiftUI 最推荐的全局状态/环境变量写法。编译环境、接口地址、多环境区分→.xcconfigiOS系统权限、白名单、系统配置→Info.plist调试时临时切换环境SwiftUI全局主题、状态、APP运行参数→用户保存的设置、数据系统底层环境→。

2026-07-24 12:40:40 214

原创 经纬度坐标

经纬度坐标(Latitude / Longitude)常见有,本质都是表示同一个位置,只是表达方式不同。

2026-07-24 12:38:14 212

原创 SwiftUI:iOS 常用视图组件速查

SwiftUIdivspan / pTextimgImagebuttonButtoninputTextFieldtextareaTextEditorul/liListGridLayoutLazyVGridVStackflex-rowHStackZStackRouterTabViewDialog@StateProps@Binding布局 = Flex(VStack/HStack/ZStack)页面 = React/Vue 的组件(View)

2026-07-22 11:13:21 218

原创 Swift:语法速查(Java/JS 开发者版)

默认用let,需要修改再用var。数据模型优先struct,需要继承或共享状态再用class。Optional是 Swift 最重要的概念,优先使用??,避免!。集合操作优先用mapfilterreduce等高阶函数,而不是手写循环。大量使用guard提前返回,减少嵌套。现代异步统一使用,旧的 GCD()只需了解即可。闭包中涉及self时,优先考虑是否需要,避免循环引用。如果把 iOS 开发真正需要的 Swift 语法按重要性排序,这篇已经覆盖了。

2026-07-22 11:10:46 248

原创 python:Mac 系统 uv 完整安装+入门实战

uv 英文官网:https://docs.astral.sh/uv/需要我把这份内容精简成可直接复制发布到CSDN/掘金的排版版正文吗?uv 中文文档:https://uv.doczh.com/Astral(Ruff 同团队)基于 Rust 开发,,是目前Python新项目首选工程化工具。,环境变量自动写入zsh配置。

2026-07-14 11:13:04 384

原创 Nacos:一篇搞懂它到底是干什么的

微服务时代的“服务通讯录 + 配置中心”让大量服务能够动态发现彼此,并统一管理配置。

2026-05-22 14:12:25 373

原创 前端主流Monorepo方案对比:Turborepo

不是“谁对谁错”,而是“不同阶段最优解不同”。这是现在 React/Vue 圈最流行方案。✅ node_modules 优化。就是典型 monorepo 场景。“既然高度耦合,那就别拆了。Monorepo 也不是银弹。前端工程化这十年的核心演变。我给你讲真正的底层逻辑。所以需要 Lerna。✅ link 本地包。比 npm 快很多。上百 package。组件库 + 业务系统。

2026-05-21 17:57:20 469

原创 提示词Prompt技巧

写提示词(Prompt Engineering)其实有一套比较成熟的方法论。很多人刚开始会随便问一句,但高手写的提示词和普通人差别很大。很多人提示词是这样写的:AI只能猜。高手会这样写:你会发现:这个原则几乎适用于所有模型,比如 GPT-4、Claude、Gemini。不要写一大段话。最好写成结构:例如:AI会更容易理解。大模型对 角色设定 非常敏感。例如:或者:这样 AI 的回答会明显不同。例如:四、给示例(Few-shot)这是非常经典的技巧。例如:AI就会模仿模式。如果不限制格式

2026-03-08 12:29:57 519

原创 大模型切换工具CC Switch

是一个给。。它主要用于管理像这样的 AI 编程助手。

2026-03-08 12:21:01 19582 1

原创 什么是skill以及和MCP的关系

Skill = AI 可以调用的一项具体能力API函数服务实现。

2026-03-08 12:14:01 679

原创 什么是MCP和Function Calling

是一种让。它最早由 Anthropic 提出,主要用于配合 Claude 以及 AI 开发工具生态。任何工具只要支持 MCP,就可以被 AI 接入。

2026-03-08 12:07:33 400

nginx判读user_agent并转发请求配置文件

nginx判读user_agent并转发请求配置文件

2022-03-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除