]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/commitdiff
GUI 2016 upravy 1
authorFanda Vacek <fanda@localhost.localdomain>
Tue, 19 Apr 2016 19:51:34 +0000 (21:51 +0200)
committerFanda Vacek <fanda@localhost.localdomain>
Tue, 19 Apr 2016 19:51:34 +0000 (21:51 +0200)
prednasky/gui/index.mdwn

index 362f94ab6181e3ead9769471a901a3d7f2ba7613..4e1a68b7d9a7ad3dc23c7e0285347257be9eb25c 100644 (file)
@@ -106,7 +106,7 @@ GUI aplikace mají navíc:
 - 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ě
@@ -119,16 +119,17 @@ GUI aplikace mají navíc:
 - 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ěť
@@ -227,25 +228,29 @@ Používat přímo xlib by bylo poněkud těžkopádné ([[příklad| xlib-examp
 
 ## 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í