[開源推薦]58同城開源輕量級Java Web框架 Argo

2021-01-21 CSDN技術社區

如今,開源已成為業界網際網路公司的一種發展趨勢,許多公司在GitHub平臺上開源其產品。北京時間3月19日,58同城開源其輕量級Java Web框架——Argo。

歷史

Argo起源於58同城的內部Web框架wf(Web Framework)。

據58同城內部數據顯示,目前wf支撐著58同城幾乎所有的Web站點,包括WAP和手機端的訪問等,現在wf每天處理10億級的請求。經過長時間的運作與運行,證明wf是一個可靠的、高效的Web框架。

作為一個有一定規模的網際網路企業,如果在變化的網際網路環境中上線一個項目,在軟體開發中需要對三方面進行平衡:

組織/公司,在一個組織內部,需要每個項目開發儘量有統一的風格、架構,學習成本、維護成本等儘可能低。 運維,希望每個站點的配置和可執行部分分離,部署的方式相同。 項目內部,希望程式設計師聚焦在業務上,可以快速實現產品需求、響應產品變化。 在此基礎上,我們開發了wf。

Argo在wf做了大量優化和重構,以適應各組織軟體開發的個性化需求,提升了系統性能,具有更好的可擴展性。Argo的開源反過來也促進wf2.0的開發。

理念

約定優於配置,減少軟體開發人員需做決定的數量,獲得簡單的好處,而又不失靈活性。Argo體系中有且只有一個組織級約定,規定包的命名、配置文件路徑、日誌文件路徑等。組織的約定是不容侵犯,每個項目在組織級約定下工作。組織級約定建議以jar形式下發給各項目。 簡單,Argo可以不需要任何配置文件,項目代碼結構簡單,易於維護。 紀律,包和類的命名都受組織級約定的控制,任何違反約定的行為可能導致系統無法正常運行。特徵

Argo不是一個通用的Web框架,一個問題解決方案可能有很多,但在Argo中只提供一種解決方案。Argo在以下約定中工作:

SEO友好的URL結構,Argo天然支持RESTful的url結構,並能自動匹配合適的參數。 零配置,甚至你不要web.xml就能在tomcat上運行。 插拔式組件架構,可以靈活擴張功能。 高安全性,提供集群模式下,避免ip欺騙等功能。系統約定

Argo不是一個通用的Web框架,一個問題解決方案可能有很多,但在Argo中只提供一種解決方案。Argo在以下約定中工作:

servlet 3.0環境,主要針對Tomcat 7.x。 基於 guice的Ioc,組織和項目可以各提供一個module注入模塊,而且module的命名必須符合約定。 maven依賴,項目的代碼體系和maven默認代碼體系一致,maven以插件提供開發過程中所需要的開發運行環境( jetty:run或 tomcat7:run)。

開發者們對此次開源的反響非常強烈,幾乎一天時間就被收藏90次,fork34個。

那麼,微博上的網友是如何響應的呢?不妨一起來看下:

SunnyerEric孫晗曉:

現在到處都有開源項目可以用···傳統的軟體銷售商們要顫抖了···以後IT銷售這個行業會逐漸消失的吧。@微博平臺架構 也得行動了

得意的那些事兒:

第一時間用Maven構建了項目,初看了代碼。總結一下,1 大量使用零配置的谷歌GuiceIOC;2 使用約定優於配置,各項目可以高效使用公用的WF;3 充分利用2,加載Controller,Model和Conf ;4 看到說明使用 Google的Guice IOC,大亮點!Guice速度比Spring快很多,而且不需要配置,亮點

欣謙-謙謙君子:

這個readme挺有專業水準。另,基於ioc和約定,web frmwork邏輯可以寫好看,但難點在怎麼簡化page view/flow。

是否會掀起國內的開源熱潮呢?也有網友直接驚呼:希望中國的開源事業越來越強大!各位網友不妨一起來討論下。

開源地址:https://github.com/58code/Argo

相關焦點

  • 開源 | Umajs:輕量級 Node.js Web 框架
    3.簡介:Umajs 是58同城推出的一款輕量級 node web 框架。有鑑於此,我們推出了使用 TypeScript 開發的 node web 框架:Umajs 。這裡主要和大家分享一下 Umajs 在搭建過程中的設計及其應用的介紹。
  • 總結Java部分的框架和開源項目
    【StrutsIDE:用於Struts輔助開發的一個Eclipse插件】  Hibernate【Java開源持久層框架】  Hibernate是一個開放原始碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程式設計師可以隨心所欲的使用對象編程思維來操縱資料庫。
  • web前端開發必不可少開源框架,學到就是賺到
    >、好用的開源框架。是從Twitter的Bootstrap派生的開源CSS框架。、現代化的CSS框架 。bulma是一個非常輕量級的框架、他只需要一個Css,具有擁有許多web組件各位可以在設計中使用它們
  • Web前端開發必不可少的9個開源框架
    3、Material Components for the webMaterial Components for the web(MDC Web),是谷歌專為Web設計的全新前端框架。MDC Web可幫助開發人員執行Material Design,組件由谷歌的核心工程師團隊和UX設計人員開發。
  • 三大最棒的開源Web開發模板或框架
    如今,很少有程式設計師從頭開始設計web網頁了。大多數程式設計師都使用預製模板設計,自定義適合其內容管理系統的選擇。即使是構建複雜Web應用程式的程式設計師也依賴於模板庫。  但是,如果要為內容管理系統或靜態站點生成器構建新模板,該怎麼辦?如果想使用單個目標網頁或少量不太可能經常更改的靜態網頁構建簡單網站,該怎麼辦?
  • cms java 開源 - CSDN
    eAdmin/OWX 基於java/jsp的SiteEditor, CMS,列表生成器等開源軟體。包括:模塊,XML配置,Struts,自己的API,組件,WYSIWYG,多語言,多用戶,基於Web的管理器。
  • 推薦14款開源的Web應用測試工具
    1.JMeter是Apache組織的開放原始碼項目,它是功能和性能測試的工具,100%的用java實現。關鍵特性:泛型測試方法靈活的測試腳本編寫分布式框架成熟的HTTP支持3.Multi-MechanizeMulti-Mechanize是一個開源的Web性能和負載測試框架,可讓你並發運行多個Python腳本來對網站或者Web服務進行壓力測試。
  • 實用篇 | 34 個最火的 Python 開源框架
    我們從近 10000 個 Python 開源框架中評價整理的 34 個最為好用的開源框架,它們細分可以分為 Python Toolkit、Web、Terminal、Code Editor、Debugging、complier、Data Related、Chart8 類,分布情況如下圖:
  • 開源中國社區:2014 年國產開源軟體 TOP 100
    Amze UIAmaze UI是中國首個開源HTML5 跨屏前端框架。Amaze UI 是一個輕量級、Mobile first的前端框架, 基於開源社區流行前端框架編寫。IKAnalyzerIK Analyzer是一個開源的,基於java語言開發的輕量級的中文分詞工具包。
  • 27個阿里 Java 開源項目,值得收藏
    服務框架 DubboApache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。
  • 27個最新的阿里 Java 開源項目,很全面
    服務框架 DubboApache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。
  • 開源|Magpie:58 跨平臺技術應用及 Flutter 實踐概覽
    開源項目專題系列(八)1.開源項目名稱:magpie,magpie_sdk,magpie_fly,magpie_log2.介紹58對Flutter混合工程的工程化思考,及Magpie一體化解決方案平臺概覽,於2020年4月份開源。58跨平臺技術應用由各種不同需求要求,及每種跨平臺技術限制,現在的項目裡混合了多種跨平臺框架,不同的需求要求,需求階段採用不同的跨平臺技術。
  • 非常全面的27個阿里 Java 開源項目總結
    服務框架 DubboApache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。
  • 阿里巴巴的26款超強Java開源項目
    ◇ 地址:https://github.com/alibaba/fastjson◆ 服務框架 DubboApache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用
  • 4款基於Django框架的開源軟體推薦
    Django是一款高性能的Python web框架,鼓勵快速開發和乾淨、務實的設計。Django項目是一個定製框架,它源自一個在線新聞Web站點,於2005年以開源的形式被釋放出來。Django的重點是儘可能地自動化,堅持DRY原則。
  • 4 款基於 Django 框架的開源軟體推薦
    Django 是一款高性能的Python web框架,鼓勵快速開發和乾淨、務實的設計。
  • 最受歡迎 12 個 Python 開源框架,你用過哪些?
    今天給大家帶來了12個在GitHub等開源網站中最受歡迎的Python開源框架。如果你正在學習python,那麼這12個開源框架,千萬別錯過,這些框架包括事件I/O,OLAP,Web開發,高性能網絡通信,測試,爬蟲等。雖說不上是全都有,但也足夠滿足你了。
  • 媒體評熱門開源軟體Top100 17173技術大俠上榜
    編者按:日前,oschina評選出了國人開發的熱門開源軟體TOP100排行榜,其中,來自17173的技術大俠林良益開發的IKAnalyzer上榜。IK Analyzer 是一個開源的,基於java語言開發的輕量級的中文分詞工具包。
  • 5個主流的Java開源IDE工具
    Java框架能夠簡化程式設計師的工作。這些框架被設計和開發用於在任何伺服器環境上運行任意應用程式;包括解析注釋、掃描描述符、加載配置和在Java虛擬機(JVM)上啟動實際服務方面的動態行為。控制這麼大的範圍需要更多的代碼,使得減少內存佔用或加速新應用程式的啟動時間變得困難。無論如何,Java在當今使用的程式語言中始終排在前三名,在TIOBE索引中涉及700萬到1000萬的程式設計師和開發者。
  • 5個主流的Java開源IDE工具
    Java框架能夠簡化程式設計師的工作。這些框架被設計和開發用於在任何伺服器環境上運行任意應用程式;包括解析注釋、掃描描述符、加載配置和在Java虛擬機(JVM)上啟動實際服務方面的動態行為。控制這麼大的範圍需要更多的代碼,使得減少內存佔用或加速新應用程式的啟動時間變得困難。