网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
雷学委趣味编程配套食用:一个Java项目的简单工程化
来,我们一起看看,王总的大型鞋厂一条龙
大企业家王总,虽是半路出家做鞋子,可做事一点也不迷糊。
他经历过一块块砖头,一车车水泥沙石钢筋堆砌成一层层楼房的时候,也经历过一栋栋一片片的房屋出售的冲锋时刻,啥场面没见过。
自然想的已非个人亲手做一只只鞋起家,而是直接联系了很多大鞋厂老板,说要给他们投资,结果参观学习了3个月,探访了不少不同规模鞋厂。
王总:想要搞大规模,就必须把体系做好。所以转型做鞋子,第一步,得把整个工程生产线搭建好,不然别的都是白干费力!
雷学委认为做软件也是如此,工程化是很重要的。高效的组织代码,构建高质量代码产品,对个人对企业都是很有帮助的!
小白直呼,商人特么精明!这手段玩的是一套一套的,要是王总写代码不知道得多6!
鞋子是怎么来的?
原料: 鞋底,鞋带,皮革,缝合线等等的。这些组合而成就是一只鞋子,然后再成对匹配。
这些肯定都标准化,每双鞋都是同一系列的步骤照做的,不然最好做出来的鞋子形状千奇百怪,怎么做好销量?(又不是搞个人定制鞋款的)
说到这,小白好像突然开窍了,插嘴说:您是不是想说,这些玩意就跟我们的源代码一样?
小白激动地说:做好的鞋子,那就是相对于发布的一个jar包啊?!
哈哈哈,小白说出这个理解,学委很开心。
这样讲解工程化就好理解了!这里补充一下jar包,这是我们java同学有时候写了一些代码直接打个jar文件,包含程序发给别人直接运行。有点类似python的whl包,但是有区别,whl包只能用pip安装后在代码使用。
不错哟! 小白悟性是越来越好了。
小白又问,那继续说说具体工程化吧?手动打包搞多了挺累的,有时候漏了被同学嘲笑还得再来!
好的,让我们继续看看王总怎么做的呗。(下图为鞋底机械自动成型)
(图片截图自:如何做一双适足的鞋子 — 自动制鞋生产线 )
王总这个工厂做鞋车间基本上都是机械化自动的,加上最后少量的人工校准。
整个制鞋大车间,有个机器负责把鞋底膜摆放好,传送带运到一个密闭小盒内,一个气垫放上,高温压印。鞋底成型了。
(图片截图自:如何做一双适足的鞋子 — 自动制鞋生产线 )
传送到下一个链条,皮革准备好机器自动缝合,基本误差很低。
差不多了,最后上一个自动的拉伸鞋子看看生产的这个鞋子质量如何。
这时候鞋子基本上好了,后期销售再配点鞋带就可以了。
工程化/项目组织 是什么鬼呢? 就是通过一条纽带把项目的代码,文档,测试,脚本等组织管理起来,目标是提供一个简单的使用,比如mvn clean deploy直接发布jar包。或者npm run start去启动一个前端项目。就只有这个好处吗?
在这里做Java的朋友,可以理解为一个流水线很方便的按个按钮就将代码生成jar包,接着可以自动发送jar包,也允许少量人工比如把jar包发给一些个人使用。
回到实际项目中,这里拿一个Java项目来说
在外面项目中,我们会把代码,放在一些文件夹(package)中。
然后也有一些启动脚本(不同配件)放在特定目录,测试代码放在不同的目录。
然后用maven/gradle,里面使用了不同的插件(plugin)去运行代码的编译,代码测试,编译产物拷贝移动到特定目录。
然后用另一些插件去组织代码。
下面是一个真实的Shoe项目的“车间视图”,下面再解释。
(IntelliJ开发工具视角,左边文件目录结构,中间为pom.xml, 右边为构建生命周期)
让我们来看这个工作车间的一个产品作业线(一个子模块leixuewei-classobject)。
谈谈这个制鞋项目,编译一个鞋子类,写一个测试类,打包代码为一个jar包。
类似摆放鞋子原料,如上图,我们开发需要把代码相关文件放置好。
如下图,整个项目把代码分为了两个大目录src/main(核心代码) 和src/test (测试)
- src/main/java 负责放置项目的核心代码
- src/main/resources 负责放置项目运行相关配置
- src/test/java 负责放置项目的测试代码
- src/test/resources 负责放置项目测试相关配置
做Java的同学经常会使用一个叫Maven的软件工具,用它来管理项目的代码,依赖,同时执行测试,跟打包。
就像上面一个真正的制鞋子的车间图一样,Maven就像整个流水线系统一样。制鞋车间分步骤的组装鞋子,Maven分步骤地执行各个阶段的插件编译源码(填充鞋底),执行测试(机械臂拉伸缝好的鞋子),打包代码(自动配件分类包装)。
具体工作如下:Maven这个工具根据pom.xml读取项目组织,依赖,插件plugin(类似制鞋车间内的一些辅助维修工具)。
- maven-compiler-plugin : 这个插件负责编译java代码成class文件
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新