2022 一開始, 將計算機程式與電腦輔助設計實習課程的期末報告導向 Github 倉儲的協同, 倉儲分別在 https://github.com/mdecourse/cp2021_final 與 https://github.com/mdecourse/cad2021_final.
直接與間接協同
由於每一班大約 55 人 上下, 每門課兩班就超過 100 人, 若全部學員都採直接協同, 過去的經驗是: 鐵定亂成一團.
主要的原因當然是大家對 Github 合併資料與解決衝突流程, 並沒有很多經驗, 另一個主因則是, 用來協同的倉儲中, 包含以 Python + Flask 編寫的網際內容管理系統子模組外, 還包含動態網頁與靜態網站資料. 因此在多人處理 html 檔案標註合併時, 即便借助 Javascript editor, 仍然不太容易正確處理.
況且, 機械設計流程的協同除了一般文字檔案與程式碼外, 還帶有許多 2D 與 3D 檔案, 同時導入 Wink 影片之後, 許多學員若沒有注意 Github 推送檔案容量限制, 就需要透過 git 指令 rebase 之後才能接續工作.
因此, 這個學期末將各班以至多 8 人分為一組, 其中只有組長可以直接 access 協同倉儲並處理同組學員的 pull requests, 至於 html 資料的擺放與從動態網站轉為靜態網站的流程, 就透過 Github Actions 程式自動處理.
個人作業網站與協同內容
上述協同流程的規劃, 在初期每一學員都各自擁有作業倉儲與網站, 主要記錄在課程進度與作業流程, 而到了期末報告階段, 各學員就必須先在自己的個人作業網站將期末報告網頁處理完成, 然後確定內容中所引用的標註都可以跨網站擷取 (採絕對 URL), 就依照"學號_html.txt" 的格式存檔, 然後以 pull requests 將資料送到課程期末協同倉儲中 downloads 目錄中. 最後再由各組組長檢查推送資料的格式後, 將資料合併入協同倉儲或者註記說明交由學員改正後再 pull requests.
由於每一個學員, 只負責處理自己的"學號_html.txt", 因此包括學員的正向與逆向 pull requests 都能直接在 github 的瀏覽器介面中完成. 並且組長也可以直接在瀏覽器中檢查或合併組員所提交的拉回請求.
Github Actions
當所有課程學員都了解且配合上述協同流程規劃, 最後則剩下程式自動處理學員網頁插入各組與轉檔案流程, 由於本次只允許學員提供 H3 標註頁面, 因此所有的內容只能出現 H3 以下的標題內容, 否則整體網頁架構都將被迫移位. 當然, 假如在讀取各學員資料同時, 置入內容檢查與標註置換, 就可以免去網頁被迫移為的問題, 但目前還沒有自動處理, 只能由組員及組長自行檢查配合.
經過上述規劃完成的 main.yml, 以及 1a, 1b 與 generate_pages 程式碼. 學員超文件資料置入, 之所以要分為 1a 與 1b, 是因為在 1a 處理時, 必須預先置入協同網頁中的既有超文件後, 再插入各學員的期末報告網頁, 而 1b 處理時, 就可直接從既存的 content.htm 進行處理, 無需額外置入其他超文件. 而將動態網頁轉為靜態網頁的程式碼則直接從 cmsimde 取出.
協同產品設計實習
上述的協同流程, 僅將各學員的網頁集合在期末網站中, 下學期的協同產品設計實習, 各組將要自行決定在至多 8 人的分組協同中, 是採各學員全部可直接協同, 或者採間接協同. 待各組成員都對基本 Github 網站的協同流程有一定認識之後, 就可以讓學員也能跨組以 pull requests 方式交互執行協同產品設計的實習.
No comments:
Post a Comment