2008-04-07

revision control basics

Разному нынче учат в институтах по компьютерной части - C с плюсами, C без ничего, C с решёточкой, Visual ВсёЛюбое, Дельфи, Билдеру учат, Java, на Lisp и Scheme есть курсы (это больше за бугром), про базы данных, про устройство операционной системы (даже не только windows), про интернет, про DirectX, про макросы в Экселе - про всё учат.

Вот только про "основы систем контроля версий" - ни разу не попадалось мне даже упоминания. А инструмент-то для программиста - наиважнейший! Второй после текстового редактора / любимой IDE.

В результате смотришь на revision log - ужос, чесслово. Мёржить изменения не умеют, просто копируют пофайлово из соседней ветки (иначе с какой бы радости один мёрж расползался на двадцать коммитов).

И это ещё ладно - merge это общепризнанно самая сложная операция (по своей сути, независимо от используемой системы контроля). В конце концов, каждый мёржит как он хочет - процесс это глубоко интимный. Но вот когда у всех двадцати коммитов в commit message написано (цитирую дословно) "msg" - это уже, я извиняюсь, капитальное непонимание что такое commit message и для чего оно вообще нужно.

И это - неглупые люди. То есть смотришь на diff - и вроде всё аккуратненько, концы строк не ломают, всё подряд не переформатируют, ложку в ухо не суют, мыла не едят.

Как бы впихать в университетские программы "основы систем контроля версий"? Там чуть-чуть совсем надо-то. Реально, основы - не надо тонкостей настройки репозитариев, не надо поисков десяти различий между CVS, SVN и mercurial - нo basic work cycle (checkout/update/commit) выпускник должен понимать. То есть за час это можно рассказать очень подробно, а за два - рассказать и показать.

10 comments:

Alex Ott said...

ну в забугорных заведениях вроде есть курсы по software change management

vnaum said...

Ну, толи это заведения сильно забугорные, толь курсы шибко необязательные... В общем, средний уровень знакомства с Revision control - ниже плинтуса. Что и огорчает - этому делу место в букварях.

Anonymous said...

Я пару раз пытался протолкнуть спецкурс на базе Software Carpentry, или по эрлангу на ФКН ОмГУ (в смысле, чтобы я читал). Фигвам. Всё упиралось в то, что это спецкурс (т.е. ни в какие программы он не входит и план не закрывает) и за него платить, даже почасовичку, даже мизер никто не хочет.

Unknown said...

Зато когда показываешь некоторым из них - у них прямо глаза загораются и они удивляются - как это они могли жить без этого n-лет.

Anonymous said...

говорят, нонче git всех заруливает со страшной силой..

vnaum said...

2 anarresti:
Глянул на Software Carpentry.
Да, это правильный курс.
Version Control - в самом начале, сразу после Shell Basics и More Shell. Общая структура - весьма правильная, в духе "сначала научись делать как сержант, а потом будешь самодеятельностью заниматься". Часть про SciPy стоит достаточно отдельно, и кого Python не волнует - могут легко пропустить, остальное - применимо и в других обстоятельствах.

Про курс - а сколько стоит начитывание курса? Так, для общего развития? Может, удастся найти спонсоров Ж-)

Ладно, даже пусть не курс. В конце концов, копировать файлы на флешки тоже никто не учил. Можно просто сказать на входе "а вот у меня все студенты хранят исходный код в subversion, вот вам карточка с логином/паролем, вот ссылка на страницу где объясняется что это за штука и что с ней делать, на зачёте глянем revision log". Заодно это немного усложнит жизнь тем, за кого программы пишет друг.

2 Pavel:
Вот про то и речь, что надо-то всем, а в букварях этой странички почему-то нету!

2 nemytchenko:
Кто там кого заруливает - оффтопик.
Топик про то что как так получается что есть программисты, которые про любой Revision Control вообще не в теме и им надо рассказывать всё сначала.

Anonymous said...

От-же развели плач... на кафедре МЛЛП уже второй год болтается subversion на машинке и на него даже что-то коммитят курсовики г-на Тюменцева.

Современный студент имеет нулевое представление об устройстве файловой системы виндовс. Far для него нечто чужеродное - он привык пользоваться проводником. Не у всякого студента есть e-mail!!! Тут бы "Hello, world!" научить писать...

А вы о каких-то системах контроля версий...

Ну а проблема друга пишущего программы решается ну очень просто... скажем так: не все друзья одинаково полезны :)

vnaum said...

Да, тут уже не плач надо устраивать - тут поминки надо...

Anonymous said...

э? что хороним? школьное образование или высшее? :)

Лет 5 назад человека 2-3 в группе знали с++ со школы, а сейчас таких людей нет. В школе на занятиях информатикой дети рисуют презентации в пауерпоинте.... если кто не знает :)

vnaum said...

А оба можно хоронить.
По совокупному результату.

Subscribe / RSS