如何構建應用程式,這是每一個開發人員要面對的。
1.構建工具Maven
http://www.ibm.com/developerworks/cn/java/j-maven/
儘管 Ant 對於構建 Java 程式而言是事實上的標準工具,但這個工具在許多方面都不勝任專案管理任務。相反,Ant 提供的東西,Maven(出自 Apache Jakarta 項目的進階專案管理工具)都能提供,而且更多。Java 開發人員 Charles Chan 將介紹 Maven 的特性,並循序漸進地指導您進行一次完整的 Maven 項目設定。
2.HTTP伺服器、WEB容器Jetty
http://www.ibm.com/developerworks/cn/web/wa-lo-jetty/
Jetty 是一個用 Java 實現、開源、基於標準的,並且具有豐富功能的 Http 伺服器和 Web 容器,可以免費的用於商業行為。Jetty 這個項目成立於 1995 年,現在已經有非常多的成功產品基於 Jetty,比如 Apache Geromino, JBoss, IBM Tivoli, Cisco SESM 等。Jetty 可以用來作為一個傳統的 Web 服務器,也可以作為一個動態內容伺服器,並且 Jetty 可以非常容易的嵌入到 Java 應用程式當中。
3.時間控制項Joda-time
http://www.ibm.com/developerworks/cn/java/j-jodatime.html
現在假設我希望輸出這樣一個日期:距離 Y2K 45 天之後的某天在下一個月的當前周的最後一天的日期。坦白地說,我甚至不想使用 Calendar處理這個問題。使用 JDK 實在太痛苦了,即使是簡單的日期計算,比如上面這個計算。正是多年前的這樣一個時刻,我第一次領略到 Joda-Time 的強大。使用 Joda,用於計算的代碼如清單 3 所示: 清單 3. 改用 Joda
DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0);System.out.println(dateTime.plusDays(45).plusMonths(1).dayOfWeek() .withMaximumValue().toString("E MM/dd/yyyy HH:mm:ss.SSS");
清單 3 的輸出為:
Sun 03/19/2000 00:00:00.000
如果您正在尋找一種便於使用的方式替代 JDK 日期處理,那麼您真的應該考慮 Joda。如果不是這樣的話,那麼繼續痛苦地使用 Calendar 完成所有日期計算吧。當您做到這一點後,您完全可以做到使用幾把剪刀修建草坪並使用一把舊牙刷清洗您的汽車。
4.單元測試JUnit
http://www.ibm.com/developerworks/java/tutorials/j-junit4/
5.架構搭建的方式
http://www.infoq.com/cn/news/2013/12/humble-architects
規則4:至底向上的一致性要優於自上而下的一致性
我有一種方式可以實現系統中更多的一致性: 建立一個參考應用,並使用易於遵循的架構。如果這件事幹得好,那麼開發人員們就會始終記得不要偏離這個架構。除非他們不想,否則這麼做就沒問題。 培育一種互助的文化。能夠看到彼此代碼的開發人員要比那些只看到自己代碼的具有更好的一致性。結對程式設計、代碼審查以及技術分享講座都有助於這種文化的培育。
6.構建的方式DDD
http://www.infoq.com/cn/articles/ddd-dddlib-development-process-and-marketing-experience
領域驅動設計(DDD)的概念源於2004年著名建模專家Eric Evans發表的書籍:《Domain-Driven Design –Tackling Complexity in the Heart of Software》(中文譯名:領域驅動設計—軟體核心複雜性應對之道),池建強在2011年發表的一篇文章《領域驅動設計和實踐》中是這樣形容DDD的:
領域驅動設計事實上是針對OOAD的一個擴充和延伸,DDD基於物件導向分析與設計技術,對技術架構進行了分層規劃,同時對每個類進行了策略和類型的劃分。
7.常用的開源架構
AppFuse J2EE WEB開發開源架構
http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese
opentaps 開源企業級ERP系統
http://www.opentaps.org/
Bootstrap 簡潔、直觀、強悍的前端開發架構,讓web開發更迅速、簡單。
http://v2.bootcss.com/customize.html