Team programming

Размер: px
Започни от страница:

Download "Team programming"

Препис

1 Стефан Чеканов PlovDev 18 октомври 2014 Пловдив

2 Обича да прави софтуер Прави го от много отдавна Програмира на C/C++, Java, PHP, C#, JavaScript, SQL, HTML, CSS, shell, assembly, Word, Excel и каквото още дойде Правил е много неща, включително Java Virtual Machine (JVM), алгоритми за компресия Основното му занимание в момента е Запален по

3

4

5

6 Единак Сам се справя с всяка ситуация Приема овации и поздравления Център на внимание Саможив, със собственно мнение Странен за околните Понякога труден за общуване Самотен

7 Единак Сам се справя с всяка ситуация Приема овации и поздравления Център на внимание Саможив, със собственно мнение Странен за околните Понякога труден за общуване Самотен

8

9

10 Супер програмиста се нуждае от екип

11

12 Какво да направя за да подпомогна екипа? Отговорът на този въпрос ще ме направи Супер-Програмист

13 Перифразирам една много мъдра мисъл.

14 Нов програмист може да пусне програмата на неговия компютър за 5 минути Можеш ли да погледнеш на произволно място в кода и да разбереш целта му? Можеш ли да намериш къде в кода е реализирана определена функционалност (feature) за по-малко от 10 минути? Можеш ли да обясниш кода на младши програмист така, че да го разбере? Можеш ли да re-factor-ираш кода, без да се страхуваш, че ще го счупиш?

15 Можеш ли да тестваш компонент, без да тестваш тези от които той зависи? Ако някоя библиотека или технология стане излишна или остарее, можеш ли да я замениш лесно? Можеш ли да вземеш модули и да ги използваш в други проекти без да ги модифицираш? Можеш ли да си сигурен, че всеки ред от кода наистина се използва? Ако кода стане open-source, ще се гордееш ли, че си свързан с него?

16 Можеш ли да тестваш компонент, без да тестваш тези от които той зависи? Ако някоя библиотека или технология стане излишна или остарее, можеш ли да я замениш лесно? Можеш ли да вземеш модули и да ги използваш в други проекти без да ги модифицираш? Можеш ли да си сигурен, че всеки ред от кода наистина се използва? Ако кода стане open-source, ще се гордееш ли, че си свързан с него?

17

18

19 Това са правила, които препоръчват определен стил на програмиране

20 Това са правила, които препоръчват определен стил на програмиране За кого е предназанчена? А. За програмистите Б. За компилатора

21 Правилата обикновено определят: Организацията на файловете Подравняване Коментари Декларации Празно пространство Правила за именуване Програмни практики и принципи

22 Добрите страни Добрите страни When a project tries to adhere to common standards a few good things happen: program source codes look like they are written by one person. This improves team productivity. programmers can go into any code and figure out what's going on new people can get up to speed quickly people new to programming are spared the need to develop a personal style and defend it to the death people new to programming are spared making the same mistakes over and over again people make fewer mistakes in consistent environments programmers have a common enemy :-)

23

24 Аргументи Против Някои аргументи ПРОТИВ the standard is usually stupid because it was made by someone who doesn't understand modern languages/practices the standard is usually stupid because it's not what I do standards reduce creativity standards are unnecessary as long as people are consistent standards enforce too much structure people ignore standards anyway

25 Стандартите достатъчни ли са за успех? Разбира се че, не. Но помагат, а ние се нуждаем от всяка възможна помощ. Бъдете честни, повечето аргументи срещу някой стандарт идват от егото. Някои от решенията в добър стандард могат да бъдат определени, че не са техничестки издържани, но това е просто въпрос на вкус. Така че, бъди гъвкав, контролирай егото си, и помни - в основата си всеки проект е усилие на екип.

26

27 Правила за именуване 1. Именуване на класове LoaderManager 2. Именуване на методи/функции loadpreferences() 3. Именуване на променливи Local variables index Class members m_counter Static class members s_globalcounter

28

29

30

31 Това пък какво е?

32 Аз да не съм писател? Всичко е ясно като слънце!

33 За кого са предназанчени? А. За програмистите Б. За компилатора

34 Keep everything readable Понякога като програмисти забравяме, че пишем коментарите за да се четат от хора. Езиците за програмиране се разбират от машините, така че може да е досадно да ги преобразуваме в обикновен човешки текст. Не трябва да пишем научен труд. Достатъчно е да оставим някои подсказки, насоки, които да са в помощ на четящия.

35 Keep everything readable Кой пък ще чете кода? И защо да го улеснявам?

36 Четящия си ти! Keep everything readable

37 Само след няколко седмици, ще си забравил имената на класовете, функциите, кое какво прави. Keep everything readable

38 Keep everything readable Задай си въпроса: Кое е най-важното? Какво е необходимо да ме подсети, ако нищо не знам за кода, за да мога да го разбера?

39 Keep everything readable

40 Оставяй празно пространство

41 Коментирайте докато пишете кода

42 Борба с досадни бъгове

43 Избягвайте очевидни коментари

44 Избягвайте очевидни коментари. Ако все пак трябва да се сложи коментар на това място, напишете го малко по-обобщено

45 Групиране на кода

46

47 Аргументът на аматьора: Аз да не съм бета тестер, че да си тествам кода?

48

49 SVN, Git

50 Кога да качвам промени в repository? Какви бележки да слагам на промените Branches, Tags?

51 Или психология на работата в екип

52 Не бъди егоист споделяй опит и знания Бъди отговорен разликата между аматьора и професионалиста Приемай критика Бъди етичен постоянно се усъвършенствай. Това не е отговорност на твоя работодател.

53 Оценка на времето estimate vs commitment Общувай (communicate) Сътрудничество (collaborate) с колеги, шефа, клиентите

54 или За какво е всичко това?

55

56 Четим код, спазващ ясна и добре дефинирана код конвенция Добре коментиран код Тест, тест и пак тест Правилна работа със Source Control Работна етика

57 Стефан Чеканов PlovDev 18 октомври 2014 Пловдив

ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА

ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА СРЕДИ ЗА ПРОГРАМИРАНЕ ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА Същност на програмното осигуряване За да могат компютрите да разбират описаните на езика за програмиране алгоритми, те трябва да бъдат преведени

Подробно

Microsoft Word - E1-11-bg.doc

Microsoft Word - E1-11-bg.doc Основна цел Педагогически указания E: Оценяване на съобщение E1 / 11 Степен на трудност 1 Междинна цел 1: Дайте значение на вашето съобщение Оперативна цел Предварителни умения Брой на предложените упражнения

Подробно

Програмиране на Паскал

Програмиране на Паскал Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като

Подробно

Годишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Т

Годишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Т Годишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Тема 1. Информация 1 1 Видове информация Познава начините

Подробно

Editable Intel® Education powerpoint template

Editable Intel® Education powerpoint template Костенуркова геометрия чрез блоково програмиране Красимира Иванова и Евгения Сендова 27 февруари 2018, 12:30 14:00 https://nrn.adobeconnect.com/lt_imi Scientix has received funding from the European Union

Подробно

Виртуални функции

Виртуални функции Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,

Подробно

Lush Green

Lush Green Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция

Подробно

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:

Подробно

PowerPoint Presentation

PowerPoint Presentation Перфектната Контент Маркетинг стратегия бялата презентация Копирайтър, колумнист и блогър с повече от 15 години практика. Архимаг и жрец на словореда, пророк на Свети Гутенберг. Искрено вярва, че правилно

Подробно

PowerPoint Presentation

PowerPoint Presentation Събития, организирани в рамките на Scientix, през 2018 в България Евгения Сендова Институт по математика и информатика при Българска академия на науките National Seminar in Education with Scientix workshop:

Подробно

NOVETHERM ВХОДНИ ВРАТИ

NOVETHERM ВХОДНИ ВРАТИ ВХОДНИ ВРАТИ TОВА, КОЕТО НИ ОТЛИЧАВА? WHAT DISTINGUISHES US? Детайлите са нещо, на което ние винаги обръщаме внимание! Алуминиеви входни врати за дома с най-високо качество, произведени специално за Вас.

Подробно

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class

Подробно

ЕКСПЛОДИРАЩИ ТОЧКИ ГЛАВА 1 МАШИНИ Добре дошли на борда на нашето приключение. Това е математическо приключение базирано върху една моя история (аз съм

ЕКСПЛОДИРАЩИ ТОЧКИ ГЛАВА 1 МАШИНИ Добре дошли на борда на нашето приключение. Това е математическо приключение базирано върху една моя история (аз съм ЕКСПЛОДИРАЩИ ТОЧКИ ГЛАВА 1 МАШИНИ Добре дошли на борда на нашето приключение. Това е математическо приключение базирано върху една моя история (аз съм Джеймс), която не е истинска. Когато бях дете, аз

Подробно

036-B.dvi

036-B.dvi МАТЕМАТИКА И МАТЕМАТИЧЕСКО ОБРАЗОВАНИЕ, 2004 MATHEMATICS AND EDUCATION IN MATHEMATICS, 2004 Proceedings of the Thirty Third Spring Conference of the Union of Bulgarian Mathematicians Borovets, April 1

Подробно

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:

Подробно

Структура на програма в C - Част 2 - типове, функции

Структура на програма в C - Част 2 - типове, функции Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.

Подробно

СДРУЖЕНИЕ

СДРУЖЕНИЕ УЧЕБЕН ПЛАН ЗА ПРИДОБИВАНЕ НА КВАЛИФИКАЦИЯ ПО ПРОФЕСИЯ ФРИЗЬОР СПЕЦИАЛНОСТ ФРИЗЬОРСТВО (обучение по рамкова програма Б ) Наименование и код на професионалното направление Наименование и код на професията

Подробно

Портфолио

Портфолио Веселка Нешовска Учител по математика и информационни технологии В СУ Христо Смирненски гр. Койнаре Лична информация Философия на преподаване Методи на преподаване Обратна връзка Умения и компетенции Работа

Подробно

Структура на програма в C - Част 9 - низове от символи, C-string

Структура на програма в C - Част 9 - низове от символи, C-string Структура на програма в C Част 9 - низове от символи, C-string Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 15 май 2019 г. И. Георгиев,

Подробно

Microsoft Word - UP-FFOE_ECTS_Bg.doc

Microsoft Word - UP-FFOE_ECTS_Bg.doc Учебен план съгласно MEEN No М магистри ЕЕN Eлектроинженерство No реден номер на дисциплината Лекции (Л), семинарни упражнения (СУ), лабораторни упражнения (ЛУ) седмично; изпит (И), текуща оценка (ТО);

Подробно

Black and White

Black and White Advanced C++ Memory Management Йордан Димитър Зайков Трендафилов Memory Management Effective C++ 2 nd ed: 3, 5, 7, 8, 9, 10 More Effective C++: 1, 3, 8 Exceptional C++: 35, 36 Какво всъщност прави new?

Подробно

HIV_leaflet_10x21

HIV_leaflet_10x21 ЗНАМ ЛИ ВСИЧКО ЗА ХИВ? ХИВ се предава при гей мъжете чрез: Анален секс без презерватив. Анален секс без презерватив и без да се приема PrEP (предекспозиционна профилактика). PrEP не се осигурява безплатно

Подробно

Microsoft Word - MEIT_Burova-BD.doc

Microsoft Word - MEIT_Burova-BD.doc Утвърдил:.. Декан Дата... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет: Физически... Специалност: (код и наименование)... Магистърска програма: Микроелектроника и информационни технологии Дисциплина:

Подробно

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември

Подробно

УЧЕБНА ПРОГРАМА ПО ВИЗУАЛНО ПРОГРАМИРАНЕ ЗА III КЛАС (ВЪВЕЖДАНЕ НА ДИСЦИПЛИНАТА ПО ПРОЕКТ ИНОВАТИВНО УЧИЛИЩЕ ) КРАТКО ПРЕДСТАВЯНЕ НА УЧЕБНАТА ПРОГРАМА

УЧЕБНА ПРОГРАМА ПО ВИЗУАЛНО ПРОГРАМИРАНЕ ЗА III КЛАС (ВЪВЕЖДАНЕ НА ДИСЦИПЛИНАТА ПО ПРОЕКТ ИНОВАТИВНО УЧИЛИЩЕ ) КРАТКО ПРЕДСТАВЯНЕ НА УЧЕБНАТА ПРОГРАМА УЧЕБНА ПРОГРАМА ПО ВИЗУАЛНО ПРОГРАМИРАНЕ ЗА III КЛАС (ВЪВЕЖДАНЕ НА ДИСЦИПЛИНАТА ПО ПРОЕКТ ИНОВАТИВНО УЧИЛИЩЕ ) КРАТКО ПРЕДСТАВЯНЕ НА УЧЕБНАТА ПРОГРАМА Обучението по Визуално Програмиране в начален етап

Подробно

Системи за управление на версии - Работа с git

Системи за управление на версии - Работа с git Системи за управление на версии Работа с git Иван Георгиев, Христо Иванов, Христо Стефанов Tехнологическо училище "Електронни системи", Технически университет, София 28 февруари 2019 г. И. Георгиев, Х.

Подробно

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет 2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия

Подробно

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/ Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016

Подробно

Инструкция за инсталация на EXTRADE BOUTIQUE Ако на Вашия компютър е инсталирана по-ранна Windows 7 или по-ранна версия, моля пропуснете стъпка Предва

Инструкция за инсталация на EXTRADE BOUTIQUE Ако на Вашия компютър е инсталирана по-ранна Windows 7 или по-ранна версия, моля пропуснете стъпка Предва Инструкция за инсталация на EXTRADE BOUTIQUE Ако на Вашия компютър е инсталирана по-ранна Windows 7 или по-ранна версия, моля пропуснете стъпка Предварителни условия и преминете към стъпка Инсталиране.

Подробно

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Производителност 2. Оптимизация 3. Методи за оптимизация 2/18 Защо производителността е важна? Дава възможност

Подробно

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА 1. У Ч Е Б Н А П Р О Г Р А М А за задължителна професионална подготовка УТВЪРДЕНА СЪС ЗАПОВЕД РД 09-835/20.06.2005 г. 1. Учебен предмет: ПРИЛОЖНИ ПРОГРАМНИ ПРОДУКТИ

Подробно

Трансформация на негативните емоции

Трансформация на негативните емоции www.diyo-coach.com 1 4 Съвета Как Да Получиш Максималното От Този Уебинар 1. Разпечатай работната тетрадка преди да се видим, така би могъл да си отбележиш ключовите моменти и да направиш упражненията,

Подробно

Microsoft Word - Pascard_information_2019.docx

Microsoft Word - Pascard_information_2019.docx Информация и предназначение на PASCard Информационно-пропускната система PASCard има за цел контрол на достъпа и работното време в дадено предприятие или организация. Самата система осигурява: Идентификация,

Подробно