当前位置: 首页 > news >正文

2024-05-29 架构-程序设计-思考

摘要:

最近在抽出时间做一个数据库的driver, 其中有些问题驱动的软件代码的思考,是很值得回味的。

做的系统,所思考的问题,所设计的解决方案,其实都是可以看作是对解决问题方式。而不仅仅是某个类库的API的使用,某个算法的实现复杂度,某个固定的设计模式,或者设计规约。

程序设计的思考:

  1. 对于技术的设计方案来说,某个业务领域的知识是一回事,比如说关系型数据库,时序类型的数据库,所要处理的业务,也就是DDD所谓的领域知识专家。
  2. 站在架构师的角度,是要从技术的角度,确保项目的成功,无论是功能性的需求,还是非功能行动需求,也就是性能需求,稳定性需求,甚至包括部署运维以及升级的需求,在不同的抽象层次的边界上,进行设计。
  3. 软件分成不同的抽象层次,在不同的抽象层次上,处理不同的问题范围。
  4. 而对于所谓的架构,从名词的角度,是一些功能点的组织方式,从动词的角度,是不同的功能的互相交互,达成一个完整的目标。但是无论是名词还是动词,都是与结构有关。
  5. 那么所要面临的是什么问题呢?从宏观的角度,是功能的分解,分解成更小的可以理解的部分,组成最小的功能单元。这个功能单元里,处理好本模块所能考虑到的所有的问题。
  6. 其实从这个角度上来说,比较适合采用思维导图的方式,而且是右向思维导图的方式,将功能层层分解,并且也将问题层层分解。
  7. 所谓的架构师,所谓的解决方案架构师,考验一个软件开发者的能力,便是他能驾驭多大的项目,保证这个项目的功能和非功能的要求。
  8. 结合业务,又从业务中抽离,要站在更高的抽象层次上做思考。抽象出通用的解决问题的思路,解决问题的办法。

相关文章:

2024-05-29 架构-程序设计-思考

摘要: 最近在抽出时间做一个数据库的driver, 其中有些问题驱动的软件代码的思考,是很值得回味的。 做的系统,所思考的问题,所设计的解决方案,其实都是可以看作是对解决问题方式。而不仅仅是某个类库的API的使用,某个…...

关于网络的基础知识

大家好,在当今数字时代,网络已经成为我们生活中不可或缺的一部分,它连接着世界的每一个角落,让信息、资源和人们彼此之间无阻碍地交流和共享。然而,对于许多人来说,网络仍然是一个神秘而复杂的领域&#xf…...

CTF网络安全大赛简单web题目:eval

题目来源于&#xff1a;bugku 题目难度&#xff1a;简单 一道简单web的题目 题目源代码&#xff1a; <?phpinclude "flag.php";$a $_REQUEST[hello];eval( "var_dump($a);");show_source(__FILE__); ?> 这个PHP脚本有几个关键部分&#xff0c;但…...

Linux通过 SSH 使用 rsync 进行文件传输

目录 目的整体思路ssh建立连接A服务器上的操作输入 ssh-keygen 生成密钥对查看公钥 B服务器上的操作设置公钥认证 A服务器上的操作使用SSH登录进行测试 同步数据知识拓展SSH&#xff08;Secure Shell&#xff09;rsync&#xff08;Remote Sync&#xff09; 目的 使用SSH&#…...

【保姆级介绍下Foxmail 邮箱】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

ABAP MD04增强排除MRP元素

场景 MD04跑出来很多MRP元素&#xff0c;用户想手工控制某些MRP元素不参与运算 分析 增强点还蛮好找的&#xff0c;控制MRP元素是否参与运算用下面的se19三代增强点就可以&#xff0c;打个断点看下MD04进的哪个增强点就行 旧版本的用这个&#xff1a;MD_CHANGE_MRP_DATA 新…...

构建一个简单的情感分析器:使用Python和spaCy

构建一个简单的情感分析器&#xff1a;使用Python和spaCy 引言 情感分析是自然语言处理&#xff08;NLP&#xff09;中的一项重要技术&#xff0c;它可以帮助企业和研究人员理解公众对特定主题或产品的看法。 在本篇文章中&#xff0c;我们将使用Python编程语言和 spaCy 库来构…...

数据库设计实例---学习数据库最重要的应用之一

一、引言【可忽略】 在学习“数据库系统概述”这门课程时&#xff0c;我一直很好奇&#xff0c;这样一门必修课&#xff0c;究竟教会了我什么呢&#xff1f; 由于下课后&#xff0c;&#xff0c;没有拓展自己的眼界&#xff0c;上课时又局限于课堂上老师的讲课水平&#xff0c;…...

数据结构算法题day05

数据结构算法题day05 题目算法思想代码运行代码 题目 从有序表中删除所有其值重复的元素&#xff0c;使表中所有元素的值均不同。算法思想 第一个元素&#xff08;不重复&#xff09;依次向后扫描&#xff0c;不重复就保留&#xff0c;重复&#xff08;不保留&#xff09;就删…...

关于《Java并发编程之线程池十八问》的补充内容

一、写在开头 在上一篇文章我们写《Java并发编程之线程池十八问》的时候,鉴于当时的篇幅已经过长,很多内容就没有扩展了,在这篇文章里对一些关键知识点进行对比补充。 二、Runnable vs Callable 在创建线程的时候,一般会选用 Runnable 和 Callable 两种方式。 【源码对…...

扒出秦L三个槽点,我不考虑买它了

文 | Auto芯球 作者 | 雷慢 比亚迪的有一个王炸“秦L”&#xff0c;再一次吸引了我注意力&#xff0c; 我上一辆车刚卖不久&#xff0c;最近打算买第二辆车&#xff0c; 二手车和新车都有在看&#xff0c; 我又是一个坚定的实用主义者&#xff0c; 特别是现在的经济环境不…...

【408真题】2009-28

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…...

LeetCode---链表

203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 代码示例1&#xff1a;(直接使用原来的链表来进行移除节点操作) //时间复杂度: O(n) //空间复杂度: O(1) class Solu…...

idea 快捷键运用

ctrl d 向下复制一行 shiftalt↑/↓ 向上或者向下移动光标所在行 shiftctrl↑/↓ 向上或者向下移动光标所在行(自动对齐) shift F6 rename包名或者类名或者批量修改变量名(不建议更改项目名&#xff0c;包名也尽量别改) 输入if 然后ctrlshift回车 补全缺失的括号 shift …...

k8s问题

文章目录 本地搭K8s集群 bilibili什么是声明式API&#xff1f;kubectl apply Etcd数据库有什么特性&#xff0c;为什么K8S选用了Etcd数据库&#xff1f;K8S中一个node的生命周期是怎样的&#xff1f;服务发现机制介绍docker的实现原理介绍如果只是使用Linux命名空间进行分离&am…...

串口通信问题排查总结

串口通信问题排查 排查原则&#xff1a; 软件从发送处理到接收处理&#xff0c;核查驱动、控制及发送接收数据是否正常。硬件从发送到接收&#xff0c;针对信号经过的各段&#xff0c;分段核对信号是否正常。示波器、逻辑分析仪。用万用表、示波器、逻辑分析仪等工具&#xf…...

【教学类-59-】专注力视觉训练01(圆点百数图)

背景需求&#xff1a; 视觉训练的神奇效果&#xff0c;让你的宝贝成为焦点 - 小红书魔法视觉追踪-视觉训练—— &#x1f50d;视觉训练&#x1f50d; &#x1f539;想要提高宝宝的专注力&#xff0c;视觉训练是个绝佳方法&#xff01; &#x1f539;让宝宝仔细观察数字的路线&a…...

C 语言实例 - 循环输出26个字母

循环输出 26 个字母。 以下例子我们用变量 letter 来存储当前要输出的字母&#xff0c;然后&#xff0c;使用 for 循环来重复 26 次输出字母&#xff0c;并在每个字母后面加一个空格。 循环内部使用 printf 函数来输出 letter 变量的值&#xff0c;%c 是 printf 的格式控制符…...

qt多语言翻译不生效的原因

假设您有QT语言家的基础知识&#xff0c;假设网上那些所有的问题您都已经排查过了&#xff0c;但依然翻译不生效&#xff0c;那么可以看下这篇帖子&#xff0c;其实就一个问题&#xff0c;变量的生命周期&#xff0c;假设QTranslator是一个函数内的变量&#xff0c;且没有被声明…...

springboot集成达梦数据库8,用springboot+mtbatisplus查询值为空

springboot集成达梦数据库8&#xff0c;用springbootmtbatisplus查询值为空 背景&#xff1a;springboot集成达梦数据库8&#xff0c;用springbootmtbatisplus查询值为空&#xff0c;但是在DB管理工具中是可以查询到数据的。 原因及解决方法&#xff1a;执行添加语句后&#xf…...

3步打造你的专属AI角色扮演世界:SillyTavern终极指南

3步打造你的专属AI角色扮演世界&#xff1a;SillyTavern终极指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 你是否厌倦了千篇一律的AI对话&#xff1f;是否渴望创造真正有灵魂的虚拟角…...

AirNgin ESP32 MQTT客户端:面向工业IoT的平台化固件库

1. 项目概述AirNgin ESP32 MQTT Client 是一款专为 ESP32 平台设计的 Arduino 兼容库&#xff0c;面向伊朗本土 IoT 平台 AirNgin 构建。该库并非通用 MQTT 封装&#xff0c;而是深度集成 AirNgin 云平台特有协议栈与管理逻辑的生产级固件组件。其核心价值在于将设备接入、状态…...

LabVIEW高手进阶:巧用层叠移位寄存器,轻松实现数据队列与历史状态追踪

LabVIEW高手进阶&#xff1a;巧用层叠移位寄存器实现工业级数据流处理 在工业自动化测试和实时信号处理领域&#xff0c;数据流的连续处理能力往往决定着整个系统的可靠性。传统的数据缓存方案要么消耗过多内存资源&#xff0c;要么引入难以预测的延迟&#xff0c;而LabVIEW中一…...

5G技术解析:深入理解5GNR帧结构与空口资源分配

1. 5GNR帧结构的设计原理 第一次接触5GNR帧结构时&#xff0c;我被那些密密麻麻的时隙和符号搞得头晕眼花。但真正理解后才发现&#xff0c;这套设计就像乐高积木一样精巧。5GNR帧结构延续了4G LTE的10ms帧和1ms子帧设计&#xff0c;但玩出了更多花样。 最关键的改变在于时隙灵…...

用Verilog手搓一个IEEE754浮点加法器:从状态机设计到FPGA上板验证(附完整代码)

从零构建IEEE754浮点加法器&#xff1a;Verilog状态机设计与FPGA实战全解析 1. 浮点运算器的工程实现挑战 在数字信号处理和高性能计算领域&#xff0c;浮点运算器一直是核心组件。与整数运算不同&#xff0c;浮点数的特殊存储格式使得其运算过程复杂得多。IEEE754标准定义了浮…...

ArdaTask:面向MCU的轻量级时间驱动任务调度框架

1. 项目概述ArdaTask 是一个面向嵌入式系统的轻量级、时间驱动型多任务调度框架&#xff0c;其设计目标明确&#xff1a;在资源受限的MCU&#xff08;如Cortex-M0/M3/M4、RISC-V内核&#xff09;上实现确定性、低开销、无动态内存分配的周期性任务管理。它不替代RTOS&#xff0…...

测试自动化维护成本:如何实现50%降本增效

一、自动化测试维护成本的核心痛点 1.1 成本构成分析 脚本维护成本&#xff08;占总成本60%-70%&#xff09; 页面改版导致的元素定位失效&#xff08;平均每次影响30%脚本&#xff09; 业务逻辑变更引发的用例重构&#xff08;单次维护耗时2-8小时&#xff09; 环境维护成…...

西门子1200水处理程序全解析

西门子1200水处理程序 包含1200PLC通讯点表&#xff0c;CAD原理图&#xff0c;操作说明。 触摸屏包含了组态画面&#xff0c;操作画面&#xff0c;参数设置画面&#xff0c;报警记录等。 V16以上可以打开最近在搞西门子1200的水处理程序项目&#xff0c;今天来和大家分享一下其…...

高效视频素材全流程管理工具:Cobalt 开源解决方案详解

高效视频素材全流程管理工具&#xff1a;Cobalt 开源解决方案详解 【免费下载链接】cobalt save what you love 项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt Cobalt 是一款专为内容创作者设计的高效视频素材管理工具&#xff0c;支持从 30 主流平台下载视…...

Loop窗口管理工具:如何用径向菜单和智能暂存系统提升Mac多任务效率300%

Loop窗口管理工具&#xff1a;如何用径向菜单和智能暂存系统提升Mac多任务效率300% 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 在当今多任务工作环境中&#xff0c;Mac用户经常面临窗口管理的挑战。每天在多个应用之间…...