參與啟智社區開源項目心得分享——陳彥騏

開源,顧名思義,指的是開放源代碼。開放意味著任何人都可以自由閱讀每一行代碼,這給開發者無形中提出了很高的要求。

個人開發者或者小團隊往往沒有“我的代碼是要給別人看的”的意識,而是習慣于自說自話。人們在網上聊天時尚且能夠注意言辭,但在將自己的代碼開源時往往忽略了別人的感受。就以往的經歷來看,許多團隊將開源變成了任務,為了開源而開源,一手復制粘貼就把自己那套沒什么注釋和說明文檔的代碼扔到開源平臺上。這些代碼作者對于有人提問代碼細節常常不予回復,而如果指出了代碼漏洞,有禮貌的尚且能感謝并修補,更多的是石沉大海,討論也就沉寂了。

因此開發者大抵需要意識到,開源一方面是為了讓他人更好的學習,另一方面也是為了吸收他人的合理意見而改進代碼。一個代碼量稍大的項目或多或少都存在bug,被指出了問題至少說明有人在認真閱讀代碼,這也是工作被認可的標志。

就SpikingJelly的開發經歷而言,早期的框架是非常不完善的,代碼倉庫也無人問津。這時候的框架還停留在僅依靠“托管代碼”來進行版本管理的階段。當時的框架定位在自用,完全忽略了社區的存在。使我們態度發生轉變的是,在開源一段時間后,我們注意到了另一個功能定位完全類似的框架,其開發者是同一科研領域的科研人員。他們的人手非常少,只有兩個來自不同國家的開發者主導開發,最初開源的時間也與我們很接近。不同的是,他們已經累積了一定量的用戶,這些用戶基本也是來自同一領域的科研人員,以及一部分正在觀望學習,想要進入這個研究領域的新生血液。這讓我們開始思考:開源框架是給誰看的?亦即目標用戶群體究竟是誰。一個基于科研用途的框架要求使用者至少擁有基本的領域知識,這樣的門檻實際上已經把目標用戶刻畫得十分清楚了。基于此,在開發時,代碼各個模塊的功能與科研中的研究對象必須有非常清晰的對應關系,不然本領域人員都無法理解的話,就不可能再有人來使用了。我們重構了代碼的層次,使得這個映射關系更清晰,同時也開始撰寫文檔,提供一些簡單的范例。

經過這次重構之后,的確出現了少數人來關注開源倉庫,不過也僅此而已。沒有人真正使用起來,同時我們也注意到,有不少研究者在關注我們的框架時,使用著國外的同期開發的框架。于是我們又提出了問題:我們的框架有什么優勢?就問問題提出的當時,我們無法作答。因此必須設法給框架制造一個亮點。這也是迄今為止我們一直在努力的方向。

對于基礎性的編程框架而言,不同的框架往往側重不同,框架功能的多寡往往也與領域自身的發展息息相關。回顧TensorFlow和PyTorch這兩個深度學習框架的發展史,我們能夠清晰的觀察到性能與編程友好性這兩個指標之間的權衡貫穿始終。深度學習社區中不少人也同時使用兩種框架并貢獻代碼,這使得兩者能夠互相借鑒,吸收對方的優秀功能。我們也大概會遵照類似的路線,在打造自身亮點的同時,吸收現有其它框架的成功經驗。

作為一個小規模團隊,我們的開源之路道阻且長,需要時間檢驗我們的路線是否正確并不斷修正。也期待能有同領域的科研工作者通過OpenI發現與試水,為科研領域傾注源源不斷的動力。

作者:陳彥騏

上一篇:參與啟智社區開源項目心得分享——嚴翔東
下一篇:參與啟智社區開源項目心得分享——丁健豪

主站蜘蛛池模板: 日韩激情中文字幕一区二区| 91欧美一区二区三区综合在线| 3d精品重口littleballerina| 高h视频免费观看| 男人的天堂毛片| 日韩精品欧美国产精品忘忧草| 成人伊人青草久久综合网破解版| 在线观看二区三区午夜| 国产免费一期二期三期四期| 人禽无码视频在线观看| 久久精品久久精品久久精品| japanese成熟丰满熟妇| 高清一级毛片免免费看| 男人狂桶女人出白浆免费视频| 日韩欧美色视频在线观看| 天天摸天天做天天爽水多| 小蝌蚪视频在线观看www| 国产激情久久久久影院| 免费在线精品视频| 久久久噜噜噜久久熟女AA片| 91精品国产高清91久久久久久| 色偷偷91综合久久噜噜噜男男| 欧美大屁股xxxx| 女人笫一次一级毛片| 国产人人为我我为人| 亚洲日产2021三区在线| 一级做a爰片久久毛片一| 黑人巨大人精品欧美三区| 毛片免费vip会员在线看| 成人激情免费视频| 国产在线精品一区二区不卡麻豆 | 91香蕉视频污在线观看| 色88久久久久高潮综合影院| 欧洲成人午夜精品无码区久久 | 中文字幕av免费专区| 2018天天爽天天玩天天拍| 秋霞鲁丝片无码av| 日本乱理伦片在线观看网址| 国产精品jizz在线观看网站| 亚洲视频免费在线观看| 一本大道香蕉在线观看|