《程序人生》系列-敖丙教你搭个面试项目
你知道的越多,你不知道的越多
点赞再看,养成习惯
github https://github.com/javafamily上已经收录有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎star和指教
前言
群里不知道多少次大家说自己的项目没亮点,在大学没项目出去后怕找不到工作,问敖丙我实习的时候是怎么拿的华为offer。
其实大学的项目很简单不需要太大的难度,因为面试官知道你也没啥经验,不会很在意这个,但是你得有项目这是必要条件,再不济增删改查你要比别人6吧,不然找个0经验的人进去,不是给他自己挖坑?
而且如果你有个还不错的履历,或者你的项目还有一些亮点,那完美了,你的offer率会拉开同行的仔一大截的。
丙帅我呢大学做过几个项目,前些天问了问学妹,还在学校稳定运行着,说实话我有点小骄傲了。
但是说实话,我拿华为offer跟这些项目关系不大,大学时候完成的项目完全是兴趣使然,想起当初自己一个人在室友还没起床的时候去图书馆,在室友都睡觉的时候还没回去的时光,我的眼角又湿了。
tip:怎么拿的offer我会在《程序人生》系列写,过年前或者后面出个我大学到现在的心路历程哈哈。
当时在电子阅览室当管理员,甚至多次为了赶进度,在图书馆通宵达旦,好在最后还是完成了那个项目,自己一个人从前端到服务端,从研发到部署上线。
大家都知道学校选课用选课系统的时候,很多学校给第三方公司做的系统都很卡,敖丙做的项目就不卡,因为那个时候我就用到redis了,现在想想设计思想还算前卫。
好了吹了这么多,其实就是为了引出今天的主题,如何从0到1搭建一个可以外网访问的项目。
很多小伙伴看到最后要说了,丙丙我要学的是分布式,才不要学垃圾的单机系统。
分布式不就是一个单机的服务构成的,你多起几个进行rpc通信不就好了?
正文
我就用自己的服务器给大家举例,怎么从0到1搭建一个学生和新手可以用来面试的项目,老手也可以回忆一下自己逝去的青春。
可能有小伙伴疑惑,丙丙为啥要服务器,本地不行么?
可以,当然不是为了推广服务器哈,大家可以不买,我只是阐述一下自己的观点,因为大家以后出去难免遇到自己操作服务器的情况,有些公司没有集成发布系统,那就需要你亲自去机器上操作了。
然后你rm -rf ,好了去财务室领下工资吧,年底了,提前回家过年可还行?
开玩笑的哈,只是很多操作大家不经常熟悉其实会都不知道,真正去操作或者面试官问你,熟悉各种操作么,你说不熟悉,好的回去等消息。
作为面试官,面试没多少经验的你,他更看重你思考的思路,还有你有没有实操过,务实么?
帅丙我大学的项目就是经常操作,所以后面很长一段时间的服务器操作,还有linux命令啥的都还是不错的,技术栈搭建起来也是很熟悉,不过最近都是用的公司的工具,命令忘了好多了,需要反省一下了。
服务器在激活的时候会让你选系统,这个时候敖丙我个人建议,有点基础已经熟悉安装过程和环境配置的同学可以直接选择镜像,镜像市场里面有很多很适合的镜像,我选的就是带jdk8,tomcat8,mysql的镜像。
没搞过的同学可以尝试着选个空白机,然后下好这些东西,一步步去尝试,我想收获还是会有的,跟你在自己电脑搭建的区别你会马上体会到,这就是为啥建议大家去服务器操作的原因之一。
镜像选择
镜像记得选不要钱的,一般都是免费的。
选完你在实例就可以看到自己的服务器了,下面就是帅丙的服务器,居然跟我一样帅,天呐。
上面都是新搭建的小伙伴,已经有服务器的小伙伴,但是又想换成镜像怎么办?
大家先把服务停掉然后点击右边的更换操作系统就好了,会让你去镜像市场选的,之前你选了什么系统都可以换。
登录服务器
可以直接在管理界面网页登录服务器远程链接,也可以自己本地用对应的控制台工具连接。
个人推荐本地的控制台连接会好点,每次要登录服务器都要去网页很麻烦的。
远程链接的代码,记住是大家的公网ip,管理界面看得到的,要记得你购买的时候配置的密码,因为这个时候要输入。
ssh root@123.14.123.8 -p 22 (后面的22是个端口,后面我介绍到)
到这一步的时候,很多小伙伴直接登录成功,但是之前就已经有服务器的朋友是不发现,出现下面这个页面了?
会出现这些信息是因为,第一次ssh连接时,会生成一个认证,储存在客户端(也就是用ssh连线其他电脑的那个,自己操作的那个)中的known_hosts,但是如果服务器验证过了,认证资讯当然也会更改,服务器端与客户端不同时,就会跳出错误啦~因此,只要把电脑中的认证资讯删除,连线时重新生成,就一切完美啦~要删除很简单,只要在客户端输入一个指令
ssh-keygen -r +输入服务器的ip
接下来再次连接一次,会出现
are you sure you want to continue connecting (yes/no)?
输入yes!
就完成连接啦!同时,新的认证也生成了。
进去后如果是镜像的小伙伴会发现本身他准备好的东西都在了,环境都搭建起来了,大家只管直接使用就好了。
但是如果没有选择镜像的朋友,就需要自己搭建一个ftp或者使用传输命令去把你下载好的tomcat、mysql等传输进来安装好。
大家可以看到还有一个默认密码文件夹,里面就有mysql和ftp的账号密码什么的,不同的镜像可能有差异。
这个在之后大家自己的服务写代码的时候,配置连接本地的mysql就是需要这个的。
博客网站
这次教大家搭建的项目说大不大,说小吧他啥都有,反正小白和学生肯定很适合,是个个人博客网站。
我们先看看博客的效果,看看大家作为大学的项目到底合格么?
我大学做的那个项目比起这个就差点意思了,当时要是有这么好的ui就很香了!
项目代码
以我这种直男审美都觉得ui很不错,你以为只是ui可以?那我们看看项目!
项目的git地址 https://github.com/halo-dev/halo.git 大家克隆一下就好了。
这个项目本身是gradle的,很多小伙伴就要说了,啊帅丙我不要,我就要maven项目的。
我只想告诉大家,技多不压身,目前很多大厂都是maven项目gradle项目都占有很高的比重,你怎么知道你去的公司会用啥?
你会用进去减少多少学习的成本啊,leader在旁边暗自给你比一个大拇指,暗自感叹:帅丙的读者,有点东西。
mac很多小伙伴安装的时候发现没有homebrew 就没办法用很方便的命令行去下载安装gradle,那简单我们安装一下,用下面的命令。(windows的朋友直接官网下载一个就好了 )
/usr/bin/ruby -e "$(curl -fssl https://raw.githubusercontent.com/homebrew/install/master/install)"
这个安装好了,我们再用下面的命令就可以就把gradle安装好了,是不是比你去下载方便很多?
$ brew install gradle
接下来去项目中设置下gradle地址,这里介绍的是idea的设置
为啥推荐个人博客项目?
很多人问我为啥推荐这个项目,这个项目看过次代码了,没有啥语法错误,项目结构完全标准的项目,注释也很齐全,代码的风格挺不错的,还是 用了很多新语法和注解。
而且他也不难理解,结构很简单,前端后端都很简单,大家看看代码,看看前后的接口,很快就能适应这个项目了。
接下来我们可以用项目去打个包,或者直接下载敖丙打包好的。(jar包还有war包随意)
用命令行下载最新的 halo 安装包
curl -l https://github.com/halo-dev/halo/releases/download/v1.1.1/halo-1.1.1.jar --output halo-latest.jar
或者
wget https://github.com/halo-dev/halo/releases/download/v1.1.1/halo-1.1.1.jar -o halo-latest.jar
文件传输呢,帅丙我习惯命令行了,ftp这样的工具还是不适应,我就发下命令行是怎么把jar包从本地传输到服务器的。
scp -p 22 /java/program.war root@123.456.789.987:/usr/server/tomcat7/webapps/
我们进入机器去看一下,文件已经传输进来了。
因为是一个springboot项目,你只要有jdk直接就能跑起来了。
java -jar halo-latest.jar
然后大家访问下自己的 ip+端口(8090)就能看到项目了
然后很多小伙伴说,渣男,我的怎么不行?
稍等稍等,敖丙啊还正准备说呢,大家的端口默认就开通了 22 、-1、3389
22是不是很熟悉,就是开头我们链接的端口号→ ssh root@123.14.123.8 -p 22 也是因为厂商默认给我们开通了,我们才可以直接链接的。
但是我们要访问别的端口,那就去开通嘛,记得入口出口一样都要开通哟!
然后重启下机器,重新启动项目,是不是!!!可以访问了???我们先注册一下
然后再登录进去。
可以看到校验的异常什么的都直接日志抛出的,项目我觉得对于学生和新手来说很香,里面的代码风格大家也多适应一下。
登录进去我们可以发现,功能很全,博客网站基本的结构都在了。
有个不成熟的猜想,还没毕业设计的朋友。。。。
相关文章:
-
-
Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门
1.Number 和 Math 类: 在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型(int,double,float这些)的情形... [阅读全文] -
本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 "并发编程系列博客传送门" ... [阅读全文]
-
本文图文并茂,循序渐进的体验和分析了Django3.0的ASGI功能。初步结论是3.0版本的ASGI通信只是搭了个架子,还不能原生支持,依然需要使用... [阅读全文]
-
@[TOC] Mybatis整合spring其实就是SSM框架中SM的整合集成。 1.整合思路 整合的思路其实就是Mybatis整合spring的核... [阅读全文]
-
概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 构造方法 1.public File(... [阅读全文]
-
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论