SlideShare a Scribd company logo
1 of 20
Скрытые закономерности  В разработке ПО alex@yakyma.com
Сложность
История #1: Интеграция и Броуновское движение
Принятие технических решений String getCity(String rawStr){ ... } Location extractLocation(String rawStr){    ... loc.setCity(...); loc.setState(...);   return loc; } String getState(String rawStr){ ... } o t p 1-2p p
Винеровский процесс: отклонение W(t) – Броуновское движение W(t) o t p 1-2p p
Суммарное отклонение o t
Логарифмически Нормальное S(t)
Следствие #1 Асимметричность эффортов
Следствие #2 Скрытая стоимость
Непрерывная интеграция
История #2: Сложность кода и длинные произведения
Факторизация   Дублирующийся код			(f1)  Нечеткое именование			 (f2)  Некомпактные методы			 (f3) Нетипизированные коллекции	 (f4) НеследованиеSRP				 (f5) . . . f2∙ f3 2 и 3  
 лог-нормально
Асимметричность Те же следствия для сложности Скрытые затраты
Целенаправленный рефакторинг f1∙ f2∙ f3∙ f4∙… f1∙ f2∙f3∙ f4∙…
Минимизировать величину а не вариабильность
Контроль над сложностью Конкуррентное преимущество
Обманчивая случайность
CLT LLN Ito Calc.
alex@yakyma.com Обоснования, подробности: www.yakyma.com или

More Related Content

What's hot

обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...hmyrhik nikita
 
система эль гамаля
система эль гамалясистема эль гамаля
система эль гамаляhmyrhik nikita
 
Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)Viktoria Vlasenko
 
Основы криптографии
Основы криптографииОсновы криптографии
Основы криптографииDenis Kovalev
 
Открытые ГИС: понемногу обо всём
Открытые ГИС: понемногу обо всёмОткрытые ГИС: понемногу обо всём
Открытые ГИС: понемногу обо всёмMaxim Dubinin
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3LiloSEA
 
Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2simple_people
 
Лекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. ОбзорЛекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. ОбзорPavel Kurochkin
 
Максим Хижинский Lock-free maps
Максим Хижинский Lock-free mapsМаксим Хижинский Lock-free maps
Максим Хижинский Lock-free mapsPlatonov Sergey
 
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Alexander Borzunov
 
Вводная лекция
Вводная лекцияВводная лекция
Вводная лекцияPavel Kurochkin
 
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Platonov Sergey
 
Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013
Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013
Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013Moscow.pm
 
сбор урока
сбор урокасбор урока
сбор урокаLIANA180
 
Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»
Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»
Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»Platonov Sergey
 

What's hot (20)

обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...
 
система эль гамаля
система эль гамалясистема эль гамаля
система эль гамаля
 
C++0x
C++0xC++0x
C++0x
 
Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)
 
Основы криптографии
Основы криптографииОсновы криптографии
Основы криптографии
 
Открытые ГИС: понемногу обо всём
Открытые ГИС: понемногу обо всёмОткрытые ГИС: понемногу обо всём
Открытые ГИС: понемногу обо всём
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3
 
Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2
 
лекция 17
лекция 17лекция 17
лекция 17
 
[DD] 5. Registers
[DD] 5. Registers[DD] 5. Registers
[DD] 5. Registers
 
Unity DOTS RTS Case Study
Unity DOTS RTS Case StudyUnity DOTS RTS Case Study
Unity DOTS RTS Case Study
 
Лекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. ОбзорЛекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. Обзор
 
Максим Хижинский Lock-free maps
Максим Хижинский Lock-free mapsМаксим Хижинский Lock-free maps
Максим Хижинский Lock-free maps
 
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
 
Использование стратегии локального поиска для решения задачи об N ферзях
Использование стратегии локального поиска для решения задачи об N ферзяхИспользование стратегии локального поиска для решения задачи об N ферзях
Использование стратегии локального поиска для решения задачи об N ферзях
 
Вводная лекция
Вводная лекцияВводная лекция
Вводная лекция
 
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
 
Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013
Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013
Язык Go для Perl-программистов v1.1. Александр Орловский. Moscow.pm 4 июля 2013
 
сбор урока
сбор урокасбор урока
сбор урока
 
Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»
Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»
Игорь Кудрин, «Используем неизменяемые данные и создаем качественный код»
 

Viewers also liked

Выпрыгнуть из рамок
Выпрыгнуть из рамокВыпрыгнуть из рамок
Выпрыгнуть из рамокKirill Klimov
 
Agile PechaKucha: Agile подход для ИТ стартапов
Agile PechaKucha: Agile подход для ИТ стартаповAgile PechaKucha: Agile подход для ИТ стартапов
Agile PechaKucha: Agile подход для ИТ стартаповPechaKucha Ukraine
 
Agile PechaKucha: Scrum для ИТ рекрутеров
Agile PechaKucha: Scrum для ИТ рекрутеровAgile PechaKucha: Scrum для ИТ рекрутеров
Agile PechaKucha: Scrum для ИТ рекрутеровPechaKucha Ukraine
 
Agile вид из окна тренажёрного зала
Agile   вид из окна тренажёрного залаAgile   вид из окна тренажёрного зала
Agile вид из окна тренажёрного залаAleksey Solntsev
 
Agile. The way from chaos to flow.
Agile. The way from chaos to flow.Agile. The way from chaos to flow.
Agile. The way from chaos to flow.Mikalai Alimenkou
 

Viewers also liked (6)

Выпрыгнуть из рамок
Выпрыгнуть из рамокВыпрыгнуть из рамок
Выпрыгнуть из рамок
 
Agile PechaKucha: Agile подход для ИТ стартапов
Agile PechaKucha: Agile подход для ИТ стартаповAgile PechaKucha: Agile подход для ИТ стартапов
Agile PechaKucha: Agile подход для ИТ стартапов
 
Agile PechaKucha: Scrum для ИТ рекрутеров
Agile PechaKucha: Scrum для ИТ рекрутеровAgile PechaKucha: Scrum для ИТ рекрутеров
Agile PechaKucha: Scrum для ИТ рекрутеров
 
Agile вид из окна тренажёрного зала
Agile   вид из окна тренажёрного залаAgile   вид из окна тренажёрного зала
Agile вид из окна тренажёрного зала
 
Игры в Agile
Игры в AgileИгры в Agile
Игры в Agile
 
Agile. The way from chaos to flow.
Agile. The way from chaos to flow.Agile. The way from chaos to flow.
Agile. The way from chaos to flow.
 

Скрытые закономерности в разработке ПО