顯示包含「軟體工程」標籤的文章。顯示所有文章
顯示包含「軟體工程」標籤的文章。顯示所有文章

2018年9月12日星期三

JNDI + Derby + TomEE Plus 教學

JNDI 用來做甚麼?


JNDI 全名是 Java Naming and Directory Interface,重點在於【Naming】及【Directory】這兩個字,簡單來說,就是查冊服務,用【名字】來查找需要的【目錄 / 服務】。

舉例,香港公共圖書館借書時,有沒有留意書背?那組數字加英文就是索書號 ( Naming ),是個獨一無異的名字,只要用這個名字搜尋公共圖書館目錄 ( Directory ) 就一定找得到想要的書。

與 Database 用 Primary key 搜尋有甚麼分別?


用途不同,Database 用於處理資料,Database 需要頻繁讀寫,而 JNDI 主要透過設定 J2EE container 更新資源,查找  ( lookup ) 目錄 / 服務 / object 等,只需設定一次就好,不會經常改動設定檔吧?

JNDI 目錄 / 服務有甚麼?


放甚麼都可以,不像 Database 那樣,有 data type 及資料長度限制。JNDI 常見用法有以下幾項︰

  • Datasource
  • LDAP ( Lightweight Directory Access Protocol )
  • WSDL ( Web Services Description Language )
  • entry ejb

本文只示範 datasource 設定及使用,日後有機會再補上其餘三項。

2018年6月7日星期四

Eclipse 上使用 Java DB ( Apache Derby ) (PART 3 / 3 )

上一回【Eclipse 上使用 Java DB ( Apache Derby ) (PART 2 / 3 )

首先要「做得到」,然後才想「做得好」,這個範例止於「做得到」範疇,想深入鑽研如何「做得好」,文章最後會有額外提示。

Derby_Prepare_1

廢話到此為止,開始之前,輸入資料,然後備份。你都懂的,不會的話,請回去前幾 PART 溫習。

2018年3月22日星期四

Object Oriented Programming ( java )?先放下,現在砌模型,玩遊戲

cover

事先聲明,不是教大家組裝精美模型,只是想透過組裝模型,說明 object oriented 這種程式設計概念。一半加餸,一半炒冷飯,換個例子,加點新意,編寫新文章。

文章很長,有很多概念上的東西學,一定要一邊動手試,一邊思考為甚麼,有沒有其他用法之類。總言之,別急,看一次是學不會,看多幾次也是學不好,object oriented programming 要靠實踐及知識基礎才可以學好,兩者缺一不可。

多去 GitHub 看看別人怎用 object oriented,有時候會看到你意想不到的用法,看到像魔術一樣的用法後,可能會知道自己還有所欠缺的知識,因為無知才覺得像魔術,知道原理後,這只是個掩眼法。

例子程式碼 ( V1_gunpla_example )
https://github.com/IntegrityKnight/java_object_oriented/releases/tag/V1_gunpla_example

2017年7月17日星期一

解構世界——功課篇

接上回【以 Object Oriented 哲學看世界 —— Reusable 與 Maintainability概念

Once upon a time,有一間【Low Tech 撈野 High Tech 揩野 IT 已死紀念中學】,全校只有五人,【腦細】校長、【機智】老師、【玩野】同學、【揩野】同學及【撈野】同學。

註︰詳情請 Google【 Object-Oriented Analysis And Design】

定義問題、使用者及目標 ( Target and User Requirements )


老師一方面要防止學生抄功課,另一方面,學生在不被發現之下,用最省時省力的方法【做功課】……

a.老師的目標︰如何高效及智慧地出功課

b.學生的目標︰如何高效及智慧地抄功課

c.你的目標︰把科技融入系統

這是一場漫長的戰爭……

Source Code︰
https://github.com/IntegrityKnight/HomeWork

2017年6月29日星期四

以 Object Oriented 哲學看世界 —— Reusable 與 Maintainability 概念

學 Object Oriented Programming 之前,先學習 Object Oriented 哲學,把世界轉化成 Object Oriented。

為什麼要用 Object Oriented 來解構世界?


如何把生活的日常轉為程式?以前很直覺地把數學那一套【F(x) = 世界】,直接用公式代入 ( Functional Programming ) 電腦 ,很簡單易懂。時移世易,需求 ( requirement ) 改變,程式也要跟著改,會發現越來越難改,沒法簡單地修改一下就追上需求。

簡單來說,Object Oriented 為解決現在的問題外,還要預測未來,預判下一步怎樣走,作好準備。Object Oriented 以【作好準備】而生,先解構世界,把世界重新定義成 Object,為各種 Object 套上關係,用程式碼重現世界。

軟體工程 ( software engineer ) 中,可以用 UML ( Unified Modeling Language ) 視圖化說明及分析設計系統 ( Object-oriented analysis and design ( OOAD )  )。

在談 Object Oriented 之前,首先要預測會遇上什麼問題,然後可以用什麼概念解決問題,所以先離一下題,講解 Reusable 及 Maintainability 概念。