2006年4月27日 星期四

只不過是平凡的programer....

沒有留言:
最近遇到一個程式新手同學
被問到以後可以當程式教育訓練講師...
說到講師這可不是這麼容易的,(你可能想到的是外面教育中心補習班的講師)
如果像我們這樣的程式員,其實外面到處都是
更不用說到印度人是比我們多又便宜又好用了。
光技術不說,其實有很多你都還沒聽過的,
而單單幾個認證,只不過是外面工作的基本配備。
要當講師不只需要對該技術熟悉瞭解,
最重還要會應用和比較優缺點等。
其實外面有很多技術都比我們很好的人才,
技術證照也很多,但是大部分不會作程式教育訓練講師。
也不一定能當企業講師,而會是技術工程師、programer、專案經理..等等。
說到講師有很多種,有加上"企業領域"的知識和技術應用來作企業教育訓練。
不止是有經驗的專案經理,領域知識也很厲害,偶爾來個幫自己企業的教育訓練。
這種 level 都比單純語言基礎教學的Level 還來的高。
且這種的講師才是真厲害的,也並不是容易當的。
有些不是資管或資訊的人,沒有聽過業界演講或外面資訊業演講
大概難以想像吧...
曾聽過微軟的企業講師演講 .Net
聽過 Sun, IBM ,MS 未來企業系統應用發展的演講,都是經理級以上的演講
聽完後我想大家不會只想當 coding 工吧,這是永遠聽人使喚錢不多的職業。
我想說我們只不過是眾多 coding 人,平凡的一個,但你還沒達到這平凡的水準更別談了。
我們視野應該要放廣一點。。。
師大要聽到業界的演講還真難,不是學術研究,就是教授論文。
現在唯一有印象的是 yahoo web 開發經理對新Web發展的演講吧

2006年4月23日 星期日

Axis下使用SOAPMonitorService

沒有留言:
參考網址
http://ws.apache.org/axis/java/user-guide.html#AppendixUsingTheSOAPMonitor

環境:
AXIS 1.3
Eclispe 3.1.1

axis web已經建立在tomcat上如: axisdemo
在 Axis 中使用SOAP Monitor:

1.在axisdemo目錄下 先編譯 SOAPMonitorApplet.java (classpath 加入 axis.jar)
如果沒有axisdemo 請先下載 axis package,
從%axis_home%\webapp\ 複製axis 到 %catalina_home%\webapp\
隨便rename axis 為名稱axisdemo

2.在 C:\Java\workspace\axisdemo\WEB-INF> java -Djava.ext.dirs=%AXIS_HOME%\lib org.apache.axis.client.AdminClient
-lhttp://localhost:8080/axisdemo/services/AdminService
deploy-monitor.wsdd

3.
deploy-monitor.wsdd
--------------------------------------------------------------
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="soapmonitor"
type="java:org.apache.axis.handlers.SOAPMonitorHandler">
<parameter name="wsdlURL"
value="/axis/SOAPMonitorService-impl.wsdl"/>
<parameter name="namespace"
value="http://tempuri.org/wsdl/2001/12/SOAPMonitorService-impl.wsdl"/>
<parameter name="serviceName" value="SOAPMonitorService"/>
<parameter name="portName" value="Demo"/>
</handler>
<service name="SOAPMonitorService" provider="java:RPC">
<parameter name="allowedMethods" value="publishMessage"/>
<parameter name="className"
value="org.apache.axis.monitor.SOAPMonitorService"/>
<parameter name="scope" value="Application"/>
</service>
</deployment>
---------------------------------------------------------------

4.在需Monitor的services deploy裡加入
--------------------------------------------
<service name="xxx" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
</service>
-------------------------------------------
5.檢示 http://localhost:8080/axis/SOAPMonitor

參考網址:http://ws.apache.org/axis/java/user-guide.html#AppendixUsingTheSOAPMonitor

2006年4月22日 星期六

基本OO變數

沒有留言:
Java基本OO的變數種類

Java物件導向中有:類別變數(class variable)、物件變數(object variable)、區域變數(local variable)
等基本類型

他們在存取的範圍(scope)、生命週期(lift cycle time),都有不同的用法。

不談死記的方法,想像在OO中的理念,一個物件的定義可以用Class來表示。即自己描寫製作一個類別

class Animal{

}

在一個類別裡,我們會有幾個元素,理所當然就好像他會有名字、年齡、性別,這種可以描述物件的屬性attribute或稱為metadata;然後是這個類別的行為,如喝水、說話、做等行為。以Java來說一個 class裡就包含這樣的元素,你可以稱之為 variables 和 methods,

class Animal{
String name;
public void speak(){
}
}

簡單的 class 定義其實就只是一堆 variable 和 method 的集合,全部都屬於該 class 的member
所以在C++又有稱之 member variable or member function ,表示這些為該類別的"成員"

說到這裡知道 class 的基本要素後,你要想想把 class 當作你的對 object 的定義,
你可以用 你所自訂的 class 去產生許多物件,即產生物件的多個實例(instance)。

這裡要注意的是,後面只會提 "class" 和 用 class 產生的 "instance",
不會在用"object" 來解釋 Java 的 OO,以免你把 instance 跟一般所述的 object 搞混,
object 會讓你把 class 和 instance 弄混。

當你知道什麼是 instance 之後,你可以用你所寫的 class 去產生一個 instance
(一個有自己資料的個別instance), 當設定他的資料欄位或操作他的方法時,
都屬於該instance的操作。

Animal a1 = new Animal( );

//這是產生一個 instance 的語法。

Animal a2 = new Animal( );

//則是另一個 instance

a1.name 就是 instance variable ,該變數 name 是屬於 al 的 ( 雖然a1.name存取方式有違封裝性 )
instance variable 的特性是 不同的 instance 間,各自 instance variable 並不相干。
a1 的 name 可以是"小白" , a2 的 name 可以是"阿花"。

//-------------------------------分隔線 ------------------------------------------------------ ------------
瞭解什麼是instance variable後,皆下來可以想想是否會有 variable 是同一種 class所共享的變數,
有種全域變數的感覺,答案是有的。 即是 "class variable"

class Animal{
static int max_age_limite ;
}

static 是 java 的 關鍵字,可以宣告class variable,如果宣告成 class variable 時,
整個 class 共享同一個變數。通常使用時不會在去instance 後在存取 ,
可以直接使用class name去存取,如 Animal.max_age_limite,
若是用
a1.max_age_limite ++ ;
a2.max_age_limite ++ ;

則 max_age_limite 會被加兩次,他們指的是同一個變數

注意,當能用" . " 去直接存取變數時,表示該變數是宣告成 public scope ,可能違反物件封裝性質

待續...

2006年4月8日 星期六

無責任 Eclipse教學 (更新2013)

1 則留言:

在經過幾年的Java IDE戰爭後,幾乎專業的Java程式開發者都須向於Eclipse,除非你曾經在昇陽工作,或是Oracle Java教育訓練講師,或許還仍使用NetBeans。我也曾經是NetBeans的推崇者。不過本文主要使講解使用Eclipse 開發工具,Eclipse目前已經已經是非常Popular的Java開發工具IDE。 

此文曾經發表於2006年4/8號。但當時Eclipse 使用度還未甚高。開發web app仍比較麻煩需要自己選擇WTP Plugin。現在大可直接透過Eclipse官網選擇Java EE版本的Eclipse即可。
http://www.eclipse.org/downloads/
目前最新版為代號 JUNO

以下為個人開始使用後 ,歷屆舊版版本代號(參考 維基百科 Eclipse)
Europa3.32007年6月27日2007年9月28日2008年2月29日
Ganymede3.42008年6月25日2008年9月24日2009年2月25日
Galileo3.52009年6月24日2009年9月25日2010年2月26日
Helios3.62010年6月23日2010年9月24日2011年2月25日
Indigo3.72011年6月22日2011年9月23日2012年2月24日
Juno4.22012年6月27日2012年9月28日2013年2月22日

下載後其實只要解壓縮即可以啟動使用

Step1. 使先開啟Eclipse,然後設定Preference 開啟喜好設定
Step2. 切換到 server 項目,Installed Runtimes
Step3. 點選Add runtimes ,選擇 Apache > Tomcat 7 ,按 Next

Step4. 選擇Tomcat 目錄位置,和 JRE位置,然後Finish。把新增runtime server打勾。
Step5. File>New>Project,選Web/Dynamic Web Project> Next,填上Project Name,這裡我填入MyFirstWeb,Target runtime選剛剛新增的。
Step6. Select Project Facets 不變Next,Web Module設定WEB Context、WEB-INF和SRC
這裡使用預設
Step7. 好了之後可以在套件瀏覽器上面看到下面圖
Step8. 在WebContent裡新增一個index.jsp檔吧,並在body 間打入<%="Hello World"%>存檔。
Step9. 在套件導覽器選index.jsp右鍵,執行為run on server,選擇Tomcat server 5.0
Step10. Tomcat 自動啟動並且開啟browser完成


PS . 若沒有安裝JDK需要先行安裝,因為使用預設JRE無法進行JSP Compile

相關文章: