发表于: 2017-06-22 10:55:42

14 1197


葡萄藤日报总结- 我在葡萄藤学习的121天


时间过的很快,马上就要离开郑州,离开3个多月来朝夕相处的兄弟们,些许不舍,许多留恋,但我必须前行!

从没想过自己会写到第121篇日报,从小到大,日记都没有坚持过这么多天,然而,我做到了就说明我进步了。

那是在上个春节,回到家乡,和发小聊着过去一年的经历,大家一起谈论着自己的生活、工作。

从小喜欢数学的我,现在在培训机构做老师,能够教书育人是一件很幸福的事情,然而,我希望改变,希望通过互联网技术完善教育现状,帮助到更多的学生。于是,在她的推荐下,我来到了北京葡萄藤IT修真院 - 郑州分院。

这是我第一次来郑州,来时三月,天气正是凉爽舒服的时候。房子有三间,因为学习前端的人数比较多,大的那间属于他们。首席师兄带着我来到Java组的那间屋。一路赶来的我,虽有些疲惫,但看着有这多人在学,心里还是蛮激动的。

 

学习过程:

先给自己定个目标,三个月的目标,进入互联网敲门砖。

首先,需要交代的是:

来葡萄藤之前只是简单学习了JAVA基础,认识一些单词而已。

然后,回忆一下我的学习路径:

葡萄藤的培训模式是:找个师兄,带你入门。进入葡萄藤IT修真院,没有老师填鸭式的看视频教育,直接上手做任务,做完任务进项目。葡萄藤的这一套任务设置是经过好多人验证过的,可以为以后进入一家互联网公司做后端项目的任务。

学吧!躁起来吧!

 

MySQL数据库的学习

开始的时候只知道数据库是存放数据的仓库,其他一无所知。起步是从DOS命令窗口开始的,觉得这个东西效率很低,但是现在想想操作命令行也是个必经之路。想到最初写得第一个HelloWorld.java也是在命令行里编译后在运行的。所以,我的建议是尽快的地通过命令行的操作熟练sql语句,了解到常用的增删改查,然后马上开始使用navicat。使用好navicat的查询,可以提高对于数据库操作的效率。学习好数据库是很重要的,做一个项目首先需要做的就是根据产品原型图进行DB(数据库)设计,对于sql语句的掌握情况直接影响到后面的方案设计。学习MySql的时候注意要对应到JAVA代码中的数据类型,比如说BIGINT对应long, VARCHARCHAR对应着String类型。

 

JDK的安装以及环境变量的配置,这些工作要用最少的时间把它完成。JDK(Java Development Kit)安装好后,赶快下载好IDE(集成开发环境),用的比较多的有EclipseIDEA,我的个人情况是先用着Eclipse。注意,要选择企业版本的Eclipse使用。因为我在来修真院之前一直使用的是SE标准版,当时是为了学JAVA基础。来了以后听说我们要建Web项目,果断下载了企业版的。

 

接下来,就要赶快了解maven了,一直听周围的师兄在说仓库依赖“pom文件,这些词什么意思啊?师兄过来和我说:“你创建的项目怎么还是Java Project?Apache官网下载maven”。于是我开始学习maven,从开始的一无所知,到三个主要部分:生命周期、阶段、目标,再到了解仓库的概念、什么是依赖机制,到这一步我接触的还停留在jar包的概念,对于打war包还完全认知,更别说web项目了。

 

基础部分:

JAVA一定要多写代码,从一开始就要按照命名规范来,了解驼峰命名法,做到见名知意。重点学习的内容包括:8种基本数据类型、类型提升、强制转换、数组、异常处理机制、循环机制和条件判断等等。开始了解面向对象与面向过程的区别,JDKAPI文档中主要的package有哪些,要学会使用注释对自己写的代码进行说明。尽快熟悉开发工具Eclipse的目录结构,新建Java Project如果要导入jar包需要手动操作,新建maven项目的话,主要在pom.xml中配置依赖,对于本地没有的jar包,回到maven repository中央仓库中去下载,这就需要了解到坐标定位,包括groupIdartifactId,以及version,同时,下载到本地的jar包,要知道去哪里找,了解.m2中的repository是如何根据坐标分级目录的。另外,maven中还有一个重要的配置文件setting.xml,通过配置它,除了中央仓库外,我们还可以指定到私服Nexus下载jar包,这一点是会在做萝卜多复盘项目时用到的。另外,学习JAVA基础的时候我学习了方法重载,

http://www.jnshu.com/daily/17143?dailyType=others&total=121&page=96&uid=1560&sort=0&orderBy=3

后来在做项目的时候发现用的次数还是挺多的。同时,要了解JAVA的三大特点:继承、封装和多态,在做任务的同时深入体会这三个特点的妙处。在方案评审之前有一个很重要的文档是方案设计文档,在这个文档中要写清楚具体的接口实现方法,具体到要使用的sql语句,要把认为是难点的地方提供自己的解决方案,要想到使用什么代码去实现。

 

 有了一定的数据库和Java基础,就要想着如何把两者连接起来了。一个新的名词进入了我的视野——JDBC,通过com.mysql.jdbc.driver,username和password将代码与数据库连接,在代码中实现了sql语句对数据库的操作。也就是从这个时候开始,我开始体会到maven的pom依赖的强大,mysql—connector的jar包导入进来太方便了。

 

要学习Junit单元测试,因为等我们写了很多代码,想要测试一下其中一小块代码执行是否成功的话,如果每次都运行整个项目不太方便,也耗费时间。因此,用好Junit是很有必要的。

 

要学习log4j, 也就是打日志,在做萝卜多复盘项目的时候,发现这个真的非常有用,为我们快速地定位bug,解决bug,还是要好好学习这个。

 

该学习Mybatis了,在JDBC的基础上,我们已经实现了代码操作数据库。Mybatis的两种方法要熟练使用,配置和注解。抓紧时间,尽快实现对于数据的增删改查。这个时期,会接触到一个新名词——实体类,实体类中的属性对应数据表中的字段,实体类中的每个属性可以有自己的settergetter。实体类的序列化可以了解一下,以后做项目会用到。

  

学习MybatisSpring的整合,这个阶段配置文件会多起来,可能会遇到缺少很多jar包的问题,不要慌,慢慢来。只记得当时我maven项目还建得不太溜,就开始接触Web项目了。Web项目的打包形式是war,会有一个web.xml文件,这个阶段需要我们知道用了几个配置文件,每个配置文件是否有被扫描到,多思考一下各个配置文件之间的关系。了解HTTP请求是如何得到响应的,controller调用serviceservice调用daodao再去调用数据库。

 

 到了任务二,更多的坑在这里等着你,一批批师兄们从这里掉下去又爬出来,乐此不疲。在任务一快要收尾的时候就要在网上买好服务器了,阿里云、腾讯云、百度云任你挑选。如果之前没有使用过服务器,不用担心,我之前也是小白一个。你够买的服务器相当于一台离你很遥远的主机,如果你想操作它,就需要在本地将它显示出来。马上从网上下载终端模拟器,我是用的Xshell,师兄弟也有用SecureRT的,看你个人喜欢了,在你购买的云服务器控制台找到它的IP地址,用户名和密码,与终端模拟器进行连接。另外,还需要下载一个可视化的工具——WinSCP,通过它可以直观得看到云服务器中的目录结构。

 

对我来说,最有意思的事情之一,就是LINUX的命令行操作,看着师兄们敲打键盘宛如钢琴师弹奏狂想曲一样飞速,好像让自己的手指也飞起来!我选用的服务器系统是Ubuntu 64位的,也有别人在用CentOS的,不管是哪一种,首先要把基本的命令行操作先熟练起来。初次接触时,可能会因为权限问题而困扰,其实Xshell可以通过sudo su命令获得root权限,而WinSCP可以在网上搜一篇教程设置一下也可以获得root权限,不要在这里纠结,这个不是重点。赶紧先把基础的的命令行操作熟练起来吧: ls 查看当前目录,cd 切换到指定目录,cd .. 返回上一级目录,whereis 搜索你要找的文件在哪里放着,cp 复制,mv 剪切或重命名,rm 删除(谨慎使用,尤其是在公共服务器上做项目时)cat 查看文件内容,sudo vi 编辑文件(这里有个大坑,当你使用这条命令进入到文件中时,要按 i 才可以编辑,编辑好后要保存,先Esc,再输入 :wq 才可以保存; 如果不小心输错,要输入 :q!取消保存)

 

基础的LINUX命令行操作掌握了以后,赶紧往服务器上安装各种东西并设置环境变量: jdkMySQL数据库,mavenTomcatResin, 这一阶段会反复巩固基础命令行的操作,另外还需掌握脚本文件(Windows系统中也叫批处理文件),这个在做萝卜多复盘项目的时候也使用到了,编辑start.shstop.sh脚本文件,配置里面的路径,从而启动或终止某个进程。在LINUX系统中安装好mysql以后,登录时让输入密码,明显在键盘上敲了密码,可是屏幕上一动不动,不要以为你电脑卡了或是键盘坏了,其实你的密码已经输进去了,为了保护只是没显示出来而已。

 

另外一个很重要的内容是要了解RESTful风格的接口设计,包含四种: GET 查、POST 增、PUT 改、DELETE 删。在我们的整个学习过程中,这四点会贯穿始终。这四种方法具体在controller中呈现,但是service层去实现,接口interface会和实体类封装成jar包,再由servicecontroller去调用。关于REST风格的接口,在做项目的方案评审之前会写一个接口文档,就会用到。接口文档除了包括接口外,还包括请求参数和返回参数,对应着controller的方法中的入参和出参。这里还需要注意的点是/a//a/u/的区别。

 

学习nginx的时候,要注意两个非常重要的作用,一个是它的缓存机制,另一个是负载均衡。Nginx的缓存机制是针对前端的静态资源。这个在做萝卜多复盘项目的时候,为前端搭建开发环境的时候会使用到nginx的配置。在这里需要注意的几个配置文件有:upstreamserverlocation

 

 接下来说几个用来测试的工具:

JMeter测试接口性能,通过聚合报告可以看出95%压线时的响应时间,以及吞吐量。然而它的功能远比这个要强大,待我日后发觉。

Badboy脚本录制工具,可以录制访问网站的一段过程,保存后使用JMeter查看各个接口的访问情况。

Postman查看接口的运行情况,请求参数、返回参数都显示得非常详细。


一定要跟着做项目,只有这样,才能把之前学到的东西融汇贯通起来!

时光如梭,用珍惜有限的时间。关于互联网行业葡萄藤的这种教学模式,我从中受益匪浅!

希望自己能够找到一份不错的工作,就像葡萄藤一样,再高的墙也抵挡不住我们攀爬的脚步,相信,高墙之外的世界会更加美好!


最后,真诚地感谢葡萄藤的创始人,感谢我的发小,感谢郑州分院的每一位前后端的师兄弟们,感谢每一份向往美好、勇于改变的决心,加油!


返回列表 返回列表
评论

    分享到