ݺߣ

ݺߣShare a Scribd company logo
Невыносимая
легкость бытия
Трудность принятия простых решений
Денис Филеев, ITSpring 2015
Содержание
почему простота важна
Содержание
почему простота важна
простое vs. легкое
Содержание
почему простота важна
простое vs. легкое
простота в коде
Содержание
почему простота важна
простое vs. легкое
простота в коде
простота в организации
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
–Anonymous Engineer
“Do you control your complexity or does it control
you?”
–C.A.R. Hoare, Turing Award Lecture (1980)
“...there is one quality that cannot be
purchased... — and that is reliability. The price of
reliability is the pursuit of the utmost simplicity.”
–Edsger W. Dijkstra
“To quote C.A.R.Hoare:
“And simplicity is the unavoidable price which we
must pay for reliability.”
“Мне так проще”
просто легко
просто легко
vs. сложно vs. тяжело
просто легко
vs. сложно vs. тяжело
объективно относительно
просто легко
vs. сложно vs. тяжело
объективно относительно
характеристика качества не имеет отношения к качеству
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Простота - это трудно
Простотой можно
пренебречь на короткой
дистанции
Легкие решения в
долгосрочной перспективе
отнимают скорость
Как правильно?
Откуда берется
сложность?
Откуда берется
сложность?
Неотъемлемая
Откуда берется
сложность?
Неотъемлемая
Привнесенная (нами)
Откуда берется
сложность?
Неотъемлемая
Привнесенная (нами)
Откуда берется
сложность?
Неотъемлемая
Привнесенная (нами)
State
State
Control
State
Control
Code volume
State
Control
Code volume
…
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Простота важнее,
чем тесты и
рефакторинг
Как считать?
CodeCity visualization of JDK v1.5
Не намного лучше,
чем подсчет LoC
Мы не умеем ООП
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
–C.A.R. Hoare
“Premature optimization is the root of all evil in
programming.”
Императивный или
декларативный стиль - это не
(только) про языки
программирования
Программирование -
общественная
деятельность
–M. Conway, 1968
“Organizations which design systems ... are
constrained to produce designs which are copies
of the communication structures of these
organizations.”
Визуализируй это
code-maat
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Сложность
коммуникаций
проникает в код
Agile ценит простоту
Simplicity – the art of
maximizing the amount
of work not done – is essential.
Simplicity – the art of
maximizing the amount
of work not done – is essential.
не путать c:
maximazing amount of
thinking not done
Simplicity – the art of
maximizing the amount
of work not done – is essential.
не путать c:
maximazing amount of
thinking not done
Не поощрять легких
решений
Легко давать и получать
обратную связь
Культура проще, чем
инструкции
KISS, love

More Related Content

Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений