美文网首页程序员我爱编程
Java Web新手如何快速上手项目

Java Web新手如何快速上手项目

作者: LY丶Smile | 来源:发表于2018-05-25 09:36 被阅读895次

    序言

    本文主要面向的目标人群:刚毕业进入项目组,需要尽快上手项目的小伙伴。本文着重于快速上手,较少的涉及到原理。

    写本文的原因主要有两个,一个是深知自己独自摸索的痛苦,所以想分享一下经验给刚开始工作的小伙伴一个参考,少走一些弯路;另一个就是给别人讲如何快速上手项目时,有一些收获,整理出来做个备份。

    当然,我还想骗几个赞(哈哈哈哈~)

    个人感触:刚开始的时候不要追求太高深的原理,尽快上手才是正道,工作中不会给你那么多的时间让你把每一个知识点研究透彻再去开始做项目。但是当你上手之后一定要从头开始研究原理,切记!只有在理论的指导下,你的实践才能更深层次的去进行,否则你可能永远只是个写增删改查的搬运工。理论知识决定了你看问题的深度与广度,理论无用论千万不要信。

    PS:本文只是个人的一些经验,只有参考价值,不保证都是对的,如发现问题请私信。

    适合自己的,才是最好的。

    准备工作

    思想准备

    你做好加班的准备了吗?

    需要知道的概念(不需要深入了解,但一定要知道有这么个东西)

    • SSH(Struts,Spring,Hibernate)
    • SSM(Spring,SpringMVC,MyBatis)

    据我所了解的,现在用的更多是SSM,MyBatis使用起来也相对来说更简单一点,这个具体要看项目组使用的技术

    需要掌握的软件最基本操作

    • 版本管理:Git或SVN操作,GIT基本命令可见我的另一篇博客Git 最基本的操作命令
      • 克隆(clone):将远程仓库代码克隆到本地
      • 拉取(pull):拉取最新代码
      • 提交(commit):提交代码
      • 上传(push):提交到远程仓库
      • 新增(add)
    • Maven
      • Maven安装、配置
      • Maven简单使用(*.pom如何引入Jar依赖)
      • 配置连接公司的私有库、打包、发布
      • Eclipse下Maven插件配置(最新版本的Eclipse一般内置插件,只需要配置一下就好)
    • Eclipse
      • 常用快捷键,可以极大地提升编码效率,而且看上去很帅,哈哈
      • Build Path设置
      • 字符编码设置(中文乱码的问题一般是这个引起的)
    • JDK安装、环境变量设置
    • 数据库--MySQL、SQL Server、Oracle等 数据库连接,一般都会有用于开发的数据库,直接连接即可

    核心技术点

    • Spring
    • Spring MVC或Struts(主要先了解Spring MVC模式及开发流程)
    • 数据库操作:Mybatis(常用)或Hibernate或JDBCTemplate(Spring自带)
    • MVC(Model View Controller) 知道怎么回事即可,具体原理可上手之后研究,
      • model-模型
      • view-视图
      • controller-控制器

    开发流程

    这里所说的开发流程基本试用大部分的开发项目,希望对读者有帮助。

    基本流程:需求分析—功能设计—理清逻辑—写代码

    • 需求分析:别人提供一个需求的大致描述,需要自己去分析需求的可行性以及需求实现的基本思路,最好是在纸上写写画画,方便理清思路以及防止死不承认(嗯,相信我,这很重要!)
    • 功能设计:根据需求确认代码需要实现几个功能,然后功能组合,最终满足需求。这个阶段需要测试技术实现的可能性,比如做定时功能,你可能需要首先写一下定时实现的Demo测试下技术可能性再去具体实现整个功能。
    • 理清逻辑:功能设计完成之后,需要理清写代码时的逻辑,功能优先级,功能模块的解耦等。个人感觉这一块很重要,经常见有人代码写到一半发现逻辑不对需要重新返工。
    • 写代码:Model实体—Dao数据库操作--Service业务逻辑--Controller控制器(Action)

    学习流程:

    上手最快的方式就是模仿别人的代码。因为每个项目组的差异性,没有什么通用性的模板去靠,所以融入项目最好的方式就是看下项目组前辈的代码,然后尝试着去模仿。

    具体做法就是找一个已经开发完的简单功能,看代码,其中Service的具体代码不需要看懂(涉及业务逻辑,如果不知道具体的业务的话很难看懂,只会浪费时间),个人感觉关键点在于Mybatis的使用,因为Java Web后端的开发最常做的就是增删改查了。Controller层很少写业务逻辑,只是负责跟前端交互(比如前后端传值、API提供等)
    MyBatis两种使用方法:

    • 直接写在.java文件上以注解的形式写SQL
    • 方法定义与XML(通俗的讲就是写sql的地方)做映射(mybatis有自动生成,mybatis-generator,熟悉之后可以研究下,可以节省大量的开发时间)

    如何阅读别人的代码

    因为每个公司的标准不一样,所以有些package和方法名的命名不一样,最好是跟已有的保持一致

    Java Web开发的命名一般是:Model、Dao、Service、Controller(Action)
    比如用户功能的开发可能是:
    UserModel、User……(实体,一般是对应数据库user,变量名驼峰形式,比如userName)
    UserDao、UserMapper:数据库操作,一般对应 UserMapper.xml
    UserService(接口定义)、UserServiceImpl(接口实现,写业务逻辑的地方)
    UserController(或*Action) 控制器,一般跟前端的交互在这,比如前端调用的接口就是在这定义的。

    学会去问

    不要怕问!不要怕问!不要怕问!

    技术这个领域太庞大了,没有人敢说掌握了所有的东西,即使是在你所擅长的领域。每个人都有无知的时候,所以不要觉得自己问别人丢脸,有时候你纠结的问题都是些很简单的问题,只要你理清楚了剩下的很多问题都会很容易的解决掉。

    做技术的人,不是在解决问题就是在去解决问题的路上~

    当然,不要怕问不代表着什么都要问,问别人也是需要技巧的,否则问多了别人也会烦的。
    要搞明白什么该问什么不该问

    • 什么该问?
      • 一定是你经过思考的问题,而不是一看不会就跑去问,这个很容易给别人留下不好的印象。
      • 你觉得有价值的问题,只要是你觉得有价值而且自己解决不了的都可以问,问题没有低级高级之分,只要是你求知路上的拦路虎对你来说都是大问题。如果是自己觉得没什么价值但是又想知道的,可以在平时吃饭闲聊的时候问一下
    • 什么不该问?
      • 网上一搜答案一大堆的基础问题,比如Maven如何安装,这种问题网上太多了就不要再去浪费别人的时间了
      • 自己都不知道自己的问题是什么的。说的模模糊糊还需要别人自己去理解的问题最好别问,除非这个问题很重要而且确实是你自己不知道该如何表述。

    怎么问

    • 找着问题所在,上网搜下尝试自己解决,如果超出了自己预期时间再去问别人(如果很长时间没解决,千万别浪费时间了,耽误进度比丢脸问题大多了)。
    • 如果是程序报错,一定要将具体的报错信息截图或者通过别的方法记录下来,不要直接问什么“我的程序怎么跑不起来”这种问题,说实话,有一万种可能会导致你程序跑不起来的方法,别人不可能挨着给你排查。对于一个程序员来说,日志是很重要的东西,一个报错的日志截图绝对会让别人更愿意帮你解决问题

    学会网上搜索

    肯定很多人会很奇怪,难道我一个高材生还不会百度?说实话,有可能你真的不会。搜索的时候一定要搜问题的关键词,而不是漫无目的的检索。

    比如:数据库连接报错,有的人直接网上搜“数据库为什么连不上”,这种问题网上都有上亿的结果,等你找到你自己的问题答案天估计也黑了。找到报错信息,直接搜索报错信息绝对是事半功倍。如果百度等没找到,可以直接去Stack Overflow上找,绝大部分的问题都能在上面找到答案,不过是全英文的网站,需要一定的英文功底。

    关于搜索引擎:英文报错信息,Google会好一点。如果是中文问题,百度搜索结果可能更好一点,一些中文博客都包含在内。但是总体来说Google搜索质量高一点

    题外话-自我成长

    永远不要满足于自己的现状,在刚开始工作的前两年,是你快速成长的阶段,这个阶段你可能会产生自己已经“无敌”了的错觉,觉得自己什么都会了,世间的一切尽在掌握中。当你有这种错觉的时候,说明你该吃药了。

    个人感觉对成长最有帮助的几个方法:

    • 读书

      不管是什么书都可以读,当然玄幻之类的小说就算了。技术书、思维能力锻炼的书要着重读一下,好处还是很明显的。

    • 交流、分享

      在技术这个领域,交流分享绝对是能让你快速成长的一大利器。一个技术氛围很浓的圈子是很重要的,没有的话可以尝试着去写博客,在网络上找志同道合的人

    • 学着做笔记

      很多问题都是会重复遇到的,所以将自己遇到的一些问题纪录下来有助于避免重复踩坑
      另外整理学习笔记,可以加深记忆、便于后续查看。推荐两个做笔记软件:印象笔记、OneNote

    相关文章

      网友评论

        本文标题:Java Web新手如何快速上手项目

        本文链接:https://www.haomeiwen.com/subject/livejftx.html