浅谈代码优化与过度设计

简介: 浅谈代码优化与过度设计

背景

可以说,作为一个技术人,不管技术技能的高低,对于代码本身的要求都是会有那么一些洁癖的,比如说有的开发者喜欢讲究注释一定要到位;有的开发者喜欢方法名一定要一目了然;有的开发者喜欢设计代码结构;有的开发者喜欢优化代码。因此作为一个技术人,技术控,对于代码总会有那么一些或多或少的要求在里面。

下面再说到我们今天即将要探讨的两个问题。

在实际业务中,你遇到过优化代码却导致过度设计的状况吗?

不管什么等级的技术人,都有一颗想要代码本身结构要好,功能要强大,可阅读性,可理解性,可维护性要到位的初心。那么也正是这样的初心有时候会导致代码本身过度设计,从而使的简单的代码复杂化。不过这样的情况不多,大多数的时候,受限于项目工期,往往没有大量的时间来投入前期代码结构的设计中,整个开发过程中也就是主要关注代码功能实现情况。这样的结果就是,在后期会发现可能会出现一部分冗余的代码,这个时候就需要进行代码优化了。不过个人在实际业务中,说实话,冗余的代码优化遇到过,过度的代码设计倒是遇到挺少,毕竟整个项目周期都是以功能实现为主,不太会考虑到代码结构的设计。

对于代码结构的设计,往往是项目运行一段时间后,功能代码的性能受限,这种情况下才会考虑代码结构设计,从而优化代码逻辑,提高代码运行效率,从而应对访问量以及数据量带来的双重压力,这个时候也算是两个字:重构。

有哪些方法可以避免代码过度设计呢?

其实,对于代码过度设计的情况,个人遇到的不到,因此可能理解的不是很到位,希望大家谅解。下面谈一下个人的一些看法。

代码设计,其实在项目开始之初需要多方面考虑到后续系统运行可能遇到的各种情况,从而确定代码的结构设计,保证代码运行效率和性能。但是多数情况下,并不能全盘考虑到系统运行到后期的各种情况,有可能当初规划的体量,后期并未达到,那么此时对于为了应对大体量情况的代码结构设计可能并不能更好的发挥系统本身的优势。因此来说,代码设计可以在设计之初基于一个基本值去设计,后期根据系统运行情况再逐步迭代完善,这样的话是否可以避免代码过度设计呢。

相关文章
|
编译器 数据处理 C#
C#中的异步流:使用IAsyncEnumerable<T>和await foreach实现异步数据迭代
【1月更文挑战第10天】本文介绍了C#中异步流的概念,并通过使用IAsyncEnumerable<T>接口和await foreach语句,详细阐述了如何异步地迭代数据流。异步流为处理大量数据或需要流式处理数据的场景提供了一种高效且非阻塞性的方法,使得开发者能够更优雅地处理并发和数据流问题。
ServiceHub.DataWarehouseHost.exe内存泄漏问题的处理
Visual Studio 2017的15.2版本在debug应用程序时,ServiceHub.DataWarehouseHost.exe会出现严重的内存泄漏的问题,一个小时左右,内存耗了将近8GB。
3813 0
|
数据采集 资源调度 JavaScript
Node.js 适合做什么项目?
【8月更文挑战第4天】Node.js 适合做什么项目?
694 5
|
机器学习/深度学习 编解码 缓存
CPU型号分析避坑指南——2、游戏电脑与办公电脑CPU该如何选择
CPU型号分析避坑指南——2、游戏电脑与办公电脑CPU该如何选择
443 0
|
存储 Java C#
C# 中的值类型与引用类型:内存大小解析
C# 中的值类型与引用类型:内存大小解析
265 2
|
Web App开发 数据可视化 前端开发
ECharts 教程
ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。
459 10
|
应用服务中间件
Spring-boot启动失败 Unregistering JMX-exposed beans on shutdown 异常处理
Spring-boot启动失败 Unregistering JMX-exposed beans on shutdown 异常处理
628 0
|
分布式计算 资源调度 监控
什么是 Spark DAG?
【8月更文挑战第14天】
1226 5
|
Linux C# Android开发
分享3款开源、免费的Avalonia UI控件库
分享3款开源、免费的Avalonia UI控件库
1356 0
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
2249 2