2009-07-21 73 views
6

好的,所以我是一名compsci大學生,他在大學時尚未向一定的專業化方向發展。自從我還是一個十幾歲的青少年時,我一直在進行編程,當然知道我的東西 - 精通八種不同的語言以及compsci理論等。另外,我有大約四年的網絡編程(主要是PHP),有我自從web 2.0變得熱點以來,該領域開始了自由職業者的工作。Applicationland中的Web程序員的冒險(或需要實用的Java幫助)

我現在作爲一名實習生,現在正在爲一個工業而不是軟件相關的初創公司編寫一個應用。此應用程序將用於管理生產線和物流流程。我選擇了Java作爲我的語言,因爲我不想在腳下拍攝自己。

我很熟悉Java的語法,數據結構,語言理論等,但我絕對不知道從哪裏開始。我可以在腦海中完美地描繪出程序,我清楚地理解了這個問題,並得到了解決方案的理論。也就是說,我不知道使用什麼庫,並且害怕他們不會被記錄。

這裏是我要去什麼我做的一些一般性的輪廓:

  • 兩個應用程序,一臺服務器和一個 客戶(其中會有很多 副本)。
  • 服務器和客戶端顯然會通過 通信(我不知道)。
  • 服務器和客戶端 軟件都將具有GUI。
  • 服務器軟件將不得不 查詢MySQL數據庫。
  • 當 對數據庫進行更改時,客戶端軟件必須在「活動」,即 。這 是它不能成爲一個Web應用程序的原因之一。

我甚至不確定框架是否適合我。我在我的網上自由工作中使用了MVC次數,但我不知道這將如何轉換爲桌面應用程序。

總之,我正在尋找合適的工作庫,以及關於我是否應該使用框架(如果有的話)的建議。謝謝。

回答

2
  • 的Java Desktop 6(JRE)
  • JDBC(內置在任何JRE)
  • 的MySQL JDBC驅動程序(免費下載)
  • 溝通可以有幾種選擇:RMI(內置)然而,這幾天我建議
    學習的東西像Java Web服務(JAX-RS)
3

我建議你只建立一個Web應用程序。從您使用AJAX描述它的意義上說,Web應用程序可以是「實時」的。只建立一件事情會容易得多。如果您還想擁有一個富客戶端,那麼您需要使用您不熟悉的技術(如Swing或SWT)構建UI,並設計/實現通信機制。

看看Hibernate(ORM工具)和Spring(IoC框架)。他們有一個陡峭的學習曲線,但從長遠來看,他們會讓你的生活更輕鬆。對於UI部分,或許JSF對於初學者來說更容易。

作爲最後一點,我認爲你有一個雄心勃勃的計劃。你所描述的並不是一個簡單的項目,需要很多技術方面的專業知識。不要試圖一蹴而就。

0

那麼這可以像你想象的那樣狂野,或者你可以去做KISS

如果您想要一些非常簡單的東西(如不使用任何框架): *在服務器端,您可以使用RMI。這個服務器端將使用普通的JDBC連接到你的MySQL數據庫。但有人說這是舊的,所以如果你想得到時髦,你可以嘗試JAX-RS,它可以返回一個JSON對象/ XML到你的客戶端。 *您可以使用Swing(假設您正在開發桌面)或Servlet + JSP(假設您正在開發webapp)並通過調用服務器公開的RMI對象/ JSON對象/ XML連接到您的服務器來製作您的客戶端。

如果您想要得到討厭的代碼,可以在代碼可維護性方面提供幫助,您可能希望將Spring + Hibernate插件插入此應用程序。

祝你好運!

0

圖書館?

JDBC爲數據庫。你可能想看看ORM機制,如Hibernate

我會推薦Apache Commons圖書館所有的實用工作(處理文件,IO等)。這裏有很多東西可以幫助你重新發明輪子。

Log4j這樣的標準日誌框架將允許您以多種方式登錄,過濾日誌並輕鬆插入監控解決方案。

您不會說基於瀏覽器的解決方案是否可以接受客戶端/服務器GUI,並且該決定將推動大量更進一步的體系結構。如果您正在尋找基於瀏覽器的解決方案,那麼無論您最終選擇哪種框架(毫無疑問,這裏都會推薦很多),我會建議在servlets中進行接地。

在這個階段,它將成爲一個重大項目。也許你需要專注於獲得基礎(客戶端/服務器功能)的工作,並在後期擔心GUI。否則,這是一項大量的工作(GUI工作可能會耗費大量時間)。

7

這是夏季實習生的工作嗎?說實話,如果你問我,這聽起來更像是一個重大項目。你說啓動不是軟件相關的?誰提出這個想法?他們是否有這樣的(巨大)範圍的想法,這可能實際上需要?

業務軟件開發與語言語法和庫非常不同。這涉及需求收集,定義規範,編寫代碼,確保代碼的質量,測試等等。這些不是一個實習生應該合理地期待的東西。對於像這樣的事情,你應該接受更有經驗的監督,可以學習的人,以前做過這些事的人。

也就是說,除非有很好的理由,否則我可能會做一個網站而不是桌面應用。桌面應用在很多方面都要複雜得多。您需要編碼客戶端和服務器。溝通有點棘手。您必須擔心在多個應用程序中維護狀態的問題,以及如何處理正在推送的更新等等。

總之,這是一個很大的工作。即使是一個網站是一個很大的工作,但很多這些問題都消失了。你可以用Java來做到這一點。我確實編寫了我在Java網站上公平的份額,但PHP可能是一個更簡單的賭注。

此外,在Java上進行桌面開發也是一種折磨。 Swing是(imho)嘗試過的,同時也是非常令人難以接受的。其他桌面庫(例如Netbeans RCP,Eclipse SWT)更現代,但有其他特性。

桌面遠程處理庫包括諸如Spring遠程處理,甚至Web服務和其他類似Burlap的東西。對於服務器端,我會使用Tomcat或應用服務器(Glassfish是我的首選),servlet和Spring。持久性可以通過Hibernate或Ibatis(或許多其他選項)完成。

但老實說,桌面選項比基於Web的選項複雜得多。使用PHP + jQuery + MySQL可能會更快地完成更多工作。

如果你這樣做,儘可能保持簡單。嘗試定義您最初需要提供的絕對最小值,然後執行此操作。一旦有人擁有了,他們就會更好地瞭解對他們有用的東西,以及沒有的東西。基本上,對已經存在的東西進行細化比定義沒有的東西要容易。

+1

+1使用PHP + jQuery + MySQL的評論。使用你熟悉的工具比使用java更重要的是成功! – extraneon 2009-07-21 12:30:57

0

只是一個吹毛求疵:

服務器和客戶端軟件將有圖形用戶界面。

我建議你使用管理GUI而不是GUI服務器來擁有一個無頭(用awt說法)服務器。