<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>

          臥槽,5.4 萬 GitHub Star 沒了!

          共 3249字,需瀏覽 7分鐘

           ·

          2022-04-28 22:11

          來源:機(jī)器之心? ?編輯:蛋醬、小舟

          我們找 GitHub CEO 求助,但為時(shí)已晚。

          2022 年 2 月 15 日,GitHub 通過推特平臺(tái)廣播了一則消息:「我們的朋友 HTTPie 最近不小心將自己設(shè)為了私密,丟掉了所有的 Star。如果你仍然愛它,就給它一顆 Star 作為情人節(jié)禮物。」


          10 年攢下的 Star 突然清零?這是怎么回事?

          昨天,項(xiàng)目作者 Jakub Rozto?il 在博客中正式回應(yīng)了這一事件。

          十年獲得 5.4W Star 的開源項(xiàng)目

          HTTPie 項(xiàng)目的第一次提交還是在十年之前。


          可能一些人對(duì)這個(gè)項(xiàng)目不夠熟悉,這是一個(gè)開源 CLI HTTP 客戶端。團(tuán)隊(duì)從頭開始構(gòu)建了它,以使終端的 API 交互盡可能人性化。



          HTTPie(發(fā)音為 aitch-tee-tee-pie)可用于測(cè)試、調(diào)試以及通常與 API 和 HTTP 服務(wù)器交互。http&https 命令允許創(chuàng)建和發(fā)送任意 HTTP 請(qǐng)求。它們使用簡(jiǎn)單自然的語法,并提供格式化和彩色輸出。

          從 2012 年 2 月 25 日在哥本哈根的第一次公開提交之后,項(xiàng)目作者 Jakub Rozto?il 就一直在 GitHub 平臺(tái)上托管該項(xiàng)目。他自己也是 GitHub 平臺(tái)的忠實(shí)粉絲。



          這些年來,HTTPie 逐漸成長(zhǎng)為平臺(tái)上最受歡迎的 API 工具,收獲了 5.4W 個(gè) Star 和 1k 的關(guān)注。



          HTTPie 項(xiàng)目受益于 GitHub 的「social coding」功能,同時(shí),GitHub 也受益于自身平臺(tái)上托管的這個(gè)受歡迎的項(xiàng)目。在過去十年中,可能有數(shù)百萬開發(fā)人員訪問了 HTTPie 項(xiàng)目的 GitHub 頁面。

          但在幾周前,HTTPie 項(xiàng)目積累的 5.4W Star 一夜清零。

          在這篇博客中,項(xiàng)目作者 Jakub Rozto?il 詳細(xì)介紹了事情經(jīng)過:

          發(fā)生了什么?

          我不小心將項(xiàng)目的 repo 設(shè)為了私有,GitHub 級(jí)聯(lián)刪除了我們花費(fèi) 10 年時(shí)間建立的社區(qū)。

          這意味著什么?

          如果你是一位下游維護(hù)者,或者曾經(jīng)關(guān)注過 HTTPie 以獲取通知,你可能需要重新關(guān)注一下 repo。

          Star 也是一樣,如果過去十年里你曾為該項(xiàng)目加注 Star,那現(xiàn)在 HTTPie 應(yīng)該已不再是你的 Star 項(xiàng)目列表中的一員。

          為什么要將 repo 設(shè)為私有?

          將 repo 設(shè)為私有會(huì)永久刪除所有關(guān)注者和 Star,這是 GitHub 的一個(gè)特性。我知道這一點(diǎn),而且我顯然無意 httpie/httpie 隱藏。


          最直接的原因是我認(rèn)為我在另一個(gè) repo 中——一個(gè)沒有內(nèi)容且 0 Star 的項(xiàng)目。我真正打算做的是隱藏 HTTPie 組織的配置文件 README,這是我在一周前創(chuàng)建但沒有機(jī)會(huì)填充的。

          讓我走上錯(cuò)誤道路的是一個(gè)完全不相關(guān)的操作:我剛剛在我的個(gè)人資料上做了同樣的事情(即隱藏了一個(gè)空的 README),將其設(shè)為 jakubroztocil/jakubroztocil 私有。

          在配置文件和存儲(chǔ)庫(kù)方面,GitHub 的概念模型會(huì)將用戶和組織視為非常相似的實(shí)體。在這種情況下,由于我只是想在我們組織的個(gè)人資料上重復(fù)相同的操作,我的大腦切換到了「自動(dòng)駕駛」模式。

          目前我沒有意識(shí)到這個(gè)包含配置文件 README 的特殊 repo 的命名存在不一致問題,并且它對(duì)于用戶和組織有所不同:name/name 與 name/.github.

          這就是為什么我一開始要隱藏 httpie/httpie,而不是 httpie/.github,并且沒有意識(shí)到我的錯(cuò)誤。

          但是,還有一個(gè)確認(rèn)流程?

          確實(shí)有一個(gè)確認(rèn)框,旨在阻止像我這樣的情況下的用戶做一些愚蠢的事情。它會(huì)告訴你「你將永遠(yuǎn)失去這個(gè)存儲(chǔ)庫(kù)的所有 Star 和關(guān)注者」。

          問題在于,對(duì)于沒有提交和任何 Star 的 repo ,它的提示框和具有 10 年歷史及 55k Star 與關(guān)注者的 repo 是完全一樣的。它說的是:「警告:這是一個(gè)潛在的破壞性行動(dòng)。」



          套用一句話:一個(gè)盒子告訴你「你要拆房子!如果里面有人,他們都會(huì)死。」但如果你混淆了地址并認(rèn)為你正準(zhǔn)備拆的是一個(gè)空房子,那后果將不堪設(shè)想。

          實(shí)際上,此處的對(duì)話應(yīng)該更加結(jié)合上下文,并且再次解釋一下情況,比如說「你即將殺死 55000 人。」那肯定會(huì)讓我停下來。

          一番操作之后

          當(dāng)我回到組織頁面時(shí),你可以想象我的困惑,我不僅仍然可以看到空的 README,同時(shí)我們最受歡迎的 repo 找不到了。片刻之后,我意識(shí)到發(fā)生了什么事。所以我回到 repo 的設(shè)置來翻轉(zhuǎn)開關(guān)。但 GitHub 不允許我這樣做——整整半個(gè)小時(shí)。


          為什么這么久呢?因?yàn)檫@是 GitHub 級(jí)聯(lián)刪除我們 10 年來的 Star 和關(guān)注者所花費(fèi)的時(shí)間。而且我沒有辦法阻止這個(gè)過程。我所能做的就是開始發(fā)消息給 GitHub 尋求支持,刷新頁面并等待 Star 數(shù)量達(dá)到零,然后才能再次將其公開。微信搜索公眾號(hào):Java項(xiàng)目精選,回復(fù):java 領(lǐng)取資料 。

          為什么 GitHub 不給我們恢復(fù)呢?

          GitHub 顯然有備份,并且有恢復(fù) repo 的方法。GitHub 團(tuán)隊(duì)曾經(jīng)自己不小心將 GitHub 桌面應(yīng)用程序 repo 設(shè)為私有,然后他們?cè)趲讉€(gè)小時(shí)內(nèi)就恢復(fù)了一切,當(dāng)時(shí)前 GitHub CEO 給出的解釋是:


          然而,在我們的事件中,他們拒絕這樣做,理由是操作具有不良影響,并且會(huì)消耗資源成本。我們甚至提出為所需的任何資源提供經(jīng)濟(jì)補(bǔ)償,但遺憾的是,他們還是拒絕了。相對(duì)于在 GitHub 上恢復(fù)最受歡迎的社區(qū)項(xiàng)目之一以外,他們還有其他優(yōu)先事項(xiàng)。

          因此,GitHub 恢復(fù)存儲(chǔ)庫(kù)的前提是他們自己的項(xiàng)目,而不是社區(qū)項(xiàng)目。

          經(jīng)驗(yàn)教訓(xùn)

          這次危機(jī)讓我們得到了很多教訓(xùn),這里主要分享 3 點(diǎn):

          教訓(xùn) 1:UI/UX 設(shè)計(jì)

          彈出的對(duì)話框要清晰明了,減少抽象的文字說明。以一種不需要用戶思索的方式設(shè)計(jì)確認(rèn)對(duì)話框。當(dāng)用戶要?jiǎng)h除或損壞某些文件時(shí),不要用抽象的語言描述,以免讓用戶難以了解即將發(fā)生的狀況,特別是會(huì)造成級(jí)聯(lián)刪除的行為。例如,以下是我們?cè)?HTTPie for Desktop 中的處理方式:


          對(duì)話框需要反映操作影響的嚴(yán)重性。當(dāng)完全沒有額外影響時(shí),對(duì)話框應(yīng)該盡量簡(jiǎn)單,否則會(huì)浪費(fèi)用戶有限的注意力,從而降低用戶的敏感度:



          教訓(xùn) 2:數(shù)據(jù)庫(kù)設(shè)計(jì)

          使用軟刪除(soft-delete)。人非圣賢,孰能無過。人們?cè)趧h除操作上可能會(huì)犯錯(cuò)誤,因此應(yīng)該盡可能使用軟刪除,延遲硬刪除(hard-delete)操作。



          教訓(xùn) 3:與 GitHub 的關(guān)系

          這是我們的人為錯(cuò)誤,GitHub 明確表示他們沒有法律義務(wù)幫助我們。我們長(zhǎng)達(dá)十年的互惠互利關(guān)系是根據(jù) GitHub 的服務(wù)條款確定的,除此之外,再無其他。

          畢竟,GitHub 有過有爭(zhēng)議的行為,這些行為違背了開源社區(qū)的精神。微軟(已收購(gòu) GitHub)盡管擁有一定的開源精神,但并不總是有很好的聲譽(yù)。

          我們希望 GitHub / 微軟 有朝一日能夠改變他們的態(tài)度,并恢復(fù)我們的項(xiàng)目社區(qū),他們擁有實(shí)現(xiàn)這一點(diǎn)的所有數(shù)據(jù)和方法。我們也希望他們改進(jìn) UI 和數(shù)據(jù)庫(kù)設(shè)計(jì),以防止這種情況未來發(fā)生在其他團(tuán)隊(duì)身上。

          最后,盡管我們的 GitHub star 量化為虛無,但 HTTPie 現(xiàn)在發(fā)展得非常好,從最初作為一個(gè)副項(xiàng)目到現(xiàn)在變成了一家公司,我們的團(tuán)隊(duì)正在將 HTTPie 發(fā)展成一個(gè) API 開發(fā)平臺(tái)。用于 Web 和桌面的 HTTPie 私有測(cè)試版收到了很好的反饋,我們迫不及待地想在接下來的幾周內(nèi)公開發(fā)布它。

          參考鏈接:
          https://httpie.io/blog/stardust

          ? ? ?

          1、無意中發(fā)現(xiàn)了一位清華妹子的資料庫(kù)!
          2、MyBatis 二級(jí)緩存 關(guān)聯(lián)刷新實(shí)現(xiàn)
          3、Spring Boot 接入支付寶完整流程實(shí)戰(zhàn)
          4、用了 HTTPS 就一定安全嗎?
          5、IntelliJ IDEA快捷鍵大全 + 動(dòng)圖演示


          點(diǎn)分享

          點(diǎn)收藏

          點(diǎn)點(diǎn)贊

          點(diǎn)在看

          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  欧美色图第三页 | 日韩爱操视频 | 国产专业网址在线 | 黄色天天干 | 亚洲无码久久 |