• Авторизация


Будь настоящим! Просто ради того, что быть настоящим... 28-08-2013 13:29 к комментариям - к полной версии - понравилось!


Отложим приятные воспоминания об уик-энде на попозже (да и ни одной хорошей литературной мысли пока в голову не пришло из-за текущих проблем), а пока напишу об одном сегодняшнем впечатлении.

Сегодня начал свое знакомство с еще одной штукой, с которой знакомы Настоящие Программисты. Не такие, как я, которые пишут что-то там для чего-то там, а такие, которые "профессионально разрабатывают программные продукты". Много лет я имел с ними конфликты на почве того, что для Настоящего Программиста (НП) является очень неприятным делом внесение любых изменений в свой продукт, особенно если они частые или значительные. Это приводило к тому, что, при сопряжении моих программ и их программ в какой-либо единой программно-аппаратной системе, мне приходилось соглашаться на определенные извраты в своих программах, что зачастую было единственным способом хоть как-то добиться получения некоего общего эффекта. Потому что НП согласен на любой абсурд и даже на любую ошибку в своей программе, лишь бы по возможности не менять ничего в том, что уже сделано - проще было самому просунуть голову между пальцев ног, чем его заставить поковыряться в носу. Я конечно все всегда понимал, ибо мне тоже приходилось содержать зоопарк различных версий своих программ, однако, в принципе, я не видел такой уж большой проблемы в том, чтобы в любой момент времени взять из нужной папочки нужную версию определенной части некоей общей программы. Для этого нужна лишь стройная система папочек и человек, который в данный момент времени в этих папочках разбирается. Конечно же я всегда знал о репозиториях и системах управления версиями, но никогда с ними не работал.

Небольшое лирическое отступление на тему "почему же ты, свинота, не пользовался системами управления версиями?". Поясняю - в соответствии с моим "Человеко-Машинным Правилом №2" человек является главным генератором бардака в любой технической системе, и он же является единственным "устройством", способным сей бардак упорядочить в реальном времени. Здесь надо сразу пояснить, что мое "Человеко-Машинное Правило №2" прямо следует из моего же "Человеко-Машинного Правила №1", в соответствии с которым человек не в состоянии качественно исполнить даже самое пустяковое задание (а значит его надо доверить машине), но при этом все сколько-нибудь значимые дела следует доверять исключительно человеку. Почему же значимые дела надо доверять человеку а не машине? А потому, что машина - творение человека, причем основная идея разработки и конструирования технических систем состоит в разложении одной большой сложной задачи на ряд мелких и простых. И, как следует из "Человеко-Машинного Правила №1", человек смачно косячит при выполнении ряда мелких и простых задач. Часть косяков устраняется при отладке и наладке, но часть остается навсегда, и может пережить и саму систему, и породившего ее человека. Поэтому - человек и только человек должен принимать значимые финальные решения, при этом будучи устраненным от самых примитивных операций. Например решение о том, где и какие версии надо взять, что с ними надо сделать, как проверить результат перед выдачей в эксплуатацию - дело человека. А на компьютер можно возложить задачи хранения версий в структурированной системе каталогов, поиска по именам файлов, дате их изменения и их содержимому - это могут почти все файловые менеджеры, процесс этот настолько отлажен и настолько интегрирован в операционнуе системы, что вряд ли человек сможет составить конкуренцию этому сервису. И он не требует наличия каких-то там систем управления версиями.

Но ни один НП не будет так рассуждать. И вот - на арене цирка появляются разнообразные хитроумные системы. И я в первом ряду трибун, вынужденный обстоятельствами к применению оных в своей работе (пусть лишь немного, с самого краю, и то - по прямому принуждению руководства). Решил я с ними чуть-чуть разобраться - что такое, зачем и где, неужели тупо для сохранения отличающихся копий файлов? Оказалось, что нет. Оказалось, что системы управления версиями - это целая вселенная. Уйма малопонятного функционала, куча английских слов, обязательно язык командной строки (любой настоящий НП знает, что язык командной строки - это круче, чем кнопочки, потому что кнопочки делают для девочек, а крутые НП пишут батники). Обязательно ветвление версий - на случай, если кому-то захочется сделать с текущей версией что-то объемное параллельно с другими пользователями репозитория, при этом генеря кучу недоработанных промежуточных версий, с последующим слиянием чего-то из полученного с какими-то результатами других участников. Говоря по-русски - абракадаброгенератор А самое главное - систем управления версиями существует как минимум несколько. И между адептами различных систем идет война, в которой противоборствующие стороны обмениваются аргументами в стиле "а в нашей системе проще, чем в вашей, обрабатывать такие вот косяки". Ооо, куллл, основная задача системы - генерить косяки при сохранении, хранении и извлечении версий, и чем меньше она их генерит, тем, лучше. Или вот еще - "мы в нашей системе смогли произвести слияние ветвей версий всего за сутки, а вы колупались две недели, хаха!". Что??? Сутки??? Речь не о изменениях, их может целый месяц делали (а может и целый час), а о совмещении изменений вместе. Они просто усердно будут совмещать ваши файлы, а когда они нагенерят кучу ошибок при их совмещении, то вам остается лишь провести у компьютера от 1 до 14 суток. И потом сесть и задуматься - а может перейти на новую систему? Говорят вон та система лучше. Один автор в интернете однако заявил, что для перехода с системы на систему ему потребовалось три месяца - так уж они отличаются, что ну никак не перейти быстрее (и это, судя по всему остальному, был далеко не самый тупой человек). ОМГ, три месяца потратить на изучение очередной фигни, которая занимается созданием папочек и дальнейшим их абракадабрингом? Определенно - мне далеко до НП. Я пока морально не готов изучить и использовать систему, смысл использования которой лишь в ее использовании, ибо соотношение полезность/объем_бессмысленных_действий у нее близко к нулю.

Хотя, конечно же, изучать весь этот бред как-то надо - как никак стандартом уже стало. Обленился народ, папочки заводить не хочет... Систему им подавай...
вверх^ к полной версии понравилось! в evernote
Комментарии (6):
Рианонн 28-08-2013-15:31 удалить
"потому что кнопочки делают для девочек, а крутые НП пишут батники"
Я конечно полный нуб. Они там совмещают изменения внутри одного файла или тупо заменяют файлы?...
Должно же это быть для чего-то нужно.
hhba 29-08-2013-13:06 удалить
Ответ на комментарий Рианонн # Там и совмещение изменений внутри файлов тоже имеется, это как раз нужно для совместной работы группы программистов над одним исходным кодом (хотя это на самом деле лишь следствие неверной организации работы этих самых программистов - никакой нужды впятером ковыряться в одном файле попросту нет).

Это все нужно для того, чтобы толпы программистов могли чем-то заняться. :)
=)

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

Сидит программист глубоко в отладке.
Подходит сынишка:
- Папа, почему солнышко каждый день встает на востоке, а садится на западе?
- Ты это проверял?
- Проверял.
- Хорошо проверял?
- Хорошо.
- Работает?
- Работает.
- Каждый день работает?
- Да, каждый день.
- Тогда ради бога, сынок, ничего не трогай, ничего не меняй!!!

А насчет второй части поста я поняла, что слабо поняла. Но на интуитивном уровне догадываюсь, что все проблемы из-за лени человеческой, при которой проще сооружать к программному продукту костыль за костылем, чем взять и все переделать нормально. Хотя в итоге на закостыливание уходить в сумме больше времени, чем 1 раз все набело переделать. Я вкурила, или блондинка?)
hhba 31-08-2013-11:14 удалить
Ответ на комментарий Таналиора # Примерно вкурила. И даже не столько в костылянии проблема, сколько в том, как убого оно обычно исполняется. А проблемы да, все те же - лень.
Так вот они какие эти новые луддиты! :)) На самом деле, системы контроля версий - архиполезная штука. Один раз потрудился освоить, и потом уже можно не думать. Вообще. Оно само всё делает. Для этого, собственно, люди компьютеры и изобретали.
hhba 31-08-2013-19:44 удалить
Ответ на комментарий Отличник_ГТО # Человечество на протяжении всей своей истории генерит непотребное количество бессмысленного контента. Что ж теперь, все изучать и всем пользоваться? Ну разве что из-под палки.


Комментарии (6): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Будь настоящим! Просто ради того, что быть настоящим... | hhba - Дневник hhba | Лента друзей hhba / Полная версия Добавить в друзья Страницы: раньше»