roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 00:15

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Методика работы программистов в команде (метод черных ящиков
СообщениеДобавлено: 24 июн 2010, 09:06 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Поделитесь кто знает методиками ведения проектов командой программистов.
В первую очередь интересует:
1. Степень детализации блоков
2. Формат (представление) входных / выходных данных блоков
3. Документирование
4. ну и вообще с чего начинать и откуда рыть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 09:19 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Сильно зависит от структуры команды - может быть или не быть расслоение команды:
1. По крутизне (общий уровень);
2. По компетенциям (кто что делает в команде);

Может быть имеет смысл насильно ввести разделение по компетенциям (кто архитектор, кто реализатор, кто тестер и т.п.). Зависит от решаемых задач.

Форматы входа и выхода при делении разработки между программистами или вообще на блоки - описывать надо полностью. Какой формат конкретно выбирать под описание - зависит от того, что описываем :)

Документирование - логично выстроенная структура программы, правильные и короткие названия функций и переменных - снимают до 60-80% проблем с отсутствием документации.

Ну и общую структуру программы верхнего уровня, задумку и что на какие блоки делится надо конечно иметь описанное на не более чем 1-2 листах А4.

Добавлено спустя 4 минуты 4 секунды:
В команде равных сработавшихся программистов в жестких сроках может быть всякая экзотика типа экстремального программирования - это когда в пределе на 2 человек дают 1 компьютер и они по очереди пишут код. Со стороны кажется неэффективным, но на самом деле это очень тяжелый и эффективный режим! Только нельзя его долго держать, не комфортно. Лучше такой режим включать в критическом состоянии типа проваливаемых дедлайнов и т.п. - не более чем на 2-3 дня.
1. Во-первых практически никаких посиделок в личной почте \ контактах и т.п. :)
2. Во-вторых человек начинает писать код сразу так, что его должен понять как минимум напарник :)
3. В-третьих у человека который отошел от компа появляется время подумать, что исключает затупливание на одном месте, ибо затупил - вали от компа :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 09:20 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
1) Степень детализации блоков завсит от конкретно разрабатываемого ПО. Желательно чем лучше детализация, тем быстрее и конкретнее будут выполнены эти блоки
2) На уровне типов (там, где я работал, конкретно обсуждали даже параметры функий и процедур)
3) Документация обязательна но в свободной форме конкретно по той части проекта, которую программист разрабатывает. Начальник отдела собирает куски кода и документации, собирает их вместе (с программистами) и пишет более общую документацию
4) Не все программисты могут работать в команде. С этого и начинать - набирать Команду

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 09:22 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
не... я вообще про другое...

вот возьмем например проект МиниБот, опишем что мы хотим что бы выполнял робот
разбиваем это на блоки
хочется чтобы "почти каждый" желающий который выразит желание внести свой вклад, мог бы написать блок не сильно вникая в общую структуру.

или по другому, можно ли создать проект из множества "черных ящиков" у которых есть только входные и выходные параметры?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 09:24 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Смотря какой проект, но в принципе если указать конкретно параметры на входе и на выходе - думаю можно

Добавлено спустя 30 секунд:
Но программа не обязательно оптимизированная будет

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 09:25 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2EdGull: Фу ты блин :) надо же так закамуфлироваться :)

Проект создать из множества черных ящиков конечно можно. Но нужен архитектор проекта в виде человека или инициативной группы, который опишет входы-выходы черных ящиков. И нужен минимальный набор простейших черных ящиков, чтобы кто-то написав свой ящик - мог сразу собрать систему целиком и погонять свой ящик с чужими.

Добавлено спустя 58 секунд:
galex1981 писал(а):
Но программа не обязательно оптимизированная будет

Всегда есть баланс между производительностью и модульностью.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 09:27 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
так такая структура как раз и создается до начала разработки черных ящиков


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов в команде (метод черных ящ
СообщениеДобавлено: 24 июн 2010, 09:52 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Это ты кому и на что ответил? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов в команде (метод черных ящ
СообщениеДобавлено: 24 июн 2010, 10:06 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Методика сильно зависит от того - в живую ли идет работа или она удаленная для большинства.

Добавлено спустя 1 минуту:
Re: Методика работы программистов в команде (метод черных ящиков
А вообще советую почитать "Совершенный код", там вроде описывались проблемы работы в команде и их решение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов в команде (метод черных ящ
СообщениеДобавлено: 24 июн 2010, 10:23 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2007, 15:19
Сообщения: 1016
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев
Всё это чепуха, насчёт «архитектора проекта» которые всё распишет до мельчайших деталей. У меня начальник по образованию инженер-системотехник (железячник) по началу пару лет тоже пытался нам структурные блоки и алгоритмы разрабатываемых программ рисовать. Да только в начале разработки программист и сам плохо понимает, как он будет реализовывать тот или иной блок, а ещё разработка зачастую имеет эволюционный характер (от простого к сложному, от грамосткого к совершенному). Так что в начале проекта нужно представлять что вы хотите получить в общих чертах, и блоки разрисовывать не детально, а в общем и целом. То же самое с интерфейсами, всё в общих чертах, а детали появиться в ходе разработки. Для начала нужно сделать простенький макет программы, посмотреть на него, поплеваться, покритиковать как следует, сделать правильные выводы и начать следующую итерацию разработки (всё наново с учётом полученного опыта).

Ну в общем, это работа, много работы :crazy:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов в команде (метод черных ящ
СообщениеДобавлено: 24 июн 2010, 10:24 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Если архитектор расписывает всем всё до мельчайших подробностей - его срочно надо лечить :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов в команде (метод черных ящ
СообщениеДобавлено: 24 июн 2010, 10:30 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Нееет...
Не делайте этого :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 12:03 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
EdGull писал(а):
хочется чтобы "почти каждый" желающий который выразит желание внести свой вклад, мог бы написать блок не сильно вникая в общую структуру. ... можно ли создать проект из множества "черных ящиков" у которых есть только входные и выходные параметры?


Я думаю для МК это нереально сделать. По сути такие ящики это скечи ARDUINO или римеры для других компиляторов и МК. Все они по отдельности работают, а вот произвольно свалить их в одну прогу врядли получится - возникнут конфликты между ними по использованию железа.

Но такая модель работает на ПК - по сути все отдельные програмы на нем установленые есть черные ящики, причем они могут работать в произвольных наборах параллельно "как бы" не мешая друг другу.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов к команде
СообщениеДобавлено: 24 июн 2010, 12:54 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
МК/ПК - однофигственно.

Можно на ПК одним черным ящиком захапать видеодевайс и никому не давать ничего.
А можно на МК написать модули, как мы в ORFA сделали драйверы, которые собирать в единую систему.

Всё реально, было бы желание ;)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Методика работы программистов в команде (метод черных ящ
СообщениеДобавлено: 24 июн 2010, 18:04 
Не в сети
Аватара пользователя

Зарегистрирован: 28 июл 2009, 10:02
Сообщения: 862
Откуда: Самара
ФИО: Павел Сергеевич
На ПК операционная система, а на МК она у вас есть?
Слышал на PIC18 сделали PICOS вроде система реального времени и там можно "мелкие программы" выполнять типа "параллельно" как на ПК.
А по поводу разрабатываемых "черных блоков" - конечно можно.
Самое главное четко написать требования к "входам"/"выходами" и типам данных этих блоков.
А блоками могут быть хоть функции, хоть процедуры, хоть драйверы и т.п.

_________________
«Сон разума рождает чудовищ»


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO