- 1、JAVA開發過程中需要注意那些問題?
- 2、JAVA開發ERP系統需要使用哪些技術棧
- 3、學java,要注意什麼?
- 4、北大青鳥設計培訓:從事Java開發的注意事項?
- 5、Java開發都需要學習什麼?
- 6、java開發工程師必須要學的技術有哪些?
開發過程需要注意的問題有下面這些:
1. 伺服器端必須提供輸入數據正確性的驗證,客戶端的Javascript驗證可以沒有。這是基於安全性的考慮,因為Javascript是很容易被繞過的,增加客戶端驗證只是為了減少伺服器壓力、界面更加容易使用。
2. 適度使用Session,盡量不要在Session里放很大的集合對象,以免內存消耗過大,因為很多用戶訪問的時候會產生很多的Session。參數傳遞應該盡量通過Request。熟悉HTTP有助於更好的理解Session、Cookie、Request等的機制。
3. 在帶有分頁的查詢界面,盡量不要使用POST方法來傳遞參數,POST傳遞的參數在地址欄里是看不到的,刷新後會有重新提交表單的提示。使用GET方法傳遞參數要注意URL的長度不能超過1K。
4. 分層應該清晰,一般目前我們分為View(Jsp或FreeMarker加上Action)、Bean(Service)、DAO這麼三層,即顯示層、業務層、數據層。記錄集ResultSet這種只能出現在DAO層中的對象不能出現在Bean(Service)層中,同樣HttpServletRequest這種只能出現在View層的對象也不應出現在Bean(Service)層中。這並不是絕對的。
5. 盡量使用簡單SQL,避免兩表以及多表聯查。多表聯查會導致資料庫壓力大幅增加,而且不利於在內存中對部分記錄進行緩存,代碼的重用性也難以提高。
6. 避免在循環里執行findXXById這樣的方法,不如執行一個findXXByIds這樣的方法一次性把記錄取到Map里。大部分有實際對象對應的表應該提供這樣一個方法。
7. 如果使用最原始的jdbc編程的話需要注意資源的正確釋放,在循環里new出來的Statement或者ResultSet就要在循環里關閉。
8. 在編寫SQL進行查詢的時候,需要能夠判斷這個SQL是否已經使用了索引,避免全表掃描,必要的時候增加索引。
9. 在寫一個方法前,首先查看有沒有相同功能或者很類似功能的方法已經有了,尤其是工具類方法,往往已經寫過了,避免重複代碼的產生,發現重複代碼及時進行處理。如果一段代碼被重複使用兩遍或以上,那麼可以考慮專門寫個方法來放這段代碼,同樣多次使用的常量也應該專門定義出來。
10. 在一個方法里並不一定只能有一個return,如果已經有結果了儘早return,沒必要增加嵌套的層次,那樣會導致代碼可讀性不佳,但也不能return太多,代碼看起來比較舒服就可以了。
11. 不要滿足於能夠熟練的編寫DAO和Bean(Service)的代碼,相比較而言,後台如果在成熟框架的支持下,編碼是沒有太大難度的,也不值得沾沾自喜,因為這是對Java研發工程師基本的要求。適當的培養一下前台的編碼能力,學會使用Dreamweaver。不要輕視界面,也別認為這是界面設計的事情,界面對用戶來說就是軟體,學會編寫CSS和調整界面對你沒有壞處。
12. 非常明確Java和javascript作用的範圍,明確它們能做的事情。
13. 一般很奇怪的現象都是由一些低級錯誤引起的,如果你查了一段時間也沒有結果,那麼讓別人來查吧。
14. 不要用可能被修改的欄位來做主鍵,那樣會讓相關記錄的更新成為一個大麻煩。
15. 如果被迫使用Hibernate和jdbc混合操作資料庫的話,不要用Hibernate來做複雜查詢和統計。Hibernate用的不好的話,帶來的便利是非常有限的。
16. 資料庫中經常被讀取,但是很少修改的話,應該把這樣的數據讀到內存中用OSCache之類的緩存起來,然後定期或者觸發的去更新,有助於減少讀資料庫次數,提升性能。
17. 編碼的時候應該注意部署環境帶來的影響,這種影響包括操作系統不同帶來路徑的差異;應用伺服器和資料庫伺服器之間時間的差異;外網可能部署在多台伺服器上,放到Session里的對象因為需要複製所以要實現java.io.Serializable介面等。
18. 盡量不要在jsp上編寫太多代碼,保持jsp的整潔很重要,用Dreamweaver打開不至於一塌糊塗,根本看不出來這是個什麼界面。
19. 目前我們的項目一般都使用Spring來管理資料庫事務,而且一般都配置在Bean(Service)即業務層這一層,應該注意要保持事務的完整性,不要把一些應該放在一起的操作分散在Action這一層。相關的更新操作可以認為是一個事務,比如:增加一個家長,同時更新學生是否有家長的欄位。
20. 在Spring的配置中,對於有些需要保持獨立事務的方法操作,比如生成主鍵等,應該聲明該方法為獨立事務ROPAGATION_REQUIRES_NEW。Bean(Service)里如果拋出checked exception,事務默認是不會回滾的,需要加以聲明,比如propkey=”*”PROPAGATION_REQUIRED,-PassportException/prop。
21. 在一個Bean(Service)中引用其他Bean(Service)的時候盡量引用Bean(Service),而不是DAO。因為其他的Bean(Service)往往封裝DAO的操作後,又做了進一步的完善,比如增加校驗等,所以應該重用這些方法,而不必要去引用DAO的方法來重寫這些操作。
22. 至少在Bean(Service)的介面定義上增加註釋,方便他人引用你寫的方法。
23. 好好利用集合框架里的Map、List、Set。尤其是HashMap、ArrayList、HashSet用的最多,這些類是多條數據操作的基礎,它們都不是線程安全的。
24. 現在跑的快的頁面,隨著數據量的增加,可能會變的很慢,所以應該意識到頁面可能變慢的原因,而不是現在看起來很快。影響速度的大部分原因是對資料庫的壓力太大了,在java代碼執行上花費很多時間的情況是不常見的。
25. 避免不必要的跳轉,如果頁面執行的足夠快,那麼中間的載入進度提示頁是不必要的,那樣會讓用戶覺得閃爍。
26. 注意頁面的文件大小,並不是每個用戶的帶寬都是非常理想的,文件小一點,速度快一點,總是感覺更好一點。
27. 不要去修改用戶的瀏覽器,比如隱藏他們的地址欄、菜單、右鍵菜單等,這可能會引起部分用戶的反感。盡量不要使用彈出窗口,可能會被攔截。
28. 網站的許可權控制至少應該保證有訪問許可權的用戶才能訪問頁面,通過隱藏鏈接之類的方法是很不安全的,用戶看不見了並不表示安全了。許可權的控制盡量使用框架里的攔截器這樣的機制,而不是把許可權控制代碼寫的到處都是。過濾器不宜過多的使用,不僅因為過濾器的作用範圍很難控制,而且容易引起頁面執行效果的混亂,錯誤不易排查。
29. 頁面里大部分情況使用相對路徑,保持Action路徑層次和頁面一致,這樣應用就可以發布在各種目錄下。
一般開發ERP是B/S架構的,不會用到swing具體要用到什麼,要看項目具體要球用什麼,一般主流的是ssh三大框架, ejb也可以用,xml解析啊,消息隊列啊,Jmail啊,Quartz啊等等多呢。其他還有數據技術啊。涉及到挺多的,具體項目開發過程中還會遇到很多問題要去一一解決的。
Java是一門面向對象的編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行複雜的編程 。
Java具有簡單性、面向對象、分散式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點 。Java可以編寫桌面應用程序、Web應用程序、分散式系統和嵌入式系統應用程序等
如果想學好java最好注意以下五點:1、做學習計劃並保持自律:在我們學習Java的過程中,盡量減少干擾,把自己的全部注意力集中在Java上。無論你注意力的持續時間是多久,都應該將全部精力放在Java上。千鋒教育就有線上免費Java線上公開課。 2、通過編碼來學習:很多新手在學習Java時都會經歷一個階段,那就是看書、看視頻,一段時間後感覺自己都會了,但是真的要寫代碼卻怎麼都寫不出來,這種情況除了多編碼外,沒有其他方法了。3、手寫代碼:在電腦上敲代碼也很好,當然不反對這種學習方式。但在我們在手寫代碼的時候,會激活機械記憶,能幫助你更好地記住東西。此外,在面試中,很多公司的筆試都會讓你在紙上寫代碼。所以在學習過程中這是初學者一定要具備的專業技能了。4、工作產出:可以將你自己寫的一些代碼、小項目等發布在公共論壇上,雖然有時候他們給出很嚴厲的評價,但也能進一步指出你的不足,從而加以改正。5、堅持編碼:一定要堅持編碼,從小項目做起,然後慢慢擴大你的項目範圍。如果想了解Java更多相關知識,建議到千鋒教育了解一下。千鋒教育目前在18個城市擁有22個校區,年培養優質人才20000餘人,與國內20000餘家企業建立人才輸送合作關係,院校合作超600所。
快要變身為Java開發工程師的同學們,你們了解了Java開發的工作了嗎?初入職場,如果對你即將要做的工作沒有了解,一定會有較長的磨合期的,所以,IT培訓為大家分享從事Java開發注意事項。
1、將一些需要變動的配置寫在屬性文件中若沒有把一些需要並發執行時使用的線程數設置成可在屬性文件中配置。
那麼你的程序無論在DEV環境中,還是TEST環境中,都可以順暢無阻地運行,但是一旦部署在PROD上,把它作為多線程程序處理更大的數據集時,就會拋出IOException,也許是線上環境並發造成,也許是其他。
如果線程數目可以在屬性文件中配置,那麼使它成為一個單線程應用程序就變得十分容易了。
方法同樣適用於配置URL、伺服器和埠號等。
2、測試中儘可能模擬線上環境生產過程中一個典型的場景就是只使用1到3個帳戶進行測試,而這個數量本應是1000到2000個的。
在做性能測試時,使用的數據必須是真實並且未經裁剪的。
不貼近真實環境的性能測試,可能會帶來不可預料的性能、拓展和多線程問題。
這裡也可以採取預發布環境的方式來解決部分問題。
3、對於所有外部調用以及內部服務都要做容錯處理不管是RPC調用還是對於第三方服務的調用,都不能想當然的認為可用性是100%的。
不允許出現服務調用超時和重試,將會對應用程序的穩定性和性能造成不利的影響。
4、安全設計上一個系統要遵循最小許可權原則網路服務隨處可見,從而使得黑客可以輕易地利用它進行拒絕服務攻擊。
設計系統時,需要遵循”最小許可權”原則,採用白名單等方式。
5、需要提供以下文檔編寫單元測試文檔並使其擁有良好的代碼覆蓋率。
高層次的設計圖:描述了所有的組件,交互和結構。
詳細的設計圖:具體到代碼層面的設計,以及一些關鍵邏輯的流程。
系統組成文檔:說明系統的所有組成文件、配置文件等。
資料庫層面的dml以及ddl文檔,尤其是sql查詢語句需要經過dba或者核心開發人員的review才能夠上線。
第一階段,Java SE基礎:
Java環境搭建、Java流程式控制制語句-for循環、switch選擇判斷、循環嵌套、數組拷貝、多維數組、final關鍵字、構造函數的調用、類的訪問許可權和路徑、面向對象高級特性、Java異常處理、Set,Map,List介面及介面實現類、Java線程、同步阻塞、Java IO流、文件的操作,複製,讀寫,刪除等。
第二階段,JavaWeb:
MySQL安裝、管理、創建資料庫、MySQL UPDATE 查詢、Mysql高級操作、JDBC、JDBC資料庫鏈接操作,JDBC動態Sql處理、Servlet3.0 網頁重定向、Servlet3.0 新增的註解支持、AJAX、responseText屬性詳解等。
第三階段,Java高級框架-SSH:
Struts2 異常處理、Struts2+Log4j集成、Struts2和JSON實例、Hibernate5、Hibernate集合映射、Hibernate組件映射、Spring4.0、Spring AOP + AspectJ框架、Spring 與其它Web框架集成、Spring Hibernate支持等。
第四階段,Java高級框架-SSM:
SpringMVC、Spring MVC生成JSON數據、MyBatis、MyBatis 環境配置及入門、Mybatis set標籤、Mybatis trim標籤、Shiro、Shiro快速入門教程、Shiro Web應用等。
第五階段,SpringBoot+VUE全棧框架
SpringBoot、全局異常處理、過濾器監聽器、EHCache緩存、SpringBoot Quartz定時任務、Vue、Vue.js 安裝、模板語法、計算屬性、事件處理器、Vue.js 自定義指令、Vue.js 路由等
第六階段,特色課程
ActiveM環境搭建、生產者和消費者、消息持久化操作、RSA數字加密演算法、Codebar條形碼生成器、zxing二維碼生成器、HighCharts統計圖、Echarts統計圖、網路播放器ckplayer、嵌入式網路播放器,可以瀏覽器和移動端隨意使用
第七階段,互聯網框架的高級應用1
分散式服務框架的理解,Dubbo架構設計詳解及其核心要點,框架運行原理分析、SpringData數據訪問、Lucene搜索引擎、Lucene的全文搜索伺服器介紹、索引建立方式、Solr海量數據搜索引擎、Socket網路通信、實現RMI遠程對象通訊、使用JMS消息服務、Kafka分散式消息系統、Web Service與Restful WS等
第八階段,互聯網框架的高級應用2
Spring Security安全框架、實現Web應用安全控制、緩存應用與EhCache框架、OSCache與JBossCache框架、MyBatis與Hibernate緩存機制、NoSQL應用與SQL調優、MongoDB NoSQL資料庫、Redis內存資料庫、實現Redis Session共享、SQL語句的優化、實現資料庫讀寫分離、WEB應用集群及性能優化、Maven項目管理工具、Web伺服器負載均衡、實現Nginx與Tomcat集群、使用LoadRunner測試工具、性能優化之內存調優、代碼優化與重構的方法等。
學習內容:
初級部分
Java 程序設計基礎,包括 J2sdk基礎、Java面向對象基礎、Java API使用、數據結構及演算法基礎、Java AWT圖形界面程序開發;
J2SE平台Java程序設計,包括Swing圖形程序設計, Socket網路應用程序設計,對象序列化,Java 常用數據結構,Applet,流和文件,多線程程序設計;
Java桌面系統項目開發,4~5人組成一個項目組,項目大小為(15人*工作日);
Linux的基本操作,Linux下的Java程序開發,Linux系統的簡單管理;
Oracle資料庫,包括SQL/PLSQL;資料庫和資料庫設計;簡單掌握ORACLE9i 資料庫的管理;[2]
中級部分
Java Web應用編程,包括 Java Oracle 編程,即JDBC;JavaWeb編程,包括JSP、Servlet,JavaBean;Java應用編程,包括Weblogic、Websphere、Tomcat;以及利用Jbuilder開發Java程序;
MVC與Struts,學習業界通用的MVC設計模式和Struts架構;
Java B/S商務項目開發,4~5人一個項目組,項目大小為(25人*工作日左右)
高級部分
J2ME程序設計,包括J2EE程序、J2ME;Java高級程序設計(J2EE),包括J2EE體系結構和J2EE技術、EJB;Weblogic使用、 JBuilder開發;
Java和XML,包括Java Web Service,JavaXML, 業界主流XML解析器程序設計;
軟體企業規範和軟體工程,包括UML系統建模型和設計(Rational Rose 200x)軟體工程和業界開發規範;CVS版本控制、Java Code書寫規範;
J2EE商務應用系統項目開發,4~5人一個項目組,項目大小為(25人*工作日左右)。
………………………………………………………………………………………………
看你問的問題,應該是對java很感興趣,其實你可以自學java。關於如何學習java,我剛才看到一篇很不錯的文章,是一個農民工介紹自己如何自學java,並找到Java的工作,裡面介紹了他的學習方法和學習過程,希望對你有幫助。
我是一名地地道道的農民工,生活在經濟落後的農村,有一個哥哥和一個弟弟,父母都是地道的農民,日出而作,日落而息,我從小到大學習一直很好,從小學到高一都,成績在全級一直名列前茅,這樣我也順利了考上省的重點高中,然而,每個學期開學是家裡最為難的時候,每次交學費都讓父母發愁許久,家裡為了給我籌錢讀書,都借了不少錢,才讓我讀上高中。我知道我讀到高中家裡已經欠了好多債,為了減輕家裡的負擔,我選擇了退學。
2009年我高一退學,為了給家裡還債,干過建築工地的小工,搞過塑料製品加工,送水工等等。很工資都很低,一個月也就1000多,加上加班費一個月能拿2000多一點,我每個月都向家裡寄回800-1000元,到了2011年末,一次偶然的機會我接觸了Java,聽說Java的前景挺不錯,工資相對於我一個農民工來說簡直是天文數字,於是我在新華書店買了幾本Java的書,儘管白天辛苦工作,晚上回來還是堅持看書,但有於基礎太差很多都很不明白,但還是堅持看,一有看1-2個小時Java的書,看著看著許多基礎都慢慢的學會了,但那些比較難的還是看不懂,後來還買了有些關於框架的書,還是看不懂,這樣斷斷續續的持續了半年多,覺得自己Java的基礎都差不多懂了,但框架還是看不懂,還有最缺的項目經驗,看了很多招聘Java程序員的簡介都要項目經驗,相對我一個農民工來連框架都弄不明白,想找一份Java工作對我來說簡直是奢侈。我只想學Java,並不敢想以後能從事Java的工作。
有一次,在百度上看到一篇讓我很鼓舞的文章,是一個Java高手介紹在沒有基礎的朋友怎麼自學入門Java,文章寫的很好,包含了如何學習,該怎麼學習,他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,不少是我們也看不懂,這點我真的很認同,我自己看書都看了很久才學會基礎。曾經有想過參加培訓,但是上萬元的培訓費讓我望而卻步,我工資這麼低,每個月還有向家裡匯錢,加上城市消費比較高,雖然每個月只有幾百剩下,但是相對於上萬萬學費和四個月的吃住費用逼我連想不敢想。 於是我決定看視頻,我就去搜索Java的視頻,雖然我零星的找到一些Java的視頻,但是都不系統。最重要連項目都沒有。後來我找到一份很好的視頻,是IT學習聯盟這個網站一套視頻叫零基礎Java就業班的教程還不錯,很完整。還贈送11個頂級企業項目。價格很合理,於是我買下來。
於是開始了我的自學Java的路,收到光碟後,我就開始學習,剛開始學習還不錯,是從零基礎教起,老師幽默風趣而又輕鬆的課堂教課,使我發現原來學習JAVA並不是一件很難的事情。因為我本來基礎還不錯,前面的基礎看一篇我就過去了,到了框架,我覺不又不是很難,可能老師太牛了,他能把複雜的問題講的比較通俗易懂,有些難點的地方我還是連續看了五六次,把他弄懂。每天下午6點下班後,吃了飯,馬上跑回家。看視頻,買了幾本筆記本。當時,為了編程還花幾百元了台二手的台式電腦,配置一般,但編程是足夠的。一邊看視頻,一邊記筆記,把重點都記下來,還一邊跟著老師敲代碼,為了能儘早學會Java。每天都堅持學5-6個小時。經常學到晚上一點多才睡覺。星期六,日不用上班,每天7點多起床,學到晚上11,12點。那段時間特別辛苦,特別累。在學習Java的三個多月里,除了吃飯睡覺工作,剩餘的時間都在學習,因為我知道自己的計算機基礎不是很好,也沒有學過什麼計算機,只是學了些Java基礎,相對於那些科班的人來說我要比他們付出更多的努力。我只能咬緊牙關,堅持下去,我不能放棄,我要完成我的夢想,我要讓我的家人過上好日子。終於三個多月後我把Java教程里的內容和項目都學完了,在學項目的過程中我發現項目特別重要,他能把你學過的知識全部聯繫起來,能更好的理解你所學的知識。還有學習過程中,動手很重要,要經常跟著老師動手敲,動手吧,跟著做,一行一行的跟著敲,再試著加一些自己的功能,按照自己的思路敲一些代碼,收穫遠比干聽大的多。 如果遇到暫時對於一些思路不能理解的,動手寫,先寫代碼,慢慢你就會懂了。這套視頻還贈送了11個頂級企業項目,對於我沒有任何經驗的人來說,這個太重要了,還有在學習項目是提升能力最快的方法。項目能把所有的知識點全都連到一起了,不再是分散的,而是形成一個整體了。那種感覺是僅僅深入鑽研知識點而不寫真實項目的人所不能體會的。一個項目就是一根繩子可以把大片的知識串到一起。 就這樣,我用了兩個月也把項目給學完了。其實學完教程差不錯就達到就業水平,但是我可能覺得自己學歷低還是把那11個頂級企業項目才去找工作。
接著我就到51job瘋狂的投簡歷,因為我的學歷問題,初中畢業,說真的,大公司沒有人會要我。所以我頭的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天後,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了準備,但是他們的要求比價嚴格,需要有一年的項目經驗,所以我沒有被選中。 後來陸續面試了幾加公司,終於功夫不負有心人,我終於面試上了一家民營的企業。公司規模比較小,我的職務是Java程序員。我想我比較幸運,經理看中我的努力,就決定呂勇我,開的工資是3500一個月,雖然我知道在北京3500隻能過溫飽的生化,但是我想我足夠了,比起以前的工資好了些,以後可以多寄些錢回家。我想只要我繼續努力。我工資一定會翻倍的。 把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有自卑,我們不比別人笨,只有我們肯努力,我們一樣會成功。
原創文章,作者:NUYW9,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126641.html