關於Rwlink短網址系統製作:過程跟遇到的問題
講講rwlink的介紹、工具、遇到的(希望之後可以改善的)問題
好首先閒聊一下,我覺得自己之後也不會這麼頻繁寫blog,但這幾天趁著那個熱情還在多寫一點,至少讓這裡有點東西。
然後下面問題我覺得高中生開發專案多少會遇到,想看省流可以看看問題的部分。
介紹 - Rwlink是什麼
網站連結在這:https://rwlink.us.kg
本專案榮獲臺北市立大同高中高二自主學習靜態發表優秀作品
好這是我開發的東西(沒錯,自主學習項目),主要功能為縮短網址(變成https://rwlink.us.kg/xxx),並設有api(這不是重點開發項目,若欲問題歡迎聯絡我)。 如果加入Discord伺服器,還可以享受禁止預覽(在Discord, LINE等主流軟體中傳送照片中不會有預覽可以Rick roll對方)、bot指令縮短網址、客製化短連結等功能(未來想開發右鍵縮短的功能)
bot本身還不能加入其他伺服器,相關開發敬請期待
(以上功能請以當前開發狀況為主)
用了什麼開發
主要程式還是我自己寫Java+Spring boot(for web api & site)+JDA(for discord bot),同時也請v0.dev幫我製作了美麗的前端(雖然我還是要親自下去修改)
架設部分是我剛好家裡買了新的Nas就用Docker布在上面了(他甚至可以自動備份資料庫),ip問題主要透過CloudFlare Zero Trust Tunnel解決(簡單來說就是資料給CloudFlare之後再給我)。其實速度蠻快之後有需要架設伺服器不想(或不能)設定路由器的話是個好選擇。
問題在哪
這專案能動能用,但有些問題我覺得一定不會只發生一次所以我稍微記錄一下。大概生了五點希望你能不要跟我走上同一條路。
問題1:時間不夠
我完全小看一個會用到其他服務的專案了,bug太多,功能繁雜,餅有點大。這種專案在一邊讀學測(甚至是一邊做特殊選材)一邊做是很難做好的。
甚至有一個西洋棋對戰系統胎死腹中,我完全沒有記取教訓
問題2:平台不對
老實說,架在Nas上是方便的做法:自動備份、功能完整、遠端操作,但並不適合。其實他的效能嚴重不足(我有考慮事情忙完之後找一台小電腦當server),主要是機械硬碟太慢,處理器又不怎麼樣,如果你用過Discord bot會發現他時不時會Timeout(但短時間內送兩次又不會,我在想是bug還是真的他太慢,或是硬碟在休眠之類的),反正這是需要解決的問題
問題3:難以管理
主要是我沒有一個Backup server(應該要說還沒研究怎麼做),所以一需要update的時候就會全部下線(其實做這系統感覺不適合下線),對於系統管理還需要重新設計。
問題4:Class亂擺
這跟第一點有點像了,主要是有點趕鴨子上架的感覺,所以維護成本指數型增加。
問題5:沒有優化
也不能一桿子打翻說完全沒有但是,例如後綴的產生並沒有妥善的運作方式,有一點點優化但其實跟隨機沒差多少。資料量大的時候可能會有問題但我還沒檢查。
小結論
其實這是一個不錯但還能加強的專案,等我考試後大學前應該要有一坨拉古的時間應該要來做點有意義的事情(例如修改這個)
如果你是高中生在看這篇,我希望你多考慮自己要做的專案大小跟你能掌握的時間。
我是覺得我應該會在寫幾篇這個的介紹(畢竟他花了我很多時間),但希望下次寫的時候能夠是一個更加優良的專案。還有我的Game Library,好像兌現那些時間但是不知道要等到什麼時候了。
