`
p2world
  • 浏览: 95612 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

复制 粘贴 是坏味道 酝酿好味道的过程 是难得的 程序员 提升 提高 机会

阅读更多
复制 粘贴 是坏味道
将坏味道变成好味道的过程
是难得的 提升机会


例如:
我在项目中 遇到 的真实问题:
是有关硬件交互的,对硬件的任何操作都可能会出现异常。刚开始的代码看起来是这样的:
function1{
	for(String devId : devs){
		Dev dev=null;
		try{
			dev=DevManager.getDev(devId);
			dev.doSomeThing();
			//do some thing usefull
		}catch(Exception ex){
			//保存出错记录,等
		}finally{
			if(dev!=null)
				dev.close();
		}
	}
}
function2{
	for(String devId : devs){
		Dev dev=null;
		try{
			dev=DevManager.getDev(devId);
			dev.doSomeAnotherThing();
			//do some thing usefull
		}catch(Exception ex){
			//保存出错记录,等
		}finally{
			if(dev!=null)
				dev.close();
		}
	}
}

后来又陆续更改 除了 try块 的其他内容,并又添加了几个硬件处理的方法
这时候代码开始 大量 冗余 很难修改

穷则思变
每个方法中 个性的地方几乎只有 try块中 第 2 行以后的 部分 只要把 这部分 单独摘出来 就可以实现 “不 复制 粘贴”
于是有:
interface ICardConlHandle {
	void exe(Dev dev);
}
public  class CardConlHandle1 implements ICardConlHandle {
	public   void exe(Dev dev){
		dev.doSomeAnotherThing();
		//do some thing usefull
	}
}
public  class CardConlHandle2 implements ICardConlHandle {
	public   void exe(Dev dev){
		dev.doSomeThing();
		//do some thing usefull
	}
}
function(ICardConlHandle c){
	for(String devId : devs){
		Dev dev=null;
		try{
			dev=DevManager.getDev(devId);
			c(dev);
		}catch(Exception ex){
			//保存出错记录,等
		}finally{
			if(dev!=null)
				dev.close();
		}
	}
}


结论: 将坏的(麻烦的)东西变成好的(简单的)东西,叫创造力。 拥抱坏味道
分享到:
评论

相关推荐

    3dMax复制粘贴插件

    对于提高工作效率,各种插件的使用是必不可少的,其中“3dMax复制粘贴插件”就是这样一个工具,旨在简化和加速模型之间的复制与粘贴操作。 3ds Max的标准复制粘贴功能虽然基础实用,但在处理复杂场景或大量对象时...

    3dMax跨场景复制粘贴插件

    3dMax跨场景复制粘贴插件是一款专为3D建模师设计的强大工具,它扩展了3ds Max原生的复制和粘贴功能,允许用户在不同的3dMax场景文件之间轻松转移对象、材质、灯光等元素。这款插件极大地提高了工作效率,尤其在处理...

    3DMAX一键复制粘贴插件下载

    3DMAX一键复制粘贴插件是一款高效便捷的工具,专为3D Studio Max(3DSMAX)用户设计,极大地提升了在多个3D场景间复制和粘贴对象的效率。这款插件的核心功能在于简化了传统操作流程,使得在3DMAX中转移模型、纹理、...

    一键复制粘贴工具V1.6.rar

    一键复制粘贴工具V1.6是一款旨在提升用户在计算机操作中复制粘贴效率的实用软件。这款工具可能集成了快捷键设置、批量复制、历史记录管理等多种功能,旨在简化和优化日常的文本处理任务。 在传统的Windows操作系统...

    一键复制粘贴辅助工具

    一键复制粘贴辅助工具是一种专为提高工作效率而设计的软件,尤其适合那些需要频繁处理大量文本数据的人群。这类工具通常具有智能快捷的功能,能够帮助用户简化复制和粘贴的操作流程,减少错误,并减轻手指疲劳。 ...

    一键多次复制粘贴工具V2.0

    一键复制粘贴工具是一款复制粘贴快捷软件。 系统自带的快捷剪切,复制以及黏贴功能已经很方便了,对于普通人来说完全够用,但是有少部分人的工作中需要大量的使用到黏贴,复制功能,对于他们来说,多按一个按钮也...

    快速复制粘贴软件

    总的来说,快速复制粘贴软件通过增强系统默认的复制粘贴功能,成为了提高生产力的重要工具,尤其适合程序员、设计师、作家等需要频繁处理文字和数据的专业人士。如果你经常发现自己在反复进行复制粘贴操作,那么这样...

    Jumpserver web界面使用复制粘贴功能.rar

    《Jumpserver Web界面使用复制粘贴功能详解》 在IT运维领域,Jumpserver作为一个开源的堡垒机系统,广泛应用于远程服务器的管理和审计。然而,在实际操作中,用户常常遇到一个不便之处,即在Web界面下无法直接使用...

    datagridview复制粘贴

    今天公司项目中有关复制粘贴的功能,遇到了很多问题,最终一一解决,整理了一个Demo分享一下,小弟分少,所以就不免费下载了忘。哈哈... 1、支持下拉复制粘贴 2、支持整行复制粘贴 3、支持Ctrl+C,Ctrl+V复制粘贴 4...

    F11粘贴、密码复制粘贴好用

    这种功能通常是针对程序员、文本编辑者等用户设计的,为了提高他们的工作效率。在某些特定环境下,例如编程环境中,F11可能会被设置为一个快捷方式,用于快速执行粘贴操作,而无需通过鼠标或传统的Ctrl+V组合键。 ...

    快速复制粘贴工具

    快速复制粘贴工具则通过优化这一过程,实现并行传输,提高数据处理速度。 FastCopy作为其中的代表,它利用了多线程技术,可以同时处理多个文件的复制和粘贴操作,大大缩短了整体时间。此外,FastCopy还支持缓冲区...

    clipx复制粘贴增强

    《clipx:提升复制粘贴体验的神器》 在日常的电脑操作中,复制和粘贴功能是我们不可或缺的工具。然而,Windows系统自带的剪贴板功能相对简单,无法满足多任务并行处理的需求。这时,一款名为"clipx"的软件应运而生...

    复制粘贴不能用的解决办法

    在日常电脑操作中,我们经常会遇到“复制粘贴”功能无法正常使用的问题,这可能是由于多种原因造成的。本文将深入探讨这个问题,并提供一个解决方案,包括如何下载、解压提供的文件以及如何按照使用说明来修复“复制...

    301724200734911_复制粘贴_复制粘贴图像检测_

    在IT行业中,图像处理和计算机视觉是一门重要的技术领域,其中“复制粘贴图像检测”是一种专门用于识别图像是否经过复制、粘贴、旋转或缩放等操作的技术。本项目标题"301724200734911_复制粘贴_复制粘贴图像检测_...

    远程桌面文件复制粘贴的实现

    本文旨在深入探讨远程桌面文件复制粘贴的实现机制,以及如何有效地利用这一功能提高工作效率。 #### 远程桌面基础知识 远程桌面是Windows XP Professional及其后续版本中的一项核心特性,它允许用户通过网络从任何...

    中联网络(密码复制粘贴)

    同时,“字符过滤功能”可能是指该软件具有特定的规则或筛选机制,允许用户设定哪些类型的字符可以被复制和粘贴,以适应特定的服务或平台的安全要求。例如,某些网站可能不允许特殊字符或超过一定长度的密码,这种...

    windows 鼠标快捷复制粘贴小工具

    对于经常需要处理大量文字信息的用户,如程序员、文案编辑、数据分析师等,这种鼠标中键的复制粘贴功能可以成为他们工作流程中的得力助手。然而,初次使用者可能需要一段时间来适应这个新的操作模式,但一旦习惯,你...

    一键复制粘贴工具

    在IT行业中,提高工作效率是每个用户和开发者的共同追求,而“一键复制粘贴工具”正是为此目的设计的。这个工具旨在简化数据处理过程,帮助用户快速地进行连续复制和粘贴操作,从而大大减少在大量数据处理时的繁琐...

    MaxtoMax跨场景模型复制粘贴插件-3dmax插件神器终结版-模渲CAD施工图大师

    MaxtoMax跨场景模型复制粘贴插件是顾名思义,MaxtoMax跨场景模型复制粘贴插件是3dmax插件神器终结版-模渲CAD施工图大师中的简版功能。Max to Max跨场景模型复制粘贴插件,是在3DsMax中进行不同效果图场景之间跨越...

Global site tag (gtag.js) - Google Analytics