【文組的學CODE之路 6】自學程式9個月 – Python + Django 練習電商網站開發

by Kelly Guo
1,280 views

上週終於完成階段性任務二,把朋友所需要的團購網站完成了!

這次來分享一下,這次開發的學習筆記。

有關網站開發

主要是朋友在做團購,因此希望有一個可以下單、算錢、看後台資料、自動寄信的功能網站。在聽完後覺得符合目前學習上想要學習的技能,想像不熟前端的我應該也有機會刻出一個簡單的購物網站,再加上想要學習新的部署方法,剛好可以把這個實際要使用的網站部署到新的平台,因此就決定嘗試看看!

這次大約花了2個多月的開發時間,密度不高的非全職開發,看看我都把時間花在哪?

現有程式學習

  1. 自學9個月,每天1-3小時不等
  2. 使用語言Python、框架Django
  3. 開發過一個食譜網站

使用教學網站

  1. 彭彭的課程 (以前端的參考為主,很棒的教學!)
  2. 書籍:活用danjo2.0 framework (不推薦,但還是有參考)
  3. google大神查詢功能 stackflow
  4. YT Dennis Ivy 部分Django課程
  5. 金流的串接參考 Flask教學 

網站功能

  1. 全客製化後台:上架商品、所有文字訊息後台、優惠碼設定、物流選擇
  2. 加入購物車前端立刻顯示數量與總金額
  3. 後端拿到前端的cookie資料作為訂單資料建檔
  4. 使用session建立部分消費者資料
  5. 自動寄信功能,信件內容客製化包含訂單內容
  6. 有自己的網域、部署到雲端主機 digital ocean
  7. 前端的學習:AJAX、Carousal
  8. 測試:信用卡金流(因不需要最後沒有使用)

學習大魔王

  1. 學習AJAX, FETCH前後端連線的方式
  2. 資料庫不斷地被更新修改
  3. 超多if esle的消費者情境需要不斷更新
  4. 搞不懂Cookie, Session的差別
  5. 合併購物品項 + 訂單資料
  6. 部署:圖檔與資料庫儲存點的設定、跨域GET的設定、部署本身的難度等 (幸好digital ocean官方的文件寫得很好,有不同的教學)

 

這次的開發心得

1.網頁看起來很簡單,但其實都不簡單

花了滿多時間在釐清每個工作的前後端邏輯,但其實做出來的功能看起來很單純,不過是因為我們平常太習慣使用軟體工程師寫的各種網站、APP等功能了,因此雖然某個功能或是資料會連動到所有資料。或是有非常多的if else須要先思考使用者情境等,免運費、金流選擇、物流選擇會怎麼影響資料庫,連動的關係是什麼。

很多細小的邏輯都是做了測試debug後才發現的,像是如果沒有選擇物流要不要有default後續會不會影響到費用,免運費與優惠券代碼的關係有沒有互相牽制等。

2.要寫筆記跟註解,不然會往全忘

在製作的過程中往往會急於debug以及繼續執行下去,其實花了很久時間抓錯但最後沒有把狀況題記下來,就會完全忘記,這時候之前花的努力都白費了,所以之後我會讓自己養成,遇到一個問題先先筆記下來,一旦解決就需要把解決的方式跟過程簡單記錄下來,幫助未來的自己理解bug。

3.不要放棄,每次的debug真的都有成長

我覺得很神秘的是每次debug最後解決的方式都看似容易,但其實推判了很多方法,很像是漏斗的方式才歸納出錯誤的原因,因此在中間的過程中其實也會得到很多,但往往debug超過3天真的會失去耐性,也會對自己非常懷疑。特別是又抓不到關鍵字找到對的答案時。

常常會覺得自己離答案很遠,因為自己連問題都不知道。但後來我發現自己會慢慢用邏輯推判問題,去預估幾個可能發生bug的原因,過程很累,但這樣遲早可以解決的,只是時間早晚的問題。

4.做完專案後,會失去一個動力,休息一下吧

剛做完這個專案後,又開始失去學習動力了,有點不知道下一座山在哪裡,應該怎麼挑戰,也不知道自己現在的程度如何…花了一週多休息,又擔心自己會不會有怠惰了,又要開始照新的目標、新的題目了,但在這過程中,幸好有面試好朋友leetcode陪伴,怕語感變差就來寫leetcode!

5.Git的技能真的很重要,一定要好好搞懂

在中間想要分支出不同的支線都會覺得很害怕,因為不熟悉git,也不確定使用merge那些功能會有什麼問題,也會在想取消某些功能時發生困難,或是git上面的版本跟local版本不同等,這一切的一切都是git太重要了,最近真的要來好好研究這個最基礎的工具(雖然我覺得好難喔)

6.不要亂下載package

我下載到一個讓畫面當機的編輯器package,花了很多時間才回復原狀,同時體會到git有多重要,可以看一下django的工具使用網站https://djangopackages.org/ ,裡面會寫版本更新的狀態還有多少人使用等資料,滿值得參考唷。

 

最後想說,能做出一個可以使用的網站,還能部署到雲端主機真的太有成就感了!

 

成品照片參考

 

0 留言

你可能也會喜歡...

留下你的想法