<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 ~怪^_*獸~ 閱讀(2410) 評論(2)  編輯  收藏 所屬分類: 編程技術互聯網絡軟件設計

    評論

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

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

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

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

    主站蜘蛛池模板: 日日狠狠久久偷偷色综合免费| 国产中文字幕免费观看| 国产午夜免费高清久久影院| 国产无遮挡裸体免费视频在线观看 | 在线观看国产情趣免费视频| 亚洲精品尤物yw在线影院| 国产亚洲美女精品久久久| 久久久久亚洲精品无码蜜桃| 亚洲毛片无码专区亚洲乱| 亚洲夂夂婷婷色拍WW47| 男人免费视频一区二区在线观看 | 久久天天躁狠狠躁夜夜免费观看| 免费网站看v片在线香蕉| 国产精品亚洲一区二区三区在线| 亚洲精品熟女国产| 国产精品成人观看视频免费| 亚洲精品第一国产综合境外资源| 香蕉视频在线观看免费| 中字幕视频在线永久在线观看免费| 亚洲小说图片视频| 毛片在线播放免费观看| 亚洲成在人天堂一区二区| 羞羞漫画页面免费入口欢迎你| 免费一区二区视频| 亚洲乱码中文论理电影| a级毛片高清免费视频就| 麻豆国产人免费人成免费视频| 牛牛在线精品观看免费正 | 精品日韩亚洲AV无码| 免费观看一级毛片| 青青操在线免费观看| 亚洲乱码卡三乱码新区| 亚洲欧洲自拍拍偷精品 美利坚| 国产午夜成人免费看片无遮挡| 国产成人精品日本亚洲专区| 国产一区二区三区亚洲综合 | 91精品手机国产免费| 亚洲乱码国产乱码精品精| 永久看日本大片免费35分钟| 日韩亚洲Av人人夜夜澡人人爽 | 毛片a级毛片免费观看品善网|