1. 程式人生 > 程式設計 >《程式人生》教你在伺服器搭建個人面試專案

《程式人生》教你在伺服器搭建個人面試專案

你知道的越多,你不知道的越多

點贊再看,養成習慣

GitHub 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 [email protected] -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的朋友直接官網下載一個就好了 gradle.org/install

/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 [email protected] -p 22 也是因為廠商預設給我們開通了,我們才可以直接連結的。

但是我們要訪問別的埠,那就去開通嘛,記得入口出口一樣都要開通喲

然後重啟下機器,重新啟動專案,是不是!!!可以訪問了???我們先註冊一下

註冊
註冊

然後再登入進去。

登入
登入
可以看到校驗的異常什麼的都直接日誌丟擲的,專案我覺得對於學生和新手來說很香,裡面的程式碼風格大家也多適應一下。

登入進去我們可以發現,功能很全,部落格網站基本的結構都在了。

有個不成熟的猜想,還沒畢業設計的朋友。。。。?

絮叨

看到這裡很多小夥伴可能會說你就是為了推廣伺服器才寫的吧,我說實話有一定的成分,但是更多是因為我自己的群裡,經常有很多小夥伴對專案的整個搭建流程不是很熟悉,所以才出這樣的一篇文章的。

這裡只是一個單機的專案,大家真正部署的時候要體驗別的技術棧可以去Git上下載下來部署上去,體驗他整個部署流程,中間肯定很多不順利的地方相信我,100000%不會一次成功,但是你慢慢摸索的過程就是你學習的收穫的過程。

大家經常問我那些大佬怎麼成長上去的,踩坑和付出大量實踐上去的,別無他法。

我老東家的Leader 95年的,是我們之前公司前端後端的Leader,技術深度廣度,業務深度都領人髮指,怎麼做到的?

簡單,不斷踩坑學習咯,每天都是凌晨回去,白天開會,晚上寫程式碼,甚至還要擠出時間學習新的業務,技術棧也是不斷自己去摸索。

之前他一手帶的我,我跟他太熟悉了,買了早餐剛坐下就去開會討論業務,晚上6點回來就說:誒雞蛋豆漿都冷了啊,然後丟垃圾桶。

學習是一條令人時而喜極若狂、時而鬱鬱寡歡的道路。

成長路上我們一起共勉。

點關注,不迷路

好了各位,以上就是這篇文章的全部內容了,能看到這裡的人呀,都是人才

我後面會每週都更新幾篇一線網際網路大廠面試和常用技術棧相關的文章,非常感謝人才們能看到這裡,如果這個文章寫得還不錯,覺得「敖丙」我有點東西的話 求點贊? 求關注❤️ 求分享? 對暖男我來說真的 非常有用!!!

白嫖不好,創作不易,各位的支援和認可,就是我創作的最大動力,我們下篇文章見!

敖丙 | 文 【原創】

如果本篇部落格有任何錯誤,請批評指教,不勝感激 !


文章每週持續更新,可以微信搜尋「 三太子敖丙 」第一時間閱讀和催更(比部落格早一到兩篇喲),本文 GitHub github.com/JavaFamily 已經收錄,有一線大廠面試點思維導圖,也整理了很多我的檔案,歡迎Star和完善,大家面試可以參照考點複習,希望我們一起有點東西。