當前位置:首頁 > 公眾號精選 > 程序員魚皮
[導讀]大家好,我是鲏。認識我的朋友都知道,我是一個實踐派,相比研究枯燥的理論知識,我更喜歡做自己想做的項目,用技術來實現(xiàn)自己的想法的感覺真的很棒。所以從大學期間一直到現(xiàn)在,除了工作中的項目外,我依然保持著自己做項目的習慣,有堅持幾個月薅光我頭發(fā)的大項目、也有幾小時搞定的娛樂練手項目。比如前兩周羊了個羊小游戲很火的時候,我花了幾個小時就上線并開源了一個低配版的模仿游戲【魚了個魚】,純粹出于興趣。

大家好,我是鲏。

認識我的朋友都知道,我是一個實踐派,相比研究枯燥的理論知識,我更喜歡做自己想做的項目,用技術來實現(xiàn)自己的想法的感覺真的很棒。

所以從大學期間一直到現(xiàn)在,除了工作中的項目外,我依然保持著自己做項目的習慣,有堅持幾個月薅光我頭發(fā)的大項目、也有幾小時搞定的娛樂練手項目。

比如前兩周羊了個羊小游戲很火的時候,我花了幾個小時就上線并開源了一個低配版的模仿游戲【魚了個魚】,純粹出于興趣。

項目地址:https://github.com/liyupi/yulegeyu

還有 ikun 測試器,一個網頁答題小項目~

項目地址:https://github.com/liyupi/ikun-test

就是這些小玩意兒,也給很多同學帶來了快樂(包括我),值了。

當時就有同學就在評論區(qū)問了:魚皮你為啥這么快?(指做項目)

我說:無他,唯手熟爾。

真就是這樣,我也從來不去背代碼、也是不寫就忘。但忘了就再寫,同一類項目做個十來遍,做起來能不快么?

當然,做項目過程中,我也積累了很多做項目的技巧,下面給大家分享一下,全是我自己的一直在用的。

快速做項目技巧

我們可以把做項目的過程分為幾個階段:需求分析、技術選型、系統(tǒng)設計、開發(fā)編碼、調試測試、部署上線、運營推廣等。

每個階段其實都有技巧,下面依次分享。

1、快速需求分析

相信大多數同學在自學時都是跟著網上的教程做項目,老師說要做哪些功能那就做哪些功能,多了咱也不去想。

其實這是一個 “壞習慣”,做項目這東西,本來就是要自己想要做哪些功能才有趣。

比如老師教你做商城系統(tǒng)時,說:我們要做一個根據商品名稱搜索商品的功能。在你完成這個功能后,哪怕視頻沒有教,你自己能不能想到去添加:給用戶搜索建議、提供商品熱搜列表、用圖片搜商品等功能呢?

尤其是你要做自己的項目(產品)時,自主需求分析更重要了,盡量打開自己的思路,才能做出亮眼的項目。

那問題來了:想不到要做什么東西,想不到要加哪些需求,怎么辦?

常見的做法是從自己的生活需要或者實際使用過的產品出發(fā),去分析他們的不足并改進,做到推陳出新。

比如你們天天吐槽某個軟件辣雞辣雞,那能不能自己做一個?萬一火了呢對不對?

我自己的做法就比較有趣了,在做過很多項目、翻過很多車后,我很少刻意去做需求分析,而是當我遇到某個問題、想到某個需求時,會 第一時間把它記錄下來 ,但不是立刻就去做這個項目了。

記錄的需求多了后,有時我會發(fā)現(xiàn)需求之間是可以有聯(lián)系的,這個時候,我才會考慮是不是能把這些需求匯聚成一個新項目。還要再評估下時間和競品:來不及、性價比不高、卷不過同行就不做。

舉個例子:我之前背面試題的時候發(fā)現(xiàn)很多題目的題解是有問題的, 但是沒有人去討論和維護,于是我就先把這點記錄下來;之后又發(fā)現(xiàn)大家有閱讀整套面試題的需求,可以有個組卷功能,才有了之后的面試鴨(https://www.mianshiya.com)。

養(yǎng)成隨時記錄的習慣,自然醞釀出項目靈感,而不是等要做項目的時候再去硬想、硬分析,你會發(fā)現(xiàn)整個過程不僅輕松、而且最后做出來的項目會更實用、性價比更高。(我們做視頻、寫文章也是一樣的)

2、快速技術選型

所謂技術選型,就是選用什么技術來開發(fā)上線項目、解決實際問題。

如果是企業(yè)中的大項目,技術選型階段要格外謹慎,不建議選擇冷門、無人維護、無人熟悉的技術。但對于我們個人來說,不用考慮那么多,一般做項目時選擇自己最熟悉的技術框架即可。

像我自己在技術選型時,主要是考慮以下 3 點:

  1. 前端用什么?一般就是在 Vue 和 React 間抉擇,然后統(tǒng)一使用 Ant Design 這種 多框架兼容 的組件庫,而不是一個項目用一個新的組件庫。
  2. 后端用什么?一般是在 Java 和 Node 間抉擇,小項目、側重前端的項目用 Node(比如 yuindex:https://github.com/liyupi/yuindex),追求穩(wěn)定性的大項目用 Java SpringBoot。
  3. 怎么上線?一般前端用 Nginx、后端用 Docker,后面會講。

也建議大家無論是學習階段還是正式工作了,盡量有一套自己用的最熟的技術棧,大多數項目都不用糾結技術選型。也別非得追求什么都用過,結果用的都不熟。

3、快速系統(tǒng)設計

所謂系統(tǒng)設計,就是尋找一個 相對 最合適的方法來實現(xiàn)需求。

聽起來簡單,但實際上,90% 的同學估計都做不到自主設計,總結一下就是離開視頻教程就不知道怎么做項目了。

怎么根據需求做系統(tǒng)設計也是 我的編程知識星球 里被問的最多的問題,比如下面這些,我都給出了自己的解決方案:

解決方案:https://t.zsxq.com/06b2bUj2B

解決方案:https://t.zsxq.com/06VRj2rrF

解決方案:https://t.zsxq.com/06meEQby7

大家可以想想上面這些問題你都能答出來么?

關于系統(tǒng)設計,我覺得最重要的還是積累經驗,很多需求和業(yè)務場景其實都是通用的(比如用戶鑒權),只要你設計過一次,之后做類似的系統(tǒng)應該都是無壓力。

那如果我啥都不會,怎么快速完成系統(tǒng)設計呢?

答案也很簡單,去網上搜解決方案唄!像我們在工作中做一些大的系統(tǒng),都是要參考業(yè)界主流的設計方案來定制或改進的,而不是純靠自己想。

不過現(xiàn)在網上的解決方案類文章沒有那么多,一方面是因為大家的需求都不太一樣,另一方面是好的解決方案才不會隨隨便便公開給你。所以如果沒有分析方案的文章,那我們甚至會直接找到開源項目,手撕源碼!

像我在星球里已經回答過近百個系統(tǒng)設計方面的問題了,星球的朋友可以看 #系統(tǒng)設計#標簽下的內容學習,說不定能解決你的問題。

地址:https://wx.zsxq.com/dweb2/index/tags/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/48844552128248

在做系統(tǒng)設計的過程中,建議大家繪制一些圖來輔助理解,比如流程圖、時序圖、功能模塊圖等等,用在線繪圖工具 draw.io 即可。

4、快速開發(fā)

想真正做到快速開發(fā),就要時刻遵循以下原則:

  1. 能不自己寫的代碼,就不要自己寫

  2. 自己寫過的代碼,絕對不重復寫第二遍

對于第一點,如果是新項目,我會選擇一個最符合我需求的腳手架來創(chuàng)建初始化項目模板,比如前端的 Ant Design Pro,什么布局、導航、路由、菜單、主題、整合組件、請求、測試、權限管理、國際化全都給你整合好了;如果是后端的話,我有自己開發(fā)的一個 Spring Boot 腳手架,整合了業(yè)務開發(fā)常用的組件,幾分鐘就能開發(fā)一個新項目初始模板了,已經公開在了我的 星球 里,打算下個月再重點完善一下。

當然,你也可以直接到 GitHub 上找一個開源項目去二改,比如知名的后臺管理系統(tǒng) Vue Admin Template。站在巨人的肩膀上,能幫助你大幅節(jié)省代碼量和開發(fā)時間,屢試不爽。

對于第二點,那就需要我們平時寫代碼的過程中,多抽象復用同功能的類 / 方法 / 函數。此外,一定要保留好自己寫過的所有代碼,做過一次的項目,就不要再重復做第二次,直接復制粘貼豈不美哉?

除了以上兩點之外,還有一個我自己的血淚教訓,那就是做項目一定要有計劃!

比如今天做什么、明天做什么、每個功能花多少時間等,分清主次,先完成核心功能、再去完善細節(jié)。而不是功能還沒開發(fā)完,就擱那糾結前端界面、什么字體大一號小一號的,到時候如果都上不了線,你覺得糾結這些事情還有意義么?

再舉個例子:給你 3 天去開發(fā)新功能,結果你花了 2 天去糾結一個很小的 bug,導致了項目延期,這也是得不償失的。

做計劃這點在工作中尤為重要,共勉。

5、快速測試

這一點沒什么好說的,一般做項目時要編寫好單元測試,每次改完代碼后執(zhí)行一次單元測試,就能提前自動發(fā)現(xiàn)一些小 bug,節(jié)省一些人工時間。

如果是正式對外上線的項目,建議提前招募一些有志之士(內測用戶)而不是自己一個人在那點。畢竟人多力量大,不僅節(jié)省自測的時間,也更能發(fā)現(xiàn)一些問題。

想當年,大家一起幫我給面試鴨網站做測試,我真的感動到哭了。

6、快速部署

對于新手來說,可能會覺得上線是很麻煩的事情,但如果你操作的次數多了,你會發(fā)現(xiàn)上線其實是所有環(huán)節(jié)中最簡單的 —— 其實上傳文件、點一下就好了。

像我自己一般是使用 Vercel 免費的國外服務器來一鍵上線前端項目(還有個好處是不用備案);用騰訊云托管之類的容器平臺來快速發(fā)布用 Docker 打包的后端代碼?;蛘呔褪怯脤毸姘鍋砜梢暬剡\行 Node、PHP、Java 等項目,可比自己登上服務器,手動啟動停止項目要方便多了。

至于微服務項目嘛,也可以用同樣的方式來部署,或者用 Docker Compose 來編排群起微服務。不過真正要上線一個產品,在沒有用戶的時候,我是不會選擇用微服務的。

7、快速運維

上線項目后,怎么更方便地運營管理項目呢?

一般我不會選擇自己搭建運維監(jiān)控管理平臺,而是直接用現(xiàn)成的第三方服務。比如用百度統(tǒng)計、51.LA 來統(tǒng)計網站用戶,用現(xiàn)成的第三方云數據庫、云 Redis、容器托管平臺來監(jiān)控服務的運行、配置告警等等。

換句話說,想要真正做到快速,有現(xiàn)成的服務就用現(xiàn)成的吧,雖然會花一些額外的金錢投入,但是能省下來大量時間,性價比絕對是高的。對企業(yè)來說,時間就是金錢。



本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉