“放码过来!新版Java坦克大战”课程大纲

一个项目,整合Java企业级开发必须技能:选型考量、开发工具(IDEA)、版本管理(GIT)、持续构建(CI)、单元测试(JUNIT)、重构(Refactoring)、设计模式(Design Pattern)、并发编程…一个都不能少。全面超越老版尚学堂坦克大战!您可以通过限量折扣码CSDNDEMO免费获取完整课程内容,或通过折扣码JAVA-NEVER-SLEEP享受两折优惠。

通过本课程您可以学习、了解:

  • Java开发业界最佳实践
  • 如何编写清晰、简洁、高效代码
  • 熟练使用Maven构建工具
  • 熟练应用重构手法和单元测试
  • 独立设计、规划、开发中小型规模项目
  • 了解开发环境、测试自动化流程

Section 1: 热身赛

  1. JDK、开发工具,如何选?
    选择JDK、开发工具简单吗?不简单!我们不做印象派,我们通过客观的数据和调查结果来作出最为理性、稳妥的选择,与此同时,我们也在个人研究、学习中勇于尝试新鲜事物,为未来的选择做好准备。

  2. 开发环境搭建,怎么自动化?
    复杂开发环境的搭建、自动化开发环境搭建,告别刀耕火种,不再点击狂魔。

  3. 放码过来:热身
    我们从一个简单的寻找最大、最小数字程序开始起步,介绍两种测试方法,并说明可改进之处。

  4. 放码过来:初探单元测试
    我们开始一个稍有难度的程序编写,并初步介绍如何使用JUNIT5来测试我们的代码,与此同时,我们也衡量我们代码的单元测试覆盖率。

  5. 放码过来:为牛正名
    我们尝试编写一个稍有难度的程序:USACO上面的一个练习,为牛正名。

  6. 放码过来:为牛正名继续改进
    我们观察如何不断改进我们的程序,以及如何评估改动的代价和回报,我们也能看到面对意外,老司机不小心翻车之后如何及时找到Bug并解决。

  7. 放码过来:为牛正名补充说明
    关于文件写入操作,flush以及try with resources的补充说明。

Section 2: 坦克大战

  1. 新版新版,新在何处?
    开门见山,我们对比广为流传的尚学堂马士兵老师版本,说明这一版本新在何处。

  2. 以终为始:项目演示
    Begin with end in mind。我们先了解目标和终点,再回到起点开始。

  3. 分而治之:项目规划
    我们以尽可能最简化的方式去规划项目,不引入不必要的复杂度和管理成本。

  4. 创建项目Repository并进行版本管理
    使用Github创建repository,版本管理让我们有备无患,安心上路。

  5. 警惕拼写错误类Bug!
    不小心打错一个字母引发的悲剧,如何避免此类悲剧重演?我们需要在方法论层面进行思考和改进。

  6. 移动坦克:上下左右

  7. 移动坦克:八个方向

  8. 加入敌方坦克

  9. 加入围墙

  10. 添加第一个单元测试

  11. 加入碰撞检测

  12. Ready?Fire!让坦克可以开火

  13. 开火怎能没有声音?

  14. 超级发射!八个方向!

  15. 重构方向枚举类

  16. 重构移动方法

  17. 子弹与围墙、坦克的交互

  18. 敌方坦克团灭之后就地复活

  19. 加入爆炸图片、声音效果

  20. 实现Game Over和Restart

  21. 加入游戏得分显示

  22. 加入两棵树、宠物骆驼和急救包

  23. 关于存档功能的设计

  24. 基于FastJSON实现存档功能

  25. 使用位运算简化方向判定
    一个数字,八个方向,清清爽爽,优雅简洁。使用四个甚至更多状态变量来切换的痛苦和纠结,不会再有了。

  26. 集成Travis和CodeCov
    构建、运行测试永不打盹永不睡觉!这是工作方式调整的一小步,却是项目质量提高改进的一大步。

  27. 使用exe4j生成Windows可执行文件
    提高用户体验第一步:可执行文件。

  28. 使用install4j生成Windows安装包文件
    提高用户体验第二步:傻瓜安装包。带着对小白用户的深情厚爱,我们用心点下Build按钮。

Section 3 总结复盘

  1. 总结与新的开始:力扣超人!
    我SHOW了我的CODE,现在,轮到您来SHOW了:寻找力扣周赛中的超人们。

  2. 致谢与鼓励

    Not everyone can be a great programmer,
    but everyone can be a programmer,
    and make a difference!

    Now it’s your time to make a difference.