1. 程式人生 > 資訊 >「程式設計師做飯指南」霸榜 GitHub,還用數學公式解決「吃什麼」世紀難題,微軟程式設計師出品

「程式設計師做飯指南」霸榜 GitHub,還用數學公式解決「吃什麼」世紀難題,微軟程式設計師出品

我也是沒想到啊,GayHub 啊不,GitHub 的熱榜第一,竟然讓一個純・做飯專案給佔領了。

沒錯,專案如其名,「HowToCook」它真的沒在標題黨,就是一大份正經家常菜譜。

當然,細節之處,可能還是跟普通菜譜略有不同……

這計算公式,這 1cm*1cm,真的很精準了 2333。

倉庫作者就開門見山地說了:

網上的菜譜對習慣了形式語言的程式設計師太不友好,所以他計劃結合自己的經驗,用更清晰精準的描述整理常見菜的做法,方便程式設計師們在家做飯。並且,與許多開源專案一樣,作者也非常歡迎更多小夥伴加入近來,共同維護、驅動這樣一個別樣的倉庫。

還真別說,目前,該專案已經吸引到 60 + 貢獻者,而 Pull request 裡也已經堆滿了新菜譜:

從廚房準備到“中午吃什麼”,一站搞定

能受到這麼多程式設計師的熱捧,可見同是教做飯,還是這份指南最得程式設計師心。

畢竟在最開始的“廚房準備”這個序章裡,除了常規的鍋碗瓢盆柴米油鹽,「程式設計師做飯指南」還提供了一個非常具有儀式感的工具方案:天平、遊標卡尺、量筒、停表、燒杯、測溫槍、移液器。

而如果你覺得以上都還不夠“程式設計師”,那麼不妨看看倉庫裡附帶的“中午吃什麼”這個世紀難題解決方案。

正如倉庫作者所說:

如何決策吃什麼也是我做菜之前一大難題,所以只能用數學描述一下了。

計算方法大致是這樣的:

當有人數 N 時,設素菜數為 a,葷菜數為 b。N,a,b 均為整數。

此時有下列不等式組:

a + b = N + 1

a ≤ b ≤ a + 1

解得:

a=floor(N/2)

b=cell(N/2)

Pull Request 指南

這個專案的發起者 Auduin Xue,是一名微軟程式設計師,base 蘇州。前面已經提到,Auduin 希望更多人一起來建設「程式設計師做飯指南」這個有趣的倉庫。那麼最後,如果你感興趣,就一起來看看怎麼把你手上的獨門菜譜加入選單吧~

需要注意的是,寫新菜譜時,需要複製並修改已有的菜譜模板。模板包括這幾個部分:必備原料和工具、計算、操作、附加內容。其中計算主要介紹計算公式,以便求得原料的量、重要時間引數、混合比例等。而操作部分,不允許使用“適量”、“少量”等不精準描述的詞彙。

另外,在提交 Pull request 之前還需要同步更新一下 README.md 裡的菜譜目錄。

專案傳送門:

https://github.com/Anduin2017/HowToCook