Your SlideShare is downloading. ×
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Код как низкоуровневая документация
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Код как низкоуровневая документация

977

Published on

Код как низкоуровневая документация, Михаил Гуренков, Андрей Свердлов, Клуб MAInfo.ru

Код как низкоуровневая документация, Михаил Гуренков, Андрей Свердлов, Клуб MAInfo.ru

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
977
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Когда приходится писать код? (для себя, по учебе, чаще всего по работе) Почему приходится писать хороший код?
  • Transcript

    • 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. 1. Декомпозиция
      • Функции:
      • Получить прайс для импорта
      • Получить описание
      • Вытащить данные из Excel
      • Обработать данные
      • Записать данные
    • 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. 3. Именование
      • public class XUserMB
      • {
      • int m_i;
      • public int NofUrMail ();
      • }
    • 21. 3. Именование
      • public class XUserMailBox
      • {
      • int m_NumberOfLetters ;
      • public int UnreadLetters
      • {
      • get {…}
      • }
      • }
    • 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. 6. Рефакторинг
      • Что творится с проектом:
      • Меняются требования
      • Меняется видение архитектуры
      • Меняется структура
      • Ухудшается код
      • Что же делать?
    • 26. 7. Комментарии
      • неочевидная реализация
      • алгоритмы (сложные описываются в дополнительных документах)
      • актуальность!
      • иногда проще написать коммент, чем понятный код
    • 27. Вывод: высокий стиль есть гуд
      • Пейте, дети, молоко – будете здоровы!

    ×