[手把手教程][第二季]java 後端部落格系統第一章

pc859107393發表於2016-11-28

轉眼間時間就從9月份到現在的十一月份了。這段時間說實話做的有意義的事情太少。現在還是單身···

閒話直接跳過了,嗯,手把手教程第二季已經來了,第一季就不用再寫什麼第一季彙總資源之類的記錄了,直接扔出第一季的總集合地址。
[手把手教程][JavaWeb]第一季點選這裡檢視所有文章。當然,也可以直接訪問我的部落格

掃描下面二維碼加入交流QQ群:

[手把手教程][第二季]java 後端部落格系統第一章
行走的java全棧

最近一直在想怎麼搞的更好,怎樣描述能更加簡單直觀的解決問題。第一季我們採用了以下的描述方法:

  • 列表
  • 畫流程圖
  • 貼效果圖
  • 語言描述
  • 直接貼程式碼

第二季我考慮適當的引入一些軟體工程的概念,以及常用的思維模式的一些實現,大概想做一些下面的東西:

說實話上面的這些東西,在實際開發中我們可能不是每次開發都準備這些東西,但是我們在平時可以考慮把這些東西都準備一下,到了一些時候我們的腦袋裡自然會有這些相關的概念浮現。而且這樣分析程式組織結構和執行流程對我們每個人的成長也已有利的,所以希望同學們能一起互勉。


軟體工程講究的是以工程學的角度來控制軟體的研發。核心目的是:提高效率降低成本。我們在實際開發中如何體現這些東西呢?

思維導圖

為什麼要把思維導圖放在最前面?思維導圖又叫心智圖,是表達發散性思維的有效的圖形思維工具,是一種將放射性思考具體化的方法,是一種影象式思維的工具以及一種利用影象式思考輔助工具。簡單思維導圖如下:

[手把手教程][第二季]java 後端部落格系統第一章
我的部落格第一章第一圖

上面這個圖是我畫的一個關於文章系統設計的圖(中間有小瑕疵,將就的看=,=),這個就是我們常用的思維導圖的作用之一,能幫助我們理清思路和功能結構。具體的思維導圖我們就不再多做介紹了,在上面的連結中都可以檢視,思維導圖推薦的工具是xmind。

流程圖

流程圖相對來說是我們現在相對更加熟悉的東西,在前面的第一季的文章中我們能看到很多關於流程圖的繪畫。流程圖是流經一個系統的資訊流、觀點流或部件流的圖形代表,它以特定的圖形符號加上說明來表示事物執行流程。

資料流圖

資料流圖:簡稱DFD(Data Flow Diagram),它從資料傳遞和加工角度,以圖形方式來表達系統的邏輯功能、資料在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用於表示軟體模型的一種圖示方法。

  • 指明資料存在的資料符號,這些資料符號也可指明該資料所使用的媒體;
  • 指明對資料執行的處理的處理符號,這些符號也可指明該處理所用到的機器功能;
  • 指明幾個處理和(或)資料媒體之間的資料流的流線符號;
  • 便於讀、寫資料流程圖的特殊符號。

[手把手教程][第二季]java 後端部落格系統第一章
簡單的資料流圖例項

資料流圖雖然說在名字上面聽起來有點類似流程圖,但是實際上兩者差異還是較大,同時我們可以很明顯的看到資料流圖把程式執行的資料流轉示意表現的很清楚,所以我們也需要他來幫我們完成一些事情。

E-R圖

E-R圖:實體-聯絡圖(Entity Relationship Diagram),提供了表示實體型別、屬性和聯絡的方法,用來描述現實世界的概念模型。

UML建模

UML建模技術就是用模型元素來組建整個系統的模型,模型元素包括系統中的類、類和類之間的關聯、類的例項相互配合實現系統的動態行為等。

UML是物件導向開發中一種通用的圖形化建模語言。物件導向的分析主要在加強對問題空間和系統任務的理解、改進各方交流、與需求保持一致和支援軟體重用等4個方面比較突出,因此也成為現在主流的建模方法(在IDEA中我們能看到專案對應的Uml模型)。

相對於其他的圖示,我更加喜歡UML建模,他能很生動形象的表現出各個類、介面之間的關係,如下圖:

[手把手教程][第二季]java 後端部落格系統第一章
泛型介面的實現和介面繼承

[手把手教程][第二季]java 後端部落格系統第一章
javaBean實現Serializable介面

上面的第一張圖中我們可以看到是我的UserDao繼承了BaseDao並且將泛型T具體化為User。

public interface UserDao extends Dao {
    int add(User user);

    int del(User user);

    int update(User user);

    User findOneById(Serializable Id);

    List findAll();

    void updateLoginSession(@Param("sessionId") String sessionId, @Param("loginId") String loginId);

    void addSessionId(String id);
}複製程式碼

同理可得,我們的PostDao也是繼承BaseDao並且將泛型T具體化為PostBean。

第二張圖中,實際就是我們的User和PostBean這兩個javaBean,他們同時實現了介面Serializable。

上面兩張圖中我們可以看到:

  • 類或者介面的繼承用實線箭頭表示
  • 類實現介面用虛線箭頭表示
  • 泛型具體化也是用實線箭頭表示
  • 類使用淡藍色方框表示
  • 介面使用淡紫色方框表示

具體的一些東西我們後面再詳細介紹,現在大概明白即可(當然老司機肯定是直接跳過)。


倚賴wordpress資料庫的部落格系統

這一季我們的正式目標是做一個部落格系統,然後倚賴的是以前的wordpress部落格的資料庫。這幾天大概整理了功能如下:

[手把手教程][第二季]java 後端部落格系統第一章
部落格系統整體結構圖

為什麼說打算做這一個東西,主要是因為首先我個人的部落格被人家刷評論了,第二點是部落格一直被人攻擊,想用自己的系統來和別人鬥智鬥勇看看。

做重要的是想自己作一些屬於自己的東西,留下一些記錄的痕跡。

這個第一期只能說不算開篇的開篇吧,在後面的文章中可能我們很多時候更多是怎麼樣去引導思維這樣子做事,而不是怎麼樣去編碼。

希望在這新的一季裡面我們能有更多的收穫,一起加油吧。

相關文章