久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

維護(hù)一個(gè)大型開(kāi)源項(xiàng)目是怎樣的體驗(yàn),? | 知乎精選

 星星點(diǎn)點(diǎn)燈 2017-04-10

【尤雨溪的回答(660票)】:

謝邀,。先介紹下項(xiàng)目吧,前端視圖層庫(kù) Vue.js: vuejs/vue · GitHub

目前在 GitHub 上 7300+ star,,issue + PR 總計(jì) 1400+,,生產(chǎn)環(huán)境中使用算是有不少(應(yīng)該... 其實(shí)我也統(tǒng)計(jì)不完全),前端包管理系統(tǒng)里面只有 npm 有統(tǒng)計(jì)的,,每月下載量 14k 左右,,并不清楚 bower 和直接下載的量多少。

對(duì)前端熟悉的同學(xué)應(yīng)該多少有所耳聞吧,。本質(zhì)上 Vue.js 做的是兩件事情,,數(shù)據(jù)綁定和視圖層組件化。技術(shù)上的細(xì)節(jié)就不在這里啰嗦了,,不了解但感興趣的同學(xué)可以移步這里:Vue.js:輕量高效的前端組件化方案-CSDN.NET,。Vue.js 和其他庫(kù)/框架不一樣的地方主要在于 API 的簡(jiǎn)潔和不對(duì)高層架構(gòu)做過(guò)多約束。這也是為什么我通常不把 Vue.js 叫做框架,,因?yàn)樗且粋€(gè)很專注的工具,,只解決它該解決的問(wèn)題,。這是我從一開(kāi)始就堅(jiān)持的一個(gè)理念,那就是不做大而全,,只做小而美,。一方面是因?yàn)閭€(gè)人偏好,另一方面是因?yàn)樽鳛橐粋€(gè)個(gè)人項(xiàng)目,,在競(jìng)爭(zhēng)激烈的前端庫(kù)領(lǐng)域里想要生存,,最好跟那些由團(tuán)隊(duì)維護(hù)的大框架有明顯的差異性。

印象深刻的事情

這個(gè)項(xiàng)目一開(kāi)始純粹是作為練手的輪子,,因?yàn)楫?dāng)時(shí)想要研究 Angular 數(shù)據(jù)綁定的實(shí)現(xiàn),。研究的時(shí)候覺(jué)得臟檢查實(shí)在是個(gè)不優(yōu)雅的實(shí)現(xiàn),于是就琢磨如果只支持 ES5 能不能用 getter/setter 實(shí)現(xiàn)無(wú)縫的依賴追蹤,。如果算上那時(shí)候的第一個(gè) commit,,距今已經(jīng)兩年零三個(gè)月:initial setup · yyx990803/vue@83fac01 · GitHub 正式對(duì)外發(fā)布是 2014 年 2 月的事情了。當(dāng)時(shí)也算是抱著『搞個(gè)大新聞』的念想小小策劃了一下,,同時(shí)在 HackerNews,、Reddit、EchoJS 等地方發(fā)了帖子,,還給 DailyJS,、JavaScript Weekly 等媒體發(fā)了自薦。發(fā)布后幸運(yùn)地在 HN 首頁(yè)呆了一段時(shí)間,,第一周后拿到了 615 個(gè) star,。我對(duì)第一周的一些數(shù)據(jù)做了些統(tǒng)計(jì),還寫了篇博客:First Week of Launching Vue.js

當(dāng)時(shí) Vue.js 其實(shí)非常的不成熟,,但有一個(gè)公司膽子很大地把這個(gè)個(gè)人項(xiàng)目用在了生產(chǎn)環(huán)境里:Optimizely,。這家公司國(guó)內(nèi)知道的人可能不多,但他們 B 輪融了 a16z 的 55m,,其實(shí)是一家準(zhǔn)獨(dú)角獸公司,。他們當(dāng)時(shí)的新前端 lead 上任做的第一件事就是把他們基于 jQuery + Knockout 的舊前端用 Vue.js 重寫了,還邀請(qǐng)我去過(guò)他們辦公室聊天?,F(xiàn)在回頭看來(lái),,當(dāng)時(shí)的 Vue.js 問(wèn)題很多,但多虧了這家公司,,讓我第一次覺(jué)得『臥槽,,原來(lái)我寫的東西還真有別人用!』

另一類有趣的用戶則是一群法國(guó)的交互開(kāi)發(fā)者,。這些人大多是在廣告創(chuàng)意類的公司工作,,主要的任務(wù)就是把網(wǎng)站做得要多酷炫有多酷炫,很多都是從 Flash 背景過(guò)來(lái)的。對(duì)于他們來(lái)說(shuō) Angular 完全是 overkill,,但 Vue.js 卻正好,。加上對(duì)于動(dòng)畫的良好支持也算是 Vue.js 的賣點(diǎn)之一,所以他們用 Vue 還做了不少得獎(jiǎng)的交互類網(wǎng)站,,比如:Louis Ansa - Interactive Designer (國(guó)內(nèi)可能加載很慢)

再往后不知為什么 Vue.js 在日本也有不少人開(kāi)始用了,,東京一家叫 Cuusoo 的公司有個(gè)工程師把他公司的前端用 Vue.js 改寫了,翻譯了日文文檔,,居然還組織了 Vue.js meetup... 然后他現(xiàn)在升任他公司 CTO 了 orz... 總之聽(tīng)說(shuō) Line 和 Nintendo 也有一些項(xiàng)目用了 Vue.js,。

今年 5 月份的時(shí)候,Laravel 的作者發(fā)了條推,,大意是說(shuō)『我嘗試學(xué)了下 React,,覺(jué)得好難用,決定改學(xué) Vue.js 了』,。然后 Laracast(一個(gè) laravel 教學(xué)視頻網(wǎng)站)的創(chuàng)始人做了一系列 Vue.js 教程,,于是 Vue.js 突然就在 Laravel 社區(qū)火了,貌似現(xiàn)在最活躍的用戶都是 laravel 社區(qū)的人...

開(kāi)發(fā)中的體驗(yàn)

現(xiàn)在想來(lái),,才明白為何一個(gè)項(xiàng)目所謂的『成熟』需要時(shí)間,。今天回頭看兩年前的代碼,那就是一坨渣渣啊,。這期間經(jīng)歷了很多摸索著做了個(gè)能用的實(shí)現(xiàn),,然后去研究其他庫(kù)的源碼,,于是恍然大悟?yàn)槭裁此麄円@么設(shè)計(jì),,再把自己的設(shè)計(jì)改寫的過(guò)程... 為了這個(gè)幾乎所有開(kāi)源的前端庫(kù)實(shí)現(xiàn)我都研究過(guò)了,很多次在做大改動(dòng)的時(shí)候心里都會(huì)覺(jué)得很慌:『之前那么蠢的設(shè)計(jì)居然還有人用,!』0.10 到 0.11 的升級(jí)是一次完全的重寫,,實(shí)在是因?yàn)?0.10 的設(shè)計(jì)太幼稚,維護(hù)不下去了...

為了能『可持續(xù)發(fā)展』,,不得不強(qiáng)迫自己形成代碼潔癖,。每一個(gè)函數(shù),每一個(gè) hack,,每一個(gè) edge case 都要寫上注釋,,怕的就是哪一天自己都看不懂自己當(dāng)時(shí)在干嘛。為了不在修 bug 的時(shí)候?qū)е赂嗟?bug,,只能強(qiáng)迫癥一般地保證每一個(gè) commit 之前都是 100% 的測(cè)試覆蓋率,。總的來(lái)說(shuō),,能自動(dòng)化的東西都基本自動(dòng)化了,,比如發(fā)布一個(gè)新版本也是一個(gè)命令自動(dòng)跑完所有測(cè)試,按照 semver 升級(jí)版本,然后 push git tag + npm publish,。另外還在持續(xù)集成服務(wù)上對(duì)每一個(gè) PR 自動(dòng)檢查代碼格式 + 跑單元測(cè)試...

另一個(gè)很有意思的轉(zhuǎn)變就是從一開(kāi)始完全想怎么設(shè)計(jì)就怎么設(shè)計(jì),,到今天需要考慮各種用例、穩(wěn)定性,、瀏覽器兼容,、向后版本兼容、社區(qū)意見(jiàn)等等,,整體的設(shè)計(jì)過(guò)程也變得越來(lái)越社區(qū)化了,。以前想做個(gè)新功能直接上就是了,現(xiàn)在基本上都會(huì)先開(kāi)個(gè)帖子征求下社區(qū)意見(jiàn),,大家一起討論著做,。比如這次 0.12 ~ 1.0 的升級(jí),大部分 breaking change 都專門開(kāi)了 issue 征求社區(qū)意見(jiàn),,新的綁定語(yǔ)法更是經(jīng)歷了漫長(zhǎng)的幾百條評(píng)論的討論...

Issue 和 PR

現(xiàn)在基本上每天起床第一件事就是看郵箱里面有沒(méi)有新 issue,。我用 Inbox 把 Vue 的 issue 專門分了個(gè)類別,就當(dāng)是 todo list,,修掉了就勾掉,。有時(shí)候一口氣修了幾個(gè) bug 啪啪啪勾掉一堆的時(shí)候感覺(jué)還是很酸爽的... 當(dāng)然更爽的是有時(shí)候一覺(jué)起來(lái)一個(gè) issue 也沒(méi)有 -.-

說(shuō)到 issue 的類型,實(shí)在是一把辛酸淚,。剛開(kāi)始的時(shí)候有人開(kāi)個(gè) issue 就覺(jué)得受寵若驚了,,到后來(lái)時(shí)間緊了之后,就越來(lái)越體會(huì)到對(duì)開(kāi) issue 的方式對(duì)維護(hù)者體驗(yàn)的影響,。舉例來(lái)說(shuō),,有些人開(kāi) issue 永遠(yuǎn)只有一句話,甚至有些直接就是標(biāo)題:"xxx doesn't work",,然后無(wú)內(nèi)容,。早期碰到這種的還會(huì)記在心上,現(xiàn)在遇到這樣的就直接掛個(gè) 『請(qǐng)給重現(xiàn)』的 tag,,如果幾天以后還是沒(méi)重現(xiàn)就直接關(guān)掉,。另一種極端就是一些很認(rèn)真的同學(xué),一個(gè) issue 分幾個(gè)小標(biāo)題,,『?jiǎn)栴}描述』,、『重現(xiàn)步驟』、『可能的原因』,,有些甚至把應(yīng)該改哪里都幫我指出來(lái)了,,就差直接開(kāi)個(gè) PR 了。每次遇到這樣的 issue 我就特別想擁抱一下開(kāi) issue 的人,,希望大家都向這樣的同學(xué)學(xué)習(xí),!

印象最深的一個(gè) issue:

最奇葩的 PR:

mini change: removed unnecessary spaces by Jinjiang · Pull Request #1165 · yyx990803/vue · GitHub

^ @趙錦江(勾三股四) 為了混 contribution 已喪心病狂!

對(duì)工作和生活的影響

首先,,維護(hù)這個(gè)項(xiàng)目對(duì)于個(gè)人的技術(shù)成長(zhǎng)顯然是有著巨大的好處的,。為了保持項(xiàng)目的競(jìng)爭(zhēng)力,,我需要時(shí)刻關(guān)注前端最前沿的東西,研究別人的實(shí)現(xiàn),;為了保持項(xiàng)目的可維護(hù)性,我需要進(jìn)行各種工程化的實(shí)踐...

有一個(gè)有一定知名度的項(xiàng)目自然在很多事情上也會(huì)比較方便,,比如當(dāng)時(shí)去 Meteor 面試就是做了個(gè) Vue.js 的分享然后聊了聊天就給 offer 了,并沒(méi)有叫我翻轉(zhuǎn)二叉樹(shù)什么的...

生活上,,對(duì)項(xiàng)目過(guò)于投入有一定的負(fù)面影響。因?yàn)?Vue.js 畢竟是個(gè)個(gè)人項(xiàng)目,,所以經(jīng)常需要占用工作外的時(shí)間,代碼寫太晚被老婆訓(xùn)斥也不是一次兩次了... 還好我在寫 Vue.js 之前就已經(jīng)找到了老婆,,各位單身的碼農(nóng)挖坑前還需謹(jǐn)慎!

【季索清的回答(16票)】:

尤雨溪同學(xué)介紹了一則在軟件開(kāi)發(fā)領(lǐng)域比較有代表性的范例,;那么我就說(shuō)說(shuō)一個(gè)大家不太熟悉并可能稍感神秘的領(lǐng)域中的大型開(kāi)源項(xiàng)目:在天體物理領(lǐng)域中(目前也在逐漸擴(kuò)展到多學(xué)科)的數(shù)據(jù)分析和可視化軟件:The yt Project.

這個(gè)項(xiàng)目(包括使用文檔)的源碼都放在BitBucket上(yt on Bitbucket),,目前有約18,000的commit,2000的PR和1000+的issue,。由于專業(yè)特點(diǎn),,我們個(gè)人有些代碼出于各種原因是不能公開(kāi)的,因此提供無(wú)限免費(fèi)私有倉(cāng)庫(kù)的Bitbucket是一個(gè)很方便的選擇,。

目前yt在天體物理領(lǐng)域取得了較大的影響力(很可惜,這一點(diǎn)在國(guó)內(nèi)尚不明顯,;因此我也計(jì)劃在國(guó)內(nèi)通過(guò)給talk的方式做一些初步的推廣工作),;yt支持天體物理中多種廣泛應(yīng)用的(數(shù)值模擬/觀測(cè))數(shù)據(jù)格式,,大量的論文是用yt進(jìn)行數(shù)據(jù)處理和可視化的,其中包括一期《自然》雜志的封面,。一些可視化的例子可以在The yt Project: Gallery我個(gè)人主頁(yè)上的Visualizations上找到(部分在YouTube上視頻可能被墻),。

與軟件領(lǐng)域的開(kāi)源項(xiàng)目相比,yt Project有其特殊性:

  1. 相當(dāng)一部分的模塊要求維護(hù)者有專業(yè)的物理知識(shí),;
  2. 使用者為編程能力相對(duì)(與程序員相比)薄弱的物理學(xué)從業(yè)者,,因此在使用文檔和擁護(hù)支持方面有較多的工作,。
維護(hù)這個(gè)較為大型的開(kāi)源軟件,,一個(gè)人的力量是遠(yuǎn)遠(yuǎn)不夠的;約20人的團(tuán)隊(duì)(The yt Project: Community)以及從始至今共108位contributor都為這個(gè)開(kāi)源軟件做出了貢獻(xiàn),,其中包括像我這樣的博士生,、博士后和教授。項(xiàng)目的維護(hù)主要有以下幾個(gè)方面:

代碼設(shè)計(jì)與debug

這個(gè)是最主要,、也是最基本的工作,。每隔一段時(shí)間,當(dāng)一個(gè)階段的工作比較成熟之后,,我們就會(huì)推出一個(gè)新的版本號(hào),。我這周剛參加了這個(gè)項(xiàng)目的mini-sprint,大家針對(duì)全新設(shè)計(jì)的立體渲染模塊進(jìn)行了最后的代碼沖刺,,并即將推出3.3版本,。

代碼測(cè)試

測(cè)試包括通過(guò)運(yùn)行一系列測(cè)試腳本,檢測(cè)代碼各個(gè)模塊能否正常運(yùn)行,,以及改動(dòng)前后的版本的輸出(數(shù)據(jù),、圖像等)是否一致等等,;后者在科研中是很重要的,,否則今天一個(gè)結(jié)果、明天另一個(gè)結(jié)果,,論文就沒(méi)法寫了,。這個(gè)本應(yīng)是一個(gè)繁重的工作,然而團(tuán)隊(duì)里的一位成員為這個(gè)項(xiàng)目寫了一個(gè)測(cè)試機(jī)器人,;每提交/改動(dòng)一個(gè)PR,,機(jī)器人就會(huì)自動(dòng)針對(duì)變化運(yùn)行測(cè)試、重新編譯使用文檔,,并在PR頁(yè)面留言:

同時(shí)在團(tuán)隊(duì)的Slack上的即時(shí)聊天組里也會(huì)發(fā)信息:同時(shí)在團(tuán)隊(duì)的Slack上的即時(shí)聊天組里也會(huì)發(fā)信息:

話說(shuō)我去年剛開(kāi)始成為這個(gè)項(xiàng)目的成員時(shí),,還驚訝于這個(gè)人為什么每次都如此勤快,后來(lái)才覺(jué)得它應(yīng)該是機(jī)器人…

用戶支持

如前所述,,由于這個(gè)項(xiàng)目的特殊性,我們?cè)谟脩糁С稚献隽溯^為完善的工作,。我們撰寫并維護(hù)了非常詳盡的使用文檔yt Docs,;通過(guò)yt的使用者郵件列表,每天都能收到幾封郵件并都能得到及時(shí)的回應(yīng),。此外,,第二屆使用者workshop將于明年二月初在加州理工學(xué)院舉辦(正式的通知將在最近發(fā)出),有感興趣的同學(xué)可以保持關(guān)注或者聯(lián)系我,。

團(tuán)隊(duì)組織

由于大部分團(tuán)隊(duì)成員在不同的研究機(jī)構(gòu),,我們每周會(huì)在Google Hangout上進(jìn)行PR Triage集中分揀審核提交的PR;此外還有團(tuán)隊(duì)會(huì)議,,著重討論更宏觀的項(xiàng)目發(fā)展規(guī)劃(yt Enhancement Proposals),。

此外說(shuō)說(shuō)對(duì)我個(gè)人的影響吧。做為未出茅廬的博士學(xué)生,,我更多的精力在科研工作上,,在yt項(xiàng)目的投入與團(tuán)隊(duì)中的博士后們相比并不算多;然而團(tuán)隊(duì)成員評(píng)價(jià)說(shuō)我的開(kāi)發(fā)工作具有high impact,,得到這樣的肯定也是非常開(kāi)心的,。由于yt項(xiàng)目較大的影響力,我通過(guò)這項(xiàng)開(kāi)發(fā)工作結(jié)識(shí)了本領(lǐng)域中各個(gè)大學(xué)/研究機(jī)構(gòu)里許多優(yōu)秀的開(kāi)發(fā)者和使用者,其中有些研究者向我發(fā)出了訪問(wèn)或者講座邀請(qǐng),,這無(wú)疑是提升自己研究工作的知曉度的絕好機(jī)會(huì),。

最后,,如果有同學(xué)有興趣愿意嘗試使用yt(不局限于天體物理專業(yè)),,歡迎與我聯(lián)系~

【孫飛的回答(66票)】:

曾經(jīng)用易語(yǔ)言開(kāi)發(fā)了某百萬(wàn)級(jí)網(wǎng)游外掛程序(穿越火線),,獨(dú)創(chuàng)了很多新功能,,都是客戶端級(jí)別實(shí)現(xiàn)的功能,不會(huì)被查出來(lái),,當(dāng)時(shí)也hack過(guò)老外早期發(fā)布的模擬版服務(wù)端,,感覺(jué)這些功能官方做至少也要服務(wù)端同步才能實(shí)現(xiàn),比如一槍斃命,,飛天,,遁地,隱形,,封包修改商城數(shù)據(jù)/游戲結(jié)束后統(tǒng)計(jì)數(shù)據(jù),,后來(lái)招代理,二級(jí)代理,,開(kāi)CF卡盟,,很是火爆,賺錢至少也超過(guò)7位了,,也知道自己不能繼續(xù)下去了,想賺更多錢的代價(jià)可能是所有錢都被追回然后坐牢,。為了避責(zé),賣掉源碼給幾個(gè)外掛網(wǎng)站,,直接開(kāi)源到github了,然后就是外掛最瘋狂的時(shí)候了,,很多人二次銷售我在github發(fā)布的代碼,那時(shí)做一個(gè)外掛就是加一個(gè)殼,,基本新手就能做到,,然后當(dāng)年就被抓住好幾伙所謂的制作外掛團(tuán)伙。

那是四五年前的事了,,現(xiàn)在絕大多功能都被封掉了,,但是內(nèi)存透視還是用的我的代碼。

github上已經(jīng)被騰訊舉報(bào)刪除了,,網(wǎng)上能搜到很多透視源碼,,基本都是無(wú)修改我11年發(fā)布的版本。

我這個(gè)項(xiàng)目應(yīng)該不算是大型,,也不算是維護(hù),如果說(shuō)單純算收入,,不論合法不合法,,絕對(duì)超越此貼其他項(xiàng)目,。

【劉彥瑋的回答(1票)】:

我也來(lái)說(shuō)一個(gè)吧。babybluetooth,一個(gè)用oc寫的ios藍(lán)牙庫(kù)?,F(xiàn)在只有300+星,,但是已經(jīng)是github上新最多的ios藍(lán)牙庫(kù)了,。

coolnameismy/BabyBluetooth · GitHub

寫這個(gè)庫(kù)的初衷是因?yàn)樵腸orebluetooth藍(lán)牙庫(kù)委托太多,,不斷嵌套著委托和方法的調(diào)用,代碼寫起來(lái)混亂不優(yōu)雅,。所以干脆自己寫了一個(gè),。剛開(kāi)始寫的時(shí)候,工作了遠(yuǎn)遠(yuǎn)超過(guò)了自己的預(yù)期,,比較是corebluetooth庫(kù)的封裝,,得兼容全部的原生方法,,在按照自己的邏輯和生命周期去處理。這部分就寫了1周,,接著又是寫中文文檔,,英文文檔,,測(cè)試等做了很多工作,,終于有了第一個(gè)可以使用的版本,,放到github上,。

維護(hù)項(xiàng)目:

任何項(xiàng)目的第一個(gè)版本都是不成熟的,,自己不停的思考有哪些好用的功能適合加進(jìn)去,,也寫了一些藍(lán)牙教程在blog和分享到cocoachina上(英文不好很吃虧,。,。)也建立了一個(gè)qq群用來(lái)討論藍(lán)牙開(kāi)發(fā)的相關(guān)問(wèn)題,。

對(duì)生活的影響:

這個(gè)開(kāi)源項(xiàng)目目前基本上都是自己一個(gè)人在寫。但是已經(jīng)有不少人再嘗試用babybluetooth去寫藍(lán)牙程序,,babybluetooth的qq群里每天不斷的有人在討論babybluetooth的使用中的問(wèn)題和解決方法,,也會(huì)有人再群里或者發(fā)郵件問(wèn)我一些ios藍(lán)牙開(kāi)發(fā)的問(wèn)題,,這部分每天需要花費(fèi)不少時(shí)間,但是群里都是具有開(kāi)源精神的工程師,,他們也會(huì)相互的回答一些問(wèn)題,。也有很多人標(biāo)示對(duì)我項(xiàng)目的支持,也很感謝這些人的支持和提出修改建議,,才能讓我有更多的動(dòng)力去把項(xiàng)目完善。

對(duì)個(gè)人的成長(zhǎng):

github開(kāi)源項(xiàng)目的維護(hù)能力+1

拓寬程序猿朋友圈+1

感覺(jué)自己小有成就感+1

和hr談薪資+1

,。,。。,。

【驍波的回答(11票)】:

一點(diǎn)也不大型,,但star1000+

https://github.com/racaljk/hosts

【知乎用戶的回答(0票)】:

@韓天峰

等大神來(lái)答!

原文地址:知乎

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多