"高大上" 名詞整理

你們在和朋友,同行交流時有沒有常常遇到各類 "高大上" 的術語,不少詞有沒有把各位 「鳥哥」 們搞得一頭霧水,如今我就把這些 "牛逼" 的東東都羅列一下,數據庫

你們能夠一塊兒來整理完善(公衆號:CodeL留言),方便咱們隨時查閱。編程

 

1、框架,設計模式設計模式


     1. MVP(Model-View-Presenter) :從經典的MVC模式演變而來,它們的基本思想有相通的地方:Controller/Presenter負責邏輯的處理,Model提供數據,View負責顯示。做爲一種新的模式,MVP與MVC有着一個重大的區別:在MVP中View並不直接使用Model,它們之間的通訊是經過Presenter (MVC中的Controller)來進行的,全部的交互都發生在Presenter內部,而在MVC中View會直接從Model中讀取數據而不是經過 Controller。服務器


    2. MVVM (Model-View-ViewModel):網絡

        MVP模式與WPF結合的應用方式時發展演變過來的一種新型架構框架。它立足於原有MVP框架而且把WPF的新特性糅合進去,以應對客戶日益複雜的需求變化。               架構

        優勢:      框架

        a. 低耦合。視圖(View)能夠獨立於Model變化和修改,一個ViewModel能夠綁定到不一樣的"View"上,當View變化的時候Model能夠不變,當Model變化的時候View也能夠不變。       分佈式

        b. 可重用性。你能夠把一些視圖邏輯放在一個ViewModel裏面,讓不少view重用這段視圖邏輯。函數式編程

        c. 獨立開發。開發人員能夠專一於業務邏輯和數據的開發(ViewModel),設計人員能夠專一於頁面設計,使用Expression Blend能夠很容易設計界面並生成xaml代碼。函數

        d. 可測試。界面素來是比較難於測試的,而如今測試能夠針對ViewModel來寫。       

   

    3. DDD(Domain-Driven Design):領域驅動設計,一套綜合軟件系統分析和設計的面向對象建模方法。    

     

    4. SOA:面向服務體系架構,它能夠根據需求經過網絡對鬆散耦合的粗粒度應用組件進行分佈式部署、組合和使用。服務層是SOA的基礎,能夠直接被應用調用,從而有效控制系統中與軟件代理交互的人爲依賴性。


    5. SAAS(Software-as-a-Service):軟件即服務,一種徹底創新,經過Internet提供軟件應用的模式,廠商將應用軟件統一部署在本身的服務器上,客戶能夠根據本身實際需求,經過互聯網向廠商定購所需的應用軟件服務,按定購的服務多少和時間長短向廠商支付費用,並經過互聯網得到廠商提供的服務。


    6. IOC(Inversion of Control):控制反轉,一個重要的面向對象編程的法則來削減計算機程序的耦合問題,也是輕量級的Spring框架的核心。 控制反轉通常分爲兩種類型,依賴注入(Dependency Injection,簡稱DI)和依賴查找(Dependency Lookup)。依賴注入應用比較普遍。能夠認爲是一種全新的設計模式,可是理論和時間成熟相對較晚,並無包含在GoF中.

 

2、思想,開發方式  

     1. OOP(Object Oriented Programming):面向對象編程,是一種計算機編程架構。OOP 的一條基本原則是計算機程序是由單個可以起到子程序做用的單元或對象組合而成。

          特徵:封裝、繼承、多態、抽象。

          組件 - 數據和功能一塊兒在運行着的計算機程序中造成的單元,組件在 OOP 計算機程序中是模塊和結構化的基礎。     

        抽象性 - 程序有能力忽略正在處理中信息的某些方面,即對信息主要方面關注的能力。            

          封裝  - 也叫作信息封裝:確保組件不會以不可預期的方式改變其它組件的內部狀態;只有在那些提供了內部狀態改變方法的組件中,才能夠訪問其內部狀態。每類組件都提供了一個與其它組件聯繫的接口,並規定了其它組件進行調用的方法。

         多態性 - 組件的引用和類集會涉及到其它許多不一樣類型的組件,並且引用組件所產生的結果得依據實際調用的類型。

         繼承性 - 容許在現存的組件基礎上建立子類組件,這統一併加強了多態性和封裝性。典型地來講就是用類來對組件進行分組,並且還能夠定義新類爲現存的類的擴展,這樣就能夠將類組織成樹形或網狀結構,這體現了動做的通用性。

     2. COP(ComponentOrientedProgramming):面向組件編程,創建在OOP技術至上的,它是OOP的進一步發展。

      COP中幾個重要的概念:  

                     服務: 服務(Service)是一組接口,供客戶端程序使用。例如,驗證和受權服務,任務調度服務。服務是系統中各個部件相互調用的接口;

                 組件: 組件(Component)實現了一組服務,此外,組件必須符合容器訂立的規範,例如,初始化,配置、銷燬。

     3. AOP(Aspect Oriented Programming):面向切面編程,經過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP是OOP的延續,是軟件開發中的一個熱點,也是Spring框架中的一個重要內容,是函數式編程的一種衍生範型。利用AOP能夠對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度下降,提升程序的可重用性,同時提升了開發的效率。


     4. SOP(Service-Oriented Programming):一種體系結構,目標是在軟件代理交互中得到鬆散耦合。一個服務是一個服務提供者爲一個服務消費者得到其想要的最終結果的一個工做單元。服務者與消費者都以軟件代理表明他們本身的角色,


      5. TDD(Test-Driven Development):測試驅動開發是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。TDD的原理是在開發功能代碼以前,先編寫單元測試用例代碼,測試代碼肯定須要編寫什麼產品代碼。TDD雖是敏捷方法的核心實踐,但不僅適用於XP(Extreme Programming),一樣能夠適用於其餘開發方法和過程。 

   優勢:在任意一個開發節點均可以拿出一個可使用,含少許bug並具必定功能和可以發佈的產品。 

   缺點:增長代碼量。測試代碼是系統代碼的兩倍或更多,可是同時節省了調試程序及挑錯時間。


      6.PO (Procedure Oriented):是一種以過程爲中心的編程思想。


3、數據


    1. PO (persistant object): 持久對象,PO就是數據庫中的一條記錄,能夠把一條記錄做爲一個對象處理,能夠方便的轉爲其它對象。


    2. BO(business object):業務對象,把業務邏輯封裝爲一個對象。這個對象能夠包括一個或多個其它的對象。好比一個簡歷,有教育經歷、工做經歷、社會關係等等。咱們能夠把教育經歷對應一個PO,工做經歷對應一個PO,社會關係對應一個PO。創建一個對應簡歷的BO對象處理簡歷,每一個BO包含這些PO。這樣處理業務邏輯時,咱們就能夠針對BO去處理。


   3. DTO(Data Transfer Object):數據傳輸對象,是一種設計模式之間傳輸數據的軟件應用系統。數據傳輸目標每每是數據訪問對象從數據庫中檢索數據。數據傳輸對象與數據交互對象或數據訪問對象之間的差別是一個以不具備任何行爲除了存儲和檢索的數據(訪問和存取器)。


   4. DAO(data access object): 數據訪問對象,一個數據訪問接口,數據訪問:顧名思義就是與數據庫打交道。夾在業務邏輯與數據庫資源中間。


內容不完善,歡迎留言(公衆號:CodeL或下方評論)補充,你們一塊兒完善。

相關文章
相關標籤/搜索