软件编程 新手 建议 软件

软件设计中最关键的“开闭原则”,究竟指什么呢?

前言 软件设计原则中有一条很关键的原则是开闭原则,就是所谓的对扩展开放,对修改关闭。个人觉得这条原则是非常重要的,直接关系到你的设计是否具备良好的扩展性,但也是相对比较难以理解和掌握的,究竟怎样的代码改动才被定义为“扩展”?怎样的代码改动才被定义为“修改”?怎么才算满足或违反“开闭原则”?别急,本文 ......
原则 关键 软件

JavaScript入门⑨-异步编程●异世界之旅

JavaScript的是单线程的语言,按顺序执行。事件循环(Event loop)是JS的运行机制,也是JS实现各种“异步”功能的基础。 ......
JavaScript 之旅 世界

Qt开发Active控件:如何使用ActiveQt Server开发大型软件的主框架(2)

Qt开发Active控件:如何使用ActiveQt Server开发大型软件的主框架 注:本文更多地是带着如何去思考答案,而不是纯粹的放一个答案上来,如果你需要直接看到完整的答案,请直接看实例和最后的柳暗花明部分,里面由详细的注释可以解答你的问题。 前情提要: Qt的进程间通信,以服务器的形式,手把 ......
控件 框架 ActiveQt Active Server

前端学习 linux —— 软件安装(Ubuntu)

软件安装(Ubuntu) 本篇主要讲解 ubuntu 中软件的安装、apt 的源、内网部署案例(graylog 为例),最后是 python 开发准备。 apt 和 rpm 在linux 第一篇我们知道如果机器是 ubuntu 则可用 apt-get/dpkg 安装软件,如果是centos 则可用 ......
前端 Ubuntu linux 软件

Linux系统各种库/软件版本输出指令

日常开发基于Linux系统(其实更多的是Ubuntu平台),平时总会遇到一些情况需要查看某个库或者软件的版本信息,在这里做一下简单的记录。 1. 查看glibc版本 方法一:使用ldd指令 cv@cv:~$ ldd --version ldd (Ubuntu GLIBC 2.23-0ubuntu11 ......
指令 版本 系统 Linux 软件

2022-2023年度必备宇宙最全Windows系统软件清单

本文为大家介绍史上最强Windows必备神器,每一款都是良心的超好用产品,助你日常办公效率加倍提升。欢迎大家点赞、收藏加分享,谢谢大家。 ......
清单 宇宙 Windows 年度 系统

读 RocketMQ 源码,学习并发编程三大神器

笔者是 RocketMQ 的忠实粉丝,在阅读源码的过程中,学习到了很多编程技巧。 这篇文章,笔者结合 RocketMQ 源码,分享并发编程三大神器的相关知识点。 1 CountDownLatch 实现网络同步请求 CountDownLatch 是一个同步工具类,用来协调多个线程之间的同步,它能够使一 ......
神器 源码 RocketMQ 三大

记一次 .NET 某工控软件 内存泄露分析

一:背景 1.讲故事 上个月 .NET调试训练营 里的一位老朋友给我发了一个 8G 的dump文件,说他的程序内存泄露了,一时也没找出来是哪里的问题,让我帮忙看下到底是怎么回事,毕竟有了一些调试功底也没分析出来,说明还是有一点复杂的,现实世界中的dump远比课上说的复杂的多。 还是那句话,找我分析是 ......
内存 软件 NET

软件设计模式白话文系列(十四)策略模式

1、模式描述 定义一个算法的系列,将其各个分装,并且使他们有交互性。策略模式使得算法在用户使用的时候能独立的改变。 在 Java 中,从 JDK1.8 开始支持函数式编程,就是策略模式的一种体现,且无需借助额外的类和接口,代码更加简洁。 2、模式结构 抽象策略类:定义策略算法的规范。 具体策略类:实 ......
模式 白话文 设计模式 白话 策略

学习ASP.NET Core Blazor编程系列十五——查询

在这一篇教程中我们学习如何增加查询功能,我们将在书籍列表页面中添加搜索功能,通过按“书籍名称”或“作者”来搜索书籍。 在以往经典的Web应用程序中,我们经常使用元素创建表单,在表单中添加 元素, 有一个 type 属性,用于指定输入的类型及其显示方式(作为数字、文本框、单选按钮、复选... ......
Blazor Core ASP NET

学习ASP.NET Core Blazor编程系列十三——路由(完)

除了前面三篇文章中介绍的路由方式,可以用来进行页面跳转之外,今天介绍最后一种方式,如何在代码中进行页面跳转。如果是JavaScript我们会用window.location来切换页面,Blazor为我们提供了相应的封装:NavigationManager。使用NavigationManager可以通... ......
路由 Blazor Core ASP NET

C++ 日期和时间编程总结

在 C++11 之前,C++ 编程只能使用 C-style 日期时间库,其精度只有秒级别,这对于有高精度要求的程序来说,是不够的。但这个问题在C++11 中得到了解决,C++11 中不仅扩展了对于精度的要求,也为不同系统的时间要求提供了支持。另一方面,对于只能使用 C-style 日期时间库的程序来... ......
日期 时间

防御式编程之断言assert的使用

防御式编程的重点就是需要防御一些程序未曾预料的错误,这是一种提高软件质量的辅助性方法,断言assert就用于防御式编程,编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。使用断言是为了验证预期的结果——当程序执行到断言的位置时,对应的断言应该为真;若断言不为真时,程序会终止执行, ......
assert
共7963篇  :266/266页 首页上一页266下一页尾页