跳转到主要内容
杨月昌的软件博客

归档

我归档的所有文章。

20261
一月1
20253
六月1
三月1
  • 前后端分离:构建高效、灵活的现代 Web 架构

    在数字化时代,Web应用的需求日益复杂,用户体验的要求不断提高。为了应对这些挑战,前后端分离作为一种高效的开发模式,逐渐成为现代Web开发的主流趋势。它不仅提升了开发效率,还为团队协作、功能扩展和用户体验优化提供了更多可能性。

一月1
  • 2024/2025 年 React 全栈生态与组件库精选指南

    React 是一个用于构建用户界面的 JavaScript 库,它的核心理念是通过函数组件创建组件驱动的 UI。React 提供了一些内置的解决方案,如 React Hooks,帮助开发者管理本地状态、副作用和优化性能。

20242
十二月1
  • SQL Server XML 深度指南:存储、查询与实战技巧

    在SQL Server 中,XML 数据类型为开发者提供了一种便捷且高效的方式来存储和操作 XML 格式的数据。无论是作为表字段、存储过程参数,还是作为临时变量,XML 数据类型都能帮助开发者实现对复杂数据结构的管理。

一月1
  • 跨年烟花:用 HTML5 Canvas 绘制指尖上的绚烂庆祝

    随着数字化生活比例的增加,我们庆祝新年的方式正在悄然改变。传统的烟花虽然震撼,但在环保和安全面前逐渐受限。今天,我们将通过 Web 技术,在浏览器中通过 HTML5 实现一套既高清又具交互性的“跨年烟花模拟系统”,让你足不出户也能感受节日的浪漫。

20237
十二月1
  • 深度实践:使用 SqlSugar 实现动态建模、多库维护与跨库管理

    在现代软件开发中,数据库管理和操作的效率对于项目的可扩展性和维护性至关重要。本文将介绍如何通过使用 SqlSugar 实现动态创建类和表,支持多数据库的维护、动态增删改查(CRUD)操作、跨库查询以及全局过滤器等功能,帮助开发人员在面对多库环境下实现高效的数据操作。

十月1
八月1
五月1
三月1
  • 2023 年 React 生态全景图:从选型到落地

    React 是一个用于构建用户界面的 JavaScript 库,它的核心理念是通过函数组件创建组件驱动的 UI。React 提供了一些内置的解决方案,如 React Hooks,帮助开发者管理本地状态、副作用和优化性能。

二月1
  • .NET 平台常用框架及资源全景指南(2026版)

    .NET 生态系统经过二十多年的发展,已经从封闭的 Windows 开发平台进化为全平台、开源的现代化开发框架。本文对 .NET 开发中涉及的分布式缓存、ORM、微服务、中间件等常用框架进行了系统性整理,旨在为不同阶段的开发者提供选型参考。

一月1
  • 人工智能开发框架深度分析:2026 开发者选型指南

    在人工智能(AI)和深度学习的快速发展中,选择合适的开发框架至关重要。每种框架在开发、训练模型、部署和优化方面具有不同的特点,适应不同的应用场景。本文将基于最新版本的人工智能框架(截至2025年),对 TensorFlow、PyTorch、Keras、MXNet 和 Caffe 进行优劣分析,并提供性能比较,帮助开发者根据具体需求选择最合适的框架。

20226
十一月1
  • WPF 桌面应用:Log4net 日志系统集成指南

    在软件开发过程中,日志记录是一个非常重要的功能,特别是对于异常追踪和程序调试。`log4net` 是一个流行的日志记录库,它支持多种日志输出方式,比如输出到控制台、文件、数据库等。

十月1
七月1
五月1
  • Adam 优化算法详解:从原理到现代实践

    Adam(Adaptive Moment Estimation)是深度学习中最受欢迎的优化算法之一。它结合动量法与自适应学习率的思想,为每个参数独立调整步长,在大多数现代神经网络训练中表现稳健。本文从数学原理到代码实现,再到2025–2026年的最新实践趋势,全面解析 Adam 及其重要变体。

四月1
三月1
  • 使用 Next.js 和 Supabase 进行全栈开发:构建现代博客系统

    MSupabase 是一个开源替代品,类似于 Firebase,它可以让你在几分钟内建立一个实时后台。Supabase 的流行原因之一是它将强大的 SQL 数据库(基于 PostgreSQL)与实时功能、用户认证、文件存储等集成在一起。而且它是开源的,这使得开发者可以根据需要自定义和扩展功能。

202110
十二月1
十月1
八月3
  • Nginx 入门与实战:高性能网站服务架构

    Web服务是允许用户通过浏览器访问互联网上各种资源的服务程序。它是一个被动的服务,只有在接收到来自互联网其他主机的请求后,才会做出响应。通过 HTTP 或 HTTPS 协议,Web 服务器会把请求的内容返回给用户。

  • 深入解析 NGINX `location` 和 `rewrite` 的进阶实战

    NGINX作为高性能的HTTP和反向代理服务器,凭借其灵活的配置和强大的功能,在网站运维中广泛应用。特别是它的location和rewrite指令,提供了强大的路径匹配和URL重写功能,帮助我们进行精准的流量管理和资源分发。今天我们就来详细剖析这些指令的用法和优雅的配置技巧。

  • Nginx 生产环境:高性能调优与日志自动化管理方案

    在生产环境中,Nginx 作为高性能的反向代理服务器和负载均衡器,需要根据服务器硬件性能、访问流量以及业务需求来做出相应的优化配置。以下是推荐的 Nginx 配置,以提高性能和稳定性。

七月1
  • Transformer:注意力革命十年回顾与2026年生态全景

    Transformer 自2017年《Attention is All You Need》提出以来,彻底改变了序列建模范式。它完全抛弃递归结构,依赖自注意力机制实现全局并行计算,成为现代大语言模型(LLM)、视觉基础模型、多模态AI的统一架构。尽管2024–2026年涌现了Mamba、RWKV、xLSTM等高效后Transformer架构,经典Transformer(尤其是Decoder-only)在2026年仍主导绝大多数生产级模型。本文从核心原理到代码实现,再到当前进化趋势与替代方案,系统拆解Transformer。

六月1
四月1
三月1
一月1
20209
十二月1
  • 提升 Web 性能:基于 Nginx 和 Memcached 的页面缓存方案

    在现代Web应用中,页面缓存是提升性能的关键手段之一。随着用户对访问速度的要求越来越高,如何加速动态页面的响应变得尤为重要。今天,我们将探讨一种高效的页面缓存方案:结合 Nginx 和 Memcached,通过Nginx的 ngx_http_memcached_module 模块快速缓存和分发动态内容,从而显著提升应用的响应速度。

十一月1
十月1
  • 深度解构 LSTM:长短期记忆网络的全景与2026年现状

    LSTM(Long Short-Term Memory)是序列建模领域的经典架构,通过门控机制有效缓解梯度消失问题,曾主导NLP、语音、时间序列等领域。尽管Transformer在2020年后成为主流,LSTM及其现代变体(如xLSTM、sLSTM)在2026年仍活跃于资源受限场景、时间序列预测、实时系统和边缘AI。本文从数学原理到代码实现,再到当前生态定位,全面剖析LSTM。

七月1
  • 完整安装部署 MedusaJS:从核心服务到全栈电商系统

    MedusaJS 是一个现代的电商框架,灵活且强大,可以帮助开发者快速构建和扩展电商应用。虽然 MedusaJS 提供了易于使用的工具和模块,但其安装和配置并非一键式操作,它包含三个核心模块:核心服务、后台管理面板和前台界面。

六月1
  • C# 日期与时间操作指南:常用日期获取与计算方法

    在 C# 中,我们经常需要处理日期和时间。通过 DateTime 类,可以轻松获取和操作日期,下面我们为您整理了常用的日期操作方法,并给出具体的例子,帮助您更好地理解如何在代码中使用它们。

五月1
  • 简单升级 Hexo 的方法:一键三连助你轻松搞定

    Hexo 是一款非常受欢迎的静态博客生成工具,但随着时间的推移,版本更新可能会带来一些新的功能和优化,帮助你提升博客的性能和体验。如果你目前的 Hexo 版本较低,想要升级到最新版,以下是一个简单有效的升级流程。

四月1
三月1
  • WPF 中的 DataContext 与 View-ViewModel 绑定方式详解

    在WPF应用程序中,DataContext是连接视图(View)与视图模型(ViewModel)的关键组件,它让你能够通过数据绑定轻松地将用户界面与后端逻辑分离。通过适当的绑定,我们能够实现松耦合的设计,让代码更具可维护性和可扩展性。

一月1
  • C# 开发必看:常用加密解密算法深度解析

    在实际的开发中,我们经常会遇到需要对敏感信息进行加密或进行信息完整性校验的需求。C#提供了丰富的加密算法,分为可逆加密和不可逆加密两大类,常见的有MD5、DES、RSA、AES、Base64和SHA等。

201912
十二月1
  • C# 开发实战:深入理解 MD5 加密与用户密码保护

    在 Web 应用中,绝对不要以明文形式存储用户密码。MD5(消息摘要算法第 5 版)虽已被证明存在碰撞风险,但在处理非高度机密数据或结合“加盐(Salting)”技术的遗留系统中,它依然是开发者需要了解的基础算法。

十一月1
  • C# 操作 SQL Server 数据库:增、删、改、查基本操作

    在开发应用程序时,与数据库的交互几乎是每个项目中不可避免的部分。对于使用 SQL Server 数据库的 C# 开发者来说,掌握如何在代码中实现数据库连接和基本的增、删、改、查操作是至关重要的。本文将通过示例代码演示如何在 C# 中实现 SQL Server 的基本数据库操作。

十月1
九月1
  • 优化代理池:如何解决 Redis 中的代理 IP 重复与质量管理问题

    在使用代理池进行爬虫或其他网络请求时,代理IP池的稳定性和质量至关重要。代理IP池的管理直接影响爬虫的效率和稳定性。一个常见的问题是,代理池中的代理IP可能会重复,这会导致爬虫重复使用相同的代理,甚至出现某些代理失效的情况。

八月1
  • WPF 程序中的 App.Config 文件读写操作详解

    在开发应用程序时,与数据库的交互几乎是每个项目中不可避免的部分。对于使用 SQL Server 数据库的 C# 开发者来说,掌握如何在代码中实现数据库连接和基本的增、删、改、查操作是至关重要的。本文将通过示例代码演示如何在 C# 中实现 SQL Server 的基本数据库操作。

七月1
  • 自注意力机制(Self-Attention)深度解构:从2017到2026的十年演进

    自注意力机制是Transformer及现代大模型的灵魂。它让序列模型摆脱递归束缚,实现全局并行计算与任意距离依赖建模。尽管2024–2026年涌现了大量Softmax-free与线性复杂度替代方案,自注意力(尤其是其高效实现)仍是2026年绝大多数生产级语言、视觉、多模态模型的事实核心。本文从数学原理、工程优化到当前前沿趋势,系统拆解自注意力机制。

六月1
  • 深入了解 ABP Framework:现代化的企业级应用开发框架

    在开发现代化企业级应用时,开发者通常面临多个挑战,如复杂的业务逻辑、权限管理、模块化设计、跨平台支持等。ABP Framework(Asp.Net Boilerplate)应运而生,作为一个开源的、基于 .NET 平台的企业级应用框架,它旨在简化开发过程,并提供一整套用于构建复杂应用的最佳实践。

五月1
  • 手把手教你编译 OpenCV 4 + Contrib:VS2017 实战指南

    在这篇文案中,我将带你一步步地通过VS2017、CMake 3.13、OpenCV 4和OpenCV-Contrib 4的组合来编译生成OpenCV库。经过多次尝试与调试,终于成功搭建起了环境,解决了各种问题,以下是详细步骤和经验分享。

四月1
三月1
  • AES 加密与解密:保障数据安全的利器

    在现代信息技术时代,数据安全至关重要。随着互联网的发展和信息传输的普及,如何保护敏感数据的机密性成为了每个开发者和安全专家的焦点。

二月1
  • 解决本地开发中 OpenSSL 生成自签证书的常见问题

    在进行本地开发时,我们通常需要使用自签证书来启用 HTTPS,特别是在使用 Node.js 和 npm 启动项目时。如果你在使用 OpenSSL 生成自签证书的过程中遇到了一些问题,下面的步骤将帮助你解决这些常见问题。

一月1
201812
十二月2
  • FluentScheduler:C# 中的任务调度神器

    在开发自动化任务时,很多开发者可能会遇到需要定时执行某些操作的场景。传统的做法通常是将程序打包成可执行文件(EXE),然后使用 Windows 的 Task Scheduler 来设定执行时间和频率。然而,这种方法往往不适用于秒级频率的高频任务,尤其是那些需要不断运行的场景。

  • Python 算法实战:从初级到骨灰级的素数判定函数

    最近在学习 Python 编程的过程中,发现了许多关于判断数字是否为素数的自定义函数实现,其中不少资料的代码是错误的。素数是大于 1 的自然数,且只能被 1 和它本身整除。简单的素数,如 2 和 3,常常会在错误的代码中被漏掉。

十一月1
  • SQL Server 日期查询实战:从基础到高级优化技巧

    在 SQL Server 中,日期与时间的处理是数据库开发中常见的需求。通过灵活的日期函数和查询语句,可以高效地筛选出特定时间范围内的数据。本文将介绍一些常用的日期查询技巧,帮助你轻松获取今天、昨天、过去7天、30天、以及本月、本年的数据等。

十月1
  • 归一化技术全景:从数据预处理到现代大模型的稳定器

    归一化(Normalization)是深度学习训练中不可或缺的“稳定器”和“加速器”。它从简单的数据尺度统一,演进到BatchNorm、LayerNorm、RMSNorm等层内归一化,已成为现代神经网络(尤其是Transformer和大语言模型)高效收敛的关键。本文系统梳理经典与前沿归一化方法,并给出2026年工业界的实用选择指南。

九月1
  • 宝塔面板实现百度 API 自动推送教程:加速 SEO 收录的两大方案

    百度自动推送是为了加速百度抓取并提高搜索引擎优化(SEO)效率的一种工具。今天,我们将分享两种利用宝塔计划任务(Crontab)实现百度自动推送的方法:一种是基于提交 `sitemap.xml` 文件的推送方式,另一种是手动提交文章链接的方式。

八月1
  • 如何在 Ubuntu 18.04 上使用 UFW 设置防火墙

    在现代服务器管理中,防火墙是保障系统安全的重要工具。虽然 iptables 是一个强大的防火墙管理工具,但其复杂性可能对新手来说是一个挑战。为了解决这个问题,Ubuntu 提供了一个简单易用的工具——UFW(Uncomplicated Firewall)。UFW 通过简化规则配置,帮助你更加轻松地管理服务器的网络安全。

七月1
六月1
  • SQL Server 基础操作语句大全:从入门到实战

    QL Server作为常用的关系型数据库管理系统,其语法和功能的灵活性使得它在开发和数据库管理中广泛应用。掌握基础的增删改查(CRUD)操作是数据库管理的基础。

五月1
  • C# 实战:动态创建 SQL Server 数据库与表

    QL Server作为常用的关系型数据库管理系统,其语法和功能的灵活性使得它在开发和数据库管理中广泛应用。掌握基础的增删改查(CRUD)操作是数据库管理的基础。

三月1
二月1
  • 量化投资中的数据处理与分析:Pandas 的应用与技巧

    在量化投资中,数据的处理和存储是至关重要的环节。无论是股票的历史价格数据、因子数据,还是回测结果,如何高效地读取、存储和分析这些数据将直接影响模型的性能与交易策略的效果。

一月1
201710
十二月1
  • 后端语言框架深度评测:Java, Node.js, C#, Rust, Go

    在架构设计中,没有“最好的语言”,只有“最适合当前场景的选型”。随着云原生架构(Cloud Native)和微服务进入深水区,后端选型的逻辑已经从单纯的“语法喜好”转向了“资源成本与交付速度”的平衡。

十一月1
十月1
九月1
八月1
  • Python 爬虫实战:Requests + 正则表达式抓取猫眼电影 TOP 100

    在爬虫开发的世界里,很多时候我们并不需要使用复杂的框架,requests 和 re 就能帮助我们完成数据抓取和解析任务。今天,我们将通过一个简单的爬虫示例,使用 Requests 库和 正则表达式 来抓取 猫眼电影 网站的 TOP 100 电影信息。

七月1
四月1
  • 深度理解 Softmax:从多分类到现代大模型的概率桥梁(2026 更新)

    Softmax 函数是深度学习中最经典的“概率化”组件,将 Logits 转换为有效的概率分布。它不仅是多分类任务的标准输出层激活,更是 Transformer 自注意力机制的核心。尽管在2025–2026年出现了诸多 Softmax-free 注意力替代方案(如线性注意力、多项式激活、Gated DeltaNet 等),Softmax 及其变体仍主导绝大多数生产级模型。本文从数学本质、数值稳定性、与损失函数的协同,到当前研究前沿与工程实践,全面拆解 Softmax。

三月1
二月1
一月1
  • 给 Hexo 加个后台,轻松实现博客在线管理

    今天在群里偶然看到大佬们谈论一个项目——Qexo,看到它支持 Hexo 博客的后台管理,界面也非常漂亮,于是决定亲自尝试一下。最终,成功为自己的 Hexo 博客添加了一个后台,整个过程也非常简单和直观。

201610
十二月1
  • WPF 实战:将 DataGrid 数据导出为 XML 文件

    在WPF应用程序中,处理数据并将其保存为XML文件是一个常见的需求。本文将介绍如何将DataGrid中的数据保存到XML格式,并展示如何实现这个功能的代码。

十一月1
十月1
  • 深度直击:后向传播算法(Backpropagation)全解析

    后向传播(Backpropagation,简称 BP)是现代深度学习的核心训练算法。尽管出现了诸多替代方案的探索,BP 及其自动微分实现仍是2026年训练几乎所有主流神经网络(Transformer、Diffusion、CNN、RNN 等)的实际基础。本文从数学原理、代码实现到现代挑战与解决方案,系统拆解 BP 算法。

九月1
  • WPF 进阶:使用 XmlDocument 实现 XML 文件的深度读写

    在开发WPF应用程序时,良好的日志记录和异常捕获机制对于问题排查和应用稳定性至关重要。本文将介绍如何使用 log4net 实现日志记录,并展示如何设置全局异常捕获以便有效处理运行时错误。

七月1
六月1
  • 腾讯云服务器建站全攻略:从零开始搭建 WordPress 网站

    已经有了腾讯云服务器如何搭建网站?腾讯云服务器网以腾讯云服务器,借助宝塔面板搭建Web环境,然后使用WordPress博客程序搭建网站,大致分为三步,首先购买腾讯云服务器,然后在腾讯云服务器上部署宝塔面板,最后在宝塔面板上安装WordPress程序。

五月1
  • 使用 Gulp 压缩静态资源:从零到自动化的构建实践

    在现代 Web 开发中,资源的压缩和优化是提高网站性能和用户体验的重要环节。对于静态页面中使用的 CSS、JavaScript 和 图片 资源,使用构建工具进行压缩可以大大减少文件大小,从而加速页面加载速度。

三月1
二月1
  • 在 HTML 页面中引入公共部分的代码

    在前端开发过程中,很多页面会存在重复的代码片段,例如头部导航栏、侧边栏菜单、底部信息等。为了提高代码的可维护性和简洁性,我们可以将这些重复的部分提取到独立的 HTML 文件中,在具体的页面中通过引入公共部分的代码来避免重复。这样不仅能保持页面结构简洁,还能便于后期的维护与更新。

一月1
  • Python 爬虫开发环境搭建全记录 (Ubuntu 篇)

    在学习Python爬虫的过程中,首先需要配置好开发环境,包括安装相关的软件和库。本文将记录在Ubuntu 18.04上安装常用工具和库的步骤,涵盖了Python环境、MongoDB、Redis、MySQL等的安装方法,以及一些常用Python库的安装。