技术开发
-
C++11:引入 nullptr 的背后故事
C++11 引入 nullptr 的决策不仅是为了消除 NULL 的缺陷,更是为了提升整个语言的安全性、可读性和现代性。
-
我们一起聊聊C# 开启线程的四种方式
Thread类提供了对线程的底层控制,但使用起来相对繁琐;Task类和Task.Factory.StartNew方法提供了更高级的抽象和更好的性能;而async/await则进一步简化了异步编程模型,使得代码更易读和维护。在实际开发中,应根据具体需求选择合适的方式。
-
ASCII、Unicode、UTF-8、utf8mb4,有啥区别?
什么是字符集?什么是编码?什么是解码?它们之间有什么关系?ASCII、Unicode、UTF-8、ISO-8859-1、GB2312,这些在计算中常见的名词,它们代表的真正含义是什么?这篇文章帮你讲透!
-
我们一起聊聊Typescript 泛型入门精髓
泛型是 TypeScript 的一项强大功能,使我们能够编写更抽象、更安全和可重用的代码。从简单的实用工具函数(如标识函数)到更复杂的数据结构(如 Store 类),泛型提供了处理各种数据类型所需的灵活性,同时保持类型安全。
-
Python 中常常容易让人忽略它第二个参数的函数,第三个大名鼎鼎,几乎每天都用
在Python中,`strip()` 方法经常被人们忽略它的参数。`strip()` 方法用于去除字符串两端的空格,但有时候可能会忽略它的参数,导致不符合预期的结果。
-
DevOps全面综述:从概念到实践
尽管DevOps带来了显著的优势,但在实践过程中,企业可能会面临各种挑战。理解这些挑战并采取相应的解决方案,是成功实施DevOps的关键。
-
Python 容器化技术的 15 个 Docker 实践
今天,我们将一起探索如何利用Docker这一强大的容器化工具,来提升你的Python项目开发、部署效率。
-
Python 自动化办公:操作 Excel 的七个示例
Python能高效地处理复杂的数据任务,而openpyxl则是专门用于操作Excel文件的库,让你无需打开Excel,就能完成创建、读取、编辑等操作。
-
有人问我架构图、流程图为什么这么好看?
Keynote 更适合做那些科普类、知识类、推荐类的图文内容,比如小红书,你随便搜一个图文类软件推荐的博主,那种比较简洁的封面图,就很适合用 Keynote 做。
-
新项目为什么建议你使用 JDK17,一文告诉你升级的方法和不可拒绝的理由!
调优门槛也相对较高,需要对垃圾回收器的内部机制有一定的了解,才能够进行有效的调优。随着ZGC的出现, 使得这一痛点彻底解决, ZGC 最初在 JDK 11 中作为实验性功能引入,并在 JDK 15 中宣布为生产就绪, 由于 JDK17 才是比较正式提供给大众实用的LTS支持版本,而且一部分公司已经在使用,所以本文力推 JDK17。
-
服务失败后如何重试?你学会了吗?
线性回退是指在重试尝试之间等待一个逐渐增加的固定时间间隔。例如,如果初始重试间隔设置为 1 秒,则后续重试间隔可能为 2 秒、3 秒、4 秒,依此类推,每次重试后都会增加固定时间。
-
多线程技术应用之并行下载并通知运行状态
在这个版本中,我们使用Parallel.ForEach来并行处理文件的下载任务。我们使用了Partitioner.Create来创建任务的范围,并使用ParallelOptions来控制并行度。
-
被追着问UUID和自增ID做主键哪个好,为什么?
基于随机数的 UUID 是根据随机数或伪随机数生成的。该版本的 UUID 使用随机数生成器生成,保证了生成的 UUID 具有极佳的唯一性。然而,由于其基于随机数,因此不太适用于数据量特别大的场景。
-
SpringBoot3.x系统架构的任务调度和问题解决
通过本文,我们详细讲解了SpringBoot3.x中的任务调度机制,包括并发处理、防止重复执行以及提高任务调度效率和准确性的优化方案。
-
Protobuf-net:C#高效序列化工具,助力接口传输与前端解析
通过定义消息类型、序列化和反序列化实现数据传输,并可适用于Web接口。前端可使用protobuf.js库解析Protobuf格式数据。