关于我的第一个项目的登陆模块心得

跟着《第一行代码》学习了两三个月吧
大致的状态就是 跟着书上敲,真机调试,出bug先自己肉眼debug,不行就问室友(整好比我多出一年android经验),尤其对于最佳实践的example;
开始做的不是很认真:
1:抄的是网络请求这一章;当时因为一个textview就算fill_parent也放不下网页返回的html代码,下面用了一个scrollview,上面用了一个button作为请求网络的触发点。
    结果抄了下来发现点不动这个发送请求的按钮
  当时让室友过来debug,我记得我室友对我一顿深深的埋怨:“学了这么久,连个监听事件都搞不明白”
 我曹啊当时我算是打了鸡血地学啊毕竟跟着抄了好多章之前没怎么试过出问题啊;
听室友这~~~~~~么说,一腔热水被泼冷水也是够我发几年奋图几年强的了;
一顿捣鼓然后发现
书上的是线性布局所以能显示这三个控件
我新建的是relasionlayout,所以点击button的时候实际上是连同sorllview和textView一起点击了,当然没反应啦!!

通过这件事我开始发现,不能盲目的抄。
果然 我的练手项目就出现了好多照抄的痕迹,都给我带来了不少麻烦,先说说登录模块,书上写的是在点击登录button以后写的if(ID==123&&psw==123){intent跳转页面}
然后我有项目了就抄啊
寻思着以后改就在监听函数里面改啊
多简单啊!
但是 
在网上参考了一些例子以后
发现代码真的有太多太多的重写理由
我先说网上例子的思路
/*
/首先只在监听事件里面写一行代码:,比如login();
/在login 里面写vaildate(匹配账号和密码)函数(个人认为传参带返回值的更好,更内聚)
/匹配成功与否的处理,也就是一个if的事;
/接着写一个进度对话框并show()告知用户;
/取得账号密码后写上传或者明确匹配函数(比如写默认值方便调试就写在这里)
/成功就写一个onLoginSuccess函数(里面写Intent跳转页面),失败写onLoginFail函数
/(toast告知失败原因)。 当然都要写在延时线程里面(理由:要等对话框显示个1秒左右吧)
/*
我尼玛博大精深啊有木有 
你们都思考一下为什么要这么好几层的调用方法?
回想起老师当年的那句话:一个函数,最好只做一件事,而且做到高内聚(就是不要调用外部的变量和方法),低耦合(大概是实现功能最好是跟项目里别的函数都完全不一样)

我好好总结了为啥:
1:逻辑神一样的清晰:初期只写几个方法名和几行注解就完事儿了有木有。
2:发现代码逻辑有问题炒鸡方便的,哪儿逻辑有问题改哪个函数。
3:效率超高的。
4:这尼玛就是编程的封装思想,以前老师天天说,我也天天听,为啥我就用不上呢;
由此引出我们IT行业大神曾经说过的话:对一件事理解得越深,这件事就能做得越好。
他说这是大牛和小白的本质区别MDZZ简直当头一棒

                                                                                                                     --共勉 
                                                                                                                                 16/6/23

猜你喜欢

转载自blog.csdn.net/wmwmdtt/article/details/51758093