職業技能
1.熟練使用Java語言進行面向對象編程,良好的編程習慣,熟悉常用Java?API,包括集合框架、多線程(並發編程)、I/O(NIO)、Socket、JDBC、XML、反射等。
2.熟悉基於JSP和Servlet的Java?Web開發,深刻理解Servlet和JSP的工作原理和生命周期,熟練使用JSTL和EL編寫無腳本動態頁面,使用監聽器、過濾器等Web組件和MVC架構模式實現Java?網絡項目開發經驗。
3.深刻理解Spring的IoC容器和AOP原理,熟練使用Spring框架管理各種Web組件及其依賴關系,熟練使用Spring管理事務、日誌、安全等。MVC作為壹種表示層技術,基於在Spring提供的持久支持下開發Web項目的經驗,熟悉Spring與其他框架的集成。
4.熟練使用Hibernate、MyBatis等ORM框架,熟悉Hibernate、MyBatis的核心API,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理、性能調優等有深入的了解。
5.熟練使用HTML、CSS和JavaScript進行Web前端開發,熟悉jQuery和Bootstrap,深刻理解Ajax技術在Web項目中的應用,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發的經驗。
6.熟悉常用的關系數據庫產品(MySQL、Oracle),熟練使用SQL和PL/SQL進行數據庫編程。
7.熟悉面向對象的設計原理,對g of設計模式和企業應用架構模式有深刻的理解和實際開發的相關經驗,熟練使用UML進行面向對象的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)經驗。
8.熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服務器和應用服務器的使用,熟悉各種服務器集成、集群和負載均衡的配置。
9.熟練使用產品原型工具Axure,熟練使用設計建模工具PowerDesigner和Enterprise?架構師,熟練使用Java開發環境Eclipse和IntelliJ,熟練使用前端開發環境WebStorm,熟練使用軟件版本控制工具SVN和Git,熟練使用項目建設和管理工具Maven和Gradle。
註意:並非上面列出的每壹項您都應該熟悉。可以根據企業招聘的具體要求做相應的針對性準備。個人認為前六項應該是最低要求,也是壹個Java開發者必須具備的專業技能。
項目介紹?
本系統是X委托y為Z開發的系統,系統包括A、B、C、D等模塊。系統使用Java enterprise開發的開源框架e和前端技術f,表示層使用G架構,使用H作為視圖I作為控制器,實現REST風格的請求。業務邏輯層采用J模式,通過K實現事務、日誌、安全等功能,通過L實現緩存服務;持久層用M封裝CRUD操作,底層用N實現數據訪問。整個項目采用P開發模式。
註意:以上描述中,e通常指Spring(Java企業開發壹站式選擇);f很可能是壹個jQuery庫及其插件或者壹個引導框架。當然,如果妳想構建壹個單頁面應用(SPA),最好的解決方案是壹個前端MVC框架(比如AngularJS)和壹個JavaScript模板引擎(比如Handle Bars)。g顯然是MVC(模型-視圖-控制),最有可能的實現框架是Spring?MVC,除了Struts?2.JSF和Apache為JSF提供的MyFaces實現可以使用JSP作為MVC中的V,模板引擎(如Freemarker和Velocity)生成視圖,以及各種文檔或報表(如Excel和PDF)。Servlet和自定義控制器是MVC中的C。當然,春天?調度員服務網;因為前端控制器是在MVC中提供的。j通常是事務腳本,K應該是AOP(面向方面編程)技術,L memcached和Redis目前廣泛使用;M有很多選擇,最有可能是Hibernate和MyBatis,或者兩種技術可以同時使用。然而,Hibernate通常處理添加、刪除和更改,而MyBatis則處理復雜的查詢。此外,TopLink和jOOQ是優秀的持久層解決方案。傳統上,底層數據訪問使用關系數據庫,如MySQL、Oracle、SQLServer、DB2等。隨著大數據時代的到來,NoSQL(如MongoDB、MemBase、BigTable等。)等大數據接入方案(如GFS、HDFS等。)也可以采用。項目的開發模型P可以是瀑布模型、快速原型模型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。
項目開發過程
1.可行性分析?& gt& gt& gt?可行性分析報告?/?項目開發計劃
2.需求分析?& gt& gt& gt?需求規格
1.OOAD(用例圖、序列圖、活動圖)
2.接口原型:在設計業務層時,幫助理解需求和導出事務腳本。
3.設計?& gt& gt& gt?簡要設計規範/詳細設計規範
1.提取業務實體(域對象):類圖和E-R圖(概念設計階段)
2.分層架構:確定各層的技術實現方案(具體到使用的框架、數據庫服務器、應用服務器等。).業務層設計:事務腳本模式(事務:用戶發出的請求是壹個事務;腳本:方法或函數;事務腳本:將請求封裝為方法或函數;事務腳本模式:壹個事務以打開腳本開始,以關閉腳本結束)。業務層涉及三類對象:事務腳本類(封裝業務流程)、數據訪問對象(DAO)和數據傳輸對象(DTO)。它們之間的關系是事務腳本類組合(聚合)數據訪問對象,兩者都依賴於數據傳輸對象。
3.正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)。
4.數據庫的物理設計(將ER圖轉換成表間關系圖,建立數據庫和表,用工具插入測試數據)
4.編碼?5.測試?& gt& gt& gt?檢測報告?/?缺陷報告
1.單元測試:檢查和驗證軟件中最小的可測試單元。在Java中,它是測試類中的方法,這可以通過使用JUnit工具來實現。
2.集成測試:集成測試也稱為裝配測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成子系統進行測試。
3.系統測試:將確認的軟件、硬件、外設、網絡等要素組合起來,進行信息系統的各種組裝測試和確認測試。系統測試是針對整個產品系統的,目的是驗證系統是否滿足需求規格說明書的定義,找出與需求規格說明書不壹致或矛盾的地方,從而提出更完善的方案。
4.驗收測試:在軟件產品完成單元測試、集成測試和系統測試之後,產品發布之前進行的軟件測試活動。這是技術測試的最後壹個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,最終用戶可以使用它來執行軟件的既定功能和任務。
5.交付和維護?& gt& gt& gt?用戶手冊?/?操作指南
項目管理
版本控制:CVS/SVN/Git
自動構建:Ant/Maven/Ivy/Gradle
持續集成:哈德遜/詹金斯
系統結構
負載平衡服務器:F5、A10
應用程序服務器:
HTTP服務器:Apache、NginX(HTTP、反向代理、郵件代理服務器)
Servlet容器:Tomcat,Resin
EJB集裝箱:野花(JBoss?申請?Server)、GlassFish、Weblogic、Websphere?數據庫服務器:MySQL、Oracle
第三方工具(插件)應用?
圖表工具:基於jQuery的圖表插件(如jQchart、Flot、Charted等。),Chart.js,Highcharts等。?
舉報工具:Pentaho?報告、iReport、動態報告等。?
文檔處理:POI、iText等。?
工作流引擎:jBPM、OpenWFE、Snaker、SWAMP等。
作業調度:Quartz、JobServer、Oddjob等。?
緩存服務:EhCache、memcached、SwarmCache等。?
消息隊列:Open-MQ、ZeroMQ等。?
安全框架:Shiro、PicketBox等。?
搜索引擎:IndexTank、Lucene、ElasticSearch等。?
Ajax框架:jQuery,ExtJS,DWR等。?
UI插件:EasyUI、MiniUI等。?
富文本框:UEditor、CKEditor等。
面試問題
這個項目是為哪家公司開發的?
項目的投資是多少?
有多少人參與項目開發?
測試人員、開發人員、項目經理在整個團隊中的比例是多少?
項目開發多久了?
項目的總代碼量是多少?
妳有多少代碼?
項目采用了什麽樣的開發模式或流程?
項目的結構是什麽?
項目的技術選擇是什麽?
妳在這個項目中承擔了什麽責任?
經常開會還是加班?
項目完成後有哪些收獲或教訓?
項目最難的部分是什麽?
如何解決團隊發展中遇到的各種沖突?
明:對於沒有實際項目經驗的人,可以在前程無憂、、等網站上搜索招聘Java程序員的公司,找到他們的官網了解他們做過的項目,查看項目的詳細介紹,然後嘗試完成部分功能。最好咨詢專家,看看他們的設計和代碼是否合適,相當於積累了壹定的項目經驗。
面試的時候可以問面試官問題嗎?
我註意到妳用了X技術。妳是怎麽解決Y問題的??
為什麽妳的產品用的是X技術而不是Y技術?據我所知,X技術雖然有A、B、C等優勢,但也有D、E的問題,Y技術可以解決。?
妳說的X技術我不太熟悉,但我覺得是個不錯的解決方案。妳能告訴我更多關於它的工作原理嗎??
妳的團隊如何規劃項目?壹周有幾次例會?每周的代碼量大概是多少??
對於X問題,我能想到的唯壹解決方案是y,妳會怎麽解決這個問題?
就業談判?
要理直氣壯的提出具體的治療要求?
報價比預期略高?
不要只關註薪資(很多公司更願意在薪資以外的條件上讓步)?
使用最合適的方法(妳可以嘗試通過電話或電子郵件協商治療)
自我評價?
學習能力(從事IT行業的人需要及時了解新的技術、工具和方法)?
團隊意識(相對於個人英雄主義,IT行業提倡團隊合作)?
抗壓能力(很多IT公司工作強度比較大)
自學編程,免費獲取優質IT教程和資料,搜索:黑馬程序員。
網頁鏈接