工作第一个十年如何结束
“喜提”一个P2级故障—CMSGC太频繁,你知道这是什么鬼?
前段时间收到线上一些列告警,内容是CMSGC太频繁。那接下来这篇文章我会告诉你:什么是CMSGC太频繁;整个排查过程与你分享;以及一些规避手段。 ......
MongoDB从入门到实战之MongoDB工作常用操作命令
前言: 上一章节我们快速的在Docker容器中安装了MongoDB,并且通过Navicat MongoDB可视化管理工具快速的连接、创建数据库、集合以及添加了文档数据源。这一章节我们主要是了解一下在日常工作中MongoDB一些常用的操作命令。 MongoDB从入门到实战的相关教程 MongoDB从入 ......
如何在C#中接受或拒绝 Excel 中的修订
修订功能可以跟踪文档所有的修改,了解修改的过程,这对于团队协同文档编辑、审阅是非常有用的一个功能。将工作簿发送给他人审阅时,我们可以开启修订功能,共享工作簿被修改后,用户查看文档时可以选择接受或者拒绝他人修改的数据信息。本文将详细为您介绍如何接受或拒绝 Excel 中的修订。 接受工作簿中的修订 拒 ......
应届毕业生程序员在面试时如何做好自我介绍?
在本文的开篇,本人想说句正确的废话,应届生程序员要过面试,不能单靠自我介绍,也不能单靠背题,事实上应届生准备面试得综合地从简历、项目、技术和背面试题方面做准备。 由于本人是做Java方面的,所以本人就将从上述诸多方面综合讲下,应届生朋友该如何过面试,其中的操作要点有两个,一是要在简历和面试中,向面试 ......
如何使用Java获取货币符号?
1. 前言 最近做了一个支付相关的需求,要求在收银台页面显示商品的价格时带上货币符号¥,类似下图中的格式: 最初我是用的下面这样的代码: System.out.println(Currency.getInstance(Locale.CHINA).getSymbol()); 本机测试,正常返回¥,如下 ......
【深度思考】如何优雅的校验参数?
在日常的开发工作中,为了保证落库数据的完整性,参数校验绝对是必不可少的一部分,本篇文章就来讲解下在项目中该如何优雅的校验参数。 假设有一个新增学员的接口,一般第一步我们都会先校验学员信息是否正确,然后才会落库,简单起见,假设新增学员时只有2个字段:姓名、年龄。 @Data public class ......
面试官问:你知道 SpringBoot 项目是如何启动的吗?
大家都知道我们常用的 SpringBoot 项目最终在线上运行的时候都是通过启动 java -jar xxx.jar 命令来运行的。 那你有没有想过一个问题,那就是当我们执行 java -jar 命令后,到底底层做了什么就启动了我们的 SpringBoot 应用呢? 或者说一个 SpringBoot ......
jdk调度任务线程池ScheduledThreadPoolExecutor工作原理解析
jdk调度任务线程池ScheduledThreadPoolExecutor工作原理解析 在日常开发中存在着调度延时任务、定时任务的需求,而jdk中提供了两种基于内存的任务调度工具,即相对早期的java.util.Timer类和java.util.concurrent中的ScheduledThread ......
Javascript | 分别用async await异步方法和Promise来实现一个简易的求职程序
关注公众号,一起交流,微信搜一搜: LiOnTalKING JavaScript Promise Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。 如何创建一个 Promise 对象? new Promise(function (resolve, re ......
工业控制系统开发如何技术选型?
简述 工业控制系统,简称工控系统,一般运行在工业生产环境中具有特定功能设备的作业系统,比如收银系统、过磅称重系统、无人零售系统等。根据需求不同,有单片机、PLC、Linux、Win7等不同的平台实现方案,本文主要是针对Windows系统,如何技术选型开发工控系统。 工控控制系统与其他应用系统最大的区 ......
Flutter和Rust如何优雅的交互
前言 文章的图片链接都是在github上,可能需要...你懂得;本文含有大量关键步骤配置图片,强烈建议在合适环境下阅读 Flutter直接调用C层还是蛮有魅力,想想你练习C++,然后直接能用flutter在上层展示出效果,是不是就有大量练手的机会了,逻辑反手就用C++,Rust去写,给后面的接盘侠留 ......
【ASP.NET Core】MVC操作方法如何绑定Stream类型的参数
咱们都知道,MVC在输入/输出中都需要模型绑定。因为HTTP请求发送的都是文本,为了使其能变成各种.NET 类型,于是在填充参数值之前需 ModelBinder 的参与,以将文本转换为 .NET 类型。 尽管 ASP.NET Core 已内置基础类型和复杂类型的各种 Binder,但有些数据还是不能 ......
Crane如何做到利用率提升3倍稳定性还不受损?
作为云平台用户,我们都希望购买的服务器物尽其用,能够达到最大利用率。然而要达到理论上的节点负载目标是很的,计算节点总是存在一些装箱碎片和低负载导致的闲置资源。下图展示了某个生产系统的CPU资源现状,从图中可以看出,浪费主要来自以下几个方面: 业务需求与节点可调度资源很难完全匹配,因此在每个节点上都可 ......
我做了第一个ChatGPT .net api聊天库
最近这个ChatGPT很火啊,看了B站上很多视频,自己非常手痒,高低自己得整一个啊,但是让我很难受的是,翻遍了github前十页,竟然没有一个C#的ChatGPT项目,我好难受啊!那能怎么办?自己搞一个吧。 但是,等等,现在的ChatGPT项目基本都是网页逆向获取几个token,我不会啊,我都不知道 ......
phpMyAdmin给非技术人员一个查阅数据库的窗口
背景 管理数据库的界面工具。 开发团队中一般有非技术背景人员,比如: 产品,功能测试人员; 对他们来说,可能安装数据库管理工具客户端都很麻烦,需要一款在线的网页工具能方便他们查阅数据。 本地docker安装 单库: docker run --name myadmin -d -e PMA_HOST=l ......
git cherry-pick 同步修改到另一个分支
我们在开发中有时会遇到,需要将另一个分支部分修改同步到当前分支。如下图,想把 devA 分支中 commit E 和 F,同步到下面绿色的 devB 分支中。这时候就可以使用来完成这项任务。(cherry-pick 有筛选、精选的意思) ......
如何5分钟上手使用PaddleSeg人像抠图
随便打开一个Microsoft Visual Studio,新建一个WinForms项目,从下面列表中随便选择一个NET框架。 net35;net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481; ......
解读JVM级别本地缓存Caffeine青出于蓝的要诀 —— 缘何会更强、如何去上手
继Guava Cache之后,我们再来聊一下各方面表现都更佳的Caffeine,看一下其具体使用方式、核心的优化改进点,窥探其青出于蓝的秘密所在。 ......
从一个 issue 出发,带你玩图数据库 NebulaGraph 内核开发
当一个新手要开始对数据库内核做代码贡献时,他需要做哪些事呢?虽然本文是一个图数据库的内核贡献过程记录,但是举一反三,你可以借鉴来对其他数据库进行内核贡献。 ......
如何使用 IdGen 生成 UID
在分布式系统中,雪花 ID 是一种常用的唯一 ID 生成算法。它通过结合时间戳、机器码和自增序列来生成 64 位整数 ID,可以保证 ID 的唯一性和顺序性。 在.Net 项目中,我们可以使用 IdGen 这个类库来生成雪花 ID。它是一个开源的类库,可以轻松地集成到你的项目中。 代码示例 下面是一 ......
如何在路由绑定中使用 IParsable
IParsable 是 .Net 7 中新增的接口,它可以将字符串转换为对应的实体。在 Controller 的 Route 绑定中可以使用 IParsable 来绑定复杂的实体。 实验背景 假设有一个需要将 route "report/{month}-{day}" 绑定到 MyDate 对象上的场 ......
如何使用 EF Core 7 批量删除数据
在 EF Core 7 中,我们可以使用批量操作来删除多条数据。这种方式与之前的版本有所不同,本文将对比 EFCore 7 和之前版本批量删除数据的不同方式。 删除给定 ID 的数据 在 EF Core 7 中,我们可以使用以下代码来删除给定 ID 的数据: await using var db = ......
如何在 .Net 7 中将 Query 绑定到数组
在 .Net 7 中,我们可以通过绑定数组的方式来接收来自查询字符串的参数。这样就不需要再使用逗号分隔的字符串来获取参数了。 代码演示 假设我们需要从 query 上接受多个 id 并返回查询的结果。例如: id=1&id=2 在 .Net 7 中,我们可以这样实现: public ActionRe ......
如何使用 System.Text.Json 序列化 DateTimeOffset 为 Unix 时间戳
在 .NET 中,日期和时间通常使用 DateTime 或 DateTimeOffset 来表示。这两种数据类型都可以表示日期和时间,但它们之间有一些明显的区别。DateTime 是不带时区信息的,而 DateTimeOffset 是带时区偏移量的,可以用来表示一个特定的时刻。 在现代 web 应用 ......
工作5年的老程序员的年终总结
看了上篇的博客是2020年9月10号,已经两年多没写博客了,重新执笔开始写篇年终总结! 时间飞逝,已经毕业5年多,这一路经历太多了,这篇博客对整个经历进行复盘和总结。 经历 2017年坐着夜间绿皮硬座来到北京,运气还算不错一个多星期就找到了工作,工作第一年浑浑噩噩,然后经历了P2P暴雷,深受打击觉得 ......
如何基于 Redis 实现分布式锁
什么是分布式锁 分布式锁:不同进程必须以互斥方式使用共享资源的一种锁方法实现。 实现分布式锁的基础 互斥。任何时刻,只有一个客户端持有锁。 无死锁。最终总是有可能获得锁,即使持有锁的客户端已经崩溃。 单个 Redis 分布式锁实现 上锁 上锁需要考虑俩点 原子性 锁能自动释放 首先要考虑持有锁的客户 ......
intel Pin:动态二进制插桩的安装和使用,以及如何开发一个自己的Pintool
先贴几个你可能用得上的链接 intel Pin的官方介绍Pin: Pin 3.21 User Guide (intel.com) intel Pin的API文档Pin: API Reference (intel.com) intel Pin的下载地址Pin - A Dynamic Binary In ......
vue3项目,记录我是如何用1h实现产品预估1天工作量的界面需求
最近在编写前端界面,硬是一人一周时间加班加点写完了一个项目的前端界面(一级菜单有12个页面+一个控制台大屏,二三级界面有N个),之前预估前端界面的编写需要一个月,我是自己把自己卷死了(没有办法,项目经理说项目要1周写界面,2周发版,我这个项目前端只我1个人,后端有3个人...).......我只想说 ......
聚焦技术,锐意创新,GaussDB给世界一个更优选择
摘要:从整个行业应用层面来看,现在,数据库的国产化时代已经到来。 本文分享自华为云社区《聚焦技术,锐意创新,GaussDB给世界一个更优选择》,作者: GaussDB数据库。 今天,以“数据智能,价值创新”为主题的第13届中国数据库技术大会(DTCC2022)在线上顺利举行,会上集合了数百位行业专家 ......
超详细讲解如何搭建自己的文件服务器
由于FTP、HTTP、Telnet等协议的数据都是使用明文进行传输的,因此从设计上就是不可靠的。人们为了满足以密文方式传输文件的需求,发明了vsftpd服务程序。vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不... ......