<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深度思考: 如何做好一個開源項目?

          共 4653字,需瀏覽 10分鐘

           ·

          2022-01-08 12:06

          這篇文章不是純粹的技術(shù)文章, 更多的是我對編程技術(shù), 國內(nèi)技術(shù)社區(qū), 以及自身技術(shù)之路的一個回顧和總結(jié), 我會將自己的技術(shù)價值觀和開源經(jīng)驗, 和大家一一分享. 如果你也曾對作為程序員的未來迷茫過, 相信這篇文章一定會對你有所幫助.

          關(guān)注并將「趣談前端」設(shè)為星標

          每早08:30按時推送技術(shù)干貨/優(yōu)秀開源/技術(shù)思維

          接下來我會按照如下目錄大綱和大家分享我自己的感悟:

          • 我對國內(nèi)開源項目的思考
          • 國內(nèi)開源項目/社區(qū)的不良風向, 是如何加速招聘的“內(nèi)卷”?
          • 做開源項目能帶給我們什么?
          • 從零到一, 如何打造一個高執(zhí)行力,快速迭代的開源項目?
          • 分享幾個有價值的開源方向


          我對國內(nèi)開源項目的思考

          首先在闡述任何觀點前, 大家都應該以一種批判的角度來看待和消化, 因為任何人的思考和觀點都可能是局限的.

          項目開源是一件非常崇高且有意思的事情. 這是我曾經(jīng)一直持有的看法. 國外的開源大佬TJ等人, 國內(nèi)的湯姆大叔等, 一直是我的技術(shù)偶像.

          他們和我的唯一共同點就是不及格的發(fā)量, 這讓我找到了些許安慰.

          閱讀這些大佬們優(yōu)秀的開源項目讓我成長很多, 也學到了真正有價值的開源項目該如何去做.

          但是最近2年, 我在看githubtrend的時候, 不免有點尷尬, 同時夾雜著些許的力不從心. 當我看到大量國內(nèi)割韭菜式的開源項目之后, 不禁在草稿紙上寫了一句:

          好了, 不吐槽了, 接下來總結(jié)一下我對優(yōu)秀開源項目的一些感悟.

          從項目自生結(jié)構(gòu)的角度

          • 項目目錄結(jié)構(gòu)清晰
          • 文件/文件夾命名規(guī)范, 可讀性強
          • 清晰完整的readme介紹
            • 簡潔的項目描述
            • 項目版本信息, 辨識度高的logo
            • 項目應用場景介紹, demo案例
            • api使用文檔
            • 清晰的todo和undo清單
            • 貢獻指引和相關(guān)生態(tài)
          • 規(guī)范而詳細的package.json文件(或者項目描述文件)

          從項目實用性角度

          • 解決了當下開發(fā)環(huán)境的某一痛點(比如模塊化解決方案amd,cmd等)
          • 能快速提高開發(fā)效率(提效工具, 工具/類庫等)
          • 能很好的解決某一框架遇到的瓶頸(比如vue/react之于jquery)
          • 能很好的降低使用某一框架開發(fā)項目的難度(比如vue/react/jq等的插件)
          • 能很好的解決企業(yè)通用業(yè)務(wù)需求(比如antd-pro, egg, H5-Dooring)
          • 能讓程序員快速理解開源項目的開源(比如翻譯類文檔, 技術(shù)思考性穩(wěn)定, 能快速磨平認知差異)

          當然還有一些方向可以去思考, 比如底層技術(shù)方案(操作系統(tǒng), 基礎(chǔ)語言等), 離我太遠, 暫時擱置.

          國內(nèi)開源項目/社區(qū)的不良風向, 是如何加速招聘的“內(nèi)卷”?

          內(nèi)卷: 本意是一類文化模式達到了某種最終的形態(tài)以后,既沒有辦法穩(wěn)定下來,也沒有辦法轉(zhuǎn)變?yōu)樾碌男螒B(tài),而只能不斷地在內(nèi)部變得更加復雜的現(xiàn)象。

          最近兩年大家有沒有發(fā)現(xiàn), 各大技術(shù)社區(qū)內(nèi)充斥著大量求職面試相關(guān)的文章, 層次不齊, 千篇多少有點一“綠”. 想認真看看技術(shù)文章, 還得花時間往下多翻幾次, 因為頂部推薦基本被面試文, 進大廠文霸占了.

          雖然求職找工作需要準備, 但是我個人覺得沒必要過渡準備, 否則必然會遭遇我們最熟悉的名場面: "卷王面試官" 和“卷心菜求職者”的相愛相殺.

          這里我來給大家伙分析一下為什么過度釋放面經(jīng)導致越來越卷的原因.

          面試官想: 出什么面試題呢, 社區(qū)上這么多面經(jīng), 想必大家一定有所準備, 那就來點剛的(有難度的).

          求職者想: 最近看各種面經(jīng), 不管是大廠小廠, 面試題都這么難, 我要多刷幾道題.

          好的, 還沒完, 接下來就是 github上的1000+筆/面試題, 刷去吧, 刷完了你沒進大廠, 不是題的原因, 是你的原因.

          好家伙, 被這樣的環(huán)境培養(yǎng)出來的程序員, 未來對技術(shù)能有多大的想象空間呢? 這里不經(jīng)讓我想到我另一位偶像的經(jīng)典名言:

          想象力比知識更重要. —— Albert Einstein

          同時想到一位想象力觸及火星的國外老鐵: 

          所以說這一節(jié)我主要想表達三個觀點:

          • 被刷題榨干的求職者未來會對技術(shù)還產(chǎn)生多大的長遠興趣? 
          • 國內(nèi)開源環(huán)境充斥著大同小異的面試題, 國內(nèi)個人開源項目未來還會有多大的想象空間? 難道國內(nèi)有價值的開源真的是有大公司才能玩的起?
          • 沒有持續(xù)的興趣和想象力, 永遠做不出好的有價值的開源項目.

          這里當然不是不鼓勵這些, 意在不要過渡重視刷題, 其實偶爾做做有價值的開源項目, 也會為面試加分. 畢竟在近3年的求職面試中, 我是從來沒有為面試做過任何準備的.

          做開源項目能帶給我們什么?

          在上面幾小節(jié)的觀點中, 各位提煉有價值的觀點即可. 我們接下來進入今天的正題.

          做開源項目能帶給我什么呢? 這也許是大部分想做開源項目的人的一個疑問. 大部分人也會走入一定的誤區(qū), 雖然這個問題很簡單, 但是簡單的問題往往更復雜.

          首先一部分人會覺得, 開源項目可以給自己積累項目經(jīng)驗, 簡歷上加分, 鞏固自己的知識體系, 積累人氣等等. 我之前也是怎么認為的. 但是這種開源思維只適合初級開源, 一般的結(jié)果是: 雖然開源項目讓自己加深了對技術(shù)的熟練度, 簡歷上也可以寫寫了, 但是隨著時間流逝, 最終會被遺忘.

          所以現(xiàn)在的我, 在思考這個問題前, 一定會先問自己幾個問題:

          • 我做這個開源是為了解決什么問題?
          • 目前已有的解決方案有哪些?
          • 我怎么做, 才能做的比已有的方案更好?
          • 我如何才能讓我的項目持續(xù)發(fā)展下去, 而不是過眼云煙?

          在解答了以上4個問題之后, 我們做開源項目會更有目標和框架感, 也更能明確自己能得到什么:

          • 獨一無二的解決方案
          • 對該領(lǐng)域有更深度的研究和了解
          • 對未來職業(yè)發(fā)展更有談資
          • 收獲了更多技術(shù)方案和開源小伙伴
          • 通過項目價值體現(xiàn)個人價值和某一領(lǐng)域影響力
          • 收獲money, 流量, 企業(yè)offer

          所以我們不要過度的追求結(jié)果, 我們在做有價值的開源項目的過程中, 自然會讓自己變得更有價值. 從做H5-Dooring這個項目之前, 我就已經(jīng)充分回答了自己提的上述4個問題, 所以項目最終的結(jié)果, 大家也有目共睹. 在我做完H5-Dooring第一版之后, 為了解決第四個問題, 我就篩選了幾個志同道合的朋友, 和我一起迭代, 讓項目按照提前規(guī)劃持續(xù)推進下去.

          從零到一, 如何打造一個高執(zhí)行力,快速迭代的開源項目?

          就以我自己實際經(jīng)歷作為佐證, 來談?wù)勯_源項目的打磨過程.

          不要問我這個流程為什么像個“心”形, 我只是想表達開源作者們10個有7個都是為“愛”發(fā)電. (所以默默為這些優(yōu)秀的人??)

          1.目標規(guī)劃期

          首先在明確了為什么要做這個項目之后, 我們需要對自己的開源項目有個清晰完整的規(guī)劃路線. 比如1.0版本需要做哪些功能, 哪些功能是高優(yōu)先級一定要完成的,哪些是不緊急的, 可以后期在完成. 所以我們要充分利用好四象限法則.

          其次就是明確的功能拆分, 需求池管理, 學會過濾需求, 而不是一股腦的全盤接收, 因為有時候用戶提的需求他自己也不知道, 所以需要評審.

          有了以上目標規(guī)劃和管理法則, 我們就能有一個清晰而高效的目標規(guī)劃了.

          2. 項目基建期

          項目基建期主要是項目的雛形, 這個階段一定是項目負責人搭建, 需要對項目的整體技術(shù)選型, 架構(gòu), 解決方案設(shè)計等有完整的思路和落地方案. 這樣才能為以后團隊開發(fā), 迭代和項目優(yōu)化打下基礎(chǔ), 否則最終會亂成一片. H5-Dooring在項目初期也是按照這個思路走的, 我先把項目完整流程設(shè)計出來, 并在github上開源, 后面才能找到一批直觀且感興趣的朋友來維護和優(yōu)化.

          3.團隊組建期

          團隊組建也是非常關(guān)鍵的環(huán)節(jié). 首先創(chuàng)始人需要具備一下特質(zhì):

          • 具備一定的技術(shù)實力(能獨立做出解決方案, 把控整個項目)
          • 對項目有一定研究深度并且有明確的目標規(guī)劃
          • 絕對的執(zhí)行力, 發(fā)揮領(lǐng)頭羊作用
          • 格局放大, 接受能力比你強或者比你弱的朋友, 發(fā)揮其長處
          • 對項目有堅定的信念
          • 謙虛 + 追求極致
          • 相互學習和共同成長的態(tài)度和團隊相處

          只有具備以上3點以上, 才能打造高效且有凝聚力的團隊.

          同時, 我們只有選擇價值觀相同, 對項目感興趣, 且有一定執(zhí)行力的協(xié)作者, 開源項目才能穩(wěn)步發(fā)展下去. 所以團隊人數(shù)多不一定做的就快, 團隊人數(shù)少, 也不一定做的就慢. 所以之前有很多朋友想加入dooring, 我都會請自和他們聊一下, 做一些基礎(chǔ)性的考核和篩選. 目前我們DooringX的團隊雖然人不多, 但是個有專長, 相信未來一定會把項目做的非常出色.

          4.團隊協(xié)作/磨合期

          團隊協(xié)作/磨合也就是我們在任務(wù)分工時, 相互之間做的一些交流, 溝通等.

          我們需要讓每個共建者明確我們共同的目標, 以及各自的分工. 這個階段往往也是考核團隊的最佳時期, 我們可以發(fā)現(xiàn)團隊不同的成員擅長什么,可以勝任哪些工作, 哪些任務(wù)可以讓他通過項目來獲得提高和成長.

          所以定期交流必不可少. 在dooring的磨合期確實也發(fā)現(xiàn)了一些不合適的朋友, 有些可能時間緊, 有些是價值觀問題, 這些都需要溝通解決, 解決不了就要果斷處理. 項目發(fā)起人不用過渡考慮個人感情問題, 彼此創(chuàng)造相對舒適的環(huán)境才是最重要的. 畢竟各自都有需要奔赴的彼岸.(有點談戀愛分手論的感覺, 就此打住??)

          還有一點就是善用人才, 虛心聽取優(yōu)秀的建議. 每個人都是團隊的貢獻者, 各司其職, 我們需要沿著我們目標的主線不斷前進, 所以需要給合適的人分配合適的任務(wù), 讓優(yōu)秀的人帶動大家一起成長. 創(chuàng)始人是讓項目成功的助推器,所以需要接納優(yōu)秀的建議和發(fā)展方向, 從而審視自身的局限. 畢竟, 每個人都有閃閃發(fā)光的地方.

          5.版本迭代和復盤期

          每個階段我們的項目都需要有一次復盤, 反思. 所以做完是第一步, 如何讓項目做的更好, 才是項目長期發(fā)展的關(guān)鍵. 團隊中每個人都可以提建議, 提出自己的看法和發(fā)展方向, 不斷的頭腦風暴, 把項目做到極致. 當然其中需要把控, 取舍. 就好像PDCA 循環(huán).

          分享幾個有價值的開源方向和開源項目

          選擇開源的方向其實我在上面的開源項目的實用性中已經(jīng)闡述, 不過前提還是需要根據(jù)自身偏好和擅長點來選擇, 筆者這里列出幾個可以做的開源方向:

          • 頁面可視化搭建平臺
          • 埋點可視化搭建平臺
          • 基于瀏覽器的文檔引擎
          • 協(xié)同系統(tǒng)
          • 智能客服插件
          • 鴻蒙系統(tǒng)工具插件
          • 無線端js應用搭建平臺
          • 可視化圖形引擎
          • js ai相關(guān)
          • 跨端搭建平臺

          大家也可以參與如下幾個現(xiàn)成的開源項目, 畢竟創(chuàng)始人都非常nice:

          • H5-Dooring 可視化H5編輯器
          • helloworld-Co/html2md 強大的html專md工具
          • ant-simple-pro 支持多框架的開箱即用的后臺管理模版
          • mengshukeji/Luckysheet 在線電子表格項目(在線excel)
          • MrXujiang/pc-Dooring 可視化PC端編輯器
          • dooring-electron-lowcode 基于electron的lowcode桌面端編輯器

          如果這篇文章對你有幫助, 請點贊 + 在看, 讓我們一起營造良好的開源環(huán)境, 共同抵制內(nèi)卷王和卷心菜! 你的分享是對我最大的鼓勵

          文中部分圖片來源于網(wǎng)絡(luò)
          瀏覽 96
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  奥美操逼视频 | 在线 天堂国产产 | 亚洲系列在线 | 四虎国产精品成人久久 | 国产伦子伦免费 |