第一次使用Java编程——feature总结

声明:

    这里主要是自己在Java编程中碰到的一些问题,以及一些工作的经验,希望可以对大家有所帮助。

介绍:

    前段时间由于工作的需求,我们需要使用Java开发一个小的功能,而具体实现的功能就是将从底层获得的特殊信息上报到apk。而关于feature的细节这里就不细说了。我想总结的是以后在拿到一个feature的时候我们应该如何去更好的完成。

1. 目标需要明确:

    在开发的过程中,我们需要明确自己的开发目标,这个就需要及时跟各个方面来了解目标需求,也就是将自己的开发的功能想象为一个黑盒子,而我们需要详细的知道我们的入口条件以及输出的参数。

2.具体的方式:

    列清单,将各个可能的条件以及可能的问题尽可能多的想出来。并使用一个表格或者图的方式展现出来,这样既方便我们梳理代码的逻辑,同时也可以帮忙其他需要了解这部分代码的人更好的理解代码。我的一个同事曾经使用两周的时间来统计各个可能的情况,使用一个Excel表详尽的列出来。

3. 代码实现:

    使用模块化的方式同时运用各种设计模式来完成这个功能的开发,当我们清楚前面的各个需求之后,我们就要设计一个好的框架来尽可能的实现上面的功能,而这个设计的框架有要求,他要尽可能的实现模块化,尽可能的减少与其他模块之间的耦合。同时需要在框架中设计好各个小的功能模块来完成不同的任务,而各个小的功能模块要求,每个功能模块只做一件事情,分工明确。尽量减少全局变量的使用。同时需要有一定的可扩展性。以及对于一些可能会发生的错误的容错能力。

4. 第三人查看代码:

    如果可以的话请同事或者同组的人帮忙检测一下代码中的逻辑是很有帮助的,有时候当局者迷,而旁观的人却可以清楚的知道问题的所在。

5. 遇到问题及时沟通:

    在开发的过程中碰到问题要及时跟自己的同事或者领导沟通。而他们的建议是很有帮助的。同时及时沟通也可以帮忙我们及时更正代码中存在的错误。在我们组里,如果你碰到一个问题,而在半天的时间内还不能想到一个很好的解决方式的时候,你就需要向同事或者领导求助了。

Java总结:

1. 方便的api接口

    虽然之前看过一些Java的代码,但是真正要编写的时候还是两码事。看的时候只要了解代码的逻辑就可以了,而真正写的时候就需要使用各个api来实现自己的逻辑。不过Java好的一点就是拥有强大的api,在c/c++中很多需要自己实现的变量和函数功能,在Java中都可以使用已有的api来完成。所以建议大家在对某个功能有需求的时候可以先Google一下Java中是不是已经有了这个api的实现。

2. 成熟的报错方式:

    在Java中如果在哪里出现了错误,我们在log中是可以很方便的定位到具体出问题的地方的。而当定位到出问题的地方后我们就可以很容易的找到出问题的语句。所以Java在这方面做得也是非常的好的。但是我们有的时候也不能完全的相信Java报错时定位的地方。

3. 根据时间顺序查找错误:

    我们需要找到Java报错的行,之后按着时间的顺序回溯log,因为有时候可能Java的代码会crash在某一行, 而真正引起错误的行却是在这之前的一个错误,只是那个错误没有引起crash而已。例如一个小的错误可能引起当前线程的退出,但是并不能引起crash,但是后面的代码如果继续操作这个线程就会引起crash。而这种错误通常在抓log的时候错误的行定位不是固定的位置。这样就有可能是之前的问题引起之后的crash了。

4. 传值传址:

    在Java代码中,传值和传址操作是我碰到的一个很有意思的问题。在Java中参数的传递不会向c和c++那样使用指针来实现传值和传址的功能。那么我们在Java中是如何实现这个功能的那。这里就要使用类了,在Java中类可以表示很多的东西,而如果我们将类使用new初始化了,那么就是为他分配了一块内存,而如果我们没有为他初始化,那么这个参数将没有内存,而这样我们就可以实现地址的传递了,在对Java函数传参过程中,我们可以将类传入,而如果这个时候我们想要操作原有的类,也就是传址操作,这个时候我们在函数中就不使用new来申请空间,而是直接操作传入的参数就可以。同样如果我们想要传值操作,只需要在函数中为这个类new一个空间这个时候对这个类的操作就是新的空间上的操作,所以上面的操作就实现了传值操作。

5. 多Google一下:

    在开发的过程中一定会遇到各种各样的问题,这个时候我们及时的搜索一下是很有帮助的。而且网上的资源那么丰富我们为什么不为己所用那?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章