辛宝Otto

辛宝Otto 的玄酒清谈

北漂前端程序员儿 / 探索新事物 / Web Worker 主播之一/内向话痨
xiaoyuzhou
email

kaiyi & MarsCode 教我做 Qwerty Learner - 程式設計師MVP 01

圖片中是兩個男人,圖左是 kaiyi,圖右是作者辛寶,並排坐在一個桌子前,每個人面前各有一台貼滿貼紙的電腦,兩個人笑得很開心。圖上還有文字,《kaiyi 教我做 Qwerty Learner》,副標題小文字,15K Star 開源項目,MarsCode 帶我飛。

這次搞了個新玩意,先上圖!kaiyi 教我做 Qwerty Learner,看我們笑得多開心。

你好我看不到圖上的內容,圖裡有什麼呢?圖片中是兩個男人,圖左是 kaiyi,圖右是作者辛寶,並排坐在一個桌子前,每個人面前各有一台貼滿貼紙的電腦,兩個人笑得很開心。圖上還有文字,《kaiyi 教我做 Qwerty Learner》,副標題小文字,15K Star 開源項目,MarsCode 帶我飛。

視頻原始地址:Kaiyi & MarsCode 教我做 Qwerty Learner - 程序員 MVP01

最初的想法:程序員 MVP#

提到 MVP 大家會想到什麼?

在互聯網領域,MVP 是最小可行產品 Minimum Viable Product 的意思,是指用最小的投入,驗證一個需求,產品本身是簡單的原型,不包含很多細節,通常用來快速驗證用戶反饋、市場可行性。比如,我們如果要做一個某個領域的在線商城的 mvp,顯然在原型階段,不需要考慮登錄風控、無限瀑布流、商品優惠券這些,核心訴求是商品展示、商品購買。

在 NBA 賽場上,MVP 是最有價值的球員 (Most Valuable Player),他們的綜合水平出色、數據優秀,代表著一種無可指摘的榮譽。

今天我嘗試開啟一個新的下飯節目形式:《程序員 MVP》,顧名思義,程序員領域的 MVP,一語雙關,是指程序員做最小可行產品,也是指程序員中表現優秀的人。我希望和他們一起做簡單的產品,驗證各自的想法,讓更多人喜歡上某個領域、某個產品,挖掘更多想法。

本次的程序員 kaiyi#

kaiyi 是 Web Worker 播客的主播,他在國際大廠,知名外企工作,他有一個 15k star 的開源項目,也是一款用戶產品,Qwerty Learner。代碼寫得好,用戶體驗好,開發思路非常清晰,響當當的程序員 MVP。

image

這一次我邀請到他,讓他教我做一個他的得意之作 MVP 版本。

關於 Qwerty Learner#

這個奇怪的單詞是什麼,很像用手掃鍵盤掃出來的單詞。我問 kaiyi,他說這是一個專有單詞,就是鍵盤佈局、鍵盤的意思。

這源自於 kaiyi 上學時候的一個想法,通過打字的方式練習英語,產品本身受眾非常大,很多人樂在其中。他也加入了大量使用功能:發音、詞庫、打字速度、自定義等功能。已經是一個非常完善的產品了。

AI 工具: MarsCode#

風靡海內外的產品,MarsCode 產品矩陣中,有 vscode 插件,類似 copilot;有在線 ide 版本,背後有容器運行。

image

通過訪問一個瀏覽器頁面,就可以實現在線 Coding,無所謂 Node、Python、前端環境了,用鴻蒙平板都可以運行和訪問。

image

還挺有趣的,誰說 ipad 平板不能辦公,這就實現了,還是國內無障礙環境,還合規。這裡選擇的工具不是排他選項,隨便哪一個都可以。

一起聯調代碼吧#

說是聯調,更多是讓 kaiyi 配合 MarsCode 一起實現一個簡單的 Demo。

快速啟動一個項目#

在 MarsCode 中選擇 JS 框架 React,快速啟動一個項目模板,幾秒鐘之後頁面加載完成,依賴也安裝完成,點一下頂部的 Run 就把默認的 rsbuild react 項目運行起來了。

image

隨時還能溝通 AI,相當於 AI IDE 了。

這一個步驟其實已經讓很多分歧消失了,我選什麼框架、怎麼設置模板,怎麼設置運行方式?一瞬間,給出了答案:rsbuild + react + npm run dev,別人還在選擇項目模板,我都已經跑起來了。

MVP 的 Qwerty Learner 需要什麼#

完整版的 Qwerty Learner 功能非常多,那些是本次 MVP 要實現的?

  • 我需要翻詞典準備詞庫,需要發音、中文翻譯嗎?不需要,不重要
  • 我需要準備設計風格規劃頁面嗎?不重要,美化專門做
  • 我需要準備動效、動畫嗎?不需要,專門做就行
  • 我需要加入打字統計功能嗎,不需要,功能小點

剝離了這些額外功能,MVP 版本的功能已經呼之欲出了:

頁面中輸入一個單詞,用戶如果輸入正確了就顯示綠色,如果輸入錯誤就顯示紅色。輸入完單詞自動展示下一個單詞。

其他的屬於附加功能。

如何邁出第一步#

現在有了 AI 很多事情就簡單了,直接問 MarsCode

  1. 給我生成一些單詞,包含英文、中文,生成 10 個。OK,單詞有了
  2. 準備一個用來打字的 app,頁面顯示一個單詞,監聽用戶輸入,判斷用戶輸入,展示紅色和綠色
  3. 如果輸入都正確,自動跳轉到下一個單詞

如果 ai 返回的數據符合預期,點擊 inset 插入到當前頁面就行。

image

出現了小問題可以隨時提問讓 ai 修改,也可以讓他生成註釋和單元測試。因為這個功能並不複雜,很快就可以做出來效果。

樣式什麼時候美化比較好#

默認情況在頁面都是非常簡陋的原始風格,我有點迫不及待想美化一下頁面,kaiyi 說不著急,核心的功能中頁面不是最優先的。

通過剛才的幾輪交流,代碼中的邏輯展示逐步穩定了,這個時候可以開啟一個新的對話,讓 ai 嘗試美化一下頁面。

這裡一個小知識點,ai 的多輪對話是有瓶頸的,而且大量的代碼夾雜也會快速消耗上下文的 token。

非常合適的方案是:完成一個需求之後,新建一個對話,主動結束歷史對話。在這個 mvp 作品中當我們處理用戶輸入的邏輯處理完善之後,樣式就可以來做了,兩者並沒有緊密的聯繫。

image

這裡展示了 MarsCode 對這個 mvp 對第一版設計風格。

效果比較樸素,還可以,可用、易用。第一眼並不反感。

嘗試分享#

收集用戶反饋是非常重要的,得益於 MarsCode 的網絡功能完善,可以隨時把預覽鏈接發給其他人,快速把玩給出反饋。

避免沉溺在技術細節中,從而缺少對全局的把控,這一點始終需要讓技術人保持警惕。

後來我們加入了一個 kaiyi 的得意特色,鍵盤反饋,每次按鍵播放一個清脆的鍵盤敲擊聲,效果把群!

探索其他功能#

有了 ai 的輔助,可以快速閱讀代碼、添加註釋、抽離功能、補充單元測試。

陳述總結#

kaiyi 當初從想法到誕生初版,花了很久的時間,一方面不知道這個產品最終什麼樣,另一方面也是前端技能不熟悉,需要學習然後實踐。

現在有了前端技能,有了 ai 的輔助,短短十幾分鐘,就讓這個 mvp 版本的 Qwerty Learner 跑起來了,這讓我們欣喜又有了更多思考。

  • MarsCode 的 在線 ide 可以隨時寫代碼,隨時開啟一個新的工程
  • AI 的輔助變成像一個老師,可以隨時閱讀、學習其他人的代碼,添加註釋,補充單元測試,從而讓自己更深刻領悟知識
  • 另一方面快速驗證想法,快速試錯,一個腦海中的產品不會產生價值,邁出第一步非常重要,避免完美主義讓自己踌躇不前
  • 和 ai 做朋友、學習他、理解他的優勢,了解他的不足,讓自己的想法更快落地

這就是第一期的 程序員 MVP 的全部內容了,本次我們閒聊 + 代碼的形式,我們聊的比較開心,身體也不累,比較輕鬆、下飯。

後面還有規劃了其他選題,歡迎關注。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。