Длительность 30 часов. Рассматривается java-приложение как gray box. Небольшое введение в синатксис, но основной упор на внешнее поведение уже готового Java Application. Участники обучаются на примере полу-готового java app, которое необходимо покрыть тестами и локализовать дефекты. Цель: понимание работы уже написанного java app.
Участники после курса смогут:
- установить JDK и запустить java app
- собрать jar и исправить проблемы нахождения нужных jar (CNFE)
- локализовать compile-time ошибки и создать понятный разработчикам багрепорт
- локализовать runtime-ошибки и создать понятный разработчикам багрепорт
- локализовать и исправить своими силами ряд типовых runtime-ошибок приложения (NPE, IOE, SQLE)
- локализовать и исправить своими силами ряд типовых проблем с памятью (OOME, SOE, gc pauses)
- сформулировать ключевые граничные условия типового java app для создания тестов (сеть, IO, threads, heap, stack)
- профилировать и семплировать java app для выявления узких мест
- Installation process demo
- Practice: JDK installation
- JDK structure demo
- JDK tools overview
- App overview and structure
- Class
- Classpath
- Package
- JAR
- Practice: Java App compiling
- Practice: Java App launching
- JVM options and App parameters
- Compiling and Running old version Apps
- Типовые граничные условия (для тестов)
- Build tools: mvn
- Class
- Method
- Call Stack
- Design
- Object
- Simple App demo
- Call stack recap
- try/catch/finally
- Exceptions hierarchy
- Mostly used exceptions
- Stacktrace in log demo
- threads
- sockets
- Threads
- Stack
- Heap
- GC overview
- JVM options for heap and stack tuning
- JVisualVM demo
- Типовые граничные условия для тестов
- Garbage
- Heap architecture
- Types of GC
- GC and Heap tuning
- JVM options for GC tuning
- GC console demo
- Типовые граничные условия для тестов
- Sampling vs Profiling
- Heap and GC monitoring with JVisualVM demo
- Stack and threads monitoring with JVisualVM demo
- Heap and Stack Dumps with JVisualVM demo
- Main trouble reasons
- Logging frameworks
- Exceptions in logs
- JVM crash dumps
- GC collection pauses
- Типовые граничные условия для тестов
- Layers: UI, BL, DAL
- Frameworks overview (Spring, EJB)
- JDBC
- AppServer architecture
- ThreadPools
- ConnectionPools
- Типовые граничные условия enterprise java app для тестов