自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

已黑化的小白的博客

互关必回,三连必回

  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 Alevin的配置(使用maven工具在IDEA中进行配置)

Alevin的配置(使用maven工具在IDEA中进行配置)

2023-03-19 16:50:09 434 4

原创 Rust 的“零成本抽象”是个谎言吗?——当极致性能成为演化的枷锁

《零成本抽象的代价:Rust架构设计中的演化困境》一文探讨了Rust语言"零成本抽象"理念的潜在问题。作者指出,Rust通过编译期单态化实现泛型零开销,却付出了代码膨胀、接口固化等代价,导致系统难以适应需求变化。相比Java等语言的运行时动态分发,Rust的编译期决策虽然高效但缺乏灵活性。文章警告过度优化会埋下技术债,建议在非关键路径适度接受性能损失换取可维护性,提倡分层架构设计。最终强调,工程智慧在于平衡性能与演化能力,而非盲目追求零成本。

2025-11-17 09:12:30 816

原创 Unsafe Rust:在安全边疆之外,Rust 如何与“必要之恶”共处

Rust的"必要之恶":unsafe关键字的安全边界艺术 Rust通过unsafe关键字在安全与实用间达成精妙平衡,将不安全操作限制在清晰标记的范围内。这一设计承认底层编程中的必要风险,同时保持了整体的安全保证。文章剖析了unsafe的五大合法场景,包括解引用裸指针、调用不安全函数等,并提出了"不安全性卫生学"三大原则:封装不安全代码、添加安全注释、谨慎处理泛型。与C/C++的全面不安全不同,Rust将风险隔离在明确定义的区块内,使代码审查和验证能聚焦高危区域。标准库

2025-11-16 08:00:00 722

原创 Pin 与自引用结构:Rust 如何在“禁止移动”的牢笼中孕育异步未来

Rust的Pin机制巧妙解决了自引用结构的内存安全问题。通过承诺"不可移动性",Pin为异步编程和状态机提供了安全基础:1) 移动语义与自引用的天然冲突;2) Pin作为对内存位置的承诺封装;3) 成为async/await的隐形支柱;4) 通过限制获得表达自由。标准库工具如Box::pin简化使用,虽然存在学习曲线,但为高性能场景提供了安全护栏。Pin展现了Rust的核心哲学:精确约束换取更大表达空间,在静止中孕育动态能力。

2025-11-15 09:15:00 642 1

原创 Send 与 Sync:Rust 如何用两个 Trait 重新定义“线程安全”

摘要: Rust通过Send和Sync两个trait在类型系统中静态保障线程安全:Send允许所有权跨线程转移,Sync确保共享引用可安全并发访问。与C++/Java等依赖运行时检查的语言不同,Rust在编译期阻断非线程安全操作(如Rc跨线程使用)。标准库并发原语(如Arc/Mutex)均基于此机制构建,实现了零成本抽象的安全并发。这种将线程安全编码为类型属性的范式,相比传统语言的锁依赖或Go的channel建议,提供了更根本的安全保障。

2025-11-14 09:30:00 1186

原创 Drop Trait:Rust 如何在“死亡”中构建确定性

Rust的Drop特性实现了资源管理的确定性终结。通过将资源释放与作用域绑定,Drop确保了每个资源都有明确的生命周期终点,解决了传统编程中资源泄漏、双重释放等问题。它不仅是析构函数,更是责任履行协议,要求资源拥有者必须负责其完整生命周期。Drop的确定性设计使得文件、锁、线程等资源管理更加可靠,特别适合高要求领域。Rust通过限制Drop类型复制、明确析构顺序等规则,避免逻辑矛盾。即使在panic场景下,Drop仍保持行为可预测。这种设计哲学体现了"拥有即负责"的理念,为不确定的软件世

2025-11-13 09:30:00 928 1

原创 Result 和 Option:Rust 对“人类会犯错”这一事实的制度性抵抗

摘要:Rust通过Option和Result类型将错误处理提升为语言核心机制,从制度上强制开发者处理失败场景。Option<T>显式表示可能为空的值,取代了危险的null引用;Result<T,E>将错误作为正常返回值的一部分,避免异常机制的不可见性。这种设计哲学将运行时风险转化为编译期决策,促使API更诚实、测试更全面、系统更健壮。与其他语言相比,Rust通过类型系统实现"错误处理不可忽略"的强制约束,既避免了防御性编程的繁琐,又不牺牲安全性。这种对不确定性的制

2025-11-12 09:30:00 837 1

原创 Rust 的所有权系统,是一场对“共享即混乱”的编程革命

当你写下 let s = String::from("hello"); 时,Rust 已经在内存中为你签署了一份“独占契约”——它不信任共享,除非你能证明安全。

2025-11-10 10:42:02 747

原创 虚拟网络仿真平台——ALevin

Alevin是一款基于Java的开源虚拟网络仿真平台,旨在简化VNE算法的评估与比较。该平台于2010年开发,支持大规模并行仿真,可自动生成多种网络场景并执行算法性能测试。Alevin具备高度可扩展性,允许用户自定义网络拓扑、资源分配和评估指标,通过可视化结果帮助研究者分析算法表现。其核心功能包括批量场景生成、多核并行计算以及嵌入质量评估,显著提高了VNE算法的测试效率。该工具已在SourceForge开源发布(GPL/LGPL协议)。

2025-11-07 09:16:10 286

原创 利用springboot创建一个简单项目以及配置文件的使用

本文介绍了使用SpringBoot创建简单项目及配置文件的基本用法。主要内容包括:1)通过starter场景启动器简化依赖管理;2)创建父项目和子项目的配置方法;3)关键配置如web包、打包插件、启动类的实现;4)配置文件application.properties和application.yml的两种写法(扁平k/v和树形结构);5)端口、虚拟目录等常见配置示例。文章还涉及懒加载设置和自定义SpringApplication的方法,适合SpringBoot初学者了解项目基础配置。

2025-11-07 09:12:19 261

原创 Rust 不是在防止 bug,而是在重新定义“什么是错误”

本文探讨了Rust语言如何通过其强大的类型系统重新定义编程中的错误处理范式。作者指出Rust将传统运行时错误转换为编译期错误,通过Result/Option等类型强制开发者明确处理所有可能状态。其类型系统不仅检查语法,还能验证业务逻辑,如通过新类型和状态机模式编码程序约束。文章对比了不同语言处理错误的哲学,认为Rust的价值在于划清可静态验证与必须运行时处理的界限。这带来工程哲学转变:从被动容错转向主动防错,通过所有权、生命周期等机制从源头杜绝错误。最后指出Rust不仅是技术工具,更是促使开发者更严谨建模世

2025-11-07 09:00:00 901

原创 Rust 的“孤儿规则”到底在保护什么?——深入 Trait 实现的类型系统边界

很多人把孤儿规则当作“烦人的限制”,但事实上——它不是 bug,而是特性;不是障碍,而是保障。今天,我们就来揭开孤儿规则的神秘面纱,从类型系统、模块化设计到编译器实现,彻底搞懂它为何存在、如何工作,以及我们该如何优雅地绕过它。

2025-11-06 14:35:18 1355

原创 一个Spring Boot+Vue的简单项目

一个简单的vue+springboot项目

2022-05-01 07:00:00 1987 7

原创 CSS常用属性

一、属性和属性值的定义1.引入(1)每个CSS样式由两部分组成,即选择符和声明,声明又分为属性和属性值;(2)属性必须放在花括号中,属性与属性值用冒号连接(3)每条声明用分号结束(4)当一个属性有多个属性值的时候,属性值与属性值不分先后顺序,用空格隔开(5)在书写样式过程中,空格,换行等操作不影响属性显示内部样式<!-- 选择器(选择符){属性:属性值;}--><style> h1{ color:red; }</styl

2022-04-29 20:45:29 4847 1

原创 vue.3.0的使用

一、项目创建vue create vue3更新到node最新版热更新有问题,需要手动刷新页面1.reactive<temlate><div> {{state.name}} <button @click='handleChange'> change </button> </div></temlate><script> import {reactive}f

2022-04-28 12:13:18 415 6

原创 vue中csv文件的导入、导出

csv文件导出安装命令npm install --save csv-exportor别忘了在script引用一下import CsvExportor from "csv-exportor";<templete><el-button type="primary" @click="outDialogVisible=true">导出</el-button> <!-- 导出 --> <el-dialog

2022-04-27 08:14:02 4438 7

原创 Vuex的使用

一、状态管理Vuex1.Vuex使用Vuex是一个专门为vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生改变。(1)组件间同步通信存在于store文件夹下import Vue from 'vue'import Vuex from 'vuex'import dailog from './modules/dailog'Vue.use(Vuex);//store‘全局’的对象const store = new Vu

2022-04-26 07:45:00 283

原创 gitee(码云)常用操作指令

gitee(码云)常用指令

2022-04-25 07:30:00 762 4

原创 前端入门必备知识

前端入门必备知识

2022-04-24 07:45:00 387 8

原创 SpringMVC

SpringMVCSpringMVC是目前主流的实现MVC设计模式的企业级开发框架,Spring框架的一个子模块,无需整合,开发起来更加方便。什么是MVC设计模式?将应用程序分为Controller、Model、View三层,Controller接收客户端请求,调用Model生成业务数据,传递数据给View。Spring MVC就是对这套流程的封装,屏蔽了很多底层代码,开放出接口,让开发者可以更加轻松、便捷地完成基于MVC模式的Web开发。SpringMVC的核心组件DispatchServ

2022-04-23 13:07:09 463 10

原创 通过Mapper代理实现自定义接口

通过Mapper代理实现自定义接口

2022-04-23 08:15:00 385 4

原创 mybatis快速使用

mybatis快速使用

2022-04-22 08:30:00 520 2

原创 项目部署到服务器

已写好的网站项目的部署上线

2022-04-21 08:00:00 315 3

原创 Alevin的使用

Alevin的使用

2022-04-20 16:55:20 757 13

原创 移动端事件相关

移动端开发与PC端存在显著差异,主要体现在事件处理方面。首先,移动端click事件存在300ms延迟问题,源于早期判断用户单击或双击的设计,解决方案包括设置meta viewport、使用fastclick库或CSS的touch-action属性。其次,移动端手势交互可通过Hammer.js实现,Vue项目可结合vue-touch封装使用。这些特性要求开发者在移动端项目中采用特定技术方案来优化用户体验。

2022-04-20 13:10:48 932 4

原创 SpringBoot配置文件的使用

Springboot配置文件的使用

2022-04-19 12:10:02 432 1

原创 SpringBoot入门

springboot入门——创建一个简单的项目

2022-04-18 19:11:44 384 8

原创 Alevin——配置环境(Eclipse)

ALevin环境的配置(Eclipse)

2022-04-17 19:18:20 822 5

原创 Alevin——虚拟网络仿真平台

虚拟网络仿真平台

2022-04-16 09:00:31 1956 5

node.js安装及详细步骤

内容概要:node.js安装包及配置步骤,其中配置步骤为MD文件,注意选择打开方式 适合人群:node.js初使用者,前端开发者,全栈开发者。 介绍:Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台。Node.js使用事件驱动,非阻塞I/O模型,轻量、高效,可以完美地处理时时数据,运行在不同的设备上,Nodejs框架是基于V8的引擎,是目前速度最快的 Javascript引擎。chrome浏览器就基于V8,同时打开20-30个网页都很流畅。Nodejs标准的web开发框架Express,可以帮 助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低。非常适合小型网站,个性化网站,我们自己的Geek网站!! 说明:此资源是为了方便大家更快的安装node.js,如果需要其他版本请去官网 https://nodejs.org/en/下载,在此提供一个最新版的node.js 安装包,把我的学习和使用经验进行归纳总结,希望给新入门Nodejs的同学做一些指引。如有疑问欢迎私信留言,博主一定及时回复。

2022-04-20

ALevin配置环境所需要的基础包——JUnit

内容概要: ALevin配置环境所需要的基础包——JUnit5.8.2版 适合人群: 对虚拟网络嵌入算法感兴趣的人 能学到什么: 可以帮助大家更快的配置好ALevin运行环境 阅读建议: ALevin作为一个很好的虚拟网络仿真平台,它的开源给我们的学习带来很大方便,但在这之前我们先要将环境配置好,才能更好的使用着个开源工具,由于ALevin要求JUnit 4.5 或更高版本, 因此为了方便大家交流学习, 这里分享一个目前最新版本的junit,如果需要其他版本请到http://www.junit.org下载,下载完成后,请修改“.classpath”中的相应条目以反映相应库的系统范围位置,可以进行调试已检测是否正确安装,如果安装过程中,欢迎与博主一起交流,让我们一起进步

2022-04-18

ALevin环境配置所需的jar包——commons-cli-1,5,0

内容概要: ALevin环境配置所需的jar包——commons-cli-1,5,0 适合人群: 对虚拟网络嵌入算法感兴趣的人 能学到什么: 可以帮你快速的将ALevin基础运行环境配置好,为你节省时间进行进一步的学习 阅读建议: 由于ALevin的配置要求Apache commons CLI 1.2 或更新版本,为了方便大家的交流学习,在此分享目前最新的一个版本如果需要其版本请到https://commons.apache.org/proper/commons-cli/进行下载,下载完成后将他放到lib文件夹下,然后修改“.classpath”中的相应条目以反映相应库的系统范围位置。最后进行调试检查配置是否正确

2022-04-18

空空如也

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

TA关注的人

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