1
回答
做一个模仿个天猫官网的J2EE项目,来练手

作者:黄喜
链接:https://www.zhihu.com/question/29444491/answer/146457757
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

1. 项目演示地址
前台 http://how2j.cn/tmall
后台: http://how2j.cn/tmall/admin

2. 学习思路
其实呢,要在网上找一个J2EE项目是很容易的,随便在百度或者git搜索,都是一大把。 但是拿到这样的搜索来的J2EE项目,其中包含了上百个java文件,jsp文件,各种配置信息,如果没有好几个实践过的J2EE项目经验,会觉得无从看起,难以下手,最后影响学习的效果。
为了使学习的曲线变得更平滑,逐渐建立学习的信心,我为这个模仿个天猫官网项目制作了由浅入深的学习教程。

2.1 首先下载一个跑起来
看了演示地址之后,第一步总是要下载下来,把项目配置起来,自己也跑跑看看效果的。 如果下载出来的项目不能运行,为什么要跟着你做呢?

为了顺利的演示,不仅需要项目代码,还需要数据库中的数据, 所以提供了导入数据的SQL文件
而导入的数据量比较大,上万条数据,使用工具导入不仅慢,还有可能出错,所以专门准备了一个命令行的方式导入,以保证导入的顺利进行
配置tomcat也是比较容易出错的环节,特意准备了一个完整的server.xml,直接复制粘贴,然后启动tomcat,就一定能够成功配置了。
如此这般,便可以顺利的自己也搭建一个模仿天猫的J2EE项目,在自己的机器上看到效果。

2.1 由浅入深,从零开始构建整个项目
在确定了这个项目确实可用的前提下,就可以开展对这个项目的学习。但是这个项目里有许多的java,jsp.xml 等等各种类型的文件,彼此之间又有着各种关联关系,从哪里开始着手好呢? 其实,从哪里着手,都不好着手,毕竟项目有着相当的复杂度。 最好的方式,就是从零开始,由浅入深地构建出整个项目出来。

  • 从需求分析开始,明确要做哪些功能。
  • 然后分析表结构,确定什么样的表结构,表关系,可以支撑需求中的业务功能。
  • 接着再做持久层的实体类和DAO设计
  • 最后才开始进行前后台的功能开发


2.2 表结构设计

表结构设计是非常重要的,如果这一步没有做正确,将无法支持业务功能的需求,所以放在第一步来做。 在这部分列出了表与表之间的关系,建表的SQL语句等等。 值得一提的是,因为表比较多,为了便于理解每张表的作用,特意把表和前台页面截图做了对应,从感性上理解这些表都是干什么用的。
比如这个产品表与产品页面的截图,这样表的每个字段在界面上分别对应什么样的显示数据,对于这个表有什么用,心里就会有底很多。

2.3 每个类的源代码,细致到方法级的讲解
项目里有非常多的类,如实体类,DAO类,Servlet类,Filter,JSP等等,不仅每个类提供源代码,而且每个类的每个方法有什么作用,与业务有什么关系,都有细致到方法级别的讲解, 力求把代码吃透,消化明白。
2.4 业务类与界面的对应关系

稍复杂的方法,还有与项目截图的一一对应关系,辅助理解。
2.5 后台第一个功能精讲
在功能开发环节,比如后台功能,通常来说,大部分后台功能是比较接近的,主要是业务数据的CRUD操作。 而做第一个的时候,不仅需要规范化,对于不熟悉的同学,也会略感吃力。 所以在讲解如何做后台第一个分类管理功能的时候,把其拆的特别细,碾碎到很小的颗粒,这样消化起来就容易多了。

2.6 其他后台功能
在完成了第一个后台功能,并消化理解之后,再做其他的后台功能就会顺畅很多


2.7 前台第一个功能精讲
前台功能与后台功能的做法会有区别,所以与后台功能类似的,前台第一个功能也讲得很细致,便于理解与消化

2.8 其他前台功能
在完成了第一个前台功能,并消化理解之后,再做其他的前台功能就会顺畅很多
2.9 视频讲解
光有文字讲解有时候也无法把一些较为复杂的概念、思路表达清楚。 所以在各个关键点,都有视频讲解,加深理解。


3. 可运行项目
每个知识点都有当前的可运行项目下载,以确保项目一定可以运行,保障持续学习的信心。
学习一个较为复杂的项目,会有这样的体验:各个步骤差不多都跟着做了呀,但是为什么就是不能正确运行呢? 而且花很多时间,翻来覆去的改,越改越糟糕,越改越乱,犹如进入了茂密的丛林一般,几乎失去了方向。 如果进入这样的状态,真正可怕的是一点点丢失的学习的信心和动力,自然而然地开始怀疑项目本身是不是有问题喔,各种疑虑加上止步不前, 最后实在是学习不动了,只好放弃了。
其实之所以跑不出来,大部分原因都是因为某个细节没有处理好。为了面对这种情况,我特意在每个学习步骤的右上角,准备当前学习进度对应的可以运行的项目。 如果自己老是搞不出来,那么就把右上角的项目下载下来,部署,运行,就跑通了。

这样做的作用是什么呢?

  • 第1,确保了项目是可以运行的,教程没问题,打消了项目本身就有问题的疑虑
  • 第2,此时就可以把自己写的代码与“标准答案” 代码进行比较,很快就能定位自己的问题所在了。 为此还特意在对应位置,为每个源代码提供了一个文件比较功能, 方便快速定位自己哪些 “细节” 不一样。



  •  
  • 第3,定位到自己错误的地方,修改后,再回过头去部署自己的项目,并运行通过。 这样不仅技术上成长了,也能逐步增强了学习完整个项目的信心。


4. 可以期待的收获
看上去这个项目也不短嘛,那么真正学完这个项目后,能够得到什么呢?
4.1 典型业务场景的掌握
所谓的典型业务场景就是各种商业项目里,都会有类似或者接近的功能。 在这个项目里你掌握了这些业务场景的开发,去工作之后,做类似的就能驾轻就熟。 那么都有哪些业务场景呢?


4.2 设计模式的掌握
设计模式的书和文章有很多,从我自己学习和工作的经验来看,如果一种设计模式,我只是在书上看过,却没有在实际工作中运用的话,那么犹如无根之树,打一把dota就忘记了,即无法深入理解其中的原理,也不能在真正工作的时候,灵活地运用到他们。

而通过这个项目,基于实践所运用到的项目,就会变成你真正的技能,因为这些都会是你一行一行代码敲出来的设计模式,在面试的时候如果被问到相关问题,你也会对答如流,因为这些会是你真正“实践过”的设计模式

5. 教程地址: how2j.cn/k/tmall-j2ee/tmall-j2ee-894/894.html?tid=36
教程由个人完成,局限于个人的经验和视野,有诸多不足之处,请各位多多指点,谢谢

<无标签>
举报
maocai15
发帖于1年前 1回/776阅
顶部