[手把手教程][第二季]java后端博客系統(tǒng)第一章

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

閑話直接跳過了,嗯,手把手教程第二季已經來了,第一季就不用再寫什么第一季匯總資源之類的記錄了,直接扔出第一季的總集合地址。
[手把手教程][JavaWeb]第一季點擊這里查看所有文章。當然,也可以直接訪問我的博客。

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

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

第二季我考慮適當?shù)囊胍恍┸浖こ痰母拍睿约俺S玫乃季S模式的一些實現(xiàn),大概想做一些下面的東西:

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


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

思維導圖

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

我的博客第一章第一圖
我的博客第一章第一圖

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

流程圖

流程圖相對來說是我們現(xiàn)在相對更加熟悉的東西,在前面的第一季的文章中我們能看到很多關于流程圖的繪畫。流程圖是流經一個系統(tǒng)的信息流、觀點流或部件流的圖形代表,它以特定的圖形符號加上說明來表示事物執(zhí)行流程。

數(shù)據(jù)流圖

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

  • 指明數(shù)據(jù)存在的數(shù)據(jù)符號,這些數(shù)據(jù)符號也可指明該數(shù)據(jù)所使用的媒體;
  • 指明對數(shù)據(jù)執(zhí)行的處理的處理符號,這些符號也可指明該處理所用到的機器功能;
  • 指明幾個處理和(或)數(shù)據(jù)媒體之間的數(shù)據(jù)流的流線符號;
  • 便于讀、寫數(shù)據(jù)流程圖的特殊符號。
簡單的數(shù)據(jù)流圖實例

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

E-R圖

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

UML建模

UML建模技術就是用模型元素來組建整個系統(tǒng)的模型,模型元素包括系統(tǒng)中的類、類和類之間的關聯(lián)、類的實例相互配合實現(xiàn)系統(tǒng)的動態(tài)行為等。

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

相對于其他的圖示,我更加喜歡UML建模,他能很生動形象的表現(xiàn)出各個類、接口之間的關系,如下圖:

泛型接口的實現(xiàn)和接口繼承
泛型接口的實現(xiàn)和接口繼承
javaBean實現(xiàn)Serializable接口
javaBean實現(xiàn)Serializable接口

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

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

    int del(User user);

    int update(User user);

    User findOneById(Serializable Id);

    List<User> findAll();

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

    void addSessionId(String id);
}

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

第二張圖中,實際就是我們的User和PostBean這兩個javaBean,他們同時實現(xiàn)了接口Serializable。

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

  • 類或者接口的繼承用實線箭頭表示
  • 類實現(xiàn)接口用虛線箭頭表示
  • 泛型具體化也是用實線箭頭表示
  • 類使用淡藍色方框表示
  • 接口使用淡紫色方框表示

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


倚賴wordpress數(shù)據(jù)庫的博客系統(tǒng)

這一季我們的正式目標是做一個博客系統(tǒng),然后倚賴的是以前的wordpress博客的數(shù)據(jù)庫。這幾天大概整理了功能如下:

博客系統(tǒng)整體結構圖
博客系統(tǒng)整體結構圖

為什么說打算做這一個東西,主要是因為首先我個人的博客被人家刷評論了,第二點是博客一直被人攻擊,想用自己的系統(tǒng)來和別人斗智斗勇看看。

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

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容