往往分配完任务,直接就写代码的程序员,就是加班最多的程序员。这话一点不假。
得到一个任务的时候:
1, 我们应该先思考,有一个庖丁解羊的过程。去分析问题的解决步骤,难点,注意事项。
2,画出大概的流程图,然后考虑那块的代码需要重用,那块的代码需要封装。
3,重用:模块内的重用应该封装成函数。模块外(其他模块可能用)的应该封装成类。
4,封装原则,检查单一原则,即一个函数或一个类,只处理一件事。
一些容易出错的细节(想写出完美一遍测试全过的程序,效率与细节):
1,布局好的ui(每次使用后不会清除),例:布局好的ui,多个逻辑对一个node进行隐藏与显示,或对一个按钮添加或删除事件。每次都要重新设置为初始状态。
写法应该:
--第一种
btn:setClick("click1")
if 条件==true then
btn:setClick("")
end
--第二种
if 条件==true then
btn:setClick("click1")
else
btn:setClick("")
end
有时候对一个控件的操作,不止两种条件,这个要特别注意,比较容易出问题,初始值的设定也要考虑
2,对于程序添加进去的布局,如果没有优化,每次都是删除重新创建。就不需要考虑上面这些。
注意:1,滚动层里的东西,没优化,别忘了。每次都要removeAllChild,这样就不需要像 1 那样每次重置状态
2, 每次创建都需要设置滚动层scroll的,宽度与高度。
3, 重复使用的滚动层 scroll (游戏中有优化,第一次加载ui之后就不删除了,一直放到内存中),这样使用滚动层,如果设置每次打开ui选择第一个,就要 scrollToTop(),设置滚动位置为0,0。
3, 程序的函数顺序导致的问题。比如:
function ()
A();
B();//设置 A所需要的参数
end
function A()
getBParam()// 获取B设置的参数
//使用得到的参数
end
错误现象:第一获取到得值是 null ,第二次获取的值,是第一次设置的。解决把 B 函数 移动到 A函数之前。
4,如果在lua中用了本文件内全局的table 存储界面。一定要再每次进入或关闭该系统的时候。
tableView = {} --重置 否则数据更改导致界面变化 很容易崩溃 初始化与重置 是非常重要的问题