最近关于运维的一些感想

thbcm阅读(36)

最近在和几位老运维聊起职业发展,他们不约而同地提到一个词:”运维是系统稳定性最后的防线”。这句话让我陷入了思考。作为IT行业中最容易被忽视的岗位之一,运维真的只是”救火队员”吗?还是说,我们正在经历一场静悄悄的变革?

微软官方出品的 AI 初学者入门精品课程,21节课程教你构建生成式人工智能应用所需掌握的知识!

thbcm阅读(44)

Generative AI for Beginners 课程包含 21 节干货满满的课时,从基础概念到实践应用,全方位、系统性地传授构建生成式人工智能应用所需掌握的核心知识。内容涵盖大语言模型原理、提示工程、RAG、AI Agent、图像生成、负责任 AI、安全与用户体验等关键主题,并提供 Python 与 TypeScript 双语言代码示例,帮助学习者边学边练。

Redis持久化机制

thbcm阅读(80)

Redis的持久化机制用于将内存中的数据保存到磁盘,以便在重启后恢复数据。

Redis 提供了两种主要的持久化方式:

如何在 .NET 中构建一个好用的动态查询生成器

thbcm阅读(60)

为了简化查询表达式的动态构建,社区出现了很多表达式生成辅助库。其中最知名当属
System.Linq.Dynamic.Core
LinqKit
System.Linq.Dynamic.Core使用字符串定义表达式,并在内部转换成
Expression
LinqKit则是使用
PredicateBuilder<T>把复杂表达式拆分成多个片段的组合。但是他们也存在一些不便之处,
System.Linq.Dynamic.Core牺牲了代码的静态检查能力,只有在运行时才知道表达式是否正确。如果把表达式作为允许前端填写的参数,不仅需要让前端开发人员多学习一套表达式定义语法,还会产生安全漏洞。如果想提前检查表达式的安全性,就需要对字符串进行分析。分析字符串生成表达式会成为一个流行库的原因之一就是分析这个字符串很难,这样一来相当于把外包出去的困难任务又拿回来了。
LinqKit则是对前端不友好,这种类型无法序列化传输,如果想通过前端配合使用,还是需要再想办法写一套转换代码和配套的可序列化数据结构。

联系我们