SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
О разработке десктопных приложений
Александр Гранин
graninas@gmail.com
О себе
● Разработчик в “Лаборатории Касперского” (C++, C#)
● Выпуск ИВТ-04, 2009
● Хаскеллист, функциональный программист
● LambdaNsk - сообщество функциональных программистов
● Доклады: C++ User Group, Dev2Dev, DevDay, FPConf, LambdaNsk, …
● https://github.com/graninas
План
● Архитектура десктопных приложений
● Windows Presentation Foundation (WPF)
● Qt Quick, QML
● Вопросы реализации
Архитектура десктопных
приложений
Desktop applications
Presentation
Layer
(GUI)
Business
Logic Layer
Data Access
Layer
“Forms and Controls”
VCL (Delphi, C++ Builder)
WinForms (C#, .NET)
Qt Widgets (Qt, C++, crossplatform)
...
Model - View - Controller (MVC)
View
Controller Model
User Input Updates
Modifiers
WPF (C#, .NET)
Qt Quick (QML, C++, JavaScript)
“Separated Presentation”
View
ViewModel Model
Notifications
Bindings
Commands
Model - View - ViewModel (MVVM)
WPF
Windows Presentation Foundation
WPF (Windows Presentation Foundation)
XAML (.xaml)
Code behind (.cs)
ViewModel (.cs)
Data Model (.cs)
Services API (.cs)
NotificationsData Bindings
Model - View - ViewModel (MVVM)
ViewModel (.cs)
ViewModel (.cs)
XAML (.xaml)
Code behind (.cs)
XAML (.xaml)
Code behind (.cs)
WPF (Windows Presentation Foundation)
Model - View - ViewModel (MVVM)
XAML (.xaml)
Code behind (.cs)
ViewModel (.cs)
Data Model (.cs)
Services API (.cs)
NotificationsData Bindings
<WPF - Live Coding>
Qt Quick, QML
Qt Meta-Object Language
ViewModel (.cs)
ViewModel (.cs)
XAML (.xaml)
Code behind (.cs)
XAML (.xaml)
Code behind (.cs)
Qt Quick, QML (Qt Meta-Object Language)
Model - View - ViewModel (MVVM)
QML (.qml, JS)
ViewModel (.cpp)
Data Model (.cpp)
Services API (.cpp)
SignalsData Bindings
<Qt Quick, QML - Live Coding>
Вопросы реализации
Хороший код
Очень хороший код
● SOLID
● API
● Inversion of Control
● Unit testing
● Design Patterns
SOLID - принципы ООП-разработки
● Single responsibility principle
● Open/closed principle
● Liskov substitution principle
● Interface segregation principle
● Dependency inversion principle
Спасибо за внимание!
Александр Гранин
graninas@gmail.com
Чуть больше о C#
● Value Type vs Reference Type
● IEnumerable
● LINQ
● Lambdas
Чуть больше о C++
● Const reference
● STL Containers
● <algorithm>
● Lambdas

Mais conteúdo relacionado

Mais procurados

DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...it-people
 
CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmRoman Savran
 
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...
Вадим Митин - как выстроить техническую платформу для стабильной работы web...sergey doronin
 
GraphQL tools | Никита Галкин | Zlit Tech
GraphQL tools | Никита Галкин | Zlit TechGraphQL tools | Никита Галкин | Zlit Tech
GraphQL tools | Никита Галкин | Zlit TechZlit
 
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Ontico
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...yaevents
 
Ruby on Rails снижаем стоимость разработки
Ruby on Rails снижаем стоимость разработкиRuby on Rails снижаем стоимость разработки
Ruby on Rails снижаем стоимость разработкиMedia Gorod
 
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Ontico
 
About emacs
About emacsAbout emacs
About emacsjskonst
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Александр Шамрай
 
разработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиразработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиSQALab
 
Алексей Кабанов
Алексей КабановАлексей Кабанов
Алексей КабановSQALab
 
Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)Talks&Works
 
Continuous integration, или как мы подружили front end и back-end
Continuous integration,  или как мы подружили  front end и back-endContinuous integration,  или как мы подружили  front end и back-end
Continuous integration, или как мы подружили front end и back-endwlbl
 
Прямая выгода BigData для бизнеса
Прямая выгода BigData для бизнесаПрямая выгода BigData для бизнеса
Прямая выгода BigData для бизнесаAlexey Lustin
 
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMKNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMPavel Tsukanov
 
WinRT: интеграция с С++
WinRT: интеграция с С++WinRT: интеграция с С++
WinRT: интеграция с С++Mykhail Galushko
 

Mais procurados (20)

DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
 
CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crm
 
GitFlow_MOEX
GitFlow_MOEXGitFlow_MOEX
GitFlow_MOEX
 
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
 
GraphQL tools | Никита Галкин | Zlit Tech
GraphQL tools | Никита Галкин | Zlit TechGraphQL tools | Никита Галкин | Zlit Tech
GraphQL tools | Никита Галкин | Zlit Tech
 
голубушин
голубушинголубушин
голубушин
 
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Ruby on Rails снижаем стоимость разработки
Ruby on Rails снижаем стоимость разработкиRuby on Rails снижаем стоимость разработки
Ruby on Rails снижаем стоимость разработки
 
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
 
About emacs
About emacsAbout emacs
About emacs
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
 
разработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиразработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектами
 
Алексей Кабанов
Алексей КабановАлексей Кабанов
Алексей Кабанов
 
Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)
 
Continuous integration, или как мы подружили front end и back-end
Continuous integration,  или как мы подружили  front end и back-endContinuous integration,  или как мы подружили  front end и back-end
Continuous integration, или как мы подружили front end и back-end
 
Прямая выгода BigData для бизнеса
Прямая выгода BigData для бизнесаПрямая выгода BigData для бизнеса
Прямая выгода BigData для бизнеса
 
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMKNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
 
WinRT: интеграция с С++
WinRT: интеграция с С++WinRT: интеграция с С++
WinRT: интеграция с С++
 

Semelhante a О разработке десктопных приложений / About desktop development

IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Профессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseПрофессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseAlexander Granin
 
Совместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местСовместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местDell_Russia
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПОDmitry Lazarenko
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...DrupalCamp MSK
 
Console application with ZF 2.0
Console application with ZF 2.0Console application with ZF 2.0
Console application with ZF 2.0Alexey Kachayev
 
ПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийВиктор Золотов
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовOlesya_V
 
[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)Alexander Bausk
 
Денис Захаркин, VR Concept - MIXAR2016
Денис Захаркин, VR Concept - MIXAR2016Денис Захаркин, VR Concept - MIXAR2016
Денис Захаркин, VR Concept - MIXAR2016mixARConference
 

Semelhante a О разработке десктопных приложений / About desktop development (20)

IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
 
X Window
X WindowX Window
X Window
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Профессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseПрофессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом Enterprise
 
Совместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местСовместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих мест
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
 
Console application with ZF 2.0
Console application with ZF 2.0Console application with ZF 2.0
Console application with ZF 2.0
 
ПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решений
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
 
[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)
 
Денис Захаркин, VR Concept - MIXAR2016
Денис Захаркин, VR Concept - MIXAR2016Денис Захаркин, VR Concept - MIXAR2016
Денис Захаркин, VR Concept - MIXAR2016
 

Mais de Alexander Granin

Concurrent applications with free monads and stm
Concurrent applications with free monads and stmConcurrent applications with free monads and stm
Concurrent applications with free monads and stmAlexander Granin
 
Hierarchical free monads and software design in fp
Hierarchical free monads and software design in fpHierarchical free monads and software design in fp
Hierarchical free monads and software design in fpAlexander Granin
 
Final tagless vs free monad
Final tagless vs free monadFinal tagless vs free monad
Final tagless vs free monadAlexander Granin
 
The present and the future of functional programming in c++
The present and the future of functional programming in c++The present and the future of functional programming in c++
The present and the future of functional programming in c++Alexander Granin
 
Принципы и практики разработки ПО 2 / Principles and practices of software de...
Принципы и практики разработки ПО 2 / Principles and practices of software de...Принципы и практики разработки ПО 2 / Principles and practices of software de...
Принципы и практики разработки ПО 2 / Principles and practices of software de...Alexander Granin
 
Принципы и практики разработки ПО / Principles and practices of software deve...
Принципы и практики разработки ПО / Principles and practices of software deve...Принципы и практики разработки ПО / Principles and practices of software deve...
Принципы и практики разработки ПО / Principles and practices of software deve...Alexander Granin
 
Закон Деметры / Demetra's law
Закон Деметры / Demetra's lawЗакон Деметры / Demetra's law
Закон Деметры / Demetra's lawAlexander Granin
 
Design of big applications in FP
Design of big applications in FPDesign of big applications in FP
Design of big applications in FPAlexander Granin
 
GitHub - зеркало разработчика
GitHub - зеркало разработчикаGitHub - зеркало разработчика
GitHub - зеркало разработчикаAlexander Granin
 
The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++Alexander Granin
 
Functional programming in C++ LambdaNsk
Functional programming in C++ LambdaNskFunctional programming in C++ LambdaNsk
Functional programming in C++ LambdaNskAlexander Granin
 
Transition graph using free monads and existentials
Transition graph using free monads and existentialsTransition graph using free monads and existentials
Transition graph using free monads and existentialsAlexander Granin
 
Software transactional memory. pure functional approach
Software transactional memory. pure functional approachSoftware transactional memory. pure functional approach
Software transactional memory. pure functional approachAlexander Granin
 
Вы не понимаете ФП / You don't understand FP
Вы не понимаете ФП / You don't understand FPВы не понимаете ФП / You don't understand FP
Вы не понимаете ФП / You don't understand FPAlexander Granin
 
Functional "Life": parallel cellular automata and comonads
Functional "Life": parallel cellular automata and comonadsFunctional "Life": parallel cellular automata and comonads
Functional "Life": parallel cellular automata and comonadsAlexander Granin
 
Functional microscope - Lenses in C++
Functional microscope - Lenses in C++Functional microscope - Lenses in C++
Functional microscope - Lenses in C++Alexander Granin
 
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФПAlexander Granin
 
Линзы - комбинаторная манипуляция данными
Линзы - комбинаторная манипуляция даннымиЛинзы - комбинаторная манипуляция данными
Линзы - комбинаторная манипуляция даннымиAlexander Granin
 
Линзы - комбинаторная манипуляция данными (Dev2Dev)
Линзы - комбинаторная манипуляция данными (Dev2Dev)Линзы - комбинаторная манипуляция данными (Dev2Dev)
Линзы - комбинаторная манипуляция данными (Dev2Dev)Alexander Granin
 

Mais de Alexander Granin (20)

Concurrent applications with free monads and stm
Concurrent applications with free monads and stmConcurrent applications with free monads and stm
Concurrent applications with free monads and stm
 
Hierarchical free monads and software design in fp
Hierarchical free monads and software design in fpHierarchical free monads and software design in fp
Hierarchical free monads and software design in fp
 
Final tagless vs free monad
Final tagless vs free monadFinal tagless vs free monad
Final tagless vs free monad
 
Monadic parsers in C++
Monadic parsers in C++Monadic parsers in C++
Monadic parsers in C++
 
The present and the future of functional programming in c++
The present and the future of functional programming in c++The present and the future of functional programming in c++
The present and the future of functional programming in c++
 
Принципы и практики разработки ПО 2 / Principles and practices of software de...
Принципы и практики разработки ПО 2 / Principles and practices of software de...Принципы и практики разработки ПО 2 / Principles and practices of software de...
Принципы и практики разработки ПО 2 / Principles and practices of software de...
 
Принципы и практики разработки ПО / Principles and practices of software deve...
Принципы и практики разработки ПО / Principles and practices of software deve...Принципы и практики разработки ПО / Principles and practices of software deve...
Принципы и практики разработки ПО / Principles and practices of software deve...
 
Закон Деметры / Demetra's law
Закон Деметры / Demetra's lawЗакон Деметры / Demetra's law
Закон Деметры / Demetra's law
 
Design of big applications in FP
Design of big applications in FPDesign of big applications in FP
Design of big applications in FP
 
GitHub - зеркало разработчика
GitHub - зеркало разработчикаGitHub - зеркало разработчика
GitHub - зеркало разработчика
 
The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++
 
Functional programming in C++ LambdaNsk
Functional programming in C++ LambdaNskFunctional programming in C++ LambdaNsk
Functional programming in C++ LambdaNsk
 
Transition graph using free monads and existentials
Transition graph using free monads and existentialsTransition graph using free monads and existentials
Transition graph using free monads and existentials
 
Software transactional memory. pure functional approach
Software transactional memory. pure functional approachSoftware transactional memory. pure functional approach
Software transactional memory. pure functional approach
 
Вы не понимаете ФП / You don't understand FP
Вы не понимаете ФП / You don't understand FPВы не понимаете ФП / You don't understand FP
Вы не понимаете ФП / You don't understand FP
 
Functional "Life": parallel cellular automata and comonads
Functional "Life": parallel cellular automata and comonadsFunctional "Life": parallel cellular automata and comonads
Functional "Life": parallel cellular automata and comonads
 
Functional microscope - Lenses in C++
Functional microscope - Lenses in C++Functional microscope - Lenses in C++
Functional microscope - Lenses in C++
 
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФП
 
Линзы - комбинаторная манипуляция данными
Линзы - комбинаторная манипуляция даннымиЛинзы - комбинаторная манипуляция данными
Линзы - комбинаторная манипуляция данными
 
Линзы - комбинаторная манипуляция данными (Dev2Dev)
Линзы - комбинаторная манипуляция данными (Dev2Dev)Линзы - комбинаторная манипуляция данными (Dev2Dev)
Линзы - комбинаторная манипуляция данными (Dev2Dev)
 

О разработке десктопных приложений / About desktop development