
进阶编程
文章平均质量分 82
de之梦-御风
我是工作了11年的老程序员,是一个未来的架构师,我会经常分享一下自己的知识和心得
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Elsa Workflows】Elsa Workflows审批流全功能扩展
以下是基于,包含企业常见审批场景所需的所有关键能力,并附上每一项的。原创 2025-07-16 14:29:29 · 850 阅读 · 1 评论 -
【动态编译】Roslyn中 SyntaxKind 枚举类型
在 Roslyn(.NET 的编译器平台)中,SyntaxKind是一个枚举类型,定义了 C# 语言中所有可能的语法节点类型。它是 Roslyn 抽象语法树(AST)的基础,用于标识每个SyntaxNode的具体种类。SyntaxKind的值直接对应于 C# 的语法结构,例如关键字、运算符、声明、语句和表达式等。以下是对SyntaxKind枚举的详细说明,包括其分类、常见值及其用途。我会尽量全面且清晰地列出主要类别和示例,并避免过于冗长。如果你需要某个具体部分的深入解释,可以进一步告诉我!原创 2025-03-28 17:03:21 · 805 阅读 · 0 评论 -
【进阶编程】Avalonia、MAUI、Uno Platform、Flutter、Electron、Qt 和 Tauri 的详细对比
以下是和的详细对比,涵盖市场占有率、性能、开发体验、生态系统、适用场景等多个方面。原创 2025-03-24 10:28:42 · 1499 阅读 · 0 评论 -
【进阶编程】跨平台的 UI 框架
框架名称语言跨平台支持特点适用场景AvaloniaC# / XAML类似 WPF,跨平台支持.NET 开发者,跨平台桌面/移动MAUIC# / XAML微软官方支持,Xamarin.Forms 继任者.NET 开发者,跨平台移动/桌面C# / XAML基于 UWP,支持 WebAssemblyUWP 迁移,跨平台 Web/桌面FlutterDart高性能,丰富的 UI 组件高性能跨平台应用Electron基于 Web 技术,生态系统丰富Web 开发者,桌面应用Qt。原创 2025-03-24 10:27:28 · 1132 阅读 · 0 评论 -
【进阶编程】Roslyn 解析 C# 语法树(Syntax Tree)的节点详解
其中每个代码元素(类、方法、变量等)都是一个。Roslyn 解析 C# 代码后会生成一棵。:表示整个 C# 代码文件的最顶层节点。每个 C# 代码结构都对应一个。(可用于代码分析、代码重写)(如代码风格分析、代码补全)(如自动修正、代码重构)原创 2025-03-18 14:41:27 · 635 阅读 · 0 评论 -
【进阶】Roslyn 代码结构解析
(.NET Compiler Platform),用于解析、分析、编译和转换 C# 和 VB 代码。它的代码结构复杂,主要分为。(可扩展 C# 代码分析)(可用于插件、热更新)原创 2025-03-18 14:37:52 · 942 阅读 · 0 评论 -
【进阶编程】Thread 和 Task 场景比较
Thread和Task在并发编程中各有优势,适用的场景有所不同。尽管Task是对Thread的抽象,提供了更高层次的并发模型,以下是一些场景,其中直接使用Thread比使用Task。原创 2025-01-15 09:08:17 · 352 阅读 · 0 评论 -
【进阶编程】复杂逻辑-简化拆分
复杂逻辑拆分是将复杂的代码、业务流程或系统逻辑分解成简单、独立的小部分,以提高可读性、可维护性和可测试性。通过这些方法,复杂逻辑可以拆分成更小、更易管理的模块,同时提高代码的质量和可维护性。原创 2024-12-31 14:14:31 · 712 阅读 · 0 评论 -
【进阶编程】配置驱动注入和依赖注入的比较(二)
配置驱动注入的实现通常是通过外部配置文件(如JSON、XML、YAML)来声明依赖关系,应用程序会在运行时读取这些配置并根据配置来实例化并注入依赖。配置驱动注入指的是通过配置文件(如XML、JSON、YAML等)来声明依赖关系,并在应用程序运行时根据配置动态地选择和注入依赖。这种方式并不依赖于IoC容器,而是通过外部配置文件的方式来管理对象之间的依赖关系。依赖注入是一种设计模式,其基本思想是将一个对象所依赖的对象(依赖项)“注入”到该对象中,而不是由该对象自行创建或查找这些依赖。原创 2024-12-25 14:17:47 · 776 阅读 · 0 评论 -
【进阶编程】配置驱动注入和依赖注入的比较(一)
在配置驱动注入中,类仍然需要从配置文件中读取依赖项,这使得依赖关系显得更加静态且依赖于外部配置文件,不能像依赖注入那样灵活地管理和替换依赖。对于较小的项目或者配置变化较少的系统,配置驱动注入的实现较为简单,但当系统规模增大时,手动管理配置和依赖变得更加困难。:配置驱动注入的灵活性较低,虽然可以通过修改配置文件来调整依赖关系,但它缺乏依赖注入那种运行时替换和动态调整依赖的能力。:配置驱动注入的性能开销较小,因为它通常只在应用启动时读取配置文件并创建依赖对象,后续并不涉及复杂的依赖管理。原创 2024-12-25 14:14:25 · 3142 阅读 · 0 评论 -
【进阶编程】再谈DDD领域驱动
这些术语是 DDD 核心概念的基础,帮助开发人员在复杂的业务领域中进行建模、设计和实现。通过理解和应用这些术语,开发团队能够构建出更具一致性、灵活性和可维护性的系统。如果你有特定术语的疑问,或想要深入探讨某个概念,可以继续提问!原创 2024-12-25 10:09:01 · 542 阅读 · 0 评论 -
【进阶编程】再谈横纵编程思想
横向编程:侧重于系统或应用中不同模块、功能之间的协作与集成。纵向编程:更专注于某个特定模块或功能的深入设计与优化。原创 2024-12-25 10:06:34 · 580 阅读 · 0 评论 -
【进阶编程】代理模式和适配模式的比较
代理模式侧重于控制和优化对目标对象的访问,增加额外的行为而不改变目标对象的接口。例如,代理可以用来实现延迟加载、访问控制等功能。适配器模式侧重于使不兼容的接口能够一起工作。它通过将一个类的接口转换为另一个接口,使得两个不兼容的类能够进行交互。两者虽然有些相似,都通过中间对象(代理或适配器)来处理对象间的交互,但它们的核心目标不同,代理模式更注重对访问的控制,而适配器模式则更注重接口的兼容性。原创 2024-12-24 17:27:36 · 1083 阅读 · 0 评论 -
【进阶编程】MVVM的物理架构目录
一个典型的。原创 2024-12-20 10:23:39 · 1647 阅读 · 0 评论 -
【进阶编程】MVVM框架的每层对应那些业务
在架构中,都承担着不同的责任并处理不同类型的业务逻辑。理解每层的业务角色有助于我们在开发过程中合理划分工作,提升代码的模块化、可测试性和可维护性。原创 2024-12-20 10:21:15 · 1254 阅读 · 0 评论 -
【进阶编程】MVC和MVVM实现前后端分离的实现
将。原创 2024-12-20 09:04:50 · 1472 阅读 · 0 评论 -
【基础编程】net平台下,C# 编程中关键字
如果需要了解某个关键字的更具体用法,请告诉我!原创 2024-12-06 10:45:30 · 1003 阅读 · 0 评论 -
【基础编程】面向对象编程(OOP)详细解析
面向对象编程(OOP)详细解析原创 2024-12-05 17:30:11 · 1188 阅读 · 0 评论 -
【进阶编程】没有继承接口的情况下,实现强制转换接口
强制转换只能在运行时确认目标对象类型实际实现了接口时才有效。如果类型没有实现接口,可以使用扩展方法或适配器模式满足需求,但直接强制转换会抛出异常。原创 2024-12-04 09:54:24 · 374 阅读 · 0 评论 -
【感悟】架构师需要具备那些能力
作为一名架构师,需要具备多方面的能力和技能,以有效设计、指导和推动软件或系统的开发。熟悉安全性、合规性和法规相关要求(如GDPR、ISO 27001)。掌握软件质量属性(可用性、可维护性、可扩展性、安全性等)及其权衡。熟悉常见架构模式(如分层架构、微服务、CQRS、事件溯源等)。理解分布式系统设计,包括微服务架构、SOA、事件驱动架构等。熟悉多种技术栈(前端、后端、数据库、DevOps等)。对技术趋势保持敏感,如云计算、容器化、大数据、AI等。能够根据需求设计可扩展、高可用、高性能的系统架构。原创 2024-11-17 09:54:04 · 957 阅读 · 0 评论 -
【进阶编程】 分层结构和横纵向编程接口的结合
分层架构确保了每一层的职责清晰。横向编程让系统模块可以并行开发,彼此相对独立。纵向编程在每个模块中实现从 UI 到数据库的完整逻辑流。通过这种组合设计,系统可以轻松添加新模块或对现有模块进行升级,同时保证代码的可维护性和可扩展性。原创 2024-11-14 10:41:06 · 909 阅读 · 0 评论 -
程序员怎样优雅地编写代码
作为程序员,优雅地编写代码不仅意味着代码看起来整洁美观,还意味着代码具有高可读性、易维护性、可扩展性和良好的性能。原创 2024-10-25 13:45:47 · 829 阅读 · 0 评论 -
【进阶编程】横向设计和纵向设计-常用的设计模式
在软件工程设计中,和是两种不同的设计思维方式或方法,涉及系统的架构布局、模块划分以及系统的耦合方式。这两种设计方法常用于大型软件系统的结构化设计中,以便更好地处理系统的复杂性、扩展性和维护性。原创 2024-09-28 09:50:17 · 2430 阅读 · 0 评论 -
【进阶编程】领域驱动设计也没有那么神秘,试着去尝试使用它
为跨多个实体的业务逻辑提供一个独立的操作逻辑层。当某些业务逻辑不能自然地放入某个具体的实体或值对象时,使用领域服务封装这些操作。例如,“资金转账” 涉及多个账户,因此可以定义一个 “转账服务” 来处理这种逻辑。创建复杂对象或聚合,确保其符合业务规则。当创建聚合涉及复杂业务逻辑或对象的初始化时,可以通过工厂模式来封装创建逻辑,确保对象始终被正确构建。工厂可以是简单的静态方法,也可以是独立的工厂类。原创 2024-09-28 09:49:10 · 823 阅读 · 0 评论 -
【进阶编程】“配置优于编码” 设计原则,你用到了吗
配置优于编码”是一种通过外部化配置来提高系统灵活性、可维护性和扩展性的设计原则,适用于复杂系统、多环境配置管理和云原生应用。通过减少硬编码依赖,增强了系统的适应性,但同时也需要对配置文件的复杂性和安全性进行有效管理。原创 2024-09-28 09:44:10 · 698 阅读 · 0 评论 -
【进阶编程】“约定优于配置” 软件设计原则
约定优于配置是一种通过合理的默认行为减少配置的设计原则。它通过简化配置、提高开发效率和代码可读性,广泛应用于现代开发框架和工具中。虽然可能在某些情况下略微降低了灵活性,但它大大简化了开发工作,是软件设计中的重要原则之一。原创 2024-09-28 09:42:54 · 1027 阅读 · 0 评论 -
OpenCV4Net的开始【核心库】
OpenCvSharp 是 OpenCV 的一个 .NET 封装库,允许开发者在 C# 等 .NET 语言中使用 OpenCV 的功能。它提供了完整的 OpenCV API,使得图像处理、计算机视觉等任务在 .NET 环境下得以实现。原创 2024-09-28 09:40:26 · 741 阅读 · 0 评论 -
软件设计的主要目标
软件设计的主要目标包括可维护性可扩展性可重用性灵活性高内聚低耦合性能健壮性可读性和清晰性安全性以及用户体验。这些目标相互关联,软件设计需要在多个方面取得平衡,以确保系统的长期健康和稳定发展。原创 2024-09-28 09:39:15 · 1287 阅读 · 0 评论 -
接口和抽象类的使用区别
共同基础行为:如果你希望不同的类共享一些共同的行为或状态,但每个类也有自己的实现方式,抽象类是最佳选择。例如,你可以创建一个 Animal 抽象类,其中包含所有动物的共有行为(如 Eat()),但每种动物可能有不同的吃饭方式。部分实现和重用:抽象类允许你在父类中提供部分实现,子类可以复用这些实现,也可以选择覆盖它们。模板方法模式:在需要创建模板方法模式时,抽象类是理想选择。模板方法模式允许你定义一个算法的骨架,而具体步骤由子类实现。示例接口。原创 2024-09-28 09:37:38 · 633 阅读 · 0 评论 -
软件开发务必知晓的软件开发准则
是确保软件质量和可维护性的一系列指导思想,它们帮助开发人员更好地理解软件系统的设计和实现,从而确保软件的长期稳定性和可扩展性。这些原则涵盖了从设计方法、开发模型选择到重视开发过程管理的各个方面,以确保软件能够满足用户需求。这些原则相互关联、相互影响,共同指导软件开发的全过程,从设计到实现,再到维护,确保软件的质量、可维护性和可扩展性。初学者应该尝试去理解这些原则,软件设计者应该掌握这些原则(避免被人说野路子编程)。:(前五个就是SOLID五大设计原则)原创 2024-09-28 09:28:38 · 359 阅读 · 0 评论 -
异步编程是多线程吗
工作十年了,刚开始对异步多线程了解的不深,曾经一度以为异步就是多线程实现的。:异步编程并不等同于多线程,但它们可以结合在一起使用。原创 2024-09-28 09:24:08 · 403 阅读 · 0 评论 -
【进阶编程】结合横向设计和纵向设计来分离业务领域类
纵向设计确保每个业务功能模块独立,便于模块化开发和维护,适合微服务架构和DDD中的聚合管理。横向设计帮助模块内部进行合理的职责分层,确保代码复用性和可维护性,适合复杂的分层系统架构。两者的结合可以有效分离业务领域类,既保持系统的模块化和独立性,又增强了各模块内部的结构清晰度。原创 2024-09-28 08:56:16 · 634 阅读 · 0 评论