<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ~怪^_*獸~

    虛榮鎖身軀 心靈給酒醉 脆弱人類 懶問何為對
    (怪獸樂園Q群:75375912

    常用鏈接

    統計

    最新評論

    【技術分享】發布本人所屬 Java 與 C++ 開源項目

     *** Java ***

    1、Java 全能高效 MVC & REST 開發框架 Portal-Basic
    2、Java 日志切割清理工具 Log-Cutter

    *** C++ ***
    1、通用高性能 Windows Socket 組件 HP-Socket
    2、Windows C++ 應用程序通用日志組件 VC-Logger


    一、Java

    1、Java 全能高效 MVC & REST 開發框架 Portal-Basic

    Portal-Basic 是一套功能完備的高性能 Full-Stack Web 應用開發框架,內置可擴展的 MVC Web 基礎架構和 DAO 數據庫訪問組件(內部已提供了 Hibernate、MyBatis 與 JDBC DAO 組件),集成了 Action 攔截、Form / Dao / Spring Bean 裝配、國際化、文件上傳下載和頁面靜態化等基礎 Web 應用組件,提供高效靈活的純 Jsp/Servlet API 編程模型,可完美整合 Spring,支持 Action Convention,能快速開發傳統風格和 RESTful 風格應用程序,文檔和示例完善,非常容易學習。

      Portal-Basic 項目主頁:http://www.oschina.net/p/portal-basic

    Portal-Basic在設計之初就充分注重功能、性能與使用體驗。Portal-Basic主要特點:

    ★ 功能全面:內置穩定高效的MVC基礎架構和DAO框架,支持Action攔截、Form Bean / Dao Bean / Spring Bean裝配和聲明式事務,提供國際化、文件上傳下載、緩存和頁面靜態化等常用Web組件,能滿足絕大部分Web應用的需要。

    ★ 高度擴展:Portal-Basic通過的plug-in機制可以靈活擴展,Portal-Basic發布包中自帶的portal-basic-ext-rest和portal-basic-ext-spring均以插件的形式提供,用戶可根據需要加載或卸載這些插件。應用程序開發者也可以根據實際需要編寫自定義插件來擴展Portal-Basic。

    ★ 強大的整合能力:Portal-Basic是一個Full-Stack框架,同時也是一個開放式框架,可以以非常簡單的方式整合第三方組件。本開發手冊會詳細闡述如何在Portal-Basic中整合FreeMarker、Velocity、UrlRewrite、EHCache-Web、Spring、Hibernate和MyBaits等常用框架和組件。

    ★ 高性能:性能要求是Portal-Basic的硬性指標,從每個模塊的設計到每行代碼的實現都力求簡潔高效。另外,Portal-Basic并沒有對JSP/Servet API進行過多封裝,開發者仍然使用JSP/Servet API開發應用程序,沒有過多的迂回,性能得到保證。

    ★ 優秀的使用體驗:Portal-Basic的設計目標之一是提供良好的開發體驗,盡量減少應用程序開發者的工作,API的設計力求簡單、完整、明確。同時,Portal-Basic為應用開發提供了大量Util工具,用來處理應用程序開發過程中通常會遇到的一般性問題,進一步減少應用程序開發者的工作負擔。

    ★ 平緩的學習曲線:平緩的學習曲線:學習使用Portal-Basic只需掌握一定的Core Java與JSP/Servlet知識,本開發手冊會循序漸進闡述每個知識點,每個知識點都會結合完整的示例進行講述,知識點之間前后呼應,確保學習者在學習時溫故知新,融會貫通。

    ★ 完善的技術支持:除了提供完善的開發手冊和示例代碼以外,還提供博客和QQ群用于解答使用Portal-Basic過程中碰到的所有問題。

     

        * Portal-Basic 總體架構

     

        * Portal-Basic 應用程序依賴關系

    ----------------------------------------------------------------

    2、Java 日志切割清理工具 Log-Cutter

      Log-Cutter 是一個簡單實用的日志切割清理工具。對于服務器的日常維護來說,日志清理是非常重要的事情,如果殘留日志過多則嚴重浪費磁盤空間同時影響服務的性能。如果用手工方式進行清理,會花費太多時間,并且很多時候難以滿足實際要求。例如:如何在每個星期六凌晨3點把超過 2G 大的日志文件進行切割,保留最新的 100M 日志記錄? 網上沒有發現能滿足本座要求的日志切割工具,因此花了一些閑暇時間自己寫了一個。由于要在多個平臺上使用,為了方便采用 Java 實現。本工具命名為 Log-Cutter,主要有以下特點:

      • 支持 Linux、Mac 和 Windows 等所有常見操作系統平臺
      • 支持命令行交互式運行
      • 支持后臺非交互式運行(Linux/MAC 下使用 daemon 進程實現,Windows 用系統 Service 實現)
      • 支持兩種日志清理方式(刪除日志文件或切割日志文件)
      • 支持對 GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件類型進行切割(不會發生切掉半個字符的情況)
      • 高度可配置(程序執行周期、要刪除的日志文件過期時間、要切割的日志文件閥值和保留大小等均可配置

      Log-Cutter 項目主頁:http://ldcsaa.googlecode.com


     二、C++

    1、通用高性能 Windows Socket 組件 HP-Socket

      HP-Socket 是一套通用的高性能 Windows Socket 組件包,包含服務端組件(IOCP 模型)和客戶端組件(Event Select 模型),廣泛適用于 Windows 平臺的 TCP 通信系統。HP-Socket 對通信層實現完全封裝,上層應用不必關注通信層的任何細節;HP-Socket 提供基于事件通知模型的 API 接口,能非常簡單高效地整合到各類應用程序中;另外,為了讓大家能更方便的學習 HP-Socket,特此精心制作了一個功能測試示例(Test Echo)和一個性能測試示例(Test Echo-PFM),用戶可以通過這兩個測試示例入手,迅速掌握組件的設計思想和使用方法。

    通用性

    • 通信組件的唯一職責就是接受和發送字節流,絕對不能參與上層協議解析等工作;
    • 與上層使用者解耦、互不依賴,組件與使用者通過操作接口和監聽器接口進行交互,組件實現操作接口為上層提供操作方法;使用者實現監聽器接口把自己注冊為組件的 Listener,接收組件通知。因此,任何使用者只要實現了監聽器接口都可以使用組件;另一方面,甚至可以自己重新寫一個實現方式完全不同的組件實現給使用者調用,只要該組件遵從組件的操作接口,這也是 DIP 設計原則的體現。

    可用性

      可用性對所有通用組件都是至關重要的,如果太難用還不如自己重頭寫一個來得方便。因此,組件的操作接口和監聽器接口設計得盡量簡單易用(通俗來說就是“傻瓜化”),這兩個接口的主要方法均不超過 5 個。另外,組件完全封裝了所有的底層 Socket 通信,上層應用看不到任何通信細節,不必也不能干預任何通信操作,Socket 連接被抽象為 Connection ID,該參數作為連接標識提供給上層應用識別不同的連接。

    高性能

      作為底層的通用組件,性能問題是必須考慮的,絕對不能成為系統的瓶頸。而另一方面,從實際出發,根據客戶端組件與服務端組件的性能要求采用不同的 Socket 模型。組件在設計上充分考慮了性能、現實使用情景、可用性和實現復雜性等因素,確保滿足性能要求的同時又不會寫得太復雜。做出以下兩點設計決策:

    • 客戶端:在單獨線程中實現 Socket 通信交互。這樣可以避免與主線程或其他線程相互干擾;I/O 模型選擇 Event Select 通信模型。
    • 服務端:采用 Windows 平臺效率最高的 IOCP 通信模型;利用緩存池技術,在通信的過程中,通常需要頻繁的申請和釋放內存緩沖區,建立了動態緩存池, 只有當緩存池中沒有可用對象時才創建新對象,而當緩存對象過多時則會壓縮緩存池;另外,組件的動態內存通過私有堆(Private Heap)機制分配,避免與 new / malloc 競爭同時又減少內存空洞。

    伸縮性

      可以根據實際的使用環境要求設置組件的各項性能參數(如:工作線程的數量、各種緩存池的大小、收發緩沖區的大小、Socket 監聽隊列的大小、Accep 派發的數目以及心跳檢查的間隔等)。

      HP-Socket 項目主頁:http://ldcsaa.googlecode.com

    ----------------------------------------------------------------

    2、Windows C++ 應用程序通用日志組件 VC-Logger

      VC-Logger 是一個簡單易用的 C++ 程序通用日子組件。設計時著重考慮三個方面:

      功能: 本日志組件的目的是滿足大多數應用程序記錄日志的需求 —— 把日志輸出到文件或發送到應用程序中,并不提供一些復雜但不常用的功能。本日志組件的功能包括:

    1. 把日志信息輸出到指定文件
    2. 每日生成一個日志文件
    3. 對于 GUI 程序,可以把日志信息發送到指定窗口
    4. 對于Console應用程序,可以把日志信息發往標準輸出 (std::cout)
    5. 支持 MBCS / UNICODE,Console / GUI 程序
    6. 支持動態加載和靜態加載日志組件 DLL
    7. 支持 DEBUG/TRACE/INFO/WARN/ERROR/FATAL 等多個日志級別

      可用性: 本日志組件著重考慮了可用性,盡量讓使用者用起來覺得簡便、舒心:

    1. 簡單純凈:不依賴任何程序庫或框架
    2. 使用接口簡單,不需復雜的配置或設置工作
    3. 提供 CStaticLogger 和 CDynamicLogger 包裝類用于靜態或動態加載以及操作日志組件,用戶無 需關注加載細節
    4. 程序如果要記錄多個日志文件只需為每個日志文件創建相應的 CStaticLogger 或 CDynamicLogger 對象
    5. 只需調用 Log()/Debug()/Trace()/Info()/Warn()/Error()/Fatal() 等方法記錄日志
    6. 日志記錄方法支持可變參數
    7. 日志輸出格式:<時間> <線程ID> <日志級別> <日志內容>

      性能: 性能是組件是否值得使用的硬指標,本組件從設計到編碼的過程都盡量考慮到性能優化:

    1. 支持多線程同時發送寫日志請求
    2. 使用單獨線程在后臺寫日志,不影響工作線程的正常執行
    3. 采用批處理方式批量記錄日志

      VC-Logger 項目主頁:http://ldcsaa.googlecode.com




    原文出處:怪獸的博客  怪獸的微博  怪獸樂園Q群

    posted on 2013-05-21 01:27 ~怪^_*獸~ 閱讀(2409) 評論(2)  編輯  收藏 所屬分類: 編程技術互聯網絡軟件設計

    評論

    # re: 【技術分享】發布本人所屬 Java 與 C++ 開源項目 2013-05-21 20:54 ~怪^_*獸~

    @開發吧
    那是不可能的~~~  回復  更多評論   

    # re: 【技術分享】發布本人所屬 Java 與 C++ 開源項目[未登錄] 2013-05-25 08:50 jacky

    什么情況啊,同樣的帖子不斷重發,有這個必要嗎?吸引眼球不帶這樣的吧?換點新話題新思路行不行?  回復  更多評論   

    主站蜘蛛池模板: 一级一级毛片免费播放| 亚洲成A∨人片天堂网无码| 九九热久久免费视频| 亚洲综合小说另类图片动图| 久久91亚洲人成电影网站| 亚洲精品WWW久久久久久| 成人免费视频试看120秒| 亚洲成人免费在线观看| 国产乱妇高清无乱码免费| 亚洲av无码片vr一区二区三区| 亚洲成人福利在线| 久久亚洲国产成人亚| 亚洲中文字幕无码中文字在线| 日本成人免费在线| 无码人妻久久一区二区三区免费丨 | 亚洲一区爱区精品无码| 日本免费人成黄页网观看视频| 成人黄色免费网址| 99视频在线看观免费| 久久成人免费电影| 国产日韩AV免费无码一区二区 | 超pen个人视频国产免费观看| 青青青国产在线观看免费| 又大又硬又爽又粗又快的视频免费| 色播在线永久免费视频网站| 草久免费在线观看网站| 美女黄网站人色视频免费| 久久精品国产亚洲av天美18| 亚洲精品国产av成拍色拍| 亚洲色大成WWW亚洲女子| 亚洲一卡一卡二新区无人区| 日韩亚洲国产高清免费视频| 精品久久久久久亚洲精品| 亚洲五月综合网色九月色| 亚洲a级成人片在线观看| 亚洲成a人片在线看| 亚洲中文字幕无码中文| 亚洲高清乱码午夜电影网| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲性无码一区二区三区| 亚洲av日韩av综合|