個月,清華自動化系大一作業在知乎上引發熱議;近日,又有網友貼出同濟大學軟件工程系大三的前端小作業:寫一個電商網站,不能使用任何前端框架,時間為兩周。有網友驚呼:現在的大學作業都這么硬核嗎?
近日,知乎上一篇《如何看待同濟大學軟件工程系 2020 年大三前端小作業是不用框架 2 周寫一個電商網站?》的帖子引起了熱議:
https://www.zhihu.com/question/395864219
帖中附上了同濟大學軟件工程系大三前端作業的要求:
從貼出的文檔中可以看出,老師把原本分為三次的作業合并成了一個作業。從要求上來看,這個作業的實現難度明顯小于清華雷課堂,唯一的問題在于時間比較緊迫。有網友曬出了該系去年的作業,在難度上其實沒有明顯的差距,但去年是三次作業中每次都有兩周的時間,時間更加寬裕,而今年把三個作業整合到了一起,也要求在兩周內完成,時間比較緊張。這主要是因為受疫情影響一直無法開學,老師只能一股腦把三次作業整合在一起。
從功能實現上來看,這項作業并沒有那么難:實現一個簡單的網站,功能方面需要有商品展示、用戶注冊登陸、添加購物車、登陸狀態下結算下單、登陸狀態下查詢歷史訂單信息(無需考慮訂單狀態)。
不過從要求來看就有難度了,不能使用任何框架:
其次就是時間過于緊迫,只有兩周的時間且這段時間內還要上課,實際上可用的時間極少。而且在前端工程化的今天,隨著各框架逐漸完善,開發效率大幅度提升,用純 HTML、CSS、JS 寫網站意義并不大,而且有網友指出:
不允許使用任何前端框架,那么 webpack 自然也不能用。模塊化是編程的一個很基礎的思想,為什么不去培養學生的這種思想,反而直接禁用?
該作業的要求是實現一個網頁,但需求并不是十分明確,而且評分標準也有些模糊,界面是否美觀要看個人喜好;代碼是否簡潔、易懂也有些主觀;操作是否簡便也相對主觀。不過,布置作業的老師肯定不是想讓學生在兩周內寫出一個淘寶、京東這樣的網站。
有網友貼出了去年的兩個作業,一個是電影列表 Web 界面,一個是在該界面的基礎上增加數據庫和服務器接口,總體上來看與此次作業難度相差并不大。
雖然作業文檔中表示可以參考豆瓣和 IMDb,但并不是要求學生做到像這兩個網站那么復雜的頁面。該網友也貼出了他自己當時提交的作業,只要實現一個簡易的網頁即可。
總而言之,雖然此次作業時間緊迫且不允許使用框架,但僅實現文檔中所要求的功能還是可以完成的,并沒有那么大的難度。
不同于上個月大家對“雷課堂”近乎一片倒的吐槽,這次網友們眾說紛紜。有網友表示:
這個說實話不過分。兩周有兩周的寫法,一個月有一個月的寫法。用原生 JS 也是合理要求。有助于打好基礎。能力有限的同學寫個簡單的,大神自己擼個 MVVM 出來也可以。這個跟清華雷課堂是完全不同性質的。大三的同學應該有能力完成。
提出這個問題的同學一開始表示:
我也是你濟軟院的,我大二小學期用了大概一個月寫過一個類似的,當然是用了框架的,前端 Vue+ElementUI,后端 Express。去掉考試周占用的時間,至少有二十天的,而且那段時間的強度不低于 996。對這個項目的難度,我是有體會的。這樣的一個項目,在不少學校,是完全可以作為畢業設計來做的。
后來他又補充回答說是自己把這個作業想復雜了,的確只搞出最簡單的能用的湊合看的不難。但他強調:
我的想法是,在沒有一個明確的標準來評價的前提下,內卷是很難避免的。“簡單”的定義因人而異,而我認為那些造出火箭的人在那邊攀比是內卷的來源。如果讓我來說一個建設性的方案的話,我個人覺得應該提供更明確的標準或是一個例子,而不是這樣寬泛的上限極高的要求。
也有網友表示此舉沒有意義:
要求用純 HTML、CSS、JS 寫這種作業,類似于糾結茴香豆的 4 種寫法,意義不大。比如 Ajax,對他的理解作為一個異步發送 HTTP 請求的工具就足夠了,不管使用 jQuery 的 Ajax 還是 Axios,在項目中都能達到這個目的,為什么要去研究 XMLHttpRequest 那古老不友好的 API?過度鉆研原生除了浪費時間以外真的沒什么意義,這一個作業里面也看不到對有意義的比如 this 原型,閉包等原生內容的使用。
同濟大學的這個作業,雖然沒有“雷課堂”那么硬核,但也的確沒那么輕松,你覺得這個作業難嗎?使用純 HTML、CSS、JS 寫網站是否有意義?歡迎留下你的觀點。
怎么回事?突然間 Windows 12 就來了,還是網頁版的?
仔細一瞧,原來這是一位開發者看到 Windows 12 概念版(Power by PowerPoint)后深受啟發,因而才決定做一個 Windows12 網頁版:
“此項目基于目前 Windows 版本創造,與微軟的 Windows 12 正式版本不一致。此項目絕不附屬于微軟,且不應與微軟操作系統或產品混淆,這也不是 Windows365 cloud PC。”
雖然這個網頁與 Windows 12 正式版并無關系,但正如項目作者所說,創建「Windows 12 網頁版」是希望讓用戶在網絡上預先體驗 Windows 12,因此基本上該有的都有了。
那么接下來就讓我們來“超前體驗”一下 Windows12 網頁版吧!
Windows12 網頁版體驗地址:https://tjy-gitnub.github.io/win12/desktop.html
“超前體驗” Windows12 !
在最初決定創建這個 Windows 12 網頁版時,項目作者譚景元大致擬定了一個“前景規劃”:
從路徑規劃前的打勾狀態來看,這一年來譚景元已陸續實現其計劃中的大部分功能。雖與 Windows 12 正式版不同,但他使用了標準網絡技術,如 HTML,CSS 和 JS,在網絡上對操作系統進行模擬并創新。
據作者介紹,Windows 12 網頁版是一個開源項目,采用 EPL V2.0 開源許可,根據該許可用戶可對項目進行傳播、分發、修改以及二次發布,但必須注明源碼來源,包括作者和項目鏈接等,并使用相同的協議開源。
下面來看看 Windows 12 網頁版的實際效果。
(1)開始菜單
與當前的 Windows 11 相比,Windows 12 網頁版的界面變化不小,開始菜單中的布局也有明顯變化。
(2)豐富應用
雖然只是用于體驗的網頁版,但它依舊擁有不少的基礎應用:計算機、相機、文件資源管理器、Python Editor、Python 3.10.2……嘗試了一下,不少應用都能在其中使用。
(3)AI Copilot
不僅如此,在今年席卷全球的 AI 熱潮下,作者還在 v7.0.0 更新中,給 Windows 12 網頁版新增了個 AI 助手。
不過有一點需要明確,由于該 Windows 12 網頁版僅用于體驗,因此許多功能并不能真實應用至你的電腦當中。例如搜索只能搜系統中的虛擬文件,新聞部分只有作者虛構出來的新聞,設置頁面的許多選項目前也不能點擊,后續作者可能會持續更新完善。
在實現 Windows 12 的基本功能后,譚景元進一步做了一些暢想,目前也實現了幾個:
總體來說,這個 Windows 12 網頁版從精美的 UI 設計、豐富的功能以及絲滑的動畫等方面來看,體驗感還不錯,因此該項目開源至 GitHub 剛滿一年,已獲得 1300+ Star(注:作者提醒,目前移動端適配不太完善,桌面版網站還“湊合著用”)。
按理說,接下來這個項目只要繼續進行功能更新,自然會吸引更多人前來體驗網頁版 Windows 12,但最近項目作者譚景元突然宣布要請個“長假”——因為他初三了。
是的,你沒看錯,這個 Windows 12 網頁版的作者譚景元,是國內一名剛上初三的中學生!
Windows 12 網頁版的背后,是一名 14 歲的初中生
從譚景元創建的個人主頁「星源的網站」來看,他出生于 2009 年 5 月,其小學和目前就讀的初中都在成都,而目前剛上初三的他,就已曾獲得兩個重量級獎項:
CSP 普及組一等獎(CSP 是 CCF 面向社會非專業人士推出非專業級別的能力認證,考核內容均涉及算法和編程)
藍橋杯國賽三等獎(藍橋杯全國軟件和信息技術專業人才大賽,是由工業和信息化部人才交流中心舉辦的國內最大的信息技術競賽)。
在他的個人主頁中,譚景元介紹道,其擅長安裝各種系統、把各種軟件都換成預覽版、剪視頻(B 站主頁:https://space.bilibili.com/2010692096)以及“做作業”(???),并精通各種語言:
目前譚景元所做的項目,除了 Windows 12 網頁版,還有另外兩個:
尼科夫在線工具:“一個專用于坑人的網站,在注冊過程中設置了重重關卡,無人能夠成功。”
Tapple 滾動檢測:“一個滾動監測樣式庫,靈感來源于蘋果官網,本網站就是使用的此樣式庫。”
實際上在今年 5 月,也就是譚景元初二下學期時,他就已經發布過公告,宣布要暫別這個項目一段時間,以專心學習備戰中考:“我...呃...立志要考七林,從今開始要好好學習了。所以我將有很長一段時間因太忙而無暇顧及項目,對此表示抱歉 (初三上可能還有時間,在過年之后就直接甩手了。”
不過雖然短時間內不會再有什么功能更新,但譚景元還是將項目的維護工作進行了交接:“目前暫定將合作開發權限(push 權限)交給 @User782Tec 以在期間維護項目,在此提前表示非常感謝(如有意見歡迎提出)。”所以,期間開發者們體驗過后如對該項目有任何意見或建議,可以在 GitHub 上提交 issues。
那么最后,讓我們預祝“星源”譚景元明年中考順利,考上心儀高中,也期待著他的回歸~
參考鏈接:
星源的網站:https://tjy-gitnub.github.io/
Windows 12 網頁版 GitHub 地址:https://github.com/tjy-gitnub/win12
Windows 12 網頁版體驗地址:https://tjy-gitnub.github.io/win12/desktop.html
avaScript語法的學習是掌握JavaScript的基礎,在掌握基礎之后可以進一步學習各種JS對象及對象的方法等。與所有程序設計語言類似,JavaScript基本語法學習主要包括數據類型、常量、變量、數組、字符串、表達式與運算符、流程控制語句等。流程控制語句主要包括條件語句、循環語句。在完成基本語法學習之后,需要通過大量練習鞏固基本語法學習的成果。本文主要列舉JavaScript語法教學過程中,布置給學生的一些基本練習題,供初學者檢測個人基礎語法學習的情況與效果。
javascript
1、百錢買百雞
百錢買百雞是中國古代經典枚舉題目,題目要求為:公雞價格5元/只,母雞價格3元/只,小雞1元能夠買三只,現在有100塊錢,需要買100只雞,求出所有的組合。參考代碼如下:
百錢買百雞參考代碼
計算結果
2、菱形輸出
菱形輸出主要是使用*符號構成菱形并對菱形進行輸出顯示,重點考察對循環嵌套的理解與使用,輸出菱形格式要求如下:
菱形輸出案例
輸出參考菱形樣式如上圖所示,需要允許定義輸出的行數,實現符合要求的菱形的輸出。參考案例代碼如下:
菱形輸出參考代碼
菱形輸出代碼中,使用了strong標簽對輸出*的顏色進行了限制,符合要求的輸出黑色,不符合的輸出白色,最終顯示出菱形的效果,也可通過修改輸出各個部分的顏色,輸出不同的結構,參考樣式如下:
空心菱形樣式
3、九九乘法口訣表
九九乘法口訣表是學生最熟悉的結構,在流程控制語句學習中也是典型循環嵌套結構。外層循環用于實現每一行的輸出,內層循環主要用于實現每一行中表達式的輸出。其關鍵點在于如何控制每一行顯示的數量,即如何定義循環語句的條件。九九乘法口訣實現樣式如下圖所示:
循環嵌套輸出九九口訣表
九九口訣表輸出樣式與輸出參考如上圖所示,實現過程主要是在每一個輸出位置輸出變量及相關的運算符號。九九乘法口訣表實現參考代碼如下:
九九乘法口訣表參考代碼
4、漢諾塔
漢諾塔問題是遞歸算法實現的經典案例,也是JavaScript教學過程中講解函數部分的經典案例之一。漢諾塔主要考慮將按照順序的圓盤從一個柱子上移動到另外一個柱子,在移動過程中需要按照一定的規則。
三層漢諾塔示意圖
要解決三層漢諾塔移動問題,從最后一步考慮,需要將最1,2層看成一個整體移動到B柱,將3層移動到C柱,然后將B柱上的1,2層移動到C柱,即可完成問題求解。參考實現代碼如下:
漢諾塔求解參考代碼
漢諾塔求解參考代碼如上所示,通過運行可輸出最終移動的順序與移動結果。本案例最終輸出結果描述如下:
運行結果示例
以上給出了4個JavaScript基礎語法教學過程中所使用的典型案例及參考代碼,歡迎大家補充更多案例。
本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可以聯系作者,共同探討。期待大家關注!相關文章鏈接如下:
前端開發-CSS3動畫實現焦點(圖文輪播)圖效果
前端開發-JavaScript DOM動態生成文本框
前端開發-拼圖游戲(N數碼問題)A*算法智能求解效果展示
前端設計-JavaScript美女拼圖游戲開發實例
前端設計-教你如何快速繪制HTML5動畫
前端設計-響應式頁面開發基礎
前端設計-Ajax技術及實例展示
*請認真填寫需求信息,我們會在24小時內與您取得聯系。