工作第一个十年如何结束

“喜提”一个P2级故障—CMSGC太频繁,你知道这是什么鬼?

前段时间收到线上一些列告警,内容是CMSGC太频繁。那接下来这篇文章我会告诉你:什么是CMSGC太频繁;整个排查过程与你分享;以及一些规避手段。 ......
故障 这是 CMSGC

MongoDB从入门到实战之MongoDB工作常用操作命令

前言: 上一章节我们快速的在Docker容器中安装了MongoDB,并且通过Navicat MongoDB可视化管理工具快速的连接、创建数据库、集合以及添加了文档数据源。这一章节我们主要是了解一下在日常工作中MongoDB一些常用的操作命令。 MongoDB从入门到实战的相关教程 MongoDB从入 ......
MongoDB 实战 命令 常用

如何在C#中接受或拒绝 Excel 中的修订

修订功能可以跟踪文档所有的修改,了解修改的过程,这对于团队协同文档编辑、审阅是非常有用的一个功能。将工作簿发送给他人审阅时,我们可以开启修订功能,共享工作簿被修改后,用户查看文档时可以选择接受或者拒绝他人修改的数据信息。本文将详细为您介绍如何接受或拒绝 Excel 中的修订。 接受工作簿中的修订 拒 ......
Excel

应届毕业生程序员在面试时如何做好自我介绍?

在本文的开篇,本人想说句正确的废话,应届生程序员要过面试,不能单靠自我介绍,也不能单靠背题,事实上应届生准备面试得综合地从简历、项目、技术和背面试题方面做准备。 由于本人是做Java方面的,所以本人就将从上述诸多方面综合讲下,应届生朋友该如何过面试,其中的操作要点有两个,一是要在简历和面试中,向面试 ......
程序员 毕业生 程序

如何使用Java获取货币符号?

1. 前言 最近做了一个支付相关的需求,要求在收银台页面显示商品的价格时带上货币符号¥,类似下图中的格式: 最初我是用的下面这样的代码: System.out.println(Currency.getInstance(Locale.CHINA).getSymbol()); 本机测试,正常返回¥,如下 ......
货币 符号 Java

【深度思考】如何优雅的校验参数?

在日常的开发工作中,为了保证落库数据的完整性,参数校验绝对是必不可少的一部分,本篇文章就来讲解下在项目中该如何优雅的校验参数。 假设有一个新增学员的接口,一般第一步我们都会先校验学员信息是否正确,然后才会落库,简单起见,假设新增学员时只有2个字段:姓名、年龄。 @Data public class ......
深度 参数

面试官问:你知道 SpringBoot 项目是如何启动的吗?

大家都知道我们常用的 SpringBoot 项目最终在线上运行的时候都是通过启动 java -jar xxx.jar 命令来运行的。 那你有没有想过一个问题,那就是当我们执行 java -jar 命令后,到底底层做了什么就启动了我们的 SpringBoot 应用呢? 或者说一个 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 ......
Javascript 简易 Promise 程序 方法

工业控制系统开发如何技术选型?

简述 工业控制系统,简称工控系统,一般运行在工业生产环境中具有特定功能设备的作业系统,比如收银系统、过磅称重系统、无人零售系统等。根据需求不同,有单片机、PLC、Linux、Win7等不同的平台实现方案,本文主要是针对Windows系统,如何技术选型开发工控系统。 工控控制系统与其他应用系统最大的区 ......
控制系统 工业 系统 技术

Flutter和Rust如何优雅的交互

前言 文章的图片链接都是在github上,可能需要...你懂得;本文含有大量关键步骤配置图片,强烈建议在合适环境下阅读 Flutter直接调用C层还是蛮有魅力,想想你练习C++,然后直接能用flutter在上层展示出效果,是不是就有大量练手的机会了,逻辑反手就用C++,Rust去写,给后面的接盘侠留 ......
Flutter Rust

【ASP.NET Core】MVC操作方法如何绑定Stream类型的参数

咱们都知道,MVC在输入/输出中都需要模型绑定。因为HTTP请求发送的都是文本,为了使其能变成各种.NET 类型,于是在填充参数值之前需 ModelBinder 的参与,以将文本转换为 .NET 类型。 尽管 ASP.NET Core 已内置基础类型和复杂类型的各种 Binder,但有些数据还是不能 ......
参数 类型 方法 Stream Core

Crane如何做到利用率提升3倍稳定性还不受损?

作为云平台用户,我们都希望购买的服务器物尽其用,能够达到最大利用率。然而要达到理论上的节点负载目标是很的,计算节点总是存在一些装箱碎片和低负载导致的闲置资源。下图展示了某个生产系统的CPU资源现状,从图中可以看出,浪费主要来自以下几个方面: 业务需求与节点可调度资源很难完全匹配,因此在每个节点上都可 ......
利用率 稳定性 Crane

我做了第一个ChatGPT .net api聊天库

最近这个ChatGPT很火啊,看了B站上很多视频,自己非常手痒,高低自己得整一个啊,但是让我很难受的是,翻遍了github前十页,竟然没有一个C#的ChatGPT项目,我好难受啊!那能怎么办?自己搞一个吧。 但是,等等,现在的ChatGPT项目基本都是网页逆向获取几个token,我不会啊,我都不知道 ......
ChatGPT net api

phpMyAdmin给非技术人员一个查阅数据库的窗口

背景 管理数据库的界面工具。 开发团队中一般有非技术背景人员,比如: 产品,功能测试人员; 对他们来说,可能安装数据库管理工具客户端都很麻烦,需要一款在线的网页工具能方便他们查阅数据。 本地docker安装 单库: docker run --name myadmin -d -e PMA_HOST=l ......
phpMyAdmin 人员 数据库 数据

git cherry-pick 同步修改到另一个分支

我们在开发中有时会遇到,需要将另一个分支部分修改同步到当前分支。如下图,想把 devA 分支中 commit E 和 F,同步到下面绿色的 devB 分支中。这时候就可以使用来完成这项任务。(cherry-pick 有筛选、精选的意思) ......
分支 cherry-pick cherry pick git

如何5分钟上手使用PaddleSeg人像抠图

随便打开一个Microsoft Visual Studio,新建一个WinForms项目,从下面列表中随便选择一个NET框架。 net35;net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481; ......
人像 PaddleSeg

解读JVM级别本地缓存Caffeine青出于蓝的要诀 —— 缘何会更强、如何去上手

继Guava Cache之后,我们再来聊一下各方面表现都更佳的Caffeine,看一下其具体使用方式、核心的优化改进点,窥探其青出于蓝的秘密所在。 ......
青出于蓝 要诀 缓存 Caffeine 级别

从一个 issue 出发,带你玩图数据库 NebulaGraph 内核开发

当一个新手要开始对数据库内核做代码贡献时,他需要做哪些事呢?虽然本文是一个图数据库的内核贡献过程记录,但是举一反三,你可以借鉴来对其他数据库进行内核贡献。 ......
内核 NebulaGraph 数据库 数据 issue

如何使用 IdGen 生成 UID

在分布式系统中,雪花 ID 是一种常用的唯一 ID 生成算法。它通过结合时间戳、机器码和自增序列来生成 64 位整数 ID,可以保证 ID 的唯一性和顺序性。 在.Net 项目中,我们可以使用 IdGen 这个类库来生成雪花 ID。它是一个开源的类库,可以轻松地集成到你的项目中。 代码示例 下面是一 ......
IdGen UID

如何在路由绑定中使用 IParsable

IParsable 是 .Net 7 中新增的接口,它可以将字符串转换为对应的实体。在 Controller 的 Route 绑定中可以使用 IParsable 来绑定复杂的实体。 实验背景 假设有一个需要将 route "report/{month}-{day}" 绑定到 MyDate 对象上的场 ......
路由 IParsable

如何使用 EF Core 7 批量删除数据

在 EF Core 7 中,我们可以使用批量操作来删除多条数据。这种方式与之前的版本有所不同,本文将对比 EFCore 7 和之前版本批量删除数据的不同方式。 删除给定 ID 的数据 在 EF Core 7 中,我们可以使用以下代码来删除给定 ID 的数据: await using var db = ......
数据 Core EF

如何在 .Net 7 中将 Query 绑定到数组

在 .Net 7 中,我们可以通过绑定数组的方式来接收来自查询字符串的参数。这样就不需要再使用逗号分隔的字符串来获取参数了。 代码演示 假设我们需要从 query 上接受多个 id 并返回查询的结果。例如: id=1&id=2 在 .Net 7 中,我们可以这样实现: public ActionRe ......
数组 中将 Query Net

如何使用 System.Text.Json 序列化 DateTimeOffset 为 Unix 时间戳

在 .NET 中,日期和时间通常使用 DateTime 或 DateTimeOffset 来表示。这两种数据类型都可以表示日期和时间,但它们之间有一些明显的区别。DateTime 是不带时区信息的,而 DateTimeOffset 是带时区偏移量的,可以用来表示一个特定的时刻。 在现代 web 应用 ......
DateTimeOffset 序列 时间 System Json

工作5年的老程序员的年终总结

看了上篇的博客是2020年9月10号,已经两年多没写博客了,重新执笔开始写篇年终总结! 时间飞逝,已经毕业5年多,这一路经历太多了,这篇博客对整个经历进行复盘和总结。 经历 2017年坐着夜间绿皮硬座来到北京,运气还算不错一个多星期就找到了工作,工作第一年浑浑噩噩,然后经历了P2P暴雷,深受打击觉得 ......
程序员 程序

如何基于 Redis 实现分布式锁

什么是分布式锁 分布式锁:不同进程必须以互斥方式使用共享资源的一种锁方法实现。 实现分布式锁的基础 互斥。任何时刻,只有一个客户端持有锁。 无死锁。最终总是有可能获得锁,即使持有锁的客户端已经崩溃。 单个 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 ......
二进制 Pintool 动态 intel Pin

vue3项目,记录我是如何用1h实现产品预估1天工作量的界面需求

最近在编写前端界面,硬是一人一周时间加班加点写完了一个项目的前端界面(一级菜单有12个页面+一个控制台大屏,二三级界面有N个),之前预估前端界面的编写需要一个月,我是自己把自己卷死了(没有办法,项目经理说项目要1周写界面,2周发版,我这个项目前端只我1个人,后端有3个人...).......我只想说 ......
界面 需求 项目 产品 vue3

聚焦技术,锐意创新,GaussDB给世界一个更优选择

摘要:从整个行业应用层面来看,现在,数据库的国产化时代已经到来。 本文分享自华为云社区《聚焦技术,锐意创新,GaussDB给世界一个更优选择》,作者: GaussDB数据库。 今天,以“数据智能,价值创新”为主题的第13届中国数据库技术大会(DTCC2022)在线上顺利举行,会上集合了数百位行业专家 ......
GaussDB 世界 技术

超详细讲解如何搭建自己的文件服务器

由于FTP、HTTP、Telnet等协议的数据都是使用明文进行传输的,因此从设计上就是不可靠的。人们为了满足以密文方式传输文件的需求,发明了vsftpd服务程序。vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不... ......
服务器 文件