大家好,未來的資深軟體工程師!在過去的幾個月裡,我一直在撰寫一篇描述開發重要部分的簡單文章。今天我就來談談我的想法吧!我想幫你找第一份工作。為此需要什麼?為此,您需要獲得經驗。了解這些專案的組成、工程師的工作內容並推動資訊科技世界向前發展。
怎麼做?我需要寫點東西。因此,作為本系列材料的一部分,我們將逐步編寫我們自己的電報機器人(詳細資訊如下)。同時,我們將了解即使是新手 Java 開發人員也需要的技術堆疊。
目標
編寫一個項目,該項目將結合使用資料庫、建立我們需要的業務邏輯以及設定部署項目和測試它的工作。我們要寫什麼?如果你要寫作,那麼你需要寫一些真正有用的東西,這樣人們會對工作感興趣,並且有人可以利用結果。根據這些數據,將編寫一個可與 JavaRush 網站配合使用的電報機器人。這有用嗎?毫無疑問!由於電報機器人編寫起來並不困難,因此您可以快速獲得有用的工作項目。開發時間
文章每週發布一次,因此如果有任何不清楚的地方,將有足夠的時間來掌握/重複/寫問題。第一篇文章將是我們將在專案中使用的理論基礎。然後就只是練習了。MVP(最小可行產品)
什麼是MVP?像往常一樣,這個術語不是我們的,但您可以在wiki上找到合理的解釋。我們引用: MVP是一個功能最少,但足以滿足第一需求的產品。主要任務是接收回饋,為產品的進一步開發形成假設。 對於我們來說,這個描述非常適合。所有功能的快速描述: 作為 Telegram 用戶,我希望能夠以群組的形式訂閱新文章,並在新文章發佈時收到通知。 我喜歡閱讀成功故事組,它激勵我繼續學習並學習新的事物。我比較懶,不想每次都進去刷新頁面。因此,作為一名程式設計師,我想讓我的生活更輕鬆,並編寫一個程序,可以在 Telegram 上向我發送一條訊息,告知我有一篇新文章已發布。此外:這不是我跟蹤的唯一群體。我來自哈爾科夫,所以我有興趣閱讀那裡發表的文章。作為該產品的開發人員,我會對是否有人使用我的作品非常感興趣,因此我們將為管理員添加功能,以便他們可以查看電報機器人的統計資料。是否有可能做到這一點?當然!如何?這就是我將在一系列文章中展示的內容。代碼名稱
每個很酷的項目都應該有一個代號。我們的也不例外,所以現在它會是這樣的: JRTB(JavaRush Telegram Bot)。 以下將這樣稱呼。我們將討論哪些主題?
資料庫
您需要立即了解您無法在應用程式中儲存狀態(資料和資訊)。數據需要儲存在資料庫中。由於培訓中沒有關於它的資訊(據我記得:D),我將盡力填補我們需要的知識空白。我將嘗試使資料庫模式盡可能簡單,以免造成混亂。這部分將包括:- 基於 MySQL 的 SQL 工作原理。
- MySQL Workbench 是一個使用 MySQL 的工具。
- 資料庫版本控制。飛行路線和液體基地。
- 建立資料庫模式。
- 建立資料庫架構圖。
git
已經有關於這個主題的文章。當然,如果沒有版本控制系統,一切都將無法進行。要開始使用 JRTB,您需要了解 git。你可以自己做,或者你可以閱讀我關於這個主題的文章: 如果您願意,您也可以閱讀有關分支策略的內容,但這裡並不重要,可以跳過。梅文
這裡我們將討論組裝系統,它的用途,我們如何使用它,需要注意什麼,以及良好禮儀的規則。我們也將在這裡討論版本控制,以及我們具體如何做。碼頭工人
為了讓我們的生活更簡單、更輕鬆,讓部署過程盡可能簡單,我們將使用 Docker。為此,我們先來談談 Docker 是什麼以及有哪些有用的指令。我想說的是,我在使用者層級使用 Docker,並且可能不知道或無法做某事))因此,如果有人建議如何讓 Docker 工作更好/更輕鬆,我只會很高興。這部分將包括:- Docker 的理論與實務。
- 透過docker備份/還原資料。
- 設定我們的項目,使其在 Docker 中運作。
bash 腳本
為了自動化工作,有時編寫一兩個腳本很有用。Bash 腳本是所有開發人員都在某種程度上理解的腳本,因為它們本質上是 Linux 中的命令列工作,只是保存在單獨的檔案中。創建應用程式
所有的驅動器都將在這裡。根據先前的知識,我們將建立一個包含 telegram bot 物件的 Spring Boot 應用程式。我們要在這裡做什麼?- 創建應該存在的功能的完整描述。
- 簡單描述什麼是電報機器人。
- 建立 Spring Boot 應用程式。
- 使用 Lombok 的描述。
- 使用 UniRest 的說明。
- 命令模式的實作+為管理員命令建立您自己的註解。
- 使用 UniRest 建立用於處理 JavaRush 查詢(例如群組清單、群組中的文章清單)的用戶端。
- 測試。讓我們編寫所有可能的測試來覆蓋我們的功能。
- 在 GitHub 上建立一個檢查程式碼品質和自動建置的系統。
- 連接資料庫以及資料庫版本控制。
GO TO FULL VERSION