Team programming

Подобни документи
ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА

Microsoft Word - E1-11-bg.doc

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

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

Editable Intel® Education powerpoint template

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

Lush Green

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

PowerPoint Presentation

PowerPoint Presentation

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

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

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

036-B.dvi

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

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

СДРУЖЕНИЕ

Портфолио

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

Microsoft Word - UP-FFOE_ECTS_Bg.doc

Black and White

HIV_leaflet_10x21

Microsoft Word - MEIT_Burova-BD.doc

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

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

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

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

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

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

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

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

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

Microsoft Word - Pascard_information_2019.docx

Препис:

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрите страни Добрите страни 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 :-)

Аргументи Против Някои аргументи ПРОТИВ 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

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

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

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

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

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

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

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

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

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

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

Keep everything readable

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

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

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

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

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

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

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

SVN, Git

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

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

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

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

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

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

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