软件交付问题之架构让代码组织更有序,如何解决

简介: 软件交付问题之架构让代码组织更有序,如何解决

问题一:为什么数值、状态等多变的字段建议不要跨单据冗余?


为什么数值、状态等多变的字段建议不要跨单据冗余?


参考回答:

数值、状态等多变的字段建议不要跨单据冗余,因为冗余可能导致数据一致性问题。如果在两个单据上都冗余了相同的字段,如金额或状态,那么在任何更新这些字段的逻辑中,都需要同时更新这两个单据。这不仅增加了不必要的复杂性,而且可能导致数据不一致,特别是在没有使用事务来确保两个单据上的数据同时更新的情况下。因此,为了避免这些问题,建议不要在多个单据间冗余多变的字段。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621587



问题二:为什么要对客表达和系统实现进行解耦?


为什么要对客表达和系统实现进行解耦?


参考回答:

因为用户侧的表达通常基于系统里的模型数据,但用户看到的一些点并不需要100%落实到系统实现中去。通过抽象和转换,我们可以将用户看到的数据与系统内部的数据模型进行映射,而不是直接暴露系统内部的复杂性给用户。这样做可以使系统实现更加灵活和可扩展,同时提供更好的用户体验。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621588



问题三:架构如何让代码组织更有序?


架构如何让代码组织更有序?


参考回答:

因为它提供了对代码结构进行规划的原则和指导。在设计阶段,我们可以考虑相关业务逻辑的代码应该放在哪里,提炼出一些原则来指导代码的组织。这样可以避免代码乱放、公共代码和差异化代码的混乱问题。通过合理的架构规划,我们可以使代码结构更加有序、清晰和易于维护。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621589



问题四:为什么需要把在线业务逻辑和批处理任务切分开?


为什么需要把在线业务逻辑和批处理任务切分开?


参考回答:

因为批处理任务可能会导致机器负载增加,从而影响在线接口的响应速度。此外,批处理任务通常是异步的,并且可以重复运行,而在线业务逻辑需要实时响应并避免中断或在指定时间内无法反馈的情况。将两者分开可以确保在线业务逻辑的稳定性和响应速度,并提高系统的整体性能。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621590



问题五:为什么不建议把太多的业务逻辑放在前端?


为什么不建议把太多的业务逻辑放在前端?


参考回答:

因为对客的页面渲染和用户操作的交互逻辑更适合放在前端处理,而流程的控制应该全部放在后端进行。如果前端包含过多的业务逻辑,那么运行情况将难以监控,并且一旦出现问题需要查看客户端的运行情况,这将增加排查问题的难度。此外,将业务逻辑放在后端可以更容易地通过后端链路看清楚整体的业务流程。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621591

相关文章
|
9天前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
21 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
9天前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
37 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
5天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
25 3
|
23天前
|
设计模式 人工智能 算法
编程之旅:从代码到架构的感悟
【9月更文挑战第33天】在编程的世界里,代码不仅是实现功能的工具,更是连接思想与现实的桥梁。本文将通过个人的编程经历,分享从编写第一行代码到设计系统架构的旅程,探索编程背后的哲学和技术演变。我们将一起思考,如何在代码的海洋中找到自己的航向,以及在这个过程中如何不断成长和适应变化。
|
9天前
|
机器学习/深度学习 大数据 PyTorch
行为检测(一):openpose、LSTM、TSN、C3D等架构实现或者开源代码总结
这篇文章总结了包括openpose、LSTM、TSN和C3D在内的几种行为检测架构的实现方法和开源代码资源。
19 0
|
15天前
|
存储 Kubernetes Go
Go语言项目组织架构
Go语言项目组织架构
|
1月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
78 4
|
2月前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
96 1
|
2月前
|
设计模式 算法 PHP
深入理解PHP中的数组操作探索编程之美:从代码到架构的思维转变
【8月更文挑战第24天】在PHP编程中,数组是基础且强大的数据结构。本文将通过浅显易懂的方式,介绍如何在PHP中高效地操作数组,包括创建、遍历、排序和过滤等常见任务。无论你是初学者还是有经验的开发者,这篇文章都会带给你新的启示。 【8月更文挑战第24天】在编程的世界中,代码不仅仅是冰冷的字符排列,它承载着思想、解决问题的智慧和创新的灵魂。本文将通过个人的技术感悟,带领读者从编写单一功能的代码片段出发,逐步深入到整个软件架构的设计哲学,探索如何将代码块转化为高效、可维护和可扩展的系统。我们将一起见证,当代码与架构思维相结合时,如何引发技术实践的革命性飞跃。
|
2月前
|
前端开发 开发者 C#
WPF开发者必读:MVVM模式实战,轻松实现现代桌面应用架构,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,MVVM(Model-View-ViewModel)模式通过分离应用程序的逻辑和界面,提高了代码的可维护性和可扩展性。本文介绍了MVVM模式的三个核心组件:Model(数据模型)、View(用户界面)和ViewModel(处理数据绑定和逻辑),并通过示例代码展示了如何在WPF项目中实现MVVM模式。通过这种方式,开发者可以构建更加高效和可扩展的桌面应用程序。
107 0