1 / 18

Добър и лош код. Преработка и оптимизиране. Source Control.

Добър и лош код. Преработка и оптимизиране. Source Control. Валери Дачев valery@david.bg. Agenda. Добър и лош код Конвенции Документиране Преработка и оптимизиране Преработка (refactoring) Оптимизиране (optimization) Примери и инструменти Source Control Терминология

Télécharger la présentation

Добър и лош код. Преработка и оптимизиране. Source Control.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Добър и лош код. Преработка и оптимизиране. Source Control. Валери Дачев valery@david.bg

  2. Agenda • Добър и лош код • Конвенции • Документиране • Преработка и оптимизиране • Преработка (refactoring) • Оптимизиране (optimization) • Примери и инструменти • Source Control • Терминология • Базови операции • Разклоняване • Популярни системи • Примери и инструменти

  3. Добър и лош код • За лош код няма определение. Той намирисва. • Не всеки код, който работи, е добър код.

  4. Добър и лош код – лош мирис • Дублиращ се код • Дълги методи • Дълги класове (“Божествения обект”) • Твърде много параметри • “Feature envy” • “Inappropriate intimacy” • “Refused bequest” • Мързелив клас • “Изобретена сложност” • Твърде дълги/къси идентификатори • Твърде много литерали • “Ubercallback”

  5. Добър и лош код – конвенции • Видове именуване • Lower case (напр. “current_index”); • Upper case (напр. “CURRENT_INDEX”); • Camel case (напр. “currentIndex”); • Pascal case (напр. “CurrentIndex”). • Нотация • Унгарска нотация (напр. “dwLightYears”, “szTime”, “hwndFoo”, “lpszBar”) – префиксиране на идентификатори с типа или начина на използване; • Позиционна нотация – използва се за съкращаване на идентификатори до 8 символа.

  6. Добър и лош код – конвенции • Разработени от Microsoft конвенцииhttp://bit.ly/TMbRyq • Главни и малки букви в имената • Конфликтни имена на идентификатори • Именуване на типове данни • Използване на често използвани типове • Именуване на членове на типове • Методи • Свойства • Събития • Полета (и нашето несъгласие с тях) • Параметри • Ресурси

  7. Добър и лош код – документиране • Коментари към функционалните части на кода • Коментари към нефункционалните части на кода • Допълнително описание на работата на кода

  8. Refactoring – характеристики • Що е “refactoring”? • Преструктуриране на кода със заместване на вътрешната структура без промяна на външното му поведение. • Променя нефункционални атрибути на кода. • Не променя съответствието с функционалните изисквания. • Какво постига? • Подобрена четимост. • Редуцирана сложност. • Улеснена поддръжка. • Подобрена архитектура. • Разширяемост.

  9. Refactoring – примери и инструменти • Примери • Преименуване на идентификатори • Извеждане на код под формата на методи • Изнасяне на параметри като клас • Изнасяне на методи и свойства в базов клас • Изнасяне на методи и свойства в абстрактен клас • Извеждане на методи и свойства в интерфейс • Превръщане на метод в свойство и обратно • Инструменти • CodeRush Xpress • TelerikJustCode • JetBrainsReSharper

  10. Optimization – характеристики • Що е “optimization”? • Модифициране на софтуерна система за постигане на по-голяма ефективност и/или редуциране на ресурси. • “Bottle-necks” • “Trade-offs” • Нива на оптимизация • Ниво “дизайн” • Ниво “изходен код” • Ниво “компилатор” • Ниво “асемблер” • Ниво “изпълнение”

  11. Optimization – примери • С грижа за паметта • Опознаване на работата на garbage collector • Правилно деклариране на променливи, методи и класове • С грижа за процесорното време • Промяна на алгоритми • С грижа към външните ресурси • Освобождаване на ресурси • Използване на pools • С грижа за консумацията на енергия • Идентифициране на консуматорите и редуциране на използването им

  12. Optimization – инструменти • TelerikJustTrace • JetBrainsdotTrace

  13. Source Control – терминология • Repository (depot) • Revision (version) • Working copy (sandbox) • Change (diff, delta) • Change list (change set) • Conflict • Resolution • Shelves (in TFS)

  14. Source Control – базови операции • Checkout • Update • Commit (checkin) • Import • Export

  15. Source Control – разклоняване • Trunk • Клониране (branching, forking) • Сливане (merging, integration) • Етикетиране (tagging, labeling)

  16. Source Control – популярни системи • Популярни системи за контрол на кода • VSS (Visual SourceSafe) • CVS (Concurrent Versions System) • SVN (Subversion) • TFS (Team Foundation Server)

  17. Source Control – примери ДЕМО: Subversion

  18. Ценни връзки • Класики в жанра:http://bit.ly/vl7ixF • Coding Horror:http://www.codinghorror.com/blog/ • The Daily WTF:http://thedailywtf.com/ • VisualSVNhttp://www.visualsvn.com/ • TortoiseSVN:http://tortoisesvn.net/

More Related