要进村啦--说一说程序开发流程

终于可以写有一点意思的代码。接下来,会通过几个小例子,来学习java,不过开始之前,先说说按什么步骤来写程序, 每个人都有自己的开发习惯,此处也并非标准的步骤,所以此处也只是对像我一样的小白的一个参考。

按照惯例,看看这次的内容:


 

一、写一个程序的步骤

刚介入编程世界时,都是练语法,然后写个xx管理系统,都是想起来啥写啥,毫无章法可言,但要成为一个优秀程序员的,必须得有一套完整的程序开发流程,这会让你更快,更清晰的开发项目。

  1. 首先,你要知道你的程序要有哪些重要的类,确定下来。
  2. 明确一个类要干什么。
  3. 再细化,确定这个类的属性和重要的方法。
  4. 开始写代码,开始要先写测试的代码,用来测试你写的类和方法(为什么要先写测试代码呢?请看为什么)
  5. 写好测试代码,开始写真正的目标代码,一 一 完善你的类。
  6. 写好之后,测试代码。
  7. 调试和修改你的代码(如果不通过测试)、
  8. 明显前边已经完成了程序,这一步干什么呢?找辣妹举办庆功party.

写每个类时都是按照  "伪码 --> 测试代码 -->目标代码" 来写的,这是一个好方法,反正谁用谁知道,用了之后再也戒不掉。


二、为什么要先写测试代码呢?

这个思想来源于极限编程,Extreme Programming(简称XP),这样做可以是你编程更快更简单,我感觉还可以。通过测试代码,你知道的类的方法需要完成什么样功能才算合格,这就很简单啦,你只需让你的编写的类通过测试代码就可以啦,而且,以后有更好的技术实现当下功能时,不怕修改完代码,出现bug,只需通过你原来的测试就行啦,所谓的单元测试好像就是这样的。


 

三、一个小例子践行上边的编程思想

为什么不说XP了呢,这个不是一时能说完的,可以自己查资料。

写一个DotCom游戏,当然没有期望任何的图形界面,新手总是这样干,原来我也是如此啊,以后会有图形界面程序的。java是一种后端语言,组织着一个项目的逻辑关系,所以,还是多练练逻辑吧,不要妄想着用纯java做一个精美的界面。

这是一个攻击达康网络的游戏,感觉好高大上啊,然而它就是一个猜数字的小游戏。在7 x 7的格子上有三个达康公司,每个达康公司,占三个连续的格子。他们的位子随机生成,你通过猜(A0, 或F5),来判断你是否击中目标,没猜中,结果为"miss", 猜中"hit",如果把一个DotCom的三个坐标都猜中,结果为"kill".

 

 

 

 这个格子是不存在的,你知,我知,玩家知(不知有没有人玩)。不过,我们刚开始写一个真正有意义的程序吗,所以,我们降低难度,化2D为一维。就变成下边的样子啦。

一步一步来:

这个程序最主要的一个类是是什么?当然是这个DotCom啦。

它有什么主要的功能呢?是击打的对象,有自己的坐标,和检验自己是否被击中。

所以它的属性是:储存所在格子信息的 int[] localCells数组,和一个记录自己被击中几次的属性,int numOfHits。方法:检查自己是否被击中的方法:checkYourself(), 它是有参数的来接受玩家的猜测值,并且有返回结果。所以, String checkYourself(int userGuess).

总结一下主要的属性和方法:

  • attributes:int[] lockaCells ; int numOfHits;
  • methods:String checkYourself(int userGuess).

 当然,还有其他的方法,比如对属性的封装方法,setter(), getter(),这些都不是brain method,所以不提啦。

把主要的方法的伪码写出来:

 1 //不是正规的伪码,讲清楚流程就行
 2 checkYourself(userGuess):
 3     result = "miss"
 4     for(i:localCells)//循环,一一判断userGuess是否等于localCells中的值
 5         if userGuess == i
 6             numOfHits += 1
 7             result = "hit"
 8             break
 9     if numOfHits == 3
10         result = "kill"
11     return result

 

好啦,写real codes,but test codes firstly.

 1 public class Test {
 2     public static void main(String[] args) {
 3         SimpleDotCom dotCom = new SimpleDotGom();
 4         int[] localCells = {2, 3, 4};//指定DotCom的位置,真实游戏中,是随机生成的
 5         dotCom.setLocalCells(localCells);
 6         int guess = 2;//玩家猜的数字
 7         String result = dotCom.checkYourself(guess);//测试的方法
 8         System.out.println("result = " + result);
 9     }
10 }

 

 好啦,写SimpleDotCom:

 1 public class SimpleDotCom {
 2     private int[] localCells;
 3     private int numOfHits;
 4     public void setLocalCells(int[] localCells) {
 5         this.localCells = localCells;
 6     }
 7     public String checkYourself(int userGuess) {
 8         String result = "miss";
 9         for(int i : localCells) {
10             if ( i == userGuess) {
11                 result = "hit";
12                 numOfHits ++;
13                 break;
14             }
15         }
16         if (3 == numOfHits){//这是一个编程规范的一个小细节,不要不注意哦
17             result = "kill";
18         }
19              return result;
20     }
21 }

 

 看结果:

果然如自己所料啊,今天就到这里。其实这个程序bug多多,你可以试着找找并改改哈,下次,写个更好的。


 

说个细节问题。

大家都知道判断一个数是奇偶的方法,两种最常用的,num % 2 == 0 or num % 2 == 1,可能大家会有点疑惑,这不一样吗?是吗?

结果就是不一样:

但是python没有这个问题:

这是语言特性决定的,所以,以后要用 num % 2 == 0 来判断,不要在用 num % 2 == 1啦,这就是细节的力量。


 每日一句:

Life doesn't just happen for you; you receive everything in your life based on what you've given.

你今天的一切源于昨天,同样你明天的一切取决于今天的表现。

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCADcANwDASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAQFAQIDBgf/xABAEAABAwIDBQUFBQYFBQAAAAABAAIDBBEFITESQVFhcQYTgZGhFCIyscEHI0Ji0SQzQ1Jy4RUWU7LwRGOClML/xAAaAQEAAgMBAAAAAAAAAAAAAAAAAwQBAgUG/8QAKREAAgICAgICAgEEAwAAAAAAAAECAwQREiExQQUTImFRFDKBoUJxkf/aAAwDAQACEQMRAD8ApkRFqShERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREARFhz2tIBN3HQAXJ8E8mG0u2ZRdI6aqlzEYjHGQ2PkP7LuzDb/vah55NAA9blTRx5y9FSzPorenLbIiKwGH0w1Y5x4ueT9VuKKmH8FniFIsSXtlV/L1LwmViKzNDSn+EB0JHyK0OHwn4TI3o6/zujxJrwzMfl6X5RXopb8PkGccjXcnCx8x+ijyRSxfvGFo46jzH1UUqZx8ouVZlNv8AbI0REURZCIiAIiIAiIgCIiAIiIAiIgCIiALD3tYLuNtwG89EJcXiOJpfI7QDdzPAKwpKFkBEkpEkx/ERkOQG5S1Uysf6KeVmQx132/4IsFFNPZ0pMMZ0A+M/orGCnhpxaJgBOp1J6nVcanEqWnJa5+04ataLkfRRm45AXWdFIBxyPorsFVX17OLa8rJ/JrotEWkM0c8YkieHNO8LdWE01tHOkmnprTCIiyYCIiAIolXiFPSHZeS5+uy3M+PBRmY5Tk2fFI0cRYqN2RT0yxDFukuUUS5aKOS5YNh3EDI9QoMsMkJtIMjo4ZgqzgniqG7cMgcN9tR1G5bkBwIcAQciCMiorKIWLa8lmjOux3xn2ilRS6mjLLviBLd41I6cQoioTrlB6Z6GjIhfHlBhERaEwREQBERAEREAREQBauLy9scQ2pH5AcOZ5LL3iNhcd2gG88FYYfSmFhllF5ni5/KNwClpqdkv0U8zKWPDftm9JSspYzntSHN7zqT+ijyPnr3mOncY6cGzpd7+Q5KXPGZvurkMPx2yuOA67+XVdWtDGhrQAALAAZALo8OuK6SPO/c985dyf+iLBh1LAABEHne5wuf7Lq+kp5AQ+CM89kA+a7LV8jIxd7g3rktuEUvBF91kpb2yLTUPslQXQOPdP+Jjjex3EFTFw9sp727weR/RdWPa8XY4O5g3WYpJaQsc5PlM2REWxEFh21sO2fiztfS+66yiwE9MgQYXC1xkqPvpSbku0v0/VSvZ4C3Z7mK3DYFkkqoIzZ8gvyz+SMqYH/DIPHL5rVRivRPKy6XbbIkuGNa7vaJxhlGgByPIj/nRd6SqdKTFOzu52D3m7iOI4hSVyngEmy4e7Iw3a7geB5HeFjhx7ibfbzXGz/06qDWUuzeSMZauA+YUxhLmguBad44FbJOCsjpmKL50T3EpEUmsg7p+00e44+R4KMuVODg2merpujdBTiERFqShERAEREARFpK4sjJAuTkBxJ0QN6O1DD7RVmRwvHCcubv7K4XGjgFPTMi3gXceJOq7LrU18IpezyWZkO+1v0giLSV4iic87hfqpSqk29I4VlWIG7LbF5F89AOJWuF4HiWNnvowIoCbd9KDY/0jU+g5rt2bwd2OYi6WpuaWIgyfndqG9LZnlYb19MhiZCwNY0AAWAAsAOAG5Ubr2nxid/DwoxipSR46PsFFsfeV1QXcWta0eRB+ar6/shiWHgzUE/tIGZYRsvtyzsemS+jIRcKBWzT3svSprktOJ8rpKoTgtcCyVhs9pFiCNct3RSVd9sMDyOL0DLVEQvKwD94wanqBv4ZcFRRSNljbIw3a4AhX6bVYu/J5/NxfolteGZJDWkkgAC5J3KNTU2IY5M6LD47QtNnyuJDAeZ1J5BSIKKXGMTjw2IlrLbc7x+FvAczu89y+iUVHT0NNHT00bWRxiwAChvvcfxiW8DCUo/ZNHkIOwTSwe0V8zn/9tjWgedyotf2IqoGF9DViYj+HK0NJ6OGV+oHVfQkIuNFVVs097Oq6a9a0fH4qiejqHU9VG9jmGz2OFi3py9FaNcHNDgQQRcEL1PanAGYrRmWBobVxAmN2l/ynkfQ+K8Nhk5uYHgggmwORBGoV6m7mtPycbPxOH5xLFERWDlGsjBJGWO0I8lUPaWPLHag2KuVBxCPNsgGuR+iq5Ne48l5Or8XkOFn1vwyEiIucejCIiAIiIAs07O+xCJhzawGQ+GQ9VhSMJbtS1Mp4hg8Bn8wpaI8rEU86z66JNeSzREXWPJhV+Ly7ELWjfckcbafNWChiIVPaChpyLtdKwEcQDc+gWlkuMWyziQ52pH0Hs1howzB4INkCTZ2pDxccyfPLoArdasFmAclsuSeqCIiA1c0OBBzBFiF81qKUYbidZQ6RxP24uAY7MDwNx4L6WvBdv4zBiEE7NaimfF4gi3+4qWqfGWyrl0/bXxLnsTRCLCnVz2/e1ru8udQzRo8s/FekXGjhbTUcFOwWbGxrB0Asuyjb29ssRioxSRlERYNjUi4sd6+adraP/De0QnY20dSO85bYNneYsfFfTF477RYAcPpagD3o5gL8iCD6gKSqXGSIb4KVbTKUG4uNEXOA7VPGTqWj5LouoeTa09Bc52d5C5m8jLruXRFiSTTTMwk4yUl6KRF0nbsTvbuBuFzXHktNpntK5coqX8oIiLBsEREAU3Bx+wh/873H1t9FCOQPRT8IFsMh6H5lWsRfmcv5d6pS/ZMREXRPNhcsPAHa2gJ0Lz/tK6qLLIKTFqCrJs2OZu0eAvn6EqK5bgy5gySvjs+rBVGK4yyiJihAkmtpfJvX9FOqp/Z6GSfe1hIHE20XgqqoEcctTO8kAFzidTvPiuU2eguscdJeWWEmL4hK6/tDm8A0AD0VhHWY1Rxiaoic+HU7YFwPDMeK+a0/aepbjNNUyEtpYpmudE0C5aCCQTvNvBfT6ntVgUtH9ziEMrpxssjabuJOQBGo8bLJrGuSTcmW9BWw10AliOmTmnVp4FeT+0QgS4Tf/Uffpdl1vgdS6mxKMX92QhjvHT1sonb1/tGJR07f+npXPy3OcRb0YsxTk9I2jcuHKXo97uVHWYzI+f2XDIu9k3v1Hh+pyW2I4jtdnoamI2NUxtiN1xc+l1S4RitDhc7nV8rYWS2Y2R2gPM8Db0WG/QnP8lBPydKurxemk/aZZYydLEWPS2S7UXaGoicG1VpWbyAA4eWRVH9oHamjkpIKXCKxks4k7x8kRBa1oBFr6EkkZDhmqjAMYdiAdBUAd+wXDgLBw35cVh7RHOM4fkn0fWYJo6iJssTg5jhcELzfb+3+XxfXvmfNb9mKlzZpKYm7XDabyO/zHyUP7RJv2SipGn3pZtu3ENB+pC3gtyRL9ilU5fooKYWpox+UfJdVhrQ1oaNAAFldY8nJ7bYQmwuUXOR1hYb0ZhLZArR+0X4gFR1Krv3jD+UfMqKuVctWM9dhPdEQiIoi0EREAOYU7CDfDYxvBIPmVBUvB3fcyx72SHyNiPqrOI9TOZ8rHdO/4LBERdI80FHrofaKV7ALm1x1UhFhra0zaMnFpr0ekw2vOLdjnOJvPEzZlG+7bEnxAv4rzGKwPqcMqIYxdzmZAbyM7eNrLfDq5+B4k6qDC+jnAbURgXt+YDlc+F1Z1lK1gbU0rxLRy5xyNNxY7jzXKtrcJdnoftVsVZH0fKSCCQQQRkQVNwanfUYrTtYCdl4c4jcAbkr19Xg9BVyGSWEB5zLmkgnrbVd6OhpqJhZTRBgOpGZPUnNR7JpZCcdLyT6ID22EkgNDw5xJsAAbknoASoElScQrqqvcCBUPuwHcwCzfQX8VzqZjM91JCTY5TPB0G9gPE6HgLjetwAAAAAALADcrmLU/7mcrLu4w+teX2TKGpL8C9geffoZrNB1Mbrlp8DceAVD2qp3zYY17ASInhzgOFiL+Fwp0neRSCogF3tBa5t7bbTmR1uARzAUmKSOohEkZ2mOuDcZg7wRuPJQ3VuEv0yzTf9iU15R83V52Up3vxB04BEcbCCdxJ0HzKvZMAw2SQvNPskm5DXEA+AOXgrClpWRNbT0kIAvZrWjU/UqFst2XqUdJdsuOzbC7E9rcxhJPp9VS45VjFe00j2G8FIO7YRoXXuT55eCsMQrjg9E7D6NwdilTbbLTcQt4k8c8uZ4AXpqaBtPCI252zJOpO8q1jVtvk/BTy7lVT9a8s7IiLoHDMEgAk6BcSSSSVvI6+Q3armMytWzZIi1x+9aODB9VGXerN6l1tBYei4LlXPc2z1uJHjTFMIiKMshERAF1w53d18jDpK0EdR/Zclo9xikjnAzicCbbwciPJSVS4yTK+VV9tUo/ovkWAQ4Agggi4I3hZXWPH+AiKFiFc+ifGTHtseDvsQQsSkorbN665WS4x8k3VYpX1NA5zsPmEbXG7oXt2439Ru6iy1HtYgjnkw+rbFI0Pa8RF7SCLg3F9x3rkK2lLtkzMaRqHe6fI2Ubddi7ZZhDIoe0mTnYk93x4PTlx1dHUOYD4EGyjyy1VQC093SxnVsNy4jm85jwARssb/ge13QgrZaLHrT2bTzLmta1/g0jjZEwMjaGtGgC3RFYXXSKb23thcjE5kpmp5DFIfiyBa/qDkeuvNdUWJRjJaZtXOdb3E3ZXSsFpsMp5TxjncwHwIPzW7sTr3MMdLHT0DHCxdFd8hHDaOnkuBIAuSAOZXJ9XTM+KeMctoXUH0Vp7ZcWZe1qK/0bRQshBLQS5xu5zjcuPEk5krouUU5nNqWCoqDwihc71Asq6XGgHmOGncXXt7xtY9BdSfZCK1si/psixtuJbLV7tkczosk7LQTa/LiuJJJuVJsqpGFltgbnQZlNy5VL9inPFxsOm9Rykopsnqrdk1FeyE9xc8uOpJK1RFyW9vbPXxiopJBERDIREQBCAQQRcEWKIgJmFTExOp3n34jYX3t3H6KeqIufBK2ojF3MyI4t3hXUUjJY2yRm7XC4K6ePZyjp+TzPyWM6rOSXTN1GxCm9qpHRge8M2dR/yykop2k00yhXNwkpR9G3ZXtmMPhZh+KtcYWe7HKMywcCNSByzHA7veQy0GKwd7EYKqI78nDpyXyXGqEseamIe6fjA3Hip9B2Xx5uGw4rhslnSN2gyKQskDdx3A31tdcqyDg9HqqLo3QU0fRJez2CzfHhdLfeWxhp9LKO7sjgTtKIt/pmePkV4SLtj2jw6Qw1Tw9zMiypisR1tY+ataP7Qa6VwY7Co5Xb+7kLB6g2Wm9d7J1XyektnoT2Owk/D7WzpUP/AFWP8m4Z/rVv/sFRmdsJ3Nu/Ctnl7QD/APKiT/aC2B2zJhUgO770WPjZYVu+kzM8RxW5RLUdjsKHxOq3cjUO/Vbt7IYIPippH/1VEh+qp4u3dRO3aiwgNadHPqNfANXCr7ZYy1pNPRUduZc4j1CO5b1s2jhTceSh0emj7L4FHa2GQG384LvndSRR4Vh8Zl9lo6Zjfxd21gHjZfMartrj892irbCDkRHGB6kEjzUehwzHO0swcHTTNBsZp3ktb4n5C5WxHxPYdoe3NLTxPp8IInnII723uM89T6ddF4TCojLWiR9y2P3iTvO71z8FtjODVOEYl7DMWyPLQ5hZchwOmvMEeCs6KmFNThmRcc3HiVNRDlLfopZ16qrcU+2SCS43KwiK+ecMgEkAb1CqpBJLYH3W5DnxKkVEvdR2B994y5DioCp5Nn/FHb+LxvNsl/0ERFTO0EREAREQBERAFtSVHscuy4/cPOf5Dx6FaoQCCCAQdQVtCbg00RXUxug4SLsEGxBuCiqKWrfSWjkJMOjXHPY5HlzVmJQQDa4OYIOq6ldsZo8rkYs6Jaa6NyA4FpAIIsQdCFY4Hjj8GtS1hdJQaMkFy6Dkd5b6hVveN5hNppySyuNiM42TOiW14PfVdBhuM0zTUww1MTh7jxnlxDhmPAqlPY6npmEYfIWXz2ZM/XVeeoayrwuQvw2drWE3dBJnG7oNQeYXpKPtlRPAZiMMtG/+axfGf/ID5gLnW0NdNdHo8XPi/wAoPTKirwPFYyQKfbbxjcDfw19FWz4NWTgNkoaggEEfdu/RfRabEaGsANLWU819zJASpVgqv9PFPro6y+Sm48ZJM+cRYLiT8mUUg/qGz87Kwp+ytfLYzOjhG/PaPkMvVe0lliibtSyMYOLiAPVVVX2nwakydXxyvH4IbyEnwvbxRY0f2xP5O3XWkQqPsXhMFQaipjNTKc7P+EH+ka+N1Y4pi1DglK3vLBxFooI/ifyA4c9AvO1/a+sqAY8MphTMOXez2L/BoyB6k9FQbLnSunmkfNO/4pJDdx5X3DkFerok/PSOFk/IQg9p7Z0q558RxB1fWBolcNljW6RtF7AHeczc81qiK7GKitI4NtsrZcpGdFq97Ymbb+gHEo+Rsbdp56DeVAlkdK/ad0AGgCjuuUFpeS1h4cr5bfUUYe90jy9xuStURc1tt7Z6WMVFJJdIIiIZCIiAIiIAiIgCIiAEAixFwUiklpj9378e+MnTofoiLaM3F7TI7ao2R4yROgqI5we7OY1aciOoXUqrcwOIcLhw0cDYjxXSOqmjykAlbxGTvLQ+iuV5KfUjiZHxc4919osTZYXGOrgkNtsNd/K7I+uvguyspprpnNlCcHqS0cpKaCQ3fCwnjYXWG0kIFg1wHAOIHzXZFhwi/RlXWLxJnEUdMDcxNJ4kX+a6ta1gsxoaOAFllFlRS8I1lZOXlhEcWsF3kNHEmw9VwfVxtyYC88sh5n6ArEpxittm0KbLHqKJAvewFyuEtSxlwyz3eg6nf0UaSeSUEOIDf5W5Dx4rmqtmT6idbH+L01K1/wCDZ7nPcXPJJO8rVEVNtt7Z2VFRSSWkEREMhERAEREAREQBERAEREAREQBERACA4WIBHAhYa3Y/duezk1xA8tFlFlSa8GrjGS7WzYS1A0mJHAtB+i29pqB+Nh6t/uuaLdWzXsheJS/MToamoP42jo0fW61MsztZnnoQPkAtUWHZN+WZji0x8RFhe5FzxOZ80RFo3smSSWkEREMhERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQH//2Q==

 

posted @ 2016-09-12 13:26  ~的星辰大海  阅读(995)  评论(3编辑  收藏  举报