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

          2020 Java開源項目權威排名解讀:SpringBoot 太強了

          共 3029字,需瀏覽 7分鐘

           ·

          2021-01-14 21:45

          這篇文章對于我們做技術選型以及技術學習都有極強的指導性作用,建議收藏!

          感謝JavaGuide 的原創(chuàng),原創(chuàng)不易,若有幫助,歡迎點贊!


          開源安全基金會(OpenSSF)發(fā)布了 Github 上一些熱門開源項目的關鍵性評分數據。相比于項目的 Star 數量來說,這個關鍵性評分的含金量更高、更能反應項目的價值。

          并且,統(tǒng)計數據是按照編程語言來劃分的。涵蓋的編程語言非常廣,像 Java、C、C++、Go、JS、Php、Python 這些比較火的編程語言都在其中。

          對于每一個項目,OpenSSF 就會根據一定的規(guī)則給其一個關鍵性評分。這樣的話,關鍵性評分的計算規(guī)則就非常重要了!

          下面這些參數決定了開源項目的關鍵性評分。并且,這些參數之間的權重也不一樣。

          • created_since :項目創(chuàng)建時間(單位:月)
          • updated_since: 最近一次更新項目的時間(單位:月)
          • contributor_count : 項目貢獻者數量
          • org_count : 項目的貢獻者所屬的不同開源組織的數量
          • commit_frequency : 項目去年平均每周提交次數
          • recent_releases_count : 項目去年發(fā)行的版本數量
          • closed_issues_count : 項目在過去 90 天里關閉的 issue 數量。
          • updated_issues_count : 項目在過去 90 天里更新的 issue 數量。
          • comment_frequency : 項目在過去 90 天里每個 issue 的平均評論數量
          • dependents_count : 項目提交消息中提及的項目數

          有了參數之后,我們根據對應的算法/規(guī)則即可計算出項目的關鍵性評分(0~1 之間)。

          計算規(guī)則的話,小伙伴們可以在項目首頁找到。項目地址:https://github.com/ossf/criticality_score 。

          我這里簡單帶著小伙伴們看下 Java 項目的情況。

          對應編程語言的統(tǒng)計數據下載地址:https://commondatastorage.googleapis.com/ossf-criticality-score/index.html 。

          對于 Java 后端開發(fā)來說,項目的前 15 名中,大家最熟悉的莫過于下面這幾個項目:

          • Gradle:對比 Maven,Gradle 同樣是一款非常好用的項目構建工具 。大部分小伙伴的客觀印象是 Gradle 只在安卓項目上用的比較多,實際并不是。關于 Gradle 的使用方法可以看這篇文章:《說實話,用完 Gradle 之后,有點嫌棄 Maven 了。賊好用!》
          • Spring Boot :Java 后端開發(fā)領域殺手锏級別的框架,只要你是 Java 后端開發(fā),你就離不開它!非常好用!生態(tài)也非常棒!
          • JDK :這里指的是 OpenJDK。Oracle JDK 是 OpenJDK 的一個實現,并不是完全開源的
          • Jenkins :一款基于 Java 開發(fā)的持續(xù)集成工具,避免了我們手動進行 CI/CD 的工作。
          • Netty :我在前面的文章就提過:但凡涉及到網絡通信就必然必然離不開網絡編程。Netty 目前作為 Java 網絡編程最熱門的框架,毫不夸張地說是每個 Java 程序員必備的技能之一。如果你要學習 Netty 的話,可以看看開源的 Netty 入門教程:https://github.com/Snailclimb/netty-practical-tutorial 。
          • PMDPMD是一款常用的程序代碼檢查工具。我們在項目中一般會集成它來對自己提交的代碼做一層保障。

          我們看了關鍵性評分最高的幾個項目之后,再來看看有關技術選型的問題。

          Spring Security VS Shiro

          Spring Security 的關鍵評分位列所有 Java 項目的第 29 位。很遺憾的是,Shiro 并未上榜。

          Spring Security 是 Spring 全家桶中非常強大的一個用來做身份驗證以及權限控制的框架,我們可以輕松地擴展它來滿足我們當前系統(tǒng)安全性這方面的需求。

          Spring Security 背靠 Spring 生態(tài),可謂是有一個強大的后盾。

          雖然,相比于 Shiro 來說,Spring Security 的學習曲線更陡峭。但是,從生態(tài)等方面來說,Spring Security 依然是你做身份驗證以及權限控制時的首選框架。

          Fastjson vs Jackson

          Fastjson 和 Jackson 兩者都是比較常見的 Java 開源 JSON 解析庫。

          從 Star 數量來看的話,Fastjson 最多, Jackson 的低了很多。但是,關鍵性評分 Jackson 領先了很多,這個也是在我的意料之中。

          主要也是因為 Fastjson 的代碼質量以及設計更差,并且,經常被爆出有安全漏洞(設計問題)。雖然 Fastjson 在速度方面稍稍取勝,但是,差別和 Jackson 是不太明顯的。

          Spring MVC 默認采用 Jackson 解析 Json 也是有它的道理, 肯定不是 Spring 的那群巨佬拍個桌子就能決定的。

          綜上,我更推薦使用 Jackson 作為項目的 JSON 解析庫。

          Flyway vs Liquibase

          Flyway 和 Liquibase 兩者都是比較常見的數據庫遷移工具。

          Flyway 的關鍵評分位列所有 Java 項目的第 70 位,Liquibaseo 未上榜。

          Guava vs Hutool

          Guava 和 Hutool 兩者都是目前非常好用的 Java 第三方工具類庫。Guava 是 google 開源的,Hutool 是純國產。

          Guava 的關鍵性評分位列所有 Java 項目的第 78 位,而 Hutool 位于第 196 位。

          相關文章:

          ShardingSphere vs MyCat

          ShardingSphere (包括 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar ) 和 MyCat 兩者都是常用分布式數據庫中間件,分庫分表等場景都會用到。

          ShardingSphere 項目是當當捐入 Apache 的,目前主要由京東數科的一些巨佬維護。Mycat 是基于阿里 Cobar 演變而來。

          ShardingSphere 的關鍵評分位列所有 Java 項目的第 72 位,MyCat 并為上榜。

          這也是意料之中的事情了,畢竟 ShardingSphere 的生態(tài)體系更加完善,社區(qū)更加活躍,文檔更加完善,更新和發(fā)布也更加頻繁。從任何角度來說,你都沒有理由選擇 MyCat 。





          0、最后一天了,四個關鍵字回顧程序員小躍的2020

          1、程序員小躍:三十而立,和大家一起「乘風破浪」

          2、這八個成長陷阱,過來人很想告訴你!

          瀏覽 104
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  日批网站视频 | 亚洲高清视频无码 | 精品黄色网页 | 久久99国产免费 | 鸡巴操美女 |