畢設開源了,126個star,39個fork

畢設題目

軟件工程專業,學校給的畢設題目是實現一個電影院訂票系統,如圖。 前端

題目
嗯,題目一看很簡單,其實就是實現一個web版的影票在線訂票系統罷了,所以當天接到畢設後的我就大刀闊斧的準備開幹了。

技術方案選擇

先說個大前提:咱們學校評比優秀畢業生的硬性條件之一是畢設必須拿到良以上。vue

從題目分析來看其實語言的選擇上來看是要使用JSP或者.net技術,可是做爲一個迫切想要拿到優秀畢業生的人來講【其實想裝xヾ(≧O≦)〃嗷~】,天然不能使用這些比較古老的技術了,雖然我自身是一個Java系的支持者,可是爲了最後在畢設答辯的時候能夠在技術相關的選擇上給評委一種眼前一亮的感受,最終我選定了如下的技術方案。 技術方案:mysql

  • 服務端:go-micro【微服務框架】
  • 數據庫:mysql
  • 緩 存:redis
  • 前 端:el & vue
  • 服務器: centos 7 & nginx
  • 本地環境:go1.9
  • 容器:Docker
  • 進程管理:supervisor
  • 數據庫備份:冷備份(rsync+mysqldump)

固然了,這裏若是是對某種技術沒那麼熟悉的話仍是不建議選擇較新技術的,畢竟這是畢設。哦,這裏要說一點,去年咱們那一屆,對於docker容器技術、進程管理、redis緩存和go語言和微服務這種概念有相關了解和應用的仍是比較少的,大可能是使用Java的三大框架,我我的是由於自己在學校便有不錯的技術基礎,而且算是熟悉這幾個技術的搭配使用,因此纔敢鋌而走險,固然了,最終的結果也證實了個人選擇是對的。nginx

搭建基礎框架

技術方案選型好了,那麼接下來就是先搭好基礎框架了,搭建基礎框架至關於打地基,地基打好了後面寫業務就至關於添磚加瓦了,簡單分爲如下幾步:git

  • golang語言環境搭建
  • docker環境搭建
  • go-mirco項目基礎結構搭建,包括數據庫、redis等
  • 模塊劃分
  • 服務劃分
  • 各類腳本儲備

前面幾種環境的搭建你們能夠自行谷歌百度,一搜一大把的那種,此處便很少描述了。關於模塊劃分,當年的我【嗯,如今老了(;´༎ຶД༎ຶ`)】是這樣劃分的 github

模塊劃分

關於模塊劃分這一點,必定要注意的是劃分完必定要對照下畢設需求,大部分畢設上都有寫須要實現的功能有哪些,所以若是少了就翻車了,到時候會被評委屌飛︿( ̄︶ ̄)︿,寧肯作多不可作少。 以後即是作服務劃分了,最終劃分結果以下 golang

服務劃分

這裏的劃分思想我是基於日常作項目的時候劃分controller的思想進行劃分的,說實話,草根思想哈哈哈,不過在大學算是作了比較多的項目,也拿了比較多的獎項,因此對於這種劃分的話算是仍是有必定的實操依據。 最後各類腳本儲備指的是 web

shell1
包括好幾個啓動服務相關的shell腳本。

實現業務

基礎框架搭建好了,接下來其實就是實現具體代碼的時候了,業務上的具體實現便不細說了,大致流程是這樣的,先定義接口,而後補充接口,服務端的大體流程跑通後,我再搭建前端,而且實現前端業務,再進行聯調,一邊聯調一邊修改接口。 最終實現出來的效果以下【大型界面翻車現場w(゚Д゚)w】: redis

圖片描述
圖片描述
還有提供了操做後臺【也是翻車現場w(゚Д゚)w】
圖片描述
爲了讓你們知道我沒有騙大家,我特意從論文中找出來的截圖,如今看來這麼醜還發出來,真的是老臉都不要了 ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

上雲

最終爲了給評委更加直觀的感覺,能夠直接經過域名打開,我將前端後端代碼都放到了個人騰訊雲服務器上,這裏使用docker容器技術的好處就體現出來了,我直接將代碼提交到github上,而後再騰訊雲服務器的ubuntu系統上直接clone下來,而且直接使用shell腳本打包發佈部署,一鍵搞定,若是不使用docker的話,還要本身在ubuntu系統上從新搭建一份新的和本地同樣的環境,你還要求神拜佛不要出現依賴衝突或者其餘亂七八糟的問題,否則你還要在上雲這一步花費很多的精力。 額,剛剛說了一鍵搞定,不是一行代碼哈,我找了下我github上的README上寫的,是這樣的 sql

啓動程序

答辯結果

作了那麼多裝x的操做,目的就是爲了那個優秀畢業生,我容易嗎我??? 好在最後結果還在沒有翻車,評委老師確實被我這些裝x的操做折服了,賞了我一個優秀畢業生。

超重點來了 其實大部分人都沒有好好看待學校的畢設,大部分人都是在答辯前一兩個星期才匆匆忙忙搞,馬馬虎虎應付,不關技術好壞,只是看不起畢設或者懶,所以天然很難作到全面,而個人認真算是被評委老師們看出來了,所以纔給了優的評分,最後順其天然拿到了優秀畢業生。撒花撒花!!!

最後的最後

標題那麼裝x是怎麼回事呢?其實就是我從一開始作畢設開始,就開源了,地址: github.com/wiatingpub/…

多是所以使用了微服務技術,或者是docker,或者是畢設讓你們以爲馬馬虎虎還過得去,所以斷斷續續有人star和fork,截止到當前爲止,已經126個star和39個fork了。 在衆多大神面前班門弄斧,確實在過度了,輕噴輕噴哈,溜了溜了!!!

有興趣能夠看看最新文章: juejin.im/post/5cf7da…


小弟不才,留個公衆號哈,主要寫Java相關、go語言應用、微服務相關的文章,有興趣交個朋友交流校園趣事或者學點東西的能夠關注下:

公衆號.jpg
相關文章
相關標籤/搜索