File tree 1 file changed +13
-4
lines changed
1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change 30
30
31
31
** 程序员有两大痛苦,1、别人写的项目居然没有文档。2、自己写的项目居然要写文档。**
32
32
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 . 测试,对其进行场景测试,尽量保证其正常运行。
37
46
38
47
39
48
You can’t perform that action at this time.
0 commit comments