직업기술
1. Java 언어를 사용하여 객체 지향 프로그래밍, 좋은 프로그래밍 습관, 자주 사용하는 Java 에 익숙합니까? 어셈블리 프레임, 멀티 스레드 (동시 프로그래밍), 입출력 (nio), 소켓, JDBC, XML, 반사 등을 포함한 API.
2. JSP 및 서블릿 기반 Java 를 잘 알고 있습니까? 웹 개발, 서블릿과 JSP 의 작동 방식과 수명 주기 이해, JSTL 과 EL 을 사용하여 스크립트 없는 동적 페이지 작성, 리스너, 필터 등 웹 그룹 사용에 능숙합니까? 자바 Java 아키텍처 모델도 있나요? 네트워크 프로젝트 개발 경험.
3. Spring 의 IoC 컨테이너와 AOP 원리를 깊이 이해하고, Spring 프레임워크를 사용하여 다양한 웹 구성 요소와 해당 종속성을 관리하는 데 능숙하며, Spring 을 사용하여 트랜잭션, 로그, 보안 등을 관리하는 데 능숙하다. MVC 는 프레젠테이션 계층 기술로, Spring 이 제공하는 지속적인 지원을 통해 웹 프로젝트를 개발한 경험을 바탕으로 Spring 과 다른 프레임워크의 통합에 대해 잘 알고 있습니다.
4. Hibernate, MyBatis 등의 ORM 프레임워크를 능숙하게 사용하고 Hibernate, MyBatis 의 핵심 API 에 익숙하며 Hibernate 의 연결 매핑, 상속 매핑, 구성 요소 매핑, 캐싱 메커니즘, 트랜잭션 관리, 성능 튜닝에 대해 자세히 알고 있습니다
5. HTML, CSS 및 JavaScript 를 사용한 웹 프런트 엔드 개발, jQuery 및 Bootstrap 에 익숙 함, 웹 프로젝트에 Ajax 기술 적용 이해, 프런트 엔드 MVC 프레임워크 (AngularJS) 및 JavaScript 템플릿 엔진 (
6. 일반적으로 사용되는 관계형 데이터베이스 제품 (MySQL, Oracle) 에 익숙하고 SQL 및 PL/SQL 을 사용한 데이터베이스 프로그래밍에 능숙합니다.
7. 객체 지향 설계 원리에 익숙하고, g of 디자인 패턴과 엔터프라이즈 애플리케이션 아키텍처 모델에 대한 깊은 이해와 실제 개발 관련 경험, UML 을 사용한 객체 지향 분석 및 설계, TDD (테스트 중심 개발) 및 DDD (도메인 중심 설계) 경험이 있습니다.
8. Apache, NginX, Tomcat, WildFly, Weblogic 등 웹 서버 및 애플리케이션 서버 사용에 익숙하고 다양한 서버 통합, 클러스터 및 로드 밸런싱 구성에 익숙합니다.
9. 제품 프로토타입 도구 Axure, 디자인 모델링 도구 PowerDesigner 및 Enterprise 사용에 능숙합니까? 설계자, Java 개발 환경인 Eclipse 및 IntelliJ 사용, 프런트 엔드 개발 환경인 WebStorm 사용, 소프트웨어 버전 제어 도구인 SVN 및 Git 사용, 프로젝트 구축 및 관리 도구인 Maven 및 Gradle 사용에 능숙함
참고: 위에 나열된 모든 항목을 잘 알고 있어야 하는 것은 아닙니다. 기업 채용의 구체적인 요구에 따라 적절한 목표 준비를 할 수 있다. 개인은 상위 6 개 항목이 최소 요구 사항이어야 하며 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 Enterprise Development 원 스톱 선택) 을 의미합니다. F 는 아마도 jQuery 라이브러리와 해당 플러그인 또는 부트 프레임워크일 것입니다. 물론, SPA (단일 페이지 응용 프로그램) 를 구축하려는 경우 가장 좋은 솔루션은 AngularJS 와 같은 프런트 엔드 MVC 프레임워크와 Handle Bars 와 같은 JavaScript 템플릿 엔진입니다. G 는 분명히 MVC (모델-뷰-컨트롤) 이며, 가장 가능성이 높은 구현 프레임워크는 Spring 입니까? MVC, Struts 를 제외하고? 2.JSF 와 Apache 가 JSF 에 제공하는 MyFaces 구현은 JSP 를 MVC 의 v 로 사용할 수 있으며, Freemarker 및 Velocity 와 같은 템플릿 엔진은 뷰를 생성하고 Excel 및 PDF 와 같은 다양한 문서나 보고서를 생성할 수 있습니다. 서브렛과 사용자 정의 컨트롤러는 MVC 의 c 입니다. 물론, 봄? 디스패처 서비스 네트워크 프런트엔드 디렉터는 MVC 에서 제공되기 때문입니다. J 는 일반적으로 트랜잭션 스크립트이며, K 는 AOP (aspect-orient Programming) 기술이어야 하며, 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, A 10
응용 프로그램 서버:
HTTP 서버: Apache, NginX(HTTP, 리버스 프록시, 메일 프록시 서버)
서브렛 컨테이너: Tomcat, Resin
EJB 컨테이너: 들꽃 (JBoss? 신청? 서버), 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 등.
면접 질문
이 프로젝트는 어느 회사를 위해 개발된 것입니까?
프로젝트의 투자는 얼마입니까?
얼마나 많은 사람들이 프로젝트 개발에 참여합니까?
전체 팀에서 테스터, 개발자, 프로젝트 관리자의 비율은 어느 정도입니까?
프로젝트 개발 기간은 얼마나 되었습니까?
프로젝트의 총 코드 양은 얼마입니까?
얼마나 많은 코드가 있습니까?
프로젝트에 사용되는 개발 모델 또는 프로세스는 무엇입니까?
프로젝트의 구조는 무엇입니까?
프로젝트의 기술적 선택은 무엇입니까?
너는 이 프로젝트에서 어떤 책임을 맡았니?
자주 회의를 합니까, 아니면 야근을 합니까?
프로젝트가 완료된 후 어떤 수확이나 교훈이 있습니까?
프로젝트의 가장 어려운 부분은 무엇입니까?
팀 개발에서 발생하는 다양한 충돌을 어떻게 해결할 수 있습니까?
명: 실제 프로젝트 경험이 없는 사람에게는 앞날 걱정 없이,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 。 전문가와 상담하여 그들의 디자인과 코드가 적합한지 확인하는 것이 가장 좋다. 이는 일정한 프로젝트 경험을 쌓은 것과 같다.
면접을 볼 때 면접관에게 질문을 할 수 있다.
나는 네가 X 기술을 사용했다는 것을 알아차렸다. 당신은 Y 문제를 어떻게 해결했습니까?
왜 당신의 제품은 Y 기술이 아닌 X 기술을 사용합니까? 제가 알기로는 X 기술은 A, B, C 등의 장점이 있지만 D, E 의 문제도 있습니다. Y 기술은 해결할 수 있습니다.
네가 말한 X 기술은 나는 그다지 익숙하지 않지만, 나는 좋은 해결책이라고 생각한다. 당신은 나에게 그것의 작동 원리에 대해 더 많은 것을 알려줄 수 있습니까?
당신 팀은 어떻게 프로젝트를 계획합니까? 일주일에 몇 번의 정기 모임이 있습니까? 매주 코드량은 대략 얼마입니까?
X 문제에 대해 내가 생각할 수 있는 유일한 해결책은 Y 입니다. 당신은 이 문제를 어떻게 해결할 것입니까?
취업 협상
당당하게 구체적인 치료 요구를 제기해야 한다.
입찰가가 예상보다 약간 높다
임금에만 집중하지 마라. (많은 회사들이 임금 이외의 조건에서 양보하는 것을 선호한다.)
가장 적합한 방법 사용 (전화나 이메일로 치료를 협상할 수 있음)
자기평가
학습 능력 (IT 업계에 종사하는 사람들은 새로운 기술, 도구 및 방법을 적시에 이해해야 함)
팀 인식 (it 업계는 개인 영웅주의에 비해 팀워크를 제창한다)
압축 능력 (많은 IT 회사들이 업무 강도가 비교적 높음)
독학 프로그래밍, 양질의 IT 자습서 및 자료 무료 이용, 검색: 다크호스 프로그래머.
웹 링크