前言
歡迎來到草梅周報唠椭!這是一個由草梅友仁基于 AI 整理的周報祭埂,旨在為您提供最新的博客更新套硼、GitHub 動態(tài)、個人動態(tài)和其他周刊文章推薦等內(nèi)容霹疫。
草梅友仁的 2024 年度項目總結(jié)
時間過的真快拱绑,一轉(zhuǎn)眼就到了 2024 年年底,也是時候來個年終總結(jié)了丽蝎。
作為程序員猎拨,衡量標(biāo)準(zhǔn)之一自然是代碼,今年寫的代碼行數(shù)如下:
今年的代碼行數(shù)達到了驚人的 105000+ 行!和去年的 75000 行相比多了快 30000 行落君!
主要代碼量由 rss-impact-server 和 rss-impact-web 貢獻靴拱。
當(dāng)然,單純的代碼行數(shù)是沒什么營養(yǎng)的类腮,只能證明寫了很多代碼。
接下來再看下今年的開源情況蛉加,以下是 GitHub 日歷圖:
可以看出今年是創(chuàng)建相當(dāng)多的開源項目蚜枢。
今年應(yīng)該也是筆者寫開源項目最多的一年了缸逃,也是收獲 stars 數(shù)量最多的一年(在此感謝阮一峰老師推薦),后續(xù)會聊聊開源方面的心得厂抽。
開發(fā) RSS Impact 的得與失
今年我個人在代碼開發(fā)方面跟往年有一個很大的不同需频,那就是極大的增加了開源項目的時間投入。
和往年相比筷凤,今年的貢獻日歷可謂一片綠昭殉。
在此之中,rss-impact-server 和 rss-impact-web 又是投入時間最多的藐守。
事情的起因還要追溯到上半年寫的一篇文章:《2024-02-25 RSS 使用的最佳實踐 RSSHub+FluentReader+FreshRSS》挪丢。
在這篇博客中,我提到了 rsspush 沒有達到我理想的程度卢厂。
為此乾蓬,才開發(fā)了 RSS Impact。
RSS Impact 是一個支持 Hook 的 RSS 訂閱工具慎恒。
rss-impact-server 支持 RSS 推送/RSS 下載/RSS AI 總結(jié)等功能任内。
甚至還得到過阮一峰老師的推薦,登上過 科技愛好者周刊融柬,GitHub Stars 也快速增加死嗦,一度前途無量。
但很遺憾的是粒氧,這個項目還是撲街了越除。
用戶數(shù)在那一段時間的高峰過后就再起不能了,連創(chuàng)建過 Hook 的用戶都寥寥無幾外盯,根本沒人使用過 RSS Impact 的核心功能廊敌。
再后來,見識到 Follow 和它的 自動化功能
之后门怪,我就意識到一件事情骡澈,RSS Impact 是競爭不過 Follow 的。
因此掷空,我選擇了打不過就加入肋殴,在未來,RSS Impact
會增加 Follow Action 支持坦弟。
至此护锤,RSS Impact 的開發(fā)陷入了瓶頸。
就本次開發(fā)經(jīng)歷酿傍,我可以給出一些寫開源項目的教訓(xùn):
- 前期調(diào)研很重要烙懦,需要調(diào)查清楚 GitHub 上是否已存在相同定位的項目。
- 如果有赤炒,不妨先看下他們是怎么做的氯析,然后分析這些項目的優(yōu)點與缺點亏较,并對優(yōu)點加以學(xué)習(xí),缺點加以改進掩缓。
- 如果沒有雪情,意味著開創(chuàng)了一個先河,雖然成功的可能性很小你辣,但不妨就試一下吧巡通,萬一成功了呢?
- 避免和熱門項目競爭舍哄,要找出新的賽道宴凉,最好是細(xì)分賽道,這樣競爭小一點表悬。
- 從項目可以跑開始就需要找用戶來試用跪解,沒有反饋就沒有改進,不要想著改的差不多了才給用戶使用签孔,你以為的需求很可能只是偽需求,并不是用戶真正想要的窘行。(以 RSS Impact 為例饥追,一個 RSS 閱讀器 + Action,顯然會比一個純 RSS Action 觸發(fā)工具更好用罐盔,你所謂的核心功能但绕,只是別人的附加項)
- 使用門檻盡可能低,最好讓用戶一鍵安裝就可以使用惶看,或者訪問網(wǎng)頁就可以使用捏顺。
- 用戶界面很重要,UI 需要認(rèn)真設(shè)計纬黎,盡可能簡化用戶操作幅骄。同時最好提供多端兼容,比如同時支持桌面端和手機端訪問本今。
- 用戶文檔很重要拆座,既沒有文檔又沒有用戶引導(dǎo),用戶使用起來會非常困難冠息,難以上手挪凑。
總之,寫開源項目最大的困難不在于編寫代碼逛艰,而是如何將你的項目推廣出去躏碳,沒有用戶,就沒有一切散怖。
因此菇绵,這才有最優(yōu)秀的獨立開發(fā)者肄渗,必定是最優(yōu)秀的推銷員的說法。
博客更新情況
今年博客的數(shù)量是 23 篇(含本篇)脸甘,相較于去年有所減少恳啥,主要是有很長一段時間忙到?jīng)]時間寫博客。
但今年在博客寫作方面倒也有所創(chuàng)新丹诀,那就是創(chuàng)立了《草梅周報》這個周更博客钝的。
雖然不是每次都能寫出點東西,但和之前啥都寫不出相比铆遭,《草梅周報》的存在確實讓我有更多的動力去寫博客了(當(dāng)然硝桩,更新壓力也更大了)。
應(yīng)該說枚荣,AI 大模型的出現(xiàn)碗脊,對博客寫作也是有很大幫助的,比如總結(jié)橄妆、標(biāo)簽衙伶、分類等工作就可以直接交給 AI 大模型來完成了。
《草梅周報》本身也是借助 AI 大模型來實現(xiàn)自動化的害碾,可以說矢劲,沒有 AI 的話,就沒有《草梅周報》慌随。
就我目前對《草梅周報》的定位而言芬沉,《草梅周報》主要是同步我個人的博客更新、GitHub 動態(tài)和個人動態(tài)阁猜。
其中一些比較小的話題丸逸,就會直接放在《草梅周報》的前言里講完,如果要講的話題比較大剃袍,則會開一篇新的博客(目前還沒有遇到)黄刚。
今年相較于去年的話,在發(fā)布平臺上多了一個 Memos民效,也不知道有沒有人是通過該渠道訂閱的隘击。
此外,年中的時候還折騰過 WordPress研铆,一度產(chǎn)生過要遷移博客到 WordPress 的想法埋同。
可惜最后折騰了半天,發(fā)現(xiàn) WordPress 的性能實在不能讓人滿意棵红,最后還是決定放棄了凶赁,明年就直接停用 WordPress 了。
目前博客還是會基于 Hexo 發(fā)布,純靜態(tài)博客還是比較符合我目前的需求虱肄。
今年總結(jié)與展望未來
今年的話比去年忙很多致板,無論是工作還是開源,亦或者游戲咏窿,都比去年多很多斟或。
今年最大的一個感受就是感覺時間不夠用,想做的事情太多集嵌,能用的時間太少萝挤。
另外,在副業(yè)探索上也很不順利根欧,無論是 Timing Push 還是 RSS Impact怜珍,都沒有取得成功,回報率幾乎為 0凤粗。
雖然人人都說要做副業(yè)來增加收入酥泛,但副業(yè)又豈是那么好做的?沒有足夠的時間和精力投入嫌拣,又怎能取得成功柔袁?
因此,明年還是要在副業(yè)和開源上增加時間投入异逐,寫出更好的項目才行捶索。
當(dāng)然了,今年取得的教訓(xùn)還是要稍微避免一下应役,以免重蹈覆轍。
Scoop:更適合程序員的軟件管理工具
最近重裝了系統(tǒng)燥筷,導(dǎo)致要從頭開始裝軟件箩祥。
作為程序員,自然是不能做重復(fù)工作肆氓。
因此袍祖,這一次,選擇了 Scoop 這個軟件管理工具來安裝需要的軟件谢揪,例如代碼開發(fā)工具蕉陋、編程語言運行時以及一般項工具(包含游戲、視頻等軟件)拨扶。
以下是我寫的一個 PowerShell 腳本凳鬓,用于批量安裝軟件。
# 安裝 Scoop
if (-not (Get-Command scoop -ErrorAction SilentlyContinue)) {
Write-Host "正在安裝 Scoop..."
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Invoke-RestMethod get.scoop.sh | Invoke-Expression
Write-Host "Scoop 安裝完成患民。"
} else {
Write-Host "Scoop 已安裝缩举。"
}
# 添加源
scoop bucket add extras
scoop bucket add java
scoop bucket add nerd-fonts
scoop bucket add dorado
scoop bucket add php
scoop bucket add versions
scoop bucket add nonportable
scoop bucket add games
# 定義要安裝的軟件列表
$apps = @(
"git", # 用于代碼管理、scoop 安裝軟件等
"aria2", # 用于加速下載文件
"sudo", # 用于管理員權(quán)限
"7zip", # 用于壓縮文件
"zip", # 用于壓縮文件
"gzip", # 用于壓縮文件
"chsrc", # 用于切換鏡像源
"bun", # 用于JavaScript開發(fā)
"curl", # 用于網(wǎng)絡(luò)請求
"tcping", # 用于網(wǎng)絡(luò)測試
"dark", # 用于設(shè)置主題
"ffmpeg", # 用于視頻、音頻等處理
"gnupg", # 用于加密
"openssh", # 用于SSH
"nvm", # 用于Node.js版本管理
"openjdk", # 用于Java開發(fā)
"gradle", # 用于Java依賴管理
"python", # 用于Python開發(fā)
"miniconda3", # 用于Python環(huán)境管理
"php", # 用于PHP開發(fā)
"composer", # 用于PHP依賴管理
"go", # 用于Go開發(fā)
"googlechrome", # 用于瀏覽器
"localsend", # 用于文件傳輸
"everything", # 用于文件搜索
"dbeaver", # 用于數(shù)據(jù)庫管理
"another-redis-desktop-manager", # 用于Redis管理
"sqlitestudio", # 用于SQLite管理
"robo3t", # 用于MongoDB管理
"notepadplusplus", # 用于文本編輯器
"vscode", # 用于代碼編輯器
"idea", # 用于Java開發(fā)
"android-studio", # 用于Android開發(fā)
"parsec", # 用于遠(yuǎn)程桌面
"obs-studio", # 用于錄屏仅孩、直播
"qbittorrent", # 用于BT下載
"heynote", # 用于筆記
"typora", # 用于Markdown編輯器
"postman", # 用于接口測試
"treesize-free", # 用于查看文件夾大小
"picgo", # 用于圖床
"tabby", # 用于終端托猩、SSH
"fluent-reader", # 用于RSS閱讀
"games/steam", # 用于游戲
"epic-games-launcher", # 用于游戲
"potplayer", # 用于視頻播放
"qq", # 用于QQ
"wechat", # 用于微信
"fscapture", # 用于截圖
"waifu2x-caffe", # 用于圖片放大
# 最后安裝 cuda,因為體積較大辽慕,拖慢整個安裝過程京腥。
"cuda", # 用于GPU加速
"ollama", # 用于LLM
)
# 安裝軟件
foreach ($app in $apps) {
Write-Host "正在安裝 $app..."
scoop install $app
Write-Host "$app 安裝完成。"
}
# 安裝 Node.js 最新版本
Write-Host "正在安裝 Node.js 最新版本..."
nvm install latest
nvm use latest
npm i -g pnpm --registry=https://registry.npmmirror.com
Write-Host "Node.js 最新版本安裝完成溅蛉。"
# 使用 chsrc 設(shè)置鏡像源
Write-Host "正在設(shè)置鏡像源..."
chsrc set node
chsrc set nvm
chsrc set java
chsrc set python
chsrc set conda
chsrc set go
chsrc set php
Write-Host "鏡像源設(shè)置完成公浪。"
Write-Host "所有軟件安裝完成。"
有部分軟件需要代理才能下載温艇,可以考慮切換鏡像因悲。
一個腳本就把絕大部分需要的軟件給下載好了。
接下來說下 scoop 使用上的小技巧勺爱。
默認(rèn)情況下晃琳,scoop 會把軟件安到用戶目錄,也就是 C 盤里琐鲁。
這對于部分 C 盤不足的人來說是比較難受的卫旱。
不過可以通過修改 SCOOP
環(huán)境變量來指定當(dāng)前用戶安裝目錄,這樣就可以把軟件裝到其他盤围段,例如 D 盤里顾翼。
然后就是,對于部分有 GUI 的軟件奈泪,scoop 默認(rèn)情況下并不會在桌面創(chuàng)建快捷方式适贸,因此有時候會出現(xiàn)找不到對應(yīng)的軟件的情況。
此時可以從菜單目錄復(fù)制對應(yīng)的快捷方式到桌面涝桅,就可以解決這個問題拜姿。
當(dāng)然也可以自己創(chuàng)建一下快捷方式
更多內(nèi)容可參考這篇文章 《基于 Scoop 定制屬于你自己的 Windows 應(yīng)用源倉庫》。
2024 JavaScript 生態(tài)報告
數(shù)據(jù)來源:2024 JavaScript 生態(tài)報告
最近看了下《2024 JavaScript 生態(tài)報告》冯遂,發(fā)現(xiàn)了一些有意思的內(nèi)容蕊肥,在此做個轉(zhuǎn)載。
在開始之前蛤肌,還是要先說明幾句壁却。
由于主要調(diào)查對象是美國程序員,中國的較少裸准,因此該報告無法反映國內(nèi) JavaScript 生態(tài)的情況展东。
不過,作為參考炒俱,可以了解全世界程序員目前對 JavaScript 生態(tài)的一些看法琅锻。
中國也就占 1%卦停,所以這個數(shù)據(jù)不反應(yīng)國內(nèi)情況。
在代碼庫滿意程度一欄中恼蓬,Vite惊完、Vitest 等庫一騎絕塵。而另外幾個以性能見長的庫处硬,例如 pnpm小槐、esbuild 等,也飽受歡迎荷辕。
與此對應(yīng)的是凿跳,性能相對沒那么出眾的 Angular、webpack 等疮方,則沒那么受歡迎控嗜。
可見,在 2024 年的今天骡显,運行性能已經(jīng)成為了十分重要的指標(biāo)疆栏,將直接決定了你的代碼庫是否受歡迎。
另外惫谤,我還關(guān)注了一下 JavaScript 運行時的情況壁顶。
Node.js 本體還是一騎絕塵,使用率高達 91%溜歪,而瀏覽器也不遑多讓若专,達到了 83%。
由于調(diào)查對象本身就是前段程序員居多蝴猪,出現(xiàn)這樣的情況也很正常调衰。
雖然像 Deno、Bun 這樣新的 JavaScript 運行時已經(jīng)出現(xiàn)自阱,并且性能更高嚎莉,但考慮到 Node.js 本身龐大的生態(tài),讓人放棄 Node.js 轉(zhuǎn)向 Deno 或 Bun 也不是一件容易的事情动壤。
除此之外萝喘,我還看了下無服務(wù)器運行時的使用情況淮逻,AWS Lambda琼懊、Vercel Edge Runtime、Cloudflare Workers 是最多的爬早。
由于今年開始使用 Hono 作為后端開發(fā)框架哼丈,因此研究了下無服務(wù)器運行時的使用。
相較于單機部署筛严,借助邊緣函數(shù)或無服務(wù)器運行時醉旦,可以極大的降低并發(fā)壓力,避免負(fù)載均衡、自動容災(zāi)等復(fù)雜問題车胡。
當(dāng)然了檬输,使用無服務(wù)器運行時的缺點也就在于和云服務(wù)平臺綁定了,因此匈棘,我建議采用 漸進式云函數(shù)
開發(fā)來解決這個問題丧慈。
以 Hono 為例,既可以運行在 Cloudflare Workers主卫、Vercel Edge Runtime 等云服務(wù)平臺逃默,也可以運行在 Node.js 上,那么就可以通過同構(gòu)來實現(xiàn)多種部署方式簇搅,具體可參考 hono-template完域。
在非 JavaScript 語言中,Python 的使用率是最高的瘩将,我個人也是如此吟税,Python 基本上是除了 JavaScript 外的第二選擇。
而 PHP 還有那么高的使用率是我沒想到的鸟蟹,可能是因為我用的太少了乌妙。
最近兩年的編程和以往有一個很大的不同,那就是 AI 工具已經(jīng)深入到編程的方方面面建钥,以至于不可能避開藤韵。
我個人是從今年下半年才開始使用 AI 來加速編程,使用體會就是應(yīng)該早點用 AI 的熊经!
用 AI 開發(fā)真的是太舒服了泽艘,很多簡單的改動都可以直接完成。
不過镐依,對于 AI 輸出的結(jié)果匹涮,還是需要人來把關(guān),因為 AI 輸出的結(jié)果有好有壞槐壳,有時候還會讓項目崩潰然低。
其他周刊推薦
阮一峰的網(wǎng)絡(luò)日志
- 科技愛好者周刊(第 331 期):你可能是一個 NPC - 2024-12-27 08:19:28
HelloGitHub 月刊
- 《HelloGitHub》第 105 期 - 2024-12-27 08:03:55
總結(jié)
本周的更新和動態(tài)如上所示。感謝您的閱讀务唐!
您可以通過以下方式訂閱草梅周報的更新:
往期回顧
- 2024 年第 52 周草梅周報:GitHub Copilot 免費支持與最新更新 - 2024-12-22 18:47:26
- 2024 年第 51 周草梅周報:Windsurf雳攘,比 Cursor 更好用的 AI 編輯器 - 2024-12-15 18:59:26
- 2024 年第 50 周草梅周報:AI 自動化與創(chuàng)作者不可能三角 - 2024-12-08 19:47:31
本文作者:草梅友仁
本文地址:2024 年第 53 周草梅周報:2024 年度項目總結(jié)與展望
版權(quán)聲明:本文采用 CC BY-NC-SA 4.0 協(xié)議 進行分發(fā),轉(zhuǎn)載請注明出處枫笛!