Java a średni (?) projekt informatyczny



Podobne dokumenty
Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Gdzie jest moja tabela?

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

IT Camp Junior Java Developer. Cel kursu

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

CI/CD - CO TO? PO CO? JAK?

Dokumentacja kompilacji źródeł aplikacji 1.0

Wybrane działy Informatyki Stosowanej

Warsztat: "Automatyzacja testów (JAVA) - od podstaw"

szkolenia pod drzewem Wybrane Techniki XP bnd 2008 Tomasz Włodarek. Materiał udostępniany na podstawie licencji Creative Commons (by-nc-nd) 1.00.

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

CASE STUDIES TEST FACTORY

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Program szkolenia: Continuous Integration i Git

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Podstawy frameworka Spring

Korporacyjna Magistrala Usług na przykładzie Mule ESB

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Automatyzacja Testowania w WEB 2.0

Integracja wirtualnego laboratorium z platformą e-learningową

REFERAT PRACY DYPLOMOWEJ

Instrukcja laboratoryjna cz.3

Załącznik 1 instrukcje instalacji

Java Persistence API - zagadnienia zaawansowane

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

Wdrożenie do projektu

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Szczegółowy opis przedmiotu zamówienia

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Testowanie oprogramowania

Oracle Application Express -

Oracle Designer. Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera :

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Przewodnik użytkownika (instrukcja) AutoMagicTest

Instrukcja laboratoryjna

Załącznik nr 19 do Umowy nr... z dnia... Plan Testów Systemu. Projekt ZEFIR 2

Web frameworks do budowy aplikacji zgodnych z J2EE

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

Szkolenie: Testowanie wydajności (Performance Testing)

Przykład połączenie z bazą danych

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Szybkość w biznesie. Zwinne testowanie oprogramowania (Agile) Mateusz Morawski (mateusz.morawski@hp.com) 14 kwietnia 2015

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Artifactory Power Pack Pro w procesie wytwarzania oprogramowania. Artifactory Power Pack Plugins Artifactory License Control

WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński

Produkcja by CTI v Biuletyn Techniczny. Definiowanie pól specjalnych. Program w pełni zintegrowany z Comarch ERP Optima

Programy LeftHand - Obsługa plików JPK. Luty 2017

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Maciej Oleksy Zenon Matuszyk

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Open Source w służbie developerom

Wstęp do testowania : Szymon Ramczykowski

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Program szkolenia: REST i Microservices w PHP

Projektowanie aplikacji z bazami danych

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

BUDOWANIE APLIKACJI. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

The current software tools for the JEE platform

Programowanie MorphX Ax

Techniki efektywnego testowania kodu dla programistów Java (Spock

Wprowadzenie do hurtowni danych

Poznań, dzień Zapytanie ofertowe

1 Wprowadzenie do J2EE

Spis treści. Przedmowa

Biuletyn techniczny Instalacja i uruchamianie CDN OPT!MA dodatkowe moŝliwości. Data powstania: Copyright 2007 COMARCH SA

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Automatyzacja narzędziami open source nie musi być trudna

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Platformy Technologiczne

Podstawowe wykorzystanie Hibernate

Specyfikacja testów akceptacyjnych Radosław Iglantowicz, Tomasz Bruździński,

Platformy Technologiczne

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Wykaz zmian w programie WinAdmin Replikator

Program szkolenia: Jenkins - Continuous Integration

Przypadki testowe. Spis treści. Plan testów. From Sęp. Wstęp. 2 Plan testów

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

WebAii Automation Framework

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Szablon Planu Testów Akceptacyjnych

Dokumentacja projektu QUAIKE Architektura oprogramowania

Transkrypt:

Java a średni (?) projekt informatyczny Doświadczenia na przykładzie projektu Nabór Paweł Dachterski, Paweł Gruszczyński, Bernard Lange, Krystian Nowak, Stanisław Osiński Poznańskie Centrum Superkomputerowo-Sieciowe

Chcemy wywołać dyskusję Problem Statystyki Dyskusja Technologie Wnioski

Uporządkowanie naboru do szkół Od 0 do 200 punktów

Uporządkowanie naboru do szkół

Uporządkowanie naboru do szkół

Ciągły dostęp do informacji

Skomplikowany model dziedzinowy

Konfiguracja dla wielu miast

Średni projekt? DuŜy projekt?... miast

Średni projekt? DuŜy projekt?... zainstalowanych systemów

Średni projekt? DuŜy projekt? ~60,000... uŝytkowników

Średni projekt? DuŜy projekt? 150,029... Java NCSS

Średni projekt? DuŜy projekt? 886,536... linii w całej zawartości repozytorium

Średni projekt? DuŜy projekt?... przypadków testowych (o róŝnym stopniu złoŝności)

Średni projekt? DuŜy projekt?... automatycznych testów akceptacyjnych (o róŝnym stopniu złoŝności)

Średni projekt? DuŜy projekt?... tabel w aktualnym schemacie bazy danych

Średni projekt? DuŜy projekt?... bugów na JIRZe, z czego 189 otwartych

Średni projekt? DuŜy projekt? 3-5/1-2... programistów... testerów

Średni projekt? DuŜy projekt?... release ów produkcyjnych od lutego 2005

DuŜa liczba technologii Development Libraries Test & benchmarking Deployment

Hibernate upraszcza kod DB Application POJOs Hibernate XML mapping Database

Hibernate upraszcza kod DB Przezroczystość i nieinwazyjność, ułatwienia dla programistów Stabilny kod (wtedy wersja 2.1) Elastyczność mapowania, implementacji, cache owania i wyboru bazy danych

Tapestry: składanie UI z klocków

Tapestry: składanie UI z klocków

Tapestry: składanie UI z klocków

Tapestry ułatwia Ŝycie Koniec zabawy z ręczną generacją HTMLa, komponentowość Koniec ręcznej obsługi parametrów (HttpRequest, HttpSession) Automatyczne sprawdzanie poprawności danych

Automatyczne testy akceptacyjne Automatyzacja wykonywania testów (BłaŜej Pietrzak)

Canoo Webtest wygląda ciekawie Wysoki poziom abstrakcji Obsługa plików XLS i PDF Dobra integracja z buildami automatycznymi (Maven) Open Source

Niezbędne zarządzanie konfiguracją

Maven wydał nam się sensowny Zarządzanie zaleŝnościami Gotowa struktura projektu Rozszerzalność (wtyczki) Raporty i statystyki

Maven robi całkiem sporo Generacja plików konfiguracyjnych Kompilacja źródeł Uruchamianie testów jednostkowych i akceptacyjnych

Maven robi całkiem sporo Konfiguracja środowiska programistycznego Testowanie automatycznej migracji danych produkcyjnych

Build server jest niezbędny Kompilacja i uruchamianie testów na bieŝąco Nie wydajemy wersji produkcyjnej (ani RC) bez całościowo przechodzącego builda

Hibernate: łagodna krzywa uczenia

Cykl Ŝycia sesji Hibernate HTTP Request Tapestry rewind Tapestry render R/W transaction RO transaction Flush, (commit)/rollback Hibernate session

Konsekwencje session-per-request Sprawdził się w naszej aplikacji Uwaga na Ŝądania nie wymagające sesji Hibernate Optymalizacja pobierania połączeń do bazy danych

Historie z equals() Celowo nie był nadimplementowywany Czasem problemy z Tapestry (a.equals(b) b.equals(a) :) Problemy z cache owaniem

Uwaga na wydajność select from where child Child child child.parent.name = 'janek' or child.name = 'janek' select from where dummychild0_.child_id as child_id, dummychild0_.name as name, dummychild0_.parent_id as parent_id dummy_child dummychild0_, dummy_parent dummyparen1_ (dummyparen1_.name='janek' and dummychild0_.parent_id = dummyparen1_.parent_id) or (dummychild0_.name='janek' )

Ciekawe zapytania select from where child Child child left outer join child.parent parent parent.name = 'janek' or child.name = 'janek'";

Uwaga na wydajność W Hibernate 2.x kolekcje nie są domyślnie pobierane w trybie lazy Cache owanie wyników zapytań

Ostatnie słowo o Hibernate Migracja do H3.x nie byłaby problemem Warto uŝywać (np. w porównaniu z Torque)

Tapestry: długi czas wdroŝenia (około 6 miesięcy)

Nietrywialny model działania Form rewind/render Cykl Ŝycia komponentów i stron Typy parametrów (T3.x) Interakcje z Hibernate Dziwne wyskoki OGNLa

Brakujące komponenty ValidPropertySelection ValidTextArea StaticScript DynamicBlock FieldLabel InsertWithDefault OptGroup Listener ValidFieldFocusController AjaxRequest... i 50 innych...

Konieczność hackowania Tapestry CSS rewriting Selective page caching Problemy wydajnościowe przy bardzo długich stronach Implementacja komponentów sprawdzających poprawność wprowadzonych danych

Konieczność hackowania Tapestry Obiekty Hibernate owe jako persistent properties Ogólna konkluzja: Tapestry 3.x jest słabo rozszerzalne

Problemy z upgrade do T4.x/5.x Brak zgodności pomiędzy Tapestry 3.x i kolejnymi wersjami Poszukać alternatywy do Tapestry? (Stripes, Wicket)

Ostatnie słowo o Tapestry MoŜe być opłacalne, ale tylko w dłuŝszej perspektywie

Automatyczne testy akceptacyjne Kosztowne utrzymanie Jak interpretować błędy? Problemy ze stanem początkowym i inicjalizacą Problemy z JavaScriptem (prosty Ajax działa)

Automatyczne testy akceptacyjne Co dziesiąty bug przed wydaniem znaleziony przez automat Opłacało się robić te testy, mimo wysokich kosztów

Zarządzanie konfiguracją WaŜne dla programistów Utrzymanie skryptów i buildów pochłania 0.5 osobomiesiąca Wieloprojektowa struktura (Maven) ułatwia ogarnięcie całości i przyspiesza budowanie

Dyskusja