- 博客(74)
- 收藏
- 关注
原创 实际开发中的面向对象编程(OOP)
如大家所知,C++是一种强大且灵活的编程语言,支持多种编程范式,使得开发者能够选择最适合特定问题的解决方案。在实际开发中,面向对象编程、泛型编程、函数式编程和元编程是最常用的几种范式。不可否认,面向对象编程 是C++ 的核心编程范式,通过类和对象的概念,将数据和操作数据的方法封装在一起,使代码具有更好的组织性和可维护性。通过类封装数据和操作,隐藏内部实现细节,只对外暴露接口。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助~方法,展示了多态的威力。今天我们只讲:面向对象编程。
2025-06-27 10:24:06
113
原创 AI辅助编程之代码生成
虽然我对脚本语言一窍不通,但只要说清楚需求,AI 就能帮忙写出一份可执行的脚本。就实际使用情况来看,AI 目前很难做到 100% 实现需求,但能够搭出一个能够运行的基本框架,在这个基础上,再对程序进行一些必要的修改就能帮助我们完成任务了。可以看出,AI 在写脚本方面还是比较在行的。不过也会遇到 AI 写出 bug 的场景,此时我们可以让它接着修改,也可以根据代码逻辑手动调整。举个例子,笔者在工作中有时会收到大批量的压缩文件,一个个解压这些文件有些耗时,我希望能够有个一键解压所有文件的脚本。
2025-06-26 11:58:55
331
原创 Pareto前沿优化的具体操作
举个例子,在骑手短缺的区域,系统可以自动降低送达时间的权重,增加空间因子的比重,以确保更多订单能被及时接单。如果遇到恶劣天气,系统可以优先分配订单给经验更丰富的骑手,并增加补偿,以减少骑手的风险和顾虑。:系统会计算当前所有可派发的订单,并筛选出一批“最优”订单,即在所有目标(时间、距离、收益)之间取得平衡的订单。:在不同的城市、天气条件和订单需求下,系统可以自动调整派单策略,而不是使用固定的计算方式。:结合图神经网络分析道路状况、天气、订单密度等因素,并据此优化派单逻辑。
2025-06-25 11:36:34
137
原创 运用JUC包来解决并发问题
最后,还有 StampedLock,它除了支持悲观读写 read-Lock/writeLock,还支持乐观读 tryOptimisticRead,也就是不加锁,直接读取数据,但需要在读取之后对比一下读取前后的版本号,也就是 stamp,判断是否在读取的过程中发生了写入。与之配套的Condition对象,用于替代 wait tify 机制,并且通过 Condition 的 await 函数还可以设置等待被唤醒的超时时间,如果超时没有被人唤醒,就自己醒过来。如大家所知,除了synchronized关键字,
2025-06-24 18:16:38
153
原创 html网页设计入门需要背完所有CSS属性吗?
只要掌握常用的几十个属性,就能应对 90% 的网页设计场景!今天的文章分享就到这里了,希望对大家的学习和工作有所帮助~三、遇到新需求,现学现查 MDN 或各种官方文档就能解决;一、理解基本布局逻辑(float 、flex);会炒蛋的人,可以做出蛋炒饭、蛋包饭、番茄炒蛋。会用 flex 的人,可以做出各种网页布局!二、知道什么时候该用什么属性;
2025-06-24 11:20:50
203
原创 运用Flex布局写更优雅的导航栏
实际上,当你熟悉了 float 后,就可以自然过渡到现代更流行的 Flex 布局,因为Flex 不仅写法简单,效果更好,而且响应式设计(适配手机端)也更方便!最后,align-items: center 的应用,使得 Logo 和链接在垂直方向上实现了。这些属性的结合使用,不仅提高了页面布局的灵活性和响应性,还为用户提供了更加舒适的视觉体验。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助哦~的效果,确保了页面元素的均衡布局,增强了视觉上的。,进一步提升了页面的整体协调性和。
2025-06-23 11:59:37
279
原创 运用python实现计算标准偏差函数的方法
如大家所知,标准偏差(Std Dev,Standard Deviation) -统计学名词。一种度量数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。标准偏差的大小可通过标准偏差与平均值的倍率关系来衡量。好了,今天的文章分享就到这里了,希望对大家的学习和工作有所帮助~
2025-06-21 10:51:59
219
原创 前端的安全隐患之API恶意调用
对于资深开发者而言,这几乎是一种本能,无需过多解释。然而,初入职场的开发新手可能会感到困惑:为何要对前端传来的数据持有如此不信任的态度?难道人与人之间连基本的信任都不存在了吗?
2025-06-20 10:44:59
185
原创 算法工程师的工作日常,需要具备哪些能力?
能力的话,第一是专业技术能力,即你最起码要懂一些用到的算法模型原理,掌握基本的算法能力。第三是数据分析能力,算法不管做怎样的优化,都需要建立在数据的基础上,这也是算法工程师必备的一个技能。作为算法工程师的话,我们平常的工作更多的是去做一些数据分析,调研目前的业务痛点,再去做技术方案的选型,最后将相关的模型和系统开发上线,有效提升和转化站点流量。但算法很有可能是你在那里鼓捣了几个月的技术、模型,最后发现线上效果好像并没有提升,所以说,还是会需要有去不断面对不确定性的这种心态在。
2025-05-19 09:05:43
233
原创 WebSocket解决方案的一些细节阐述
实际上,集成WebSocket的方法都有相关的工程挑战,这可能会影响项目成本和交付期限。但是,功能蠕变通常意味着基本的实时体验需要对共享实时体验和协作功能提出额外的要求。另一个常见问题是,原始设计在产品获得足够的市场反馈以了解其发展方向之前,就将重大约束嵌入到产品中。错过的消息需要传递,而不重复已处理的消息。整个体验需要完全无缝。但是,如果产品不能满足其创造的需求,那么快速进入市场并获得早期成功可能会弄巧成拙。有一些真正复杂的工程问题需要解决,以保证排序和恰好一次语义所需的数据完整性。
2025-05-18 09:33:32
527
原创 栈的计算方式和表达方式
好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!最后处理运算符栈中剩余的符号,依次出栈即可。顺序遍历中缀表达式。遇到数值则直接输出。遇到运算符分三类处理。
2025-05-15 16:25:40
218
原创 浅谈编译型语言的运用
如大家所熟悉的,程序在执行之前需要一个专门的编译过程,把程序编译成机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了,程序执行效率高,依赖编译器,如 C/C++、Golang 等,它们可以编译后生成 .exe文件,之后无需再次编译,直接运行 .exe文件即可。编译型语言往往会花费较长的编译时间,但编译完成后,会有很好的运行性能,因此,编译型语言编写的程序每次修改都要再次经历一遍完整编译过程后,修改效果才能生效,迭代时间会比解释型语言要长。
2025-04-11 12:30:00
198
原创 源代码所指向的程序文本问题
指的是由程序员使用各种编程语言编写的还未经编译或者解释的程序文本,对于计算机而言,源代码就是天书,根本无法执行,计算机只能识别某些特定的二进制指令,在程序真正运行之前必须将源代码转换成二进制指令。编译是把源代码的每条语句都编译成机器语言, 并最终生成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,在运行时会有很好的性能;解释是只在执行到对应的语句时才会将源代码一行一行的解释成机器语言,给计算机来执行,所以使用解释器来执行的语言也被称为动态语言。,由于他们的操作方法不同,所以会有不同的运行效果。
2025-04-10 16:15:00
346
原创 函数作为参数传递
如大家所知,把函数当做参数传递,这代表我们可以抽离出一部分容易变化的业务逻辑,把这部分业务逻辑放在函数参数中,这样一来可以分离业务代码中变化与不变的部分,其中一个重要的应用场景就是回调函数。回调函数的应用不仅只在异步请求中,当一个函数不适合执行一些请求时,我们也可以把这些请求封装成一个函数,并把它作为参数传递给另一个函数,“委托” 给另一个函数来执行。
2025-04-09 19:45:00
194
原创 进程的阻塞原语与撤销原语
一个正在运行的进程因其所申请的资源未得到满足,而被迫称为阻塞状态等待阻塞事件的完成,进程的这种状态变化是通过运行进程本身调用阻塞原语来实现的。阻塞原语的实现过程是首先中断 CPU 对当前运行进程的执行,将运行进程的 CPU 现场信息放到内存该 PCB 中的 CPU 状态保护区,然后将该运行进程置为阻塞状态,并把它插入到进程阻塞队列中 ,接下来系统执行进程调度程序将 CPU 分配给另一个就绪进程。
2025-04-08 18:45:00
384
原创 进程控制块PCB中的信息
8、PCB 现场保护区,即当进程因为某种原因放弃使用 CPU 时,需要将当时(执行的断点处)的 CPU 各种状态信息保存起来(暂存于内存中操作系统的内核区),以便该进程再次得到 CPU 时,能够恢复当时的 CPU 各种状态,即复原当时的现场和环境,使得该进程可以不受影响地由断点处恢复运行。进程是程序在 CPU 上的一次执行过程,所以进程除包含正在执行的程序和数据段外,还包括此次执行的“环境”信息,如 CPU 状态,核心栈数据以及该程序在内存的存储空间等,而这些信息都保存在进程控制块 PCB 中。
2025-04-07 15:45:00
169
原创 浅谈在HTTP中GET与POST的区别
GET 请求方式符合幂等性和安全性,GET请求方式是做查询操作,因此不会改变数据库中原有的数据,认为符合安全性,事实上 GET 请求可能会出现多次请求的结果不一致(例如在两次请求中间对数据库中的数据做了更改),从这来说不符合幂等性的定义,但是因为 GET 请求只是查询数据库,不会对数据库做任何更改,因此也可以认为是幂等的。其次,POST 请求方式每次获得的结果都可能不一样,因为 POST 请求是作用在上一级的 URL 上的,每一次请求都会添加一份新的资源,或者修改资源信息。
2025-04-06 18:15:00
584
原创 异步函数 async/await的认识与学习
如大家所了解的,async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。当函数执行的时候,一旦遇到 await 就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。这时候,正常情况下,await 命令后面是一个 Promise 对象,如果不是,会被转为一个立即 resolve 的 Promise 对象。以上代码指定 300ms 后输出 Hello。
2025-04-03 20:30:00
380
原创 WeakMap结构的键名问题
它的键名所引用的对象都是弱引用,即垃圾回收机制不将该引用考虑在内,因此,只要所引用的对象的其他引用被清除了,垃圾回收机制就会释放该对象所占用的内存。一个典型的应用场景是,在网页的 DOM 元素上添加数据时就可以使用 WeakMap 结构,当该 DOM 元素被清除,其对应的 WeakMap 记录就会自动被移除。需要注意的是:WeakMap 的专用场景就是它的键所对应的对象可能会在将来小时,WeakMap 结构有助于防止内存泄露。但是,WeakMap 弱引用的只是键名而不是键值,键值依然是正常引用的。
2025-04-03 07:00:00
270
原创 Function-bind绑定函数
其实 ,call 和 apply 也可以重新绑定 this ,但是 bind 会返回一个新的函数,并将传入的参数和函数绑定起来,而 call 和 apply 则是使用新的 this 去直接调用、执行函数。
2025-04-02 09:04:02
372
原创 JavaScript装饰者模式
接下来 把当前的 this 保存起来,这个 this 指向原函数,然后返回一个“代理”函数 ,这个“代理”函数只是结构上像代理而已,并不承担代理的职责(比如控制对象的访问等)。它的工作是把请求分别转发给新添加的函数和原函数,且负责保证它们的执行顺序,让新添加的函数在原函数之前执行(前置装饰),这样就实现了动态装饰的效果。1、必须要维护中间变量(_load 变量),虽然看起来并不起眼,但是如果函数的装饰链较长,或者需要装饰的函数变多,这些中间变量的数量也会越来越多。2、会遇到 this 被劫持的问题。
2025-04-01 14:52:06
234
原创 WebSocket通信协议
WebSocket 是浏览器端和服务器端建立实时连接的一种通信协议,可以在服务器和浏览器端建立类似 socket 方式的消息通信。优势是方便服务器和浏览器之间的双向数据实时通信,WebSocket 在网络中传输的最小单位也是帧,数据的传输也可以理解为流式的传输,但 WebSocket 存在兼容性问题,并非所有浏览器都支持 WebSocket 协议。
2025-04-01 12:20:34
226
原创 HTTP 1.1长连接问题
HTTP1.1 支持长连接和请求的流水线处理,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟,在 HTTP1.1 中默认开启长连接 keep-alive,一定程度上弥补了 HTTP1.0 每次请求都要创建连接的缺点。HTTP1.0 需要使用 keep-alive 参数来告知服务器端要建立一个长连接。在长连接问题上,HTTP 1.1与HTTP 1.0还是有所区别的。
2025-03-31 12:05:17
501
原创 HTTP常见状态码分析
当浏览者访问一个网页时,浏览者的浏览器会想网页所在的服务器发出请求,当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。304 Not Modified,未修改,所请求的资源被修改,服务器返回此状态码,不会返回任何资源。301 Moved Permanently,永久性重定向,请求的资源已经永久的移动到新的URL,浏览器会自动定向到新的URL,今后任何新的请求都应使用新的 URL 代替。2**,成功,操作被成功接收并处理。
2025-03-30 19:45:18
188
原创 深层嵌套数据的整理
我们来做个假设,拿到一个深层嵌套的数据,这类数据的特点,数据层次分明,格式一样,但是不确定嵌套的层级:经过处理后,输出 value 值为 key,父元素 label + 自身 label 组成对应的 value 值,即:使用递归的方法实现,代码示例如下:打印结果如下:
2025-03-30 10:52:42
176
原创 轮询和长轮询
长轮询 long-poll,即 HTTP 请求可以设置一个较长的 Timeout 等待时间,这样网络轮询请求就可以维持一段较长的时间后返回结果,这也就是 long-poll 的基本思路,服务器只要在这段长轮询时间内进行响应,请求便会立即返回结果,如果这段时间服务器没有返回,浏览器端将自动响应超时,并重新发起一个长轮询请求。比如浏览器每隔一秒向服务器发送一次请求,在一秒内服务器更新的内容会在下一次轮询中被浏览器拉取,所以这种方案相对来说实时性较差,而且没有新消息时依然需要不断轮询,比较耗费系统资源。
2025-03-29 18:33:00
377
原创 python全局变量引用
同样,如果在非全局作用域中,想主动释放变量引用的对象,也可以通过这样的方式,虽然 delete 操作和重新赋值具有相同的效果,但是在 V8 中通过 delete 删除对象的属性有可能干扰 V8 的优化,所以通过赋值方式解除引用更好。如果需要释放常驻内存的对象,可以通过 delete 操作来删除引用关系,或者将变量重新赋值,让旧的对象脱离引用关系,在接下来的老生代内存清理和整理的过程中,会被回收释放。如果变量是全局变量,由于全局作用域需要直到进程退出才能释放,此时将导致引用的对象常驻内存(常驻在老生代中)。
2025-03-28 12:23:19
138
原创 V8内存的限制
如大家所熟悉的,在一般的后端开发语言中,在基本的内存使用上没有什么限制,然而在 Node 中通过JavaScript 使用内存时就会发现只能使用部分内存(64 位系统写约 1.4GB,32 位系统下约为 0.7GB)。在这样的限制下,将会导致 Node 无法直接操作大内存对象,比如无法将一个 2GB 的文件读入内存中进行字符串分析处理,即使物理内存有 32GB,这样在单个 Node 进程的情况下,计算机的内存资源无法得到充分的使用。
2025-03-27 20:52:49
194
原创 Vue .sync修饰符
我们有时候会遇到这么一个问题:一个组件上只能定义一个v-model,如果其他prop也要实现双向绑定的效果该怎么办呢?在有些情况下,我们可能需要对一个 prop 进行“双向绑定”,vue .sync 修饰符以前存在于 vue1.0 版本里,但是在 2.0 中移除了 .sync。但是在 2.0 发布之后的实际应用中,我们发现 .sync 还是有其适用之处,比如在开发可复用的组件库时。我们需要做的只是让子组件改变父组件状态的代码更容易被区分。
2025-03-25 08:15:04
192
原创 ElementUI时间选择、日期选择
如大家所发现的,由于ElementUI 时间选择器,日期选择器,时间日期选择器点击清除按钮时,v-model 所绑定的属性值会变成 null,所以当使用 ElementUI 时间选择器,日期选择器,时间日期选择器 时,v-model 默认值应设置 null。ElementUI 中没有内置清除按钮的回调函数。今天的文章就介绍到这里了,相信大家认真去看文字介绍及代码,一定会很容易发现问题、找出问题、解决问题的。若有其他疑问,也欢迎留言,一起讨论解决哦!或者添加监听,值为 null 时,赋值为。
2025-03-24 20:45:24
296
原创 Vue部署上线清除浏览器缓存
不得不承认,Vue项目打包上线之后,每一次都会有浏览器缓存问题,需要手动的清除缓存。这样用户体验非常不好,所以我们在打包部署的时候需要尽量避免浏览器的缓存。
2025-03-24 09:11:37
583
原创 ElementUI表格使用树形数据报错
我们有时候在ElementUI表格使用树形数据时会报错:for nested data item, row-key is required,这个问题如何解决呢?为每行数据,添加一个 hasChildren 字段,值为 true 或者 false。今天的文章就分享到这里,希望遇到同样问题的小伙伴,能很快运用去解决哦~
2025-03-23 18:39:43
353
原创 ElementUI表格数据加载问题
不得不说,我们在使用ElementUI表格时,项目中的表格请求接口数据页面加载,有时候会先出现 ‘‘暂无数据’’ 字样闪现一下之后再显示页面数据,导致用户体验不友好。这种情况,该怎么解决呢?
2025-03-20 09:15:43
299
原创 Vite Plugin Inspect插件问题
有些小伙伴可能还不清楚,Vite Plugin Inspect 是由 Antfu 开发的一款 Vite 插件,它的目标是让 Vue、React 等框架的开发者能够更容易地查看和理解构建过程中经过转换的源码。通过集成到 Vite 环境中,Inspect 插件可以在浏览器的开发者工具中直接展示 ES 模块、CSS、甚至是编译后的模板的原始状态,极大地增强了我们在实际开发中的调试能力。以上这些大家需要注意,不然在使用过程中因为忽视而导致出错。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-03-19 11:34:27
336
原创 Dom模板的规范写作
有些小伙伴可能还不太熟悉,Dom模板就是写在 html 文件中,一打开就会被浏览器进行解析渲染的,所以要遵循 html 结构和标签的命名,否则浏览器不解析也就不能获取内容了。例如:mycomponent、posttitle、componentclick,如果这样,使用时也必须按照全小写的方式书写,这样才是正确的规范。PS:组件注册名、props 接收名、$emit名,还可以使用全小写字母命名(没有任何大写字母或者短横线)。
2025-03-18 08:35:33
263
原创 Vue中的publicPath释义
默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.my-app.com/。例如,如果你的应用被部署在 https://www.my-app.com/my-app/,则设置 publicPath 为 /my-app/。部署应用包时的基本URL。这个值也可以被设置为空字符串 ('') 或是相对路径 ('./'),这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径,也可以用在类似 Cordova hybrid 应用的文件系统中。
2025-03-17 08:48:27
456
原创 在Bash中交互式登录方式是什么
二、非登录 shell 是指在已经登录的 shell 环境中再次打开一个 shell 环境,这个 shell 进程就是非登录 shell,它不会读取 /etc/profile 和 ~/.bash_profile 文件,而是读取 ~/.bashrc 文件。一、登录 shell 是指当你第一次登录系统时,系统会为你分配一个 shell 进程,这个 shell 进程就是登录 shell,它会读取 /etc/profile 和 ~/.bash_profile 文件,以便设置环境变量和别名等。
2025-03-16 12:20:11
157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人