Skip to content

Commit e6f77b0

Browse files
committed
Update
1 parent b93f533 commit e6f77b0

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

CustomView/CustomViewRule.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,19 @@
3030

3131
**程序员有两大痛苦,1、别人写的项目居然没有文档。2、自己写的项目居然要写文档。**
3232

33-
虽然有时候文档写起来确实挺麻烦,但是个人建议必须要留下文档,至少要为自己写的程序添加**有效的注释**
34-
​ 于自定义View而言,首先要标明这个自定义View是解决什么问题,有怎样的效果,使用的场景如何。
35-
​ 其次要在关键部位标注实现原理。(例如:显示圆形的ImageView,要标明圆形是如何实现的,使用的是遮罩还是剪裁。)
36-
​ 避免无效注释 (例如:在onDraw上面标注绘图),大家都知道这个是绘图,但绘制逻辑才是重点,要去标注绘制逻辑。
33+
虽然有时候文档写起来确实挺麻烦,但是个人建议要留下一份文档,至少要为自己写的程序添加**有效的注释**,这不仅是方便他人,更重要的是方便自己以后修改项目。
34+
35+
* 于自定义View而言,首先要标明这个自定义View是解决什么问题,有怎样的效果,使用的场景如何。
36+
* 其次要在关键部位标注实现原理。(例如:显示圆形的ImageView,要标明圆形是如何实现的,使用的是遮罩还是剪裁。)
37+
* 避免无效注释 (例如:在onDraw上面标注绘图),大家都知道这个是绘图,但绘制逻辑才是重点,要去标注绘制逻辑。
38+
39+
#### 第五条:面向结果编程。
40+
41+
我们既然使用自定义View,自然是想要实现一些系统组件无法实现的效果,所以要时刻谨记自己所需要的内容,让其中的所有逻辑都为这个结果服务,我自己实现自定义 View 一般有如下步骤:
42+
43+
1. 原型,用我能想到的逻辑实现原型(demo),不管其代码复杂度,首先要得到结果,通常情况下,第一份代码可得性和整洁性都比较差。
44+
2. 优化,在原型的基础上对代码进行优化,剔除不必要的内容,例如尝试优化逻辑,对与一些重复性的内容抽取函数进行封装,想办法消灭一些中间变量。同时添加上必要注释,让其逻辑更加清晰易懂。
45+
3. 测试,对其进行场景测试,尽量保证其正常运行。
3746

3847

3948

0 commit comments

Comments
 (0)