- Continuous Integration CI (Jenkins, Travis, GitHub, ...)
- Testing Framework
- Documentation Wiki (Confluence, IkiWiki, GitLab, GitHub, DokuWiki, <1000 skipped>, MediaWiki)
-- Process Planning, Agile, Scrum, Kanban, Waterfall, **je to hnus**, (Jira, Redmine)
+- Process Planning, Agile, Scrum, Kanban, Waterfall, (Jira, Redmine)
### V neposlední řadě
- rovněž vhodné IDE dokáže naši práci podstatně urychlit (code completion, indexer, profiling, debugging, UI designer)
[[!table class="borders" data="""
-Firma | Počet zaměstnanců | SCM | CI | Wiki | Issue tracking | Planning
-Firma1 | 1 | Git | | DokuWiki | todo.txt | včera vám to uděláme
-Firma2 | 10 000 | Git, SVN | Jenkins | Confulence | Jira | Scrum s lidskou tváří
-Firma3 | 200 000 | Git | Jenkins | Confulence | Jira | Scrum s ďábelskou tváří
-Firma4 | 200 | Git | Jenkins | GitLab | GitLab | káva po obědě
+Firma | Počet zaměstnanců | SCM | CI | Wiki | Issue tracking | Planning
+Firma1 | 1 | Git | | DokuWiki | todo.txt | včera vám to uděláme
+Firma2 | 10 000 | Git, SVN | Jenkins | Confulence | Jira | Scrum s lidskou tváří
+Firma3 | 200 000 | Git | Jenkins | Confulence | Jira | Scrum s ďábelskou tváří
+Firma4 | 200 | Git | Jenkins, Travis | GitLab | GitLab | káva po obědě
"""]]
* **Každý developer, který chce pracovat v IT firmě, musí umět GIT.**
* Každý developer, který chce dělat něco užitečného v IT firmě, musí vědět, co je:
* Process
+ * Thread + synchronization
* Mutex
* Socket
* Virtuální paměť
## QT
-- Haavard Nord a Eirik Chambe-Eng (Norwegian Institute of Technology in Trondheim) začali vývoj v roce 1991, později založili firmu Trolltech [[celkem zajímavé|the-qt-story]].
+- Haavard Nord a Eirik Chambe-Eng (Norwegian Institute of Technology in Trondheim) začali vývoj v roce 1991, později založili firmu Trolltech [[the story of Qt|the-qt-story]].
- V r. 2009 ji koupila Nokia.
-- V C++ => obtížnější wrapping.
+- V C++ => obtížnější wrapping, ABI problemy.
- Od samého počátku multiplatformní (dokonce vlastni make systém).
- Signal/Slot koncept (implementace observer pattern).
- Komerční a LGPL licence (od r. 2009), dříve GPL, ještě dříve podivná QPL (1998) kvuli KDE.
- Snaží se doplnit C++ a libc/c++ o chybějící vlastnosti vyplývající zejména z chabého RTTI v C++
-1. signals and slots
-1. object properties
-1. QSharedPointer, QWeakPointer, QScopedPointer - guarded pointers that are automatically set to 0 when the referenced object is destroyed, unlike normal C++ pointers which become dangling pointers when their objects are destroyed
-1. qobject_cast - a dynamic cast that works across library boundaries
-1. contextual string translation for internationalization
-1. sophisticated interval driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI
-1. hierarchical and queryable object trees that organize object ownership in a natural way
+- signals and slots, across threads !!!
+- object properties
+- QSharedPointer, QWeakPointer, QScopedPointer - guarded pointers that are automatically set to 0 when the referenced object is destroyed, unlike normal C++ pointers which become dangling pointers when their objects are destroyed
+- qobject_cast - a dynamic cast that works across library boundaries
+- contextual string translation for internationalization
+- sophisticated interval driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI
+- hierarchical and queryable object trees that organize object ownership in a natural way
- Implementují velké množství objektů, které se využívají při tvorbě aplikací jako kontajnery, grafické formáty, sockety, SQL konektivita, SSL, JavaScript interpreter, QML apod. **multiplatformním způsobem**.
- Model/View architektura.
- Implicitně sdílené objekty.
- Cenou, kterou za to platíme je MOC (Meta Object Compiler)
+- Qt 5.6 LTS (2016)
+- Qt 5.7 (2016) nelze přeložit bez c++11
+- c++11 mala revoluce, move semantics, perfect forwarding, lambda functions, auto keyword, multi threading => část Qt kódu je součástí c++. Např. stl containers + movable objects jsou mnohem efektivnější než Qt containers (QList)
+
[[Qt hello world]]
# Úspěšné postupy při tvorbě GUI aplikací