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

序言

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,778评论 6 342
  • 梅州是客家之都,因为这里聚集了太多客家人,逢山必有客,由此可想而知,梅州是个山城,大大小小的景点有很多围...
    总有一个在路上阅读 315评论 0 1
  • 你是不是偶尔会觉得很累,很苦。每天奔波在赚钱养家的路上,有时候会怀疑自己,怀疑自己的能力,怀疑自己的前途。 不,不...
    rain夏阅读 174评论 1 1
  • 越是深沉,越是沉默。 越是珍惜,越是沉默。 越是尊重,越是沉默。 越是.......我... 我不愿再说错一句 我...
    Yaweix阅读 252评论 0 0