Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Абстракция vs простота. Александр Макаров

Абстракция vs простота. Александр Макаров

Deep Refactoring

May 05, 2017
Tweet

More Decks by Deep Refactoring

Other Decks in Programming

Transcript

  1. 4 Из философии: отвлечение в процессе познания от несущественных сторон,

    свойств, связей объекта (предмета или явления) с целью выделения их существенных, закономерных признаков; абстрагирование — теоретическое обобщение как результат такого отвлечения.
  2. 8 Оперативно (в кратковременной памяти) человек может оперировать малым числом

    объектов: — 7±2 объектами (George Miller, 1989) — 4±1 (Cowan, 2001) — Число зависит от объектов
  3. 17 Обычно систему бьют на слои (группы, chunk-и). Каждый последующий

    более абстрактный слой базируется на предыдущем менее абстрактном.
  4. 21 "All non-trivial abstractions, to some degree, are leaky." Joel

    Spolski Практически все абстракции "дырявые". Через них просачиваются детали реализации.
  5. 26 OOD, DDD и т.д. — Цель — подобрать подходящую

    абстракцию — Важен контекст
  6. 28 Абстракция (класс) зависит от того, кто абстрагирует. Для одной

    задачи два человека получат разный набор классов.
  7. 40 Почитать — — — Barbara Oakley: A Mind For

    Numbers (Думай как математик) — — — Wikipedia: Abstraction Wikipedia: Short-term memory Why Every Single Element of SOLID is Wrong! Сергей Тепляков Гради Буч, Объектно-ориентированный анализ и проектирование