自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 问答 (2)
  • 收藏
  • 关注

原创 什么叫防御式编程

它假设任何错误都可能发生,并且在设计和编写代码时采取预防措施以防止这些错误导致程序崩溃或产生错误结果。防御式编程的关键在于“预防胜于治疗”,通过在代码设计和实现阶段采取预防措施,可以显著减少运行时错误和故障,从而提高软件的质量和稳定性。:编写能够优雅地处理错误的代码。:通过将功能封装到独立的模块或对象中,可以限制错误的影响范围,并使代码更易于测试和维护。:在可能的情况下,代码和系统组件应只具有完成其任务所需的最少权限,以减少潜在的安全风险。:定期进行代码审查,以发现潜在的错误和不安全的编码实践。

2024-06-06 16:12:30 8968 8

原创 10秒一招解决你的npm镜像问题

还在辛苦npm安装cnpm镜像,切换镜像都2024年了,10秒一招解决你的npm镜像问题

2024-04-19 14:01:08 689 2

原创 什么野指针(c++)

野指针(Wild Pointer)是指向不确定位置或者非法地址的指针。当一个指针指向的内存被释放后,如果没有将其设置为NULL,那么这个指针就变成了野指针。使用野指针会导致未定义行为,可能引发程序崩溃或数据损坏。

2024-06-24 11:27:10 9028 17

原创 什么悬挂指针,如何避免(C/C++)

RAII 是 C++ 中一种重要的资源管理技术,它将资源的获取与对象的构造绑定在一起,并在对象销毁时自动释放资源。悬挂指针是指向已经被释放或者不再存在的内存区域的指针。当程序尝试使用这样的指针访问或修改已释放的内存时,会导致未定义行为,通常是程序崩溃或数据损坏。或使用智能指针来实现。在现代 C++ 编程中,推荐尽可能使用智能指针来管理动态分配的资源。总之,预防悬挂指针的关键在于确保指针在使用前不会指向无效的内存,这可以通过立即设置为。会在离开作用域时自动释放它所管理的内存,从而避免了悬挂指针的问题。

2024-06-24 11:22:30 631 3

原创 C/C++ 包管理工具汇总

例如,对于需要跨平台支持的项目,vcpkg和Conan是不错的选择;:专为CMake设计的包管理器,它使用CMake的外部项目模块来构建和链接依赖项。Bazel支持多语言项目,并能高效地管理和构建大型项目。:CMake Package Manager,是一个轻量级的CMake插件,用于在CMake项目中管理依赖项。:虽然本身不是一个包管理器,但结合其他工具(如vcpkg)使用时,可以提供更便捷的构建和依赖管理体验。:虽然主要是一个构建系统,但可以与像Conan这样的包管理器结合使用,以实现快速的构建过程。

2024-06-19 14:49:44 469

原创 什么是交错计算,有哪些场景会出现交错计算

交错计算指的是在编程技术中,多个进程或任务以交替或交织的方式执行,共享资源并轮流取得进展。交错可以带来更好的资源利用和更高的吞吐量,但它也增加了管理任务同步和数据依赖性的复杂性。:交错也可以用来通过在等待输入/输出操作的I/O密集型任务和计算密集型任务之间切换,从而提升性能。当一个任务在等待I/O时,另一个需要CPU周期的任务可以被处理。:在多核或分布式系统中,交错计算可以帮助平衡不同核心或节点上的负载。:在事件驱动或异步编程中,多个任务在事件循环级别交织,基于任务的准备情况(如等待I/O完成)进行调度。

2024-06-19 14:47:42 413

原创 flutter 项目删除 build 文件夹运行报错***\Microsoft.CppCommon.targets(166,5): error MSB3073: 命令“setlocal

在开发flutter 的一个项目,手贱把build目录删除了,项目却运行不起来了。

2024-06-18 14:51:16 300

原创 visual studio 启动flutter项目 提示:无法启动程序” D:\pro\miteoslbuild\windows\x64\x64\Debug\ALL BUILD“ 拒绝访问。

错误原因:没有吧flutter 项目作为启动项,直接启动虽然能够编译成功但是不能运行,build 文件夹也就生成了可运行的文件,直接双击就可以打开你的程序。所以在打开.sln文件后进行如下操作,

2024-06-17 17:21:23 277 2

原创 动态语言的开源编译器汇总

对于动态语言而言,我们通常不会使用传统意义上的“编译器”,因为动态语言往往是在运行时解释执行的,或者被转换为中间形式(如字节码),再由虚拟机执行。不过,为了性能考虑,现代动态语言的实现常常会包含即时编译器(Just-In-Time Compiler,简称 JIT),用于将频繁执行的代码片段编译成本地机器码。动态语言的解释器或虚拟机通常会结合解释和即时编译技术,以达到良好的开发体验和运行时性能。这种混合的技术让动态语言既保持了开发的灵活性,又能在需要的时候提供接近于静态编译语言的性能。

2024-06-07 16:29:58 955

原创 代码设计原则速记图

2024-06-07 09:35:51 87

原创 java static 如何理解

static关键字在Java中主要用于实现类级别的共享,提高了代码的效率和组织性。理解和恰当地使用static可以帮助你编写更清晰、更有效的代码。

2024-06-06 16:10:12 2673

原创 多角度剖析事务和事件的区别

事务关注的是操作的完整性和一致性,常见于数据库管理和交易处理。事件关注的是状态的变化和系统的响应,常见于用户界面和事件驱动的软件架构。在非技术语境下,“事务”更多地关联于需要处理的业务或行政工作,而“事件”关联于发生的具体事情或事故。事务强调的是一个过程,它涉及到数据或状态的有序转换,确保操作的原子性、一致性、隔离性和持久性。事件强调的是状态的改变或外部条件的触发,它是系统响应的起点,可以引发一系列后续的处理或操作。

2024-06-05 17:05:08 1149

原创 vscode运行Java utf-8文件中文乱码报错

vscode 运行utf-8 java文,爆出如下错误。

2024-06-05 15:06:31 341

原创 什么叫硬编码?如何避免硬编码

硬编码(Hardcoding或Hard-coding)是指在编写程序时,直接将具体的值(如字符串、数字、路径等)写入源代码中,而不是通过变量、配置文件、数据库查询或其他动态方法来获取这些值。通过上述方法,可以提高软件的可维护性、可读性和灵活性。

2024-06-04 14:58:20 3936 2

原创 什么叫魔术数字?

在计算机编程中,“魔术数字”(Magic Number)是一个没有明确含义或上下文解释的特定数值。它直接硬编码在代码中,而不是通过变量、常量或者计算得出,这使得代码的可读性和可维护性降低。魔术数字的存在使得其他开发者在阅读代码时难以理解该数值的具体用途或它代表的意义,特别是当这个数字被多次使用但没有注释说明时。这样不仅提高了代码的可读性,也便于日后的维护和修改。例如,在判断年份是否为闰年的代码中直接出现。

2024-06-04 14:46:27 317

原创 vscode eslint 提示 delete `CR` 满屏爆红如何解决

【代码】vscode eslint 提示 delete `CR` 满屏爆红如何解决。

2024-06-04 09:48:32 345 1

原创 三十岁,不能再需要依靠,因为你是所有人的依靠

不再轻易向生活低头,也不再轻易展露脆弱,因为我们深知,自己的肩膀,或许就是别人疲惫时的一处港湾。书架上的书籍,夜晚的灯光,都成了最好的伴侣,指引着我们不断前行,去发现更好的自己。所以,当我们站在三十岁的门槛上回望,不必感伤青春的流逝,因为最好的时光,永远是现在,是每一个勇于承担责任,不断成长的当下。三十岁,让我们以更加从容的姿态,继续前行,在成为他人依靠的同时,也成为自己最坚实的后盾。人们常说,三十而立,仿佛在这一刻,生命被赋予了新的重量,不再是那片随风飘荡的云,而是成为了大地的一部分,坚实而可靠。

2024-05-23 16:19:55 213

原创 肤浅的东西才会流行,真正有深意的事物是小众的

这个观点反映了一种对流行文化和深度文化的观察,认为易于消费和理解的内容更容易获得广泛传播,而那些需要深层次思考或专业知识才能欣赏的事物,则可能只吸引少数人。这种现象在多个领域都有体现,比如艺术、文学、音乐、电影等。

2024-05-23 16:18:29 266

原创 js 实现动态规划

动态规划(Dynamic Programming, DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。下面是一个使用JavaScript实现的动态规划示例,解决经典的“斐波那契数列”问题。值也能在合理时间内计算出结果。这种方法体现了动态规划的核心思想:将问题分解为重叠子问题,并存储子问题的解以供后续使用,从而有效减少计算量。直接递归方法会有很多重复计算,而动态规划通过存储已经计算过的结果来避免这种重复,大大提高了效率。数组作为记忆化存储,避免了重复计算,使得即使是大的。

2024-05-22 18:33:46 375

原创 js 实现贪心算法

贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望导致结果是全局最好或最优的算法策略。接下来,从价值密度最高的物品开始尝试放入背包,如果物品可以完全放入,则直接计算价值;这种方法就是典型的贪心策略,每次选择局部最优(即单位价值最高)的物品处理,最终达到全局较优的解。分数背包问题描述:有N件物品和一个容量为W的背包,每种物品有一个价值(value)和重量(weight),要求在不超过背包总重量的前提下,让背包中装入的物品总价值最大。

2024-05-22 18:31:11 436

原创 候选关键字如何计算

对于每一个属性或属性集合X(从单个属性开始,逐渐增加属性数量),使用 Armstrong’s Axioms(阿姆斯特朗公理)计算X的闭包(X+),这表示由X通过函数依赖能够确定的所有其他属性的集合。检查属性集合X的闭包是否包含了所有属性(即X+ = U,其中U是关系模式R的所有属性)。如果X+包含了所有属性,并且X中没有多余的属性(即去掉X中的任何属性都会使得X+不包含所有属性),那么X就是一个候选关键字。函数依赖表示了一个属性(或属性集合)决定另一个属性(或属性集合)的规则。例如,如果存在函数依赖。

2024-05-21 16:08:42 340

原创 cmd setx 命令解析

是 Windows 操作系统中的一个命令行工具,用于设置用户环境变量或系统环境变量的值。这些变量存储在操作系统中,可以被各种程序和脚本访问。设置的环境变量会永久保存,即即使重启计算机后,设置仍然有效。命令不会影响当前已经运行的命令提示符会话中的环境变量值。

2024-05-20 18:12:43 1282

原创 防火墙最新技术汇总

SASE结合了广域网(WAN)功能和全面的安全措施,如防火墙即服务(FWaaS)、云访问安全代理(CASB)、零信任网络访问(ZTNA)等,为分布式和远程工作场景提供了统一的安全访问解决方案。:随着HTTPS成为网络通信的标准,防火墙必须具备高效解密和重新加密HTTPS流量的能力,以便对加密内容进行安全检查,同时保证数据的隐私和合规性。:随着容器技术的普及,防火墙技术也在向容器层面扩展,提供容器间的安全策略实施和隔离,确保云原生应用的安全。防火墙技术持续发展,以应对日益复杂的网络安全威胁。

2024-05-20 14:15:52 1532

原创 vue3低代码方案汇总

综上所述,Vue3的低代码方案不仅包括了成熟的商业平台如JNPF,还有面向特定领域的数据可视化平台,以及灵活的自定义开发路径,为不同需求的开发者和团队提供了多样化的选择。Vue3作为新一代的前端框架,以其出色的性能和灵活性,成为构建低代码平台的优选技术之一。

2024-05-19 18:40:37 421

原创 react 低代码平台方案汇总

虽然不是专门针对React,但AppSmith是一个强大的通用低代码平台,支持React组件的集成。: 虽然它本质上是一个UI组件库,但React Bootstrap提供了大量现成的UI元素和布局工具,可以看作是构建低代码应用的基础。结合React和其他库,可以快速搭建和分享React应用原型,有一定的低代码特性。虽然其核心不公开基于哪种前端技术,但它生成的应用在前端层面大量使用React进行渲染,适合金融机构和大型企业的定制化需求。它底层也是基于React,且支持React组件的导入和自定义。

2024-05-19 18:39:42 1000

原创 Pinia VS Vuex 的差异

总的来说,Pinia 在简化配置、提高开发效率和提供更好的 TypeScript 支持方面有优势,而 Vuex 则在复杂应用的成熟度和生态系统方面更为丰富。选择哪个库取决于项目的需求、团队熟悉度以及对开发体验的偏好。

2024-05-17 15:51:08 405

原创 为啥面试官总是问浏览器输入url到底发生了什么

每当遇到外部资源的链接,无论是stylesheets, scripts还是嵌入的图片引用,浏览器都会发起请求。浏览器持续解析HTML,发出请求并构建DOM,直至文档结束,此时它会构建CSS对象模型(CSSOM)。一旦DOM和CSSOM构建完成,浏览器便会构建渲染树,计算所有可见内容的样式。有些请求是阻塞性的,意味着直到引入的资源被处理,剩余HTML的解析才会继续。渲染树构建完毕后,接下来进行布局阶段,确定渲染树中所有元素的位置和尺寸。布局完成后,页面得以渲染,或称为“绘制”到屏幕上。

2024-05-17 15:44:05 154

原创 react 使用WebAssembly实战

文件已被正确部署,并且可以通过指定的URL访问。根据实际需求,你可能需要调整函数调用的参数和处理返回值的方式。如果你还没有,可以通过Emscripten等工具将C/C++代码编译为WASM。首先,确保你有一个已编译的WebAssembly模块(

2024-05-16 14:55:27 439

原创 vue3 使用WebAssembly 实战

文件已经正确部署,并且可以通过指定的URL访问。此外,根据你的WASM模块实际功能和导出函数,代码中的具体实现细节(如参数传递和返回值处理)可能有所不同。函数来异步加载并实例化WebAssembly模块。首先,你需要一个WebAssembly模块。假设你已经有了一个编译好的。在Vue 3组件中,你可以在。

2024-05-16 14:53:02 1477

原创 react 渲染引擎经历了那些迭代

React 对事件处理进行了优化,引入了事件委托机制,通过在 document 上监听事件并使用事件冒泡的方式进行处理,减少了事件处理函数的数量,提高了性能。:React 16 及以上版本引入了 Memoization 优化机制,通过对函数组件和 Hooks 的计算结果进行记忆,避免重复计算和渲染,提高了渲染性能。:React 不断优化了调度器的算法和策略,使得 React 能够更好地管理更新的优先级和顺序,从而提高了渲染的效率和响应速度。

2024-05-15 19:55:59 132

原创 有没有用过redux ?别再说redux的基本概念了(React 同学面试必看Redux Toolkit )

Redux Toolkit 是一个官方推荐的用于简化 Redux 开发流程的工具集,其中包含了一些常用的插件和工具。Redux Toolkit 的插件和工具集成在一起,为 Redux 开发提供了更加便捷和高效的方式,但在使用时仍需根据项目需求和特点进行选择和权衡。

2024-05-15 19:54:47 306

原创 react-native 渲染引擎经历了什么

Fabric 架构将 React Native 应用的 UI 渲染和布局分离,采用异步渲染和多线程架构,从而更好地利用了多核处理器和异步计算能力。:为了更高效地渲染列表和长列表,React Native 引入了 FlatList 和 SectionList 组件,它们采用了虚拟化技术,只渲染当前可见区域的列表项,大幅提升了性能。这些迭代不断优化了 React Native 的渲染引擎,提升了应用的性能、稳定性和用户体验,使得 React Native 成为了一种流行的跨平台移动应用开发框架。

2024-05-14 16:57:26 1032

原创 vite 和wepack 的差异

综上所述,Vite 更侧重于提供快速的开发体验和简洁的配置,适合追求极致开发速度和轻量级配置的项目。而 Webpack 则以其强大的可配置性和丰富的生态,适合构建复杂且有特定需求的大型应用。开发者可以根据项目的具体需求和团队的技术栈偏好来选择合适的构建工具。Vite 和 Webpack 是两种现代前端开发中常用的构建工具,它们各有特点和适用场景。

2024-05-14 16:45:02 368

原创 CPU的的处理流程如何快速记忆

通过这种生动形象的记忆方式,你可以更容易地记住CPU处理每个指令的基本流程。当然,现代CPU往往采用更复杂的流水线技术,使得各个阶段可以重叠进行以提高效率,但上述五个步骤仍然是理解CPU工作原理的基础模型。为了快速记忆CPU的处理流程,可以将其简化成五个主要阶段,通常称为“冯·诺依曼架构”的五个基本步骤,或者是流水线处理的几个阶段。

2024-05-13 18:01:20 606 1

原创 js sleep 实现方式

在JavaScript中,由于其单线程和事件驱动的特性,没有直接的sleep函数,但你可以通过一些方法模拟出类似的效果。最常见的方式是使用setTimeout或者,以及更现代的Promise和语法来实现异步等待。下面是几种实现sleep。

2024-05-13 17:57:41 474

原创 WebAssembly在现代前端中的应用与未来展望

WebAssembly(简称WASM)在现代前端开发中的应用日益广泛,其核心优势在于提供了一种高性能、跨平台的执行环境,使得非JavaScript语言编写的代码也能在Web浏览器中运行。

2024-05-11 23:14:26 417

原创 无障碍Web开发:遵循WCAG标准构建包容性用户体验

无障碍Web开发旨在确保所有用户,无论其身体条件或能力如何,都能轻松、有效地访问和使用Web内容。遵循Web Content Accessibility Guidelines (WCAG) 标准是实现这一目标的关键。

2024-05-11 23:13:58 299

原创 前端测试策略与实践:单元测试、E2E测试与可访问性审计

单元测试是针对代码的最小可测试单元进行的测试,通常是指一个函数或一个类的方法。目的是验证这些基本单元按照预期工作,确保代码更改不会破坏现有功能。

2024-05-10 14:46:04 427

原创 vue2 与vue3的差异汇总

Vue 2 与 Vue 3 之间存在多方面的差异,这些差异主要体现在性能、API设计、数据绑定、组件结构、以及生命周期等方面。

2024-05-10 14:45:18 3523 6

原创 React Suspense与Concurrent Mode:探索异步渲染的新范式

React的Suspense和Concurrent Mode是两个强大的特性,它们共同改变了React应用处理异步数据加载和UI渲染的方式。下面我将通过一个简化的代码示例来展示如何使用这两个特性。

2024-05-09 16:52:07 535

空空如也

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

TA关注的人

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