|
Подскажите по раздельной отладке кода, Как отлаживают программы, которые пишут сразу несколько программистов |
|
|
|
Oct 1 2008, 09:50
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(MrYuran @ Oct 1 2008, 13:41)  А вы видели программы, где имеется две функции main()? Нет. А Вы?
|
|
|
|
|
Oct 1 2008, 10:13
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(Николай Иванович Приходько @ Oct 1 2008, 12:34)  Объясняю несколько сумбурно, но я надеюсь Вы меня поняли. Главный вопрос: как компилировать и отлаживать свой кусок программы НЕЗАВИСИМО от кусков программы, которые пишут другие программеры А Вы никогда не перетягивали чужие исходники в виде готовых функций в свой проект?... Вот так и пишутся. Пишете у себя свой кусок, тестируете его со своим main()  , а руководитель добавит в дерево проекта и соберет когда будет необходимость. Если задача была поставлена правильно и задание выполнено корректно - проблем не будет. Но если то руководитель или тестировщик заметят, что что-то не так - они Вам "намекнут"  . Основной груз, здесь, на руководителе проекта - разбивать задание на подзадания корректно учитывая работу всей системы.
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Oct 1 2008, 11:34
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(DRUID3 @ Oct 1 2008, 14:13)  А Вы никогда не перетягивали чужие исходники в виде готовых функций в свой проект?... Вот так и пишутся. А если нет "готовых" функций у коллеги, а мне уже нужно как-то отлаживать свою часть программы? Неужели винды и другие крупные программистские проекты писались путём "перетягивания" кода друг у друга? "Не верю"(с) - Станиславский. Наверняка для крупных проектов существует какой-то механизм раздельной отладки кусков программы разными программистами. Т.е. чтоб один программист не был СИЛЬНО завязан на скорость коддинга другого программиста. А то получается я свой кусок кода напишу, а мой коллега "тормозит". Или к примеру я реализовал свою часть используя текущую версию кода коллеги. А коллега взял, да и изменил интерфейс к своей части. И что? Я из-за него должен переделывать свою часть? Не. Как-то это неправильно. Наверняка в Microsoft есть какие-то механизмы для раздельного написания, компиляции и отладки частей программы.
|
|
|
|
|
Oct 1 2008, 11:46
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Николай Иванович Приходько @ Oct 1 2008, 15:34)  Или к примеру я реализовал свою часть используя текущую версию кода коллеги. А коллега взял, да и изменил интерфейс к своей части. И что? Я из-за него должен переделывать свою часть? Не. Как-то это неправильно. Конечно, неправильно! Любая коллективная работа начинается с подробного описания структуры и параметров взаимодействия. Причём не только в программировании. Допустим, несколько человек проектируют блок. У каждого своя плата. Договорились, начали. Каждый разрабатывает и тестирует свою плату отдельно, исходя из ТЗ. Естественно, что никто просто так не может изменить внешние интерфейсы своей платы (тип разъёмов, пины, сигналы) без согласования с остальными. Так же и с программами. Проект делят обычно на относительно автономные модули, так что их спокойно можно писать и отлаживать по отдельности. Естественно, интерфейсы согласовываются в первую очередь. В конце концов, не зря менеджер проекта получает в разы больше, чем его подчинённые
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Oct 1 2008, 12:23
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(MrYuran @ Oct 1 2008, 15:46)  Проект делят обычно на относительно автономные модули, так что их спокойно можно писать и отлаживать по отдельности. Да как можно отлаживать по отдельности если 99% моего кода - это вызовы кода других 23-х программистов Может быть по спецификации чужих модулей пишутся временные заглушки?
|
|
|
|
|
Oct 1 2008, 12:28
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Николай Иванович Приходько @ Oct 1 2008, 16:23)  Да как можно отлаживать по отдельности если 99% моего кода - это вызовы кода других 23-х программистов а вас сильно волнует, когда вы пишете printf() или sin(), сколько программистов писали этот код? Цитата Может быть по спецификации чужих модулей пишутся временные заглушки? Естественно. Причём некоторые временные заглушки могут остаться навсегда. Говорят, в той же винде их тысячи.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Oct 7 2008, 10:57
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
А где можно почитать о том как в MS VС++ писать и (главное главное) отлаживать код когда одну прогу пишут сразу несколько программистов? Какие есть программные средства для этого? Где можно прочесть о том как писался и отлаживася по кускам код Винды? Unix-а и т.п.? Ведь наверняка ест какие-то средства "гальванической развязки"  программистов друг от друга при работе в большом программном проекте.
Сообщение отредактировал Николай Иванович Приходько - Oct 7 2008, 11:05
|
|
|
|
|
Oct 7 2008, 11:27
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(Николай Иванович Приходько @ Oct 1 2008, 14:23)  Да как можно отлаживать по отдельности если 99% моего кода - это вызовы кода других 23-х программистов Может быть по спецификации чужих модулей пишутся временные заглушки? вообще-то странный вопрос. вы библиотеки компалера тоже всегда только сами пишете или всё таки иногда пользуетесь готовыми функциями  . я вообще-то всегда симулирую, если модули/функции от других ещё не готовы. может вам что-то вроде этого надо: Model-Driven Software Development (MDSD) - UML 2.0, SysML (Rhapsody)
|
|
|
|
|
Oct 7 2008, 11:30
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(andron86 @ Oct 7 2008, 15:27)  вообще-то странный вопрос. вы библиотеки компалера тоже всегда только сами пишете или всё таки иногда пользуетесь готовыми функциями  Вот именно, что готовыми, а не теми, которые ещё сами "в процессе" Цитата(andron86 @ Oct 7 2008, 15:27)  я вообще-то всегда симулирую, если модули/функции от других ещё не готовы. Т.е. по описалову того, что должны делать эти функции пишите заглушки?
|
|
|
|
|
Oct 7 2008, 11:45
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(andron86 @ Oct 7 2008, 15:38)  ну да, типа "заглушки"  А при разработке Винды кто пишет заглушку модуля? Тот же чел, что и разрабатывает сам модуль? Т.е. как там всё организовано? Чел начала пишет заглушку своего модуля. Отдаёт её всем челам, которые юзают его модуль. А сам спокойно пишет свой модуль. А потом когда модуль готов - забирает заглушку и отдаёт всесто неё рабоающий модуль? Так?
|
|
|
|
|
Oct 7 2008, 12:03
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(Николай Иванович Приходько @ Oct 7 2008, 13:45)  А при разработке Винды кто пишет заглушку модуля? Тот же чел, что и разрабатывает сам модуль? Т.е. как там всё организовано?
Чел начала пишет заглушку своего модуля. Отдаёт её всем челам, которые юзают его модуль. А сам спокойно пишет свой модуль. А потом когда модуль готов - забирает заглушку и отдаёт всесто неё рабоающий модуль? Так? Вам же в 4 и 7 посту всё описали. обычно "заглушки"  все сами себе и пишут.
Сообщение отредактировал andron86 - Oct 7 2008, 12:05
|
|
|
|
|
Oct 7 2008, 18:40
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(andron86 @ Oct 7 2008, 16:03)  Вам же в 4 и 7 посту всё описали. обычно "заглушки"  все сами себе и пишут. А в чём же тогда выгода раздельной разработки? Если я буду должен написать заглушки для всех 853-х модулей о которых я понятия не имею (ведь ими занимаются мои коллеги и они знают об этих модулях всё и кто как не они смогут написать заглушку своего модуля лучше всего)
|
|
|
|
|
Dec 5 2008, 13:42
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Для отладки своего куска кода большого программного продукта отдельно от остальных можно пользоваться технологией "юнит тестов" (unit tests). Юнит-тест - это простейшая программа-оболочка, которая вызывает собственно Вашу основную функцию, над которой Вы работаете в большом проекте и которую собираетесь отлаживать, развивать и поддерживать в работоспособном состоянии. Юнит-тест моделирует основные входные ситуации, в том числе и заведомо ошибочные, и анализирует результат. Имея такой юнит-тест, легко не только отлаживать, но и развивать и сопровождать Ваш кусок кода, например, внеся какие-то изменения в Вашу функцию, можно оперативно убедиться, что модуль работает исправно, вычисляет правильно, от ошибочных ситуаций не валит всё приложение. Например, Вы пишете функцию вычисления синуса double my_sinus(double angle). Тогда очевидным юнит-тестом для неё будет программа, вызывающая её с набором известных значений и анализирующая результаты на правильность (по таблице Брадиса  ), а также вызывающая её с заведомо гигантскими аргументами. Данный подход очень схож с тестбенчами в разработке FPGA ядер.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|