54
Невыносимая легкость бытия Трудность принятия простых решений Денис Филеев, ITSpring 2015

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

Embed Size (px)

Citation preview

Невыносимая легкость бытияТрудность принятия простых решений

Денис Филеев, 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

StateControl

StateControl

Code volume

StateControl

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