代码的味道

代码的味道(转贴之UMLCHINA,讲述在什么情况下进行refactoring)
 (说明,这是erptao.org,refactoring论坛中关于Code Smell的一个贴子,以后我会把相关内容继续转贴到这里)
什么时候需要Refactoring?
代码的味道是高水平程序员对“好程序“的一种感觉,他们具备一种能力,即使不涉及程序代码的具体实现就能看出你的设计是否合理。
如果代码有“异味“,那么你需要进行Refactorying.

1.重复代码(Duplicate Code)
即使是一两句代码的重复也需要refactoring,有时候重复不是那么明显,你需要首先进行其他的refactoring才能看到代码重复。排除代码重复是OO软件工程最重要的研究课题之一
2.长方法(Long Method)
来自于面向过程的思路,即使能够在一页内能够显示的方法也可能太长。
3.大类(Large Class)
一个类含有太多的责任和行为
4.参数太多(Long Parameter List)
对象含有状态,不再需要太多的参数。
5.不一致的变化(Divergent Change)
不要把变化速度不同的东西放在一起。不要把一个方法对每个子类的变化的部分和不变化的部分放在一起。不要把对象中每秒都在变化的实例变量和一个月才变化一次的势力变量放在一起...等等。
6.Shotgun Surgery
改变影响到太多的类和方法
7.特性羡慕(Feature Envy)
对其他对象中的数据太感兴趣了
8.数据从(Data Clumps )
一块数据到处一起使用,他们应该有自己的类
9.原始类型困扰(Primitive Obsession)
用类代替原始数据类型
10.开关语句(Switch Statement)
面向对象由其他办法来处理这些依赖于类型的方法。
11.并行继承层次(Parallel Inheritance Hierarchies )
有时候有用但有时候不必要
12.惰类(Lazy Class)
不足以自己成为一个类,应该排除
13.投机通则(Speculative Generality )
不要太多考虑为将来而建立的灵活性
14.消息链(Message Chain )
硬性把客户和导航结构相耦合
15.中间人(Middle Man )
如果他所有的事情就是在做分派,那么应当删除。
16.不合适的亲密(Inappropriate Intimacy)
限制对其他类内部结构的知识和了解。
17.不完整的库类(Incomplete Library Class )
某些时候必须扩展一增加所需的功能
18.数据类(Data Class )
应当添加任务和行为来处理它的数据
19.被拒绝的遗产(Refused Bequest )
子类很少利用父类给予它们的东西
20.注释(Comments )
注释是说明why而不是what的好地方。
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python爱心代码源码是利用Python语言实现一段可爱的爱心图案代码。爱心图案是一种流行的爱情符号,其形状象征了爱情中的感情和温暖,具有浪漫而有趣的味道。下面是Python爱心代码源码: ``` python import turtle def love(x, y): turtle.seth(0) for i in range(0,135): turtle.forward(1) turtle.right(0.5) turtle.seth(225) for i in range(0,135): turtle.forward(1) turtle.right(0.5) turtle.seth(0) turtle.penup() turtle.goto(x, y) turtle.stamp() turtle.pendown() turtle.setup(width=800, height=600) turtle.speed(10) turtle.color('red', 'pink') turtle.penup() turtle.goto(0, -180) turtle.pendown() turtle.begin_fill() turtle.seth(-30) turtle.forward(220) love(0, 0) turtle.seth(150) turtle.forward(220) turtle.end_fill() turtle.hideturtle() turtle.done() ``` 此代码用到了Python的turtle库,通过语言控制海龟前进的方向和转动的角度,实现了爱心图案的绘制过程。在程序执行时,还可以展示绘制的过程,从而增强了交互体验。这个Python程序的颜色和大小都可以自由调整,可以根据不同的喜欢和需求,来调整爱心的形态。 ### 回答2: Python爱心代码源码实现起来比较简单,只需要使用turtle模块中的绘图函数即可实现。具体操作如下: 首先,我们需要导入turtle模块和time模块: import turtle import time 然后,我们定义一个函数draw_heart,用来绘制爱心: def draw_heart(): turtle.color('red', 'pink') # 设置画笔颜色为红色,填充颜色为粉色 turtle.begin_fill() # 开始填充 turtle.left(45) # 向左旋转45度 turtle.forward(200) # 向前移动200个像素 turtle.circle(100,180) # 绘制半径为100的半圆弧 turtle.goto(0,0) # 回到起点 turtle.right(135) # 向右旋转135度 turtle.forward(200) # 向前移动200个像素 turtle.circle(100,180) # 绘制另一个半圆弧 turtle.end_fill() # 结束填充 接下来,我们调用turtle模块中的常用函数来设置画布、画笔等属性: turtle.setup(width=600, height=400) # 设置画布宽度为600,高度为400 turtle.speed(0) # 设置画笔速度为0,表示最快 turtle.hideturtle() # 隐藏画笔 turtle.penup() # 抬笔 turtle.goto(0,-150) # 移动到底部中心位置 turtle.pendown() # 落笔 最后,我们调用draw_heart函数来绘制爱心,并在结束后显示“Happy Valentine's Day!”字样: draw_heart() time.sleep(3) # 等待3秒 turtle.penup() # 抬笔 turtle.goto(0,-200) # 移动到下方 turtle.pendown() # 落笔 turtle.write("Happy Valentine's Day!", align="center",font=("Arial",24,"normal")) 完整的代码实现如下: import turtle import time def draw_heart(): turtle.color('red', 'pink') turtle.begin_fill() turtle.left(45) turtle.forward(200) turtle.circle(100,180) turtle.goto(0,0) turtle.right(135) turtle.forward(200) turtle.circle(100,180) turtle.end_fill() turtle.setup(width=600, height=400) turtle.speed(0) turtle.hideturtle() turtle.penup() turtle.goto(0,-150) turtle.pendown() draw_heart() time.sleep(3) turtle.penup() turtle.goto(0,-200) turtle.pendown() turtle.write("Happy Valentine's Day!", align="center",font=("Arial",24,"normal")) 运行代码后,我们可以看到一个闪亮的爱心,以及“Happy Valentine's Day!”字样,如下图所示: ![image.png](https://cdn.nlark.com/yuque/0/2022/png/97322/1644983358434-6b13efa2-e1b3-4e1e-bd84-df783cf54453.png) ### 回答3: Python爱心代码是一种可编程的艺术形式,通过编写代码来创造图形,最常见的是爱心形状。以下是Python爱心代码的源码: ``` import turtle # 设置画布大小 turtle.setup(600, 600) # 设置画笔颜色和宽度 turtle.color('red', 'pink') turtle.pensize(2) # 开始画爱心 turtle.begin_fill() turtle.left(50) turtle.forward(133) turtle.circle(45, 180) turtle.right(90) turtle.circle(45, 180) turtle.forward(133) turtle.end_fill() # 画左半边爱心上面的弧度 turtle.pensize(2) turtle.up() turtle.goto(-83, 80) turtle.down() turtle.color('black', 'yellow') turtle.begin_fill() turtle.left(230) turtle.circle(90, 260) turtle.end_fill() # 画右半边爱心上面的弧度 turtle.up() turtle.goto(83, 80) turtle.down() turtle.begin_fill() turtle.right(40) turtle.circle(-90, 260) turtle.end_fill() # 缩起来画下面的箭头 turtle.up() turtle.goto(0, 0) turtle.down() turtle.pensize(3) turtle.color('red', 'red') turtle.begin_fill() turtle.left(140) turtle.forward(210) turtle.right(140) turtle.forward(60) turtle.right(200) turtle.forward(60) turtle.right(140) turtle.forward(210) turtle.end_fill() # 隐藏画笔 turtle.hideturtle() # 显示爱心 turtle.done() ``` 以上源码使用Python的turtle模块来绘制爱心。 首先设置画布的大小、画笔的颜色和宽度。接着开启画图模式,利用turtle模块进行爱心的绘制。画好后再用其他图形模拟箭头。 通过修改代码的颜色、大小和角度等参数可以得到不同样式的爱心,甚至可以通过更改代码实现其他形状的图案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值