Submit Search
Upload
Код как низкоуровневая документация
•
Download as PPT, PDF
•
1 like
•
511 views
Constantin Kichinsky
Follow
Код как низкоуровневая документация, Михаил Гуренков, Андрей Свердлов, Клуб MAInfo.ru
Read less
Read more
Report
Share
Report
Share
1 of 27
Download now
Recommended
Java Generics: What it is and How to Implement it
Java Generics: What it is and How to Implement it
Ecommerce Solution Provider SysIQ
Android - 01 - Java Basics
Android - 01 - Java Basics
Noveo
Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Roman Brovko
Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?
PyNSK
Chanbot
Chanbot
Elena Bobrova
Лекция 1. Начало.
Лекция 1. Начало.
Roman Brovko
Android - 03 - Multithreading, Collections
Android - 03 - Multithreading, Collections
Noveo
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
Noveo
Recommended
Java Generics: What it is and How to Implement it
Java Generics: What it is and How to Implement it
Ecommerce Solution Provider SysIQ
Android - 01 - Java Basics
Android - 01 - Java Basics
Noveo
Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Roman Brovko
Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?
PyNSK
Chanbot
Chanbot
Elena Bobrova
Лекция 1. Начало.
Лекция 1. Начало.
Roman Brovko
Android - 03 - Multithreading, Collections
Android - 03 - Multithreading, Collections
Noveo
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
Noveo
Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.
Roman Brovko
веселов
веселов
NLPseminar
Лекция 11. Тестирование.
Лекция 11. Тестирование.
Roman Brovko
Оптимизация производительности Python
Оптимизация производительности Python
PyNSK
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Python Meetup
Поиск паттернов (Data Mining: Pattern Discovery) / Константин Игнатов (Qrator...
Поиск паттернов (Data Mining: Pattern Discovery) / Константин Игнатов (Qrator...
Ontico
Красота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки Python
Python Meetup
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Roman Brovko
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
Python Meetup
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
Roman Brovko
Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
Roman Brovko
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Roman Brovko
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
Roman Brovko
Лекция 10. Классы 2.
Лекция 10. Классы 2.
Roman Brovko
Web осень 2013 лекция 6
Web осень 2013 лекция 6
Technopark
Web осень 2013 лекция 2
Web осень 2013 лекция 2
Technopark
Spring puzzlers
Spring puzzlers
Evgeny Borisov
Самые популярные браузеры 2015
Самые популярные браузеры 2015
Анатолий Мячев
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
Яковенко Кирилл
Презентация на тему: Проверочная работа по информатике
Презентация на тему: Проверочная работа по информатике
2berkas
Лекция 6
Лекция 6
itc73
Вещи в Java, о которых вы (возможно) не знали
Вещи в Java, о которых вы (возможно) не знали
Zheka Kozlov
More Related Content
What's hot
Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.
Roman Brovko
веселов
веселов
NLPseminar
Лекция 11. Тестирование.
Лекция 11. Тестирование.
Roman Brovko
Оптимизация производительности Python
Оптимизация производительности Python
PyNSK
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Python Meetup
Поиск паттернов (Data Mining: Pattern Discovery) / Константин Игнатов (Qrator...
Поиск паттернов (Data Mining: Pattern Discovery) / Константин Игнатов (Qrator...
Ontico
Красота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки Python
Python Meetup
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Roman Brovko
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
Python Meetup
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
Roman Brovko
Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
Roman Brovko
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Roman Brovko
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
Roman Brovko
Лекция 10. Классы 2.
Лекция 10. Классы 2.
Roman Brovko
Web осень 2013 лекция 6
Web осень 2013 лекция 6
Technopark
Web осень 2013 лекция 2
Web осень 2013 лекция 2
Technopark
Spring puzzlers
Spring puzzlers
Evgeny Borisov
Самые популярные браузеры 2015
Самые популярные браузеры 2015
Анатолий Мячев
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
Яковенко Кирилл
Презентация на тему: Проверочная работа по информатике
Презентация на тему: Проверочная работа по информатике
2berkas
What's hot
(20)
Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.
веселов
веселов
Лекция 11. Тестирование.
Лекция 11. Тестирование.
Оптимизация производительности Python
Оптимизация производительности Python
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Поиск паттернов (Data Mining: Pattern Discovery) / Константин Игнатов (Qrator...
Поиск паттернов (Data Mining: Pattern Discovery) / Константин Игнатов (Qrator...
Красота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки Python
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 10. Классы 2.
Лекция 10. Классы 2.
Web осень 2013 лекция 6
Web осень 2013 лекция 6
Web осень 2013 лекция 2
Web осень 2013 лекция 2
Spring puzzlers
Spring puzzlers
Самые популярные браузеры 2015
Самые популярные браузеры 2015
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
Презентация на тему: Проверочная работа по информатике
Презентация на тему: Проверочная работа по информатике
Similar to Код как низкоуровневая документация
Лекция 6
Лекция 6
itc73
Вещи в Java, о которых вы (возможно) не знали
Вещи в Java, о которых вы (возможно) не знали
Zheka Kozlov
Мир Python функционалим с помощью библиотек
Мир Python функционалим с помощью библиотек
PyNSK
Lec 2 Java
Lec 2 Java
itc73
Lec 2
Lec 2
Alexander Rusin
Bytecode
Bytecode
Alex Tumanoff
Lambdas in java 8
Lambdas in java 8
chashnikov
принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#
bolevik
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
DefconRussia
Язык программирования C#
Язык программирования C#
Dmitri Soshnikov
C sharp deep dive
C sharp deep dive
Sergey Teplyakov
C# Deep Dive
C# Deep Dive
LuxoftTraining
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
Igor Shkulipa
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
Dima Dzuba
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
Stanfy
[JAM 1.1] Clean Code (Paul Malikov)
[JAM 1.1] Clean Code (Paul Malikov)
Evgeny Kaziak
Поговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языка
Alexander Kucherenko
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
Computer Science Club
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
ScalaNsk
Java осень 2014 занятие 5
Java осень 2014 занятие 5
Technopark
Similar to Код как низкоуровневая документация
(20)
Лекция 6
Лекция 6
Вещи в Java, о которых вы (возможно) не знали
Вещи в Java, о которых вы (возможно) не знали
Мир Python функционалим с помощью библиотек
Мир Python функционалим с помощью библиотек
Lec 2 Java
Lec 2 Java
Lec 2
Lec 2
Bytecode
Bytecode
Lambdas in java 8
Lambdas in java 8
принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
Язык программирования C#
Язык программирования C#
C sharp deep dive
C sharp deep dive
C# Deep Dive
C# Deep Dive
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
[JAM 1.1] Clean Code (Paul Malikov)
[JAM 1.1] Clean Code (Paul Malikov)
Поговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языка
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
Java осень 2014 занятие 5
Java осень 2014 занятие 5
More from Constantin Kichinsky
Brain to brain communications
Brain to brain communications
Constantin Kichinsky
Прототипирование приложений в Expression Blend + Sketchflow
Прототипирование приложений в Expression Blend + Sketchflow
Constantin Kichinsky
JavaScript OOP
JavaScript OOP
Constantin Kichinsky
Пользовательский интерфейс
Пользовательский интерфейс
Constantin Kichinsky
Архитектура корпоративных систем
Архитектура корпоративных систем
Constantin Kichinsky
Шаблоны проектирования 2
Шаблоны проектирования 2
Constantin Kichinsky
Шаблоны проектирования 1
Шаблоны проектирования 1
Constantin Kichinsky
Обработка ошибок
Обработка ошибок
Constantin Kichinsky
Создание новых объектов
Создание новых объектов
Constantin Kichinsky
Декомпозиция
Декомпозиция
Constantin Kichinsky
Design Lecture
Design Lecture
Constantin Kichinsky
jQuery: быстрая разработка веб-интерфейсов на JavaScript
jQuery: быстрая разработка веб-интерфейсов на JavaScript
Constantin Kichinsky
Оптимизация SQL
Оптимизация SQL
Constantin Kichinsky
Django – фреймворк, который работает
Django – фреймворк, который работает
Constantin Kichinsky
Ruby On Rails: Web-разработка по-другому!
Ruby On Rails: Web-разработка по-другому!
Constantin Kichinsky
Silverlight 2
Silverlight 2
Constantin Kichinsky
Управление проектами
Управление проектами
Constantin Kichinsky
Silverlight 2
Silverlight 2
Constantin Kichinsky
Imagine Cup
Imagine Cup
Constantin Kichinsky
Ajax и будущее Java Script
Ajax и будущее Java Script
Constantin Kichinsky
More from Constantin Kichinsky
(20)
Brain to brain communications
Brain to brain communications
Прототипирование приложений в Expression Blend + Sketchflow
Прототипирование приложений в Expression Blend + Sketchflow
JavaScript OOP
JavaScript OOP
Пользовательский интерфейс
Пользовательский интерфейс
Архитектура корпоративных систем
Архитектура корпоративных систем
Шаблоны проектирования 2
Шаблоны проектирования 2
Шаблоны проектирования 1
Шаблоны проектирования 1
Обработка ошибок
Обработка ошибок
Создание новых объектов
Создание новых объектов
Декомпозиция
Декомпозиция
Design Lecture
Design Lecture
jQuery: быстрая разработка веб-интерфейсов на JavaScript
jQuery: быстрая разработка веб-интерфейсов на JavaScript
Оптимизация SQL
Оптимизация SQL
Django – фреймворк, который работает
Django – фреймворк, который работает
Ruby On Rails: Web-разработка по-другому!
Ruby On Rails: Web-разработка по-другому!
Silverlight 2
Silverlight 2
Управление проектами
Управление проектами
Silverlight 2
Silverlight 2
Imagine Cup
Imagine Cup
Ajax и будущее Java Script
Ajax и будущее Java Script
Код как низкоуровневая документация
1.
Код как низкоуровневая
документация Михаил Гуренков Андрей Свердлов
2.
Программа – штука
непростая
3.
Как описать программу?
4.
5.
PERT-time
6.
Еда 1.2.3. Центр
еды Кошки 1.2.4. Центр размнож. 1.2.1. Мяука- лка Мяу! DFD Удовольствие
7.
IDEF0 1. Кошка
Еда Кошки Хозяин Мяу! Отходы Квартира Лоток
8.
UML 1 1
1 1 * * * 1 * 1..* 1 Кошка Кличка : string Возраст : unsigned int Ходить () Есть () Спать () Центр еды Есть () Центр сна Спать () Еда Количество : unsigned int Мяу! Громкость : unsigned int Удовольствие
9.
Еда 1.2.3. Центр
еды Кошки 1.2.4. Центр размнож. 1.2.1. Мяука- лка Мяу! DFD IDEF0 1. Кошка Еда Кошки Хозяин Мяу! Отходы Квартира Лоток UML 1 1 1 1 * * * 1 * 1..* 1 Удовольствие Кошка Кличка : string Возраст : unsigned int Ходить () Есть () Спать () Центр еды Есть () Центр сна Спать () Еда Количество : unsigned int Мяу! Громкость : unsigned int Удовольствие
10.
11.
Filters Configuration UserInterface
DataAccess Domain
12.
Как описать этот
модуль? Filters
13.
14.
15.
2 .
Шаблоны проектирования
16.
2 .
Шаблоны проектирования
17.
3. Именование public
class XItem { public void Delete (); … } public class XOrder { public void Remove (); … }
18.
3. Именование public
class XItem { public void Remove (); … } public class XOrder { public void Remove (); … }
19.
3. Именование public
class XItem { public void Delete (); … } public class XOrder { public void Delete (); … }
20.
21.
22.
4. Обратная связь
public XOrderService FindInstallationOrder() { if (Resource == null) { return null; } … }
23.
4. Обратная связь
public XOrderService FindInstallationOrder() { if (Resource == null) { throw new InvalidOperationException("Не указан ресурс"); } … }
24.
5. Модульные тесты
[Test] public void OrderStatusController() { XOrder order = XOrderRepository.Instance.Create(XOrderTypeRepository.Instance.Find(1)); order.Company = TestObjects.Company; Assert.IsFalse(XOrderStatusController.Instance.IsChanged(order)); order.Save(); XOrderStatusController.Instance.RegisterVersion(order); Assert.IsFalse(XOrderStatusController.Instance.IsChanged(order)); order.BeginEdit(); order.Stages.MoveForward(order.OrderType.Stages.FindById(102)); order.Save(); Assert.IsTrue(XOrderStatusController.Instance.IsChanged(order)); order.BeginEdit(); order.Stages.MoveBack(); order.Save(); Assert.IsTrue(XOrderStatusController.Instance.IsChanged(order)); order = XOrderRepository.Instance.Find(1587); Assert.IsFalse(XOrderStatusController.Instance.IsChanged(order)); }
25.
26.
27.
Editor's Notes
Когда приходится писать код? (для себя, по учебе, чаще всего по работе) Почему приходится писать хороший код?
Download now