如何在laravel實作縮網址系統-需求規劃篇

更新於 2024/08/23閱讀時間約 2 分鐘

前言

發佈了五篇關於Laravel 的文章後,我就在思考,後面該如何延伸更多的內容,來讓正在學習或是想要學習的格友們更加的深入了解Laravel 的應用,於是我想到那就不如直接來進行專案開發,同時也能在開發的過程中更加laravel的語法以及內容。

這次我們要開發的項目是「短網址系統」,這個項目我們會以初階開發的標準來實作,並且這會是一份屬於『後端工程師』的 Side Project。


這份Side Project 難度為『E級』,一個人就可以實作,雖然定義為E級,但功能在往上附加可以達到『D級』


系統要點

  1. 短網址字元為六字元: 為節省存儲和方便用戶,我們將短網址限制為六字元,這個部分就可以自由決定要實作多少個字元,一旦決定了就別異動,要異動也是增加字元。
  2. 可查詢已申請短網址所對應的原網址: 這個功能提供一個查詢界面,使用戶能反查短網址對應的長網址。
  3. 原始網址不可重複申請: 系統將會檢查新輸入的長網址是否已存在,以避免重複。
  4. 網址長度不可超過2048位元: 這是出於存儲和安全的考慮。

相關技術項

  • 後端開發: PHP - Laravel
  • 數據庫: MySQL或MongoDB
  • API設計: RESTful
  • 服務器: Apache或Nginx
  • 版本控制: Git

開發流程

  1. 需求分析與設計: 在專案開始前,需要清楚了解需求,並進行初步的設計。
  2. 環境設置: 初始化Laravel環境、設置資料庫。
  3. 開發與測試: 依照功能列表,分模塊進行開發和單元測試。
  4. 部署與優化: 一經測試無誤後,進行生產環境的部署和性能優化。

系統架構與核心邏輯

將使用Laravel的Eloquent ORM與MySQL互動,而其相關資料表會儲存短網址和原網址的映射關係。API將採用RESTful設計,方便未來擴展。

未來的瓶頸

  1. 同時支持萬人用戶: 由於系統需要能夠支持大量的同時用戶,我們會使用Redis來進行高速緩存。
  2. 安全性: 防止短網址被惡意生成或濫用,會有相應的安全機制。

結語

這個專案是一個適合實踐的微型服務,不僅能夠了解網站開發的基本流程,還能學習到資料庫操作、緩存機制、API設計等多方面的知識。希望各位有興趣的格友能夠手動先行試試,並從中獲得寶貴的經驗。

接下來我會以這個專案分別展示

這是一系列以軟體開發為主題的輕鬆分享,內容涵蓋了技術選擇、開發經驗、實戰應用等多方面的議題。無論是如何在眾多框架中做出選擇,還是如何應對技術轉移的挑戰,這裡有幽默、有趣的對話風格,將複雜的技術問題轉化為易懂的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Side Project 劃分等級可以幫助你和你的團隊更好地規劃和管理項目。這裡是基於不同團隊規模和開發時程的五個等級: E級 (Easy) D級 (Basic) C級 (Intermediate) B級 (Advanced) A級 (Expert)
進入物件導向設計的實戰階段,我們通過建立人力資源管理功能來實踐理論知識。透過這些實作練習,能夠深化對物件導向概念的理解,並學會如何在實際開發中應用這些概念。
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
本階段深掘PHP中類別與物件的應用,從基本定義到屬性與方法的運用,並特別著重於訪問控制和靜態成員的概念。學生將學會如何有效地利用公開、保護、私有屬性,以及如何在不實例化的情況下透過類別名稱直接訪問靜態屬性和方法,進一步鞏固物件導向程式設計的核心知識。
本階段介紹物件導向程式設計(OOP)基礎,從OOP概念、類別與物件基本原理,到PHP中類別與物件的應用,並深入探討封裝、繼承等OOP特性,最後以實際練習加強理解。此階段為學生掌握PHP OOP打下堅實基礎。
從基本的OOP概念、PHP基礎回顧,到類別與物件的深入探討、進階概念如繼承、介面與抽象類別,再到實戰應用與設計模式入門,最後以課程總結與未來學習資源提供作結。此課程架構確保學生能夠從基礎到進階,全面掌握PHP物件導向程式設計的核心概念與技術。
Side Project 劃分等級可以幫助你和你的團隊更好地規劃和管理項目。這裡是基於不同團隊規模和開發時程的五個等級: E級 (Easy) D級 (Basic) C級 (Intermediate) B級 (Advanced) A級 (Expert)
進入物件導向設計的實戰階段,我們通過建立人力資源管理功能來實踐理論知識。透過這些實作練習,能夠深化對物件導向概念的理解,並學會如何在實際開發中應用這些概念。
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
本階段深掘PHP中類別與物件的應用,從基本定義到屬性與方法的運用,並特別著重於訪問控制和靜態成員的概念。學生將學會如何有效地利用公開、保護、私有屬性,以及如何在不實例化的情況下透過類別名稱直接訪問靜態屬性和方法,進一步鞏固物件導向程式設計的核心知識。
本階段介紹物件導向程式設計(OOP)基礎,從OOP概念、類別與物件基本原理,到PHP中類別與物件的應用,並深入探討封裝、繼承等OOP特性,最後以實際練習加強理解。此階段為學生掌握PHP OOP打下堅實基礎。
從基本的OOP概念、PHP基礎回顧,到類別與物件的深入探討、進階概念如繼承、介面與抽象類別,再到實戰應用與設計模式入門,最後以課程總結與未來學習資源提供作結。此課程架構確保學生能夠從基礎到進階,全面掌握PHP物件導向程式設計的核心概念與技術。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
今天我們要談到的問題是,如何在一段關係中建立真實的信任,如何在徵兆中辨別你在一段新戀情中太早信任對方,或是因著過去情感中的傷害,而減緩了對對方的信任。
網路社交當道的時代,要怎麼在虛擬世界真實的認識一個人呢? 答案是問出對的問題!
Thumbnail
當對的人出現時——一位敬畏上帝,你可以完全信任並有良好互動的人,對你有吸引力,你也樂意讓他成為你孩子的父親或母親的人——在選擇人生伴侶時,就值得考慮在你暫時的個人生活喜好上做些調整。
在當今數位化的商業環境中,SEO(搜索引擎優化)已經成為企業競爭的重要一環。了解並分析競爭對手的SEO策略是實現線上成功的關鍵。本文將討論如何在職場中進行競爭對手的SEO分析,以及八拓科技有限公司作為一家專業的數位行銷公司如何協助客戶進行相應的工作。 首先,要進行競爭對手的SEO分析,我們需要
在當今競爭激烈的職場環境中,優化網站頁面以實現更好的SEO效果是至關重要的。SEO(Search Engine Optimization)是指通過一系列策略和技巧,使網站在搜索引擎中排名更高,從而吸引更多的流量和潛在客戶。對於像八拓科技有限公司這樣的SEO公司來說,他們了解並應用最新的SEO技術對客
Thumbnail
其實,人人都有回歸清淨心的本能,只是定力不足,因此總是在煩惱苦海中受苦。 例如,當你煩惱太多,內心痛苦或面臨複雜情勢時,你會本能地找個安靜的地方思考,甚至希望家人朋友不要吵你,讓自己獨處,讓思緒沈澱,讓心情平復。 我之前常說的靜心觀照,就是這樣的過程。 無奈的是,凡夫儘管都有回歸清淨心的本能,
Thumbnail
本文是上個月「如何在一個月內寫出12萬字小說」一文的續篇,所以讀過上一篇的讀者應該都知道,精確一點的標題應該是「我如何在兩個月內寫出23萬字穿越小說」。若是還沒讀過上一篇,建議先回頭看完再接著讀本文,觀念比較能夠連貫
Thumbnail
其實精確一點的標題應該是「我如何在一個月內寫出12萬字穿越小說」。當然,每位作者的背景、基礎、專長各不相同,不可能有什麼放諸四海皆準的「武功祕笈」,所以這篇文章只能算是自我紀錄與經驗分享。不過若是能從中找到一些適合你的建議,那當然就更好了。 先跳到結論,答案只有一個:要有時間。
Thumbnail
非同質化代幣的結果,什麼東東霧殺殺,既然對於定義很模糊,不然看看有什麼應用好了,得到的結論大概是,我好像可以也發行一個自己的 NFT ?把我旅行中拍到的照片結合了我畫的貓咪創造出的作品鑄造成 NFT,也許這是目前為止最適合保存這類作品的方式〔Matters及其他寫作的平臺太多還是比較著重在文字〕,有
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
今天我們要談到的問題是,如何在一段關係中建立真實的信任,如何在徵兆中辨別你在一段新戀情中太早信任對方,或是因著過去情感中的傷害,而減緩了對對方的信任。
網路社交當道的時代,要怎麼在虛擬世界真實的認識一個人呢? 答案是問出對的問題!
Thumbnail
當對的人出現時——一位敬畏上帝,你可以完全信任並有良好互動的人,對你有吸引力,你也樂意讓他成為你孩子的父親或母親的人——在選擇人生伴侶時,就值得考慮在你暫時的個人生活喜好上做些調整。
在當今數位化的商業環境中,SEO(搜索引擎優化)已經成為企業競爭的重要一環。了解並分析競爭對手的SEO策略是實現線上成功的關鍵。本文將討論如何在職場中進行競爭對手的SEO分析,以及八拓科技有限公司作為一家專業的數位行銷公司如何協助客戶進行相應的工作。 首先,要進行競爭對手的SEO分析,我們需要
在當今競爭激烈的職場環境中,優化網站頁面以實現更好的SEO效果是至關重要的。SEO(Search Engine Optimization)是指通過一系列策略和技巧,使網站在搜索引擎中排名更高,從而吸引更多的流量和潛在客戶。對於像八拓科技有限公司這樣的SEO公司來說,他們了解並應用最新的SEO技術對客
Thumbnail
其實,人人都有回歸清淨心的本能,只是定力不足,因此總是在煩惱苦海中受苦。 例如,當你煩惱太多,內心痛苦或面臨複雜情勢時,你會本能地找個安靜的地方思考,甚至希望家人朋友不要吵你,讓自己獨處,讓思緒沈澱,讓心情平復。 我之前常說的靜心觀照,就是這樣的過程。 無奈的是,凡夫儘管都有回歸清淨心的本能,
Thumbnail
本文是上個月「如何在一個月內寫出12萬字小說」一文的續篇,所以讀過上一篇的讀者應該都知道,精確一點的標題應該是「我如何在兩個月內寫出23萬字穿越小說」。若是還沒讀過上一篇,建議先回頭看完再接著讀本文,觀念比較能夠連貫
Thumbnail
其實精確一點的標題應該是「我如何在一個月內寫出12萬字穿越小說」。當然,每位作者的背景、基礎、專長各不相同,不可能有什麼放諸四海皆準的「武功祕笈」,所以這篇文章只能算是自我紀錄與經驗分享。不過若是能從中找到一些適合你的建議,那當然就更好了。 先跳到結論,答案只有一個:要有時間。
Thumbnail
非同質化代幣的結果,什麼東東霧殺殺,既然對於定義很模糊,不然看看有什麼應用好了,得到的結論大概是,我好像可以也發行一個自己的 NFT ?把我旅行中拍到的照片結合了我畫的貓咪創造出的作品鑄造成 NFT,也許這是目前為止最適合保存這類作品的方式〔Matters及其他寫作的平臺太多還是比較著重在文字〕,有