相关推荐
-
你需要的不是重构,而是理清业务逻辑(转)
最近我遇到了一位以前...0,唯一的办法就是花数月时间完全重构这个系统。 对于这事我有两点要说。首先,在我离开这个公司前,这个系统的单元测试覆盖率已经达到了85%,所以,不要责备我。第二,这么大规模的重构?...
-
一招教你看懂Netty!java业务逻辑设计模式
拆分方法如下: 基于业务逻辑拆分 基于可扩展拆分 基于可靠性拆分 基于性能拆分 其中,对于无法修改的遗留系统,采用绞杀者模式:在遗留系统外面增加新的功能做成微服务方式,而不是直接修改原有系统,逐步的实现对...
-
经验总结 | 重构让你的代码更优美和简洁
前言 最近有幸对订单Push项目进行了重构,向大家分享一下代码重构相关的...这不是你的问题,而是你手中的代码需要进行重构了。 代码质量的唯一有效度量是:WTFs(what the fuck)/minute 何为重构 每个人对重
-
一文教会你如何写复杂业务代码
结合实际的业务场景,我沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家。 我相信,同样的方法论可以复制到大部分复杂业务场景。 一个复杂业务的处理过程 业务背景 简单的介绍下业务背景,零售通是给...
-
【工程优化】代码重构
认知有限,望大家多多包涵,有...本文先对代码重构做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容对系统和软件内部结构的一种调整,提高其可理解性,降低其修改成本。
-
重构:开篇
首先,重构的前提是在不改变当前代码的业务逻辑下对代码内部结构进行调整;其次,重构的结果并不一定在性能上有很大的提高,相反,有些重构可能还会比重构前的代码性能更低一点。 但总体来说,重构的目的是在不改变...
-
复杂业务系统的架构设计思路
比如电商的商品管理、订单交易等系统的开发和重构,业务相对复杂,开发人天在几个月以上,直接开发可能会老虎啃天,无从下手。
-
单片机开发教程代码.doc
单片机开发教程代码涉及多个方面,包括硬件连接、软件编程、调试与优化等。以下是一个基于51单片机的简单教程代码示例,以及相关的开发步骤和解释。 ### 一、硬件连接 在进行单片机开发之前,首先需要正确连接硬件。以51单片机为例,通常需要将单片机的各个引脚与外围设备(如LED灯、按键、传感器等)进行连接。以下是一个简单的硬件连接示例: 1. 将单片机的P1.0引脚与LED灯的正极相连,LED灯的负极接地。 2. 将单片机的P3.2、P3.3、P3.4、P3.5引脚分别与四个按键的一端相连,按键的另一端接地。 ### 二、软件编程 在进行软件编程时,需要选择合适的编程语言(如C语言)和编译环境(如Keil C51)。以下是一个简单的51单片机程序示例,用于控制LED灯的亮灭和按键的扫描: ```c #include <reg51.h> sbit LED = P1^0; // 定义LED灯连接的引脚 void delay(unsigned int time) { unsigned int i, j; for (i = 0; i < time; i++) {
-
《顶刊复现》(复现程度90%),Reinforcement Learning-Based Fixed-Time Trajectory Tracking Control for Uncertain Ro
《顶刊复现》(复现程度90%),Reinforcement Learning-Based Fixed-Time Trajectory Tracking Control for Uncertain Robotic Manipulators With Input Saturation,自适应强化学习机械臂控制,代码框架方便易懂,适用于所有控制研究爱好者。 ,《深度强化学习复现:自适应控制框架下的机械臂轨迹跟踪控制研究》,强化学习机械臂控制的自适应轨迹跟踪:高复现度与易懂代码框架研究报告,核心关键词:顶刊复现; 强化学习; 固定时间轨迹跟踪控制; 不确定机械臂; 输入饱和; 自适应控制; 代码框架; 控制研究爱好者。,《基于强化学习的机械臂固定时间轨迹跟踪控制:复现程度高达90%》
-
基于springboot框架的Javaweb水果购物网站的设计与实现(完整Java源码+数据库sql文件+项目文档+Java项目编程实战+编程练手好项目).zip
通过分析企业对于飘香水果购物网站的需求,创建了一个计算机管理飘香水果购物网站的方案。文章介绍了飘香水果购物网站的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 本飘香水果购物网站管理员功能有,个人中心管理,用户管理,会员管理,会员卡管理,开通会员记录管理,积分管理,水果管理,购买水果订单管理,积分兑换管理,积分兑换记录管理,加积分记录管理,减积分记录管理。用户可以注册登录,在首页开通会员卡,查看水果,购买水果,查看水果信息,以及个人中心修改个人资料,在自己的后台查看自己的购买记录等。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得飘香水果购物网站管理工作系统化、规范化。 关键词:飘香水果购物网站;Spring Boot框架;MYSQL数据库
-
百度热力图定量数据csv,shp,tif 佛山市-20240609日12时
地区:全国都有。时间:近半年的都有,之前的需要查数据库。数据来源:百度慧眼 数据形式:含坐标的CSV点数据;SHP数据;TIFF栅格数据;多种数据形式可选。任意精度,10,30,50m均可。 价格:市为单位,每天有24个时间点。数据格式不同价格不同。 用途:城市/街道活力,人口统计,选址分析,商圈分析,活力分析等等。
-
1998-2022年各地级市第三产业占GDP比重/地级市第三产业占比数据(市辖区)
1998-2022年各地级市第三产业占GDP比重/地级市第三产业占比数据(市辖区) 1、时间:1998-2022年 2、指标:地级市第三产业占GDP比重/地级市第三产业占比 3、来源:城市统计年鉴 4、范围:299个地级市 5、缺失情况:缺失情况与年鉴一致,表内附有年鉴第三产业占比原始数据,以2022年地级市名单进行统计整理,为市辖区数据
-
网站前端设计-非常不错jQuery网页内容图片分类插件带特效.zip
网站精美前端设计,使用jQuery+CSS开发,源码适用于参考学习使用。希望对你学习和开发有所帮助
-
毕业设计源码-jspSSM260的固定设备资产管理系统-项目实战.zip
本项目是基于SSM框架开发的固定设备资产管理系统,旨在实现企业资产全生命周期数字化管理。系统采用B/S架构,前端通过JSP、Vue等技术实现交互界面,后端以Spring、SpringMVC和MyBatis为核心框架构建业务逻辑层,数据库采用MySQL存储资产信息16。
-
机械工程学报:气囊不同折叠方式对展开作用力影响的计算机仿真研究
内容概要:本文基于对称折叠、卷式折叠和环向折叠三种气囊折叠方式,通过虚拟试验平台,采用气囊试验、碰块试验和转向盘试验,深入分析了各种气囊折叠方式在两个阶段内的气压特性及其对乘员保护性能的影响。结果发现气囊的展开过程中存在两阶段特征(初期展开阶段为0~20ms,完全展开工作阶段为20~100ms),不同折叠层数会导致不同的展开阻力,影响展开时间和内部压力;特别是环向折叠方式因其展开阻力较小,能够更快且平稳地提供保护力,并且能在早期阶段对靠近模块的离位乘客施加较小的力量,适合于大体型正常坐姿的乘客保护;卷式折叠适用于小型体态乘客;而对称折叠则是标准体型乘客的最佳选择。 适合人群:从事车辆被动安全性研究的技术人员、安全系统工程师、交通安全领域的研究人员,以及对高级辅助驾驶技术和安全性能感兴趣的学术界人士和专业学生。 使用场景及目标:该研究表明,通过对不同气囊折叠方法的研究,能够指导实际产品优化设计,提升乘客保护性能,同时也有助于制定科学合理的法规和规范,确保乘客在突发交通事故条件下能够得到最大程度的安全保障。 其他说明:本研究由国家自然科学基金资助,并借助有限元程序LS-DYNA进行数值模拟
-
MATLAB gui界面设计
MATLAB图像处理
gui界面开发
傅立叶变,灰度图,二值化,直方图均衡,高通滤波器,低通滤波器,巴特沃斯滤波器,噪声处理,边缘检测
,MATLAB图像处理与GUI界
MATLAB gui界面设计 MATLAB图像处理 gui界面开发 傅立叶变,灰度图,二值化,直方图均衡,高通滤波器,低通滤波器,巴特沃斯滤波器,噪声处理,边缘检测 ,MATLAB图像处理与GUI界面开发:实现傅立叶变换及高级滤波算法应用与解析,MATLAB GUI界面开发及应用实践:图像处理、滤波与边缘检测的完整解决方案,MATLAB GUI界面设计; MATLAB图像处理; gui界面开发; 图像处理技术; 傅立叶变换; 图像灰度化; 二值化处理; 直方图均衡化; 滤波器(高通/低通/巴特沃斯); 噪声处理; 边缘检测。,MATLAB图像处理与GUI界面开发实践:高级图像处理技术与应用
-
.\rar\VC++ 利用空间 控制flash动画-工业应用.zip
资源的描述略
-
咸宁市乡镇边界,矢量边界,shp格式
矢量边界,行政区域边界,精确到乡镇街道,可直接导入arcgis使用
-
网站前端设计-jQuery+CSS实用图片收缩与放大效果插件.zip
网站精美前端设计,使用jQuery+CSS开发,源码适用于参考学习使用。希望对你学习和开发有所帮助
11 楼 kidneyball 2013-04-16 19:45
首先单元测试覆盖率85%不等于代码好读好懂,更别说好的代码还应该引导后续修改保持原本良好的风格了。
……
单元测试覆盖率不应该作为系统稳定性和可维护性的指标。
但是单元测试确实能十分有效地管理代码质量。
问题是,复杂的业务逻辑再加上层次不齐的编码,会让你原有的代码破烂不堪。
重构是个方法,但是摸清楚逻辑,更加重要。
我敢说,85%的公司注释很少,单元测试更少
我觉得作者是把重构和重写搞混了。单元测试覆盖率的最大作用就是方便重构,他辛辛苦苦写了85%的覆盖率,又不让人重构,不知道在想什么。“重构”的意思是在不添加任何新功能的前提下,改变代码结构让它更容易维护。所谓“不添加新功能”,不但是整个系统都不添加新功能,而且是绝大部分被单元测试覆盖的对外接口都不添加新功能。重构的过程本身就是理清业务逻辑的过程。如果这时候绕过代码本身去重新整理业务逻辑,把整个系统设计都改变了,那是重写,不是重构。
10 楼 freezingsky 2013-04-16 17:32
9 楼 dacoolbaby 2013-04-16 16:09
首先单元测试覆盖率85%不等于代码好读好懂,更别说好的代码还应该引导后续修改保持原本良好的风格了。
……
单元测试覆盖率不应该作为系统稳定性和可维护性的指标。
但是单元测试确实能十分有效地管理代码质量。
问题是,复杂的业务逻辑再加上层次不齐的编码,会让你原有的代码破烂不堪。
重构是个方法,但是摸清楚逻辑,更加重要。
我敢说,85%的公司注释很少,单元测试更少
8 楼 yangxinxyx 2013-04-15 22:31
一半来说,做一项重构,可能80%的时间在分析与设计,而Coding最多只占20%的时间
7 楼 longhaisheng 2013-04-14 11:54
为什么会有垃圾代码,原因很多,如时间紧,赶及程序员本身素质的原因
写代码时怎么不想着把代码写好点,觉着以后可以重构,企业老板大多不太懂技术,会
给你开发人员时间去重构吗,大多不会,有多少个企业认为代码质量重要,他们要的是
产品,要的是生产力,可是代码慢慢累加,人员不断更换,烂系统就慢慢形成了,时间
久了,这个系统就难以修改了,这时,系统想重构又很困难,遇到英明的领导,会重写
,但很多公司没有那么多时间让你重写哈,所以N多公司挂了,有部分原因是因为系统不
不行了,杯具
6 楼 kidneyball 2013-04-14 07:47
首先单元测试覆盖率85%不等于代码好读好懂,更别说好的代码还应该引导后续修改保持原本良好的风格了。
其次作者是那个项目的负责人,他现在离职了。如果文档不完善(这点作者没有提,不过一般文档不会涉及到所有业务细节),他的代码就是理解业务逻辑的唯一来源。你总不能叫那家公司现在去问客户三年前都做了哪些特殊业务处理吧,客户只会跟你说,不知道,反正这东西现在能用,你的新功能不能影响旧功能。
这堆代码把这个公司弄得那么痛苦,如果不依赖这堆代码就能理清业务逻辑,早就直接重写了,还重构什么鬼。好了,现在我不重构就看不懂这堆代码,就理不清业务逻辑。你却叫我重构前要先理清业务逻辑……
5 楼 bigtian 2013-04-13 22:55
4 楼 minn84 2013-04-13 22:16
3 楼 clxy 2013-04-12 19:33
乐扑的了,感情这作者是个“杀手”之父,哈哈。
2 楼 spiderguy 2013-04-12 17:51
1 楼 spiderguy 2013-04-12 17:50