软件开发必须了解的若干思想

Delphi语言的软件开发工具 在现代软件开发的世界中,选择合适的开发工具对项目的成败起着至关重要的作用。Delphi语言作为一种高效的编程语言,它的应用范围广泛,特别是在桌面应用开发方面。本文旨在探讨Delphi语言的历史、特点、开发工具,以及其在现代开发中的应用。 阅读详情

软件开发必须了解的若干思想

1.开发工具(包括语言)自身的思想

  每一种语言或开发工具都有特定的目的,用来解决什么类型的问题,其特点、优点是什么,比如 当前流行的JAVA、PYTHON、.net,理解他们的最大优势是什么.

2.设计模式中提到的6大设计原则

A.单一职责原则:
从业务的角度规范模块或单元划分范围的界限,即业务模块的外在界限;

B.里式替换法则:
通俗的讲,就是面向对象(其实不仅仅限于面向对象)的继承,其概念是“凡是对象A出现的地方,都能被对象B替换”,满足这种情况,就应该设计成继承结构,即
B extends A.

C.ioc或DI法则:
即依赖注入或控制反转,大名鼎鼎的开源机构Spring,将这一思想体现的淋漓尽致,具体思路 就是具体依赖抽象,由“主动”的“拉”,转化为“被动”的“推”,且被推的目标在编译时是不确定的,在运行时动态绑定。这里用到很重要的一个思想,“接口”编程,依赖关系传入接口,具体的实现在运行时指定,一般通过XML配置推入。

D.接口分离原则:
契约(接口定义的功能)并不是越多越好,功能越多,责任(具体的实现)代价也越大,因此从业务的角度加以划分接口要提供的最“干净”的功能,比如,对应美的观点,有丰腴,也有苗条,如果合并在一个接口中,虽然编码上没问题,但给人的感觉挺矛盾与怪异,这种情况下,显示拆分在2个接口比较合理。

E.迪米特法则:
看过电视剧的人,经常听到熟悉的台词:“A:为什么?”,“B:你知道的太多了…”.
如果说单一职责法则、接口分离法则是对对象内部的规范要求的话,那么,IOC、迪米特法则则是基于对象之间依赖性约束的相关规范,它与IOC 一样,出发点都是“解耦” 达到低耦合的目的,解耦是需要代价的,一般至少引入一个中间层,引入的中间层越多,与目标的耦合越低,这其实分层思想的一个典型应用,其实这里还有一个隐形原则,就是依赖的路线最好是单线(1:1),而不是树或网状对应关系(1:n,n:m),举例,有老师、学生2个对象,老师与学生直接耦合,如果解耦,可以引入班长或课代表这个中间角色,这样就有3个角色了,这时,三者之间有如下几种依赖图:

老师———————->班长(或课代表)——————————>学生

            A.单线依赖关系


   ![非单线依赖](https://img-blog.youkuaiyun.com/20180809111100274?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbGxvX2RlbHBoaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

          B.非单线依赖关系

可以看到 b类型的依赖关系,老师不仅要依赖班长,还有依赖学生,产生多重 依赖,“知道的太多”,不是一个好的解耦方式,而A就是正确的迪米特法则的实现体现;

F.开闭法则:
这种主要是针对编码时的规范要求,即对新增方法开放,对已有的方法进行修改是关闭,也就是保留已经成熟的实现方法,如果需求有变动,通过增加新的方法,将影响度降低到最低,特别是新旧版本发布的时候,有些还在途未处理的业务,依旧需要沿用原有的业务逻辑。

3.分层思想

这里的分层,是针对架构层次的分层,典型的WEB应用 一般都会进行分层,比如展示层、业务逻辑层、领域模型层、数据访问层,这就是典型的分层思想,这样的好处是 .方便软件的复用、维护,减少维护成本,也方便架构的伸缩、扩展性;SPRING MVC 也是典型分层系统的实现;

4.接口开发思想

上面设计原则中的IOC原则以及提到,这里也是为了强调接口开发的好处,通过引入接口层,使模块或组件之间的依赖通过接口来耦合,不是具体的实现来耦合,这样做的好处有以下几种:
1.RPC调用,将接口与实现分类,方便客户端、服务端的隔离,对客户端而言,实现改变了,不影响客户端的编译;
2.通过接口依赖,实现解耦,方便业务拓展、变动引起的不变维护,将影响降到最低;
3.方便软件的重用,更好的结合设计模式中的具体模式嵌入。

5.配置的思想

常用的配置文件格式有property,xml等,其好处是配置做了改动后,不需要重新编译,重启应用即可生效(有些应用可以动态提取,不用重启应用),特别是容器管理配置的维护,真正达到“四两拨千斤”的效果,ibatis、mybatis的mapper思想就是
最好的体现,通过动态维护XML中的映射语句,到达动态访问业务数据的功能。

6.分离的思想

这里的分离是一个很广泛的思想,小到代码模块单元,大到服务、子系统,都含有分离的思想,包括配置都包含若干分离思想的应用,之所以如此,主要是分布环境、多人开发团队协作给软件开发驱动的必然结果,方便治理也好、方便维护也罢,总之其目的不一而足。

7.分页的思想

随着系统业务量的增加,数据量也会同步增长,对数据的提取与导出带来了性能上的压力,数据分页是十分有必要的,具体包括前台分页(js相关插件)、后台分页(数据库的分页或对查询出的结果集进行计算分页),这样会极大提高系统的性能。

8.异步调用的思想

对于复杂或交互量大的系统,往往需要与周边系统进行交互数据,一般需要通过RPC的方式进行调用,如果每包的数据量比较大,调用比较频繁,如果同步方式
处理,对系统的性能要求比较大,而采用异步方式,则极大改善性能,特别是对实时性不高的业务。

软件开发推荐书籍 软件开发就像一场持久的战役。 模糊、频繁变更的需求, 项目的讨论、争议 ,  进度的紧迫和延迟, 琐碎的事情, 突然出现的变故,各种因素都在尽全力阻挠人们按计划的实现预期目的。如果不够重视,它就会无情地偷取你的时间、精力乃至一切。 所以,在即将进入这个战场之前,或者准备纵深之前, 你准备好自己的武器和技能了么? 如果贸然上阵,恐怕会一上战场就深陷其中。         在《计算机专业推荐 阅读详情

相关推荐

全面了解软件开发规范国家标准

编码风格是指编写源代码时遵循的一套规则或准则。它包括变量命名、缩进、括号使用等代码格式的约定,以及注释、代码结构等编码实践的规范。统一编码风格对于团队协作、代码审查和后期维护至关重要。为了实现统一的编码风格,可以采用一些代码规范工具,如ESLint、Pylint或RuboCop等。这些工具能够自动化地检查代码风格,并给出改进建议。以ESLint为例,它可以集成到开发环境中,实时检查代码,并在保存文件时显示错误或警告。

weixin_32535825的博客 2062

团队开发过程的反思及想法

当接受一个新项目的开发的需求时,首先确定该项目的整体功能模块,在项目设计过程中制作系统功能模块图。 分析系统的主功能模块,设计项目功能模块图 创建数据库模型 分配研发人员根据项目的功能模块确定模块负责人以及模块开发小组。 搭建框架,规范开发模式,统一页面布局 功能模块图   所谓功能结构图就是将系统的功能进行分解,按功能从属关系表示的图表。管理信息系统的各子系统可以看作是系统目标下层的功能,对...

木子李的博客 1210

敏捷项目管理-软件开发指导思想

工作的软件是首要的进度度量标准。 敏捷过程提倡平稳的开发节奏;发起人、开发者和用户应该能够保持一个长期的、恒定的开发速度。 不断地关注优秀的技能和好的设计会增强敏捷能力。 简单化是根本(不做过度设计和预测)。 最好的构架、需求和设计出自于自组织的团队。 每隔一定时间,团队会在如何才能更有效地工作方面进行反思并对自己的行为进行相应调整。

【编程语言】Delphi使用教程

Delphi是一个功能强大且灵活的编程语言,适用于构建各种Windows和跨平台应用程序。通过不断学习和实践,您可以充分利用Delphi提供的各种特性和工具来创建高质量、可维护且安全的软件解决方案。

大雨淅淅的博客 1万+

Delphi软件开发技术

Delphi软件开发技术,包括完整教案及源文件

密码学:一文看懂Base64算法

Base64常常在我们开发中出现,我们可能只知道它是一串乱码(看不懂的符号),知道有时候知道我们需要把一些数据进行base64编码,有时候需要进行Base64解码。但是却不知道它的作用是什么?它存在的意义是什么?还有它是如何生成的?如何编码和解码?上述的疑问相信在你读完本篇文章之后烟消云散。下面开始正文。Base64是什么?它和加密解密操作有什么关系吗?没错,这就是经过Base64编码后的字符串。对它解码后,我们获得以下内容点个关注,是对我持续创作的最大的鼓励!

Shujie 1万+

Delphi终极版速扩展VCL应用程序

有用的物联网和商业应用程序不再是独立的(绑定到单个移动应用程序),而是分布在多个层、小工具和设备上,如操作系统平台,包括Windows、Mac、iOS、Android,以及中间件、云、服务器和企业服务。客户已经在使用Delphi构建工业级应用程序,包括销售点零售、金融软件、制造业和工业自动化、科学和工程以及特定行业的硬件(如MRI机器)。构建工业实力和业务就绪的解决方案,包括多个本地客户端平台、移动扩展、智能设备、云服务、企业和嵌入式数据。处理多个UI表单因素?通过移动、云和物联网快速扩展VCL应用程序。

q2315702359的博客 709

氮化镓GaN电机驱动实战:从器件原理到EPC驱动中心

电机驱动是工业自动化和电动交通的核心,功率器件的选择直接决定系统效率与可靠性。传统硅基IGBT和MOSFET在开关速度、损耗方面存在瓶颈,而氮化镓(GaN)作为宽禁带半导体,凭借高电子迁移率、低栅极电荷和近乎为零的反向恢复电荷,正成为电机驱动领域的热门选择。EPC建立电机驱动中心,提供完整的评估平台,覆盖从低压家电到中压伺服的应用场景。文章从GaN器件原理出发,对比传统硅器件,详解三相BLDC/PMSM驱动系统的搭建、栅极驱动与Layout设计、死区时间设置及参数计算实例,并分享测试中遇到的振铃、EMI等高

weixin_29168675的博客 322

4.Delphi/Object Pascal语言常用开发工具——《跟老吕学Delphi/Object Pascal》

CodeGear RAD Studio提供了全面的开发工具集,支持从设计到部署的整个过程。它拥有强大的代码编辑器,支持语法高亮、代码补全和重构等功能,大大提高了开发效率。此外,它还提供了丰富的UI设计工具,帮助开发者快速构建出美观且易于使用的应用程序界面。Delphi/Object Pascal作为一种强大的编程语言,拥有许多优秀的开发工具可供选择。开发者可以根据自己的需求和喜好选择适合自己的开发工具,并借助这些工具提高开发效率和质量。

Python老吕的博客 2084

【AI基础学习系列】二十一、一文搞懂GPT

本文系统介绍了GPT(Generative Pre-trained Transformer)模型的核心内容。首先阐述了GPT的本质是基于Transformer的预训练语言模型,其创新在于使用单向Transformer编码器。其次详细解析了GPT架构,包括输入层的Tokenization和Embedding处理、Transformer解码器堆叠的核心组件(自注意力机制、前馈神经网络等)以及预训练和微调两阶段训练过程。接着说明了GPT的工作原理:通过无监督预训练学习语言统计规律,再结合有监督微调适应具体任务。

ASH_GUARDIAN的博客 1687

汽车诊断服务(UDS——0x11服务解析)

ECU复位服务(0x11)详解:该服务支持硬件/钥匙开关/软件三种复位类型(0x01-0x03),复位前需发送肯定响应。请求格式为11+子功能,响应含51+子功能。典型应用需配合安全访问流程,测试时需监控CAN总线通信及DTC状态。复位后ECU将返回默认会话,期间不处理任何诊断请求。服务在编程会话且安全解锁后执行,硬复位会初始化存储数据。

从事汽车行业 979

简单了解软件开发的生命周期和流程、思想

都已经入行软件开发了,如果不了解软件开发的生命周期和流程、思想怎么办?那岂不是被面试官猴戏吗?

奈何的人生 4778

从X86到ARM:全面解析服务器CPU架构的演变与未来趋势

本文深入解析了服务器CPU架构从X86到ARM的演变历程与未来趋势。文章从CISC与RISC两种设计哲学切入,分析了X86凭借生态建立的帝国地位及其面临的功耗挑战,并重点阐述了ARM架构凭借其卓越的能效比优势,正从移动端向数据中心市场发起冲击。未来,异构计算、软硬协同与专用芯片将成为服务器CPU发展的核心方向。

gold的博客 1127

转发:软件开发思想丨软件开发必须了解的8大思想

契约(接口定义的功能)并不是越多越好,功能越多,责任(具体的实现)代价也越大,因此从业务的角度加以划分接口要提供的最“干净的功能,比如,对应美的观点,有丰腴,也有苗条,如果合并在一个接口中,虽然编码上没问题,但给人的感觉挺矛盾与怪异,这种情况下,显示拆分在2个接口比较合理。这里的分层,是针对架构层次的分层,典型的WEB应用一股都会进行分层,比如展示层、业务逻辑层、领域模型层、数据访问层,这就是典型的分层思想,这样的好处是,方便软件的复用、维护,减少维护成本,也方便架构的伸缩、扩展性;即业务模块的外在界限。

一个IT人的技术成长历程。 369

有趣的方式学习DDR5(4)—— DDR5 SDRAM 启动与初始化过程全攻略

🟢。

weixin_43199439的博客 1623

软件开发过程与思想

计算机软件尤其是数据库软件,成为了当代计算机应用的主流。因此软件开发人员就必须掌握正确的开发手段,了解软件开发的主要过程,这样心中对软件项目才有清醒的认识,才能达到事半功倍的效果。本文就软件开发过程中的一些方法,结合本人开发过的一些软件项目做一些详细论述。 1 开发前的准备工作 一般软件项目在开发前都有系统任务书,主要规定软件的开发目标、主要任务、功能、性能指标及研制人员和经费、进度等安排,作为系

玻璃后面 1393

把 LangGraph 当“工作流引擎”用:与传统 BPM 的差异与融合策略

首先,我们来回顾一下有限状态机(FSM)的基本定义——一个 FSM 可以用一个五元组MQΣδq0FMQΣδq0​FQQQ有限状态集合,包含 FSM 所有可能的状态;Σ\SigmaΣ有限输入字母表,包含 FSM 所有可能的输入;δ\deltaδ状态转移函数,定义了 FSM 从当前状态q∈Qq \in Qq∈Q接收输入σ∈Σσ∈Σ后,转移到的下一个状态q′∈Qq' \in Qq′∈Q,即δQ×Σ→QδQ×Σ→Q。

AI 原生应用开发的博客 227

JAVA软件开发了解

JAVA基础常识 2.1.1 什么是软件开发 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。 如:手机应用 是使用 AndroidStudio/Xcode软件开发;java应用 是使用eclipse,IntelliJ *IDEA,NetB...

AHAI1078766113的博客 3708

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精益软件开发的思想_精益软件开发原理快速指南

精益软件开发的思想 我记得在早期的中学商业课上就曾在丰田公司学习精益生产,并且对通过有意设计来最大限度地减少浪费和提高生产率的想法深深着迷。 随着时间的流逝,精益方法被制造业以外的多个行业所采用,包括软件开发。 精益软件开发将一些核心原则付诸实践以优化生产力。 软件开发具有几个关键功能,这使其成为应用精益方法的正确过程: 可重复的过程 统一标准 团队合作 精益软件开发是一...

编程故事的地方 956

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

软件开发生命周期和它的思想

目录1、为什么软件开发周期总是预估的2~3倍?2、什么是分而治之?3、了解WBS首先我们需要先了解什么是软件开发周期,软件开发周期一般分为六个阶段:1.问题的界定和方案。此时是软件开发人员和需求之间的探讨,以确认软件开发目标和可行性。2.需求分析。在确定软件开发的可行性之下,将对软件需要实现的每个功能进行详细的分析,需求分析是非常重要的一个阶段,这个阶段做的好,将会为整个软件开发项目奠定良好的基础。3.软件设计。在这个阶段,将会根据需求分析的结果来设计整个软件系统,软件的设计一般分为总体设计和详细设计。4.

qq_63135167的博客 385

哲学思想对软件开发的启示

一 关于软件的实质   什么是软件?它从哪里来,它有生命吗?    当我在想到这个问题的时候,就像是哲学中要解决的一个根本问题,我们来自哪里,我们是什么,人生的意义又是什么?也就是冯友兰先生在《中国哲学简 史》中综合了古今中外的哲学思想后得出了一个我认为适合中国人的哲学定义:对于人生的有系统的反思的思想。   每一个人,只要他没有死,他都在人生中。这种思想,所以

默默的天空 1639

三十六种基本思想

计算机编程领域的基本思想,是大量实践与经验的提炼总结,是近乎于“道”的指南。有了思想的指引,就如同有高人指路,行不迷惑,遇事有法,运用之妙,存乎一心。

scofild950303的博客 753

怎么做软件开发,软件开发流程八个步骤

接下来就在软件开发之后满足了客户的要求,软件系统交给了客户,并向客户交付软件安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等文档,指导客户安装软件及安装技巧。完成后,需要修改书面的程序,形成整体框架,功能为单元,组装,系统三个阶段测试,程序的正确性,客户要求功能的充分性,以确定软件是否满足开发要求,这也是一个发现问题、纠正问题的过程。流程是指软件开发设计的一般流程,包括软件的总体结构、模块的组成、功能的设计、程序的编译、调试、联调、测试等过程。

q2243088760的博客 2万+

07169软件开发工具与环境考试大纲

高等教育自学考试课程考试大纲 课程名称:软件开发工具与环境 课程代码:07169 第一部分 课程性质与目标 一、课程性质与特点 软件开发工具与环境是高等教育自学考试软件工程(本科)专业的专业核心课程。通过本课程的学习,使考生对软件开发工具与环境有深入的了解,帮助考生更好地理解当前最重要的编程思想、开发技巧和 Windows 的高级特性开发方法。 本课程系统地介绍了软件开发环境与工具理论体系,并在此基础上设计了一个简单的软件产品线实验,通过实验让考生理解软件开发平台及设计思想。考生在学习过程中可以通过大量的程

qq_38085704的博客 3443

软件开发步骤详解

本文旨在详细介绍软件开发的整个流程,包括需求分析、设计、编码、测试、部署和维护等各个环节,以期为读者提供一份全面的软件开发指南。在这个阶段,开发人员需要与用户进行充分的沟通,了解用户的实际需求,明确软件的功能、性能、界面等方面的要求。在测试验证阶段,测试人员需要对软件进行全面的测试,包括功能测试、性能测试、安全测试等,以确保软件符合需求文档中的要求。系统设计是在需求分析的基础上,对软件的整体架构、模块划分、数据库设计等进行详细规划的过程。环境配置:确保生产环境的硬件、操作系统、数据库等满足软件的运行要求。

qiniuchangxiang的博客 2543
上一篇: 学习笔记(一)http通信本质(续)--相关源码
下一篇: PowerDesigner设计物理数据模型(Physical Data Model)若干问题及解决方案汇集
hello_delphi
博客等级 码龄22年 7粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值