Здравствуйте, Юрий Лазарев, Вы писали: ЮЛ>Код был написан меньше чем за два месяца. Мной одним.
Меньше 2-х месяцев? На этот код нужно 2 недели отводить, с ресёрчем с 0 ну может быть 3 и то при условии, что ты напишешь юнит тесты. >Не потому, что я отказывался работать в команде, а потому что команда безбожно тупила.
2 месяца, ага. А ты Дартаньян. >Естественно, я не собирался оставлять код в таком виде, а думал его переработать со временем.
После того как код уходит в продакшн ты про него забываешь. >Профнепригодность — это когда код востребован заказчиком? Ну, не знаю. Скорее это профнепригодность манагера.
Заказчиком востребовано не это.
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Здравствуйте, местные хакеры. ЮЛ>я здесь новый и не стал бы сюда заглядывать по своей нужде, но спровоцировал мой начальник. Бывший мой начальник, поскольку недавно уволил меня при очень странных обстоятельствах. Этот типчик вам здесь известен, это его тема "Оцените качество кода" http://rsdn.ru/forum/cpp/5787830.flat
висит у вас на форуме, и это он вызвал меня на этот форум, будучи уверен, что будто мне нечего будет возразить, и меня тут раздавят морально, так же как он раздавил уже материально.
Я очень сильно подозреваю, что речь шла не о моральном уничтожении, а о том, чтобы ты познакомился с мнением людей, прямо не вовлечённых в ваш междусобойчик. В принципе, нормальный ход, хотя мне он кажется скорее отчаянным, поскольку другие доводы не сработали. Вот честно, руководителя, который идёт на форум, чтобы доказать свою правоту подчинённому, я просто не представляю иначе, как полностью отчаявшимся. Он уже доведён "до ручки".
ЮЛ>Почитав все его реплики в той теме, вы узнаете, что я бронтозавр и что я только что расстался с фортраном, и много чего такого, что узнаешь о себе только на коммунальной кухне.
ЮЛ>При вашем желании я легко развею все его инсинуации.
Да, наплевать, когда и с кем ты там расстался. Конфликтная ситуация имеет место быть здесь и сейчас, безотносительно истории вневременных лет.
ЮЛ>Но всему поводом (видимо, формальным) послужило неудовольствие господина моим кодом, который, увы-увы, работает, и работает без ошибок, но так тяжело доходит до сознания Крутого Манагера. По его уверениям, все тут массой мой код отвергли, признали "ужасным", подтвердили худшие его опасения и потому он свернул все мои наработки (делавшиеся на заказ отечественным фирмам), разорвал договоры и отправил меня восвояси искать другую работу (которой у нас не так легко найти).
Сочувствую, без шуток. И тебе, и твоему шефу. Но справедливости ради, прочитав твоё послание, я пока склоняюсь к согласию с твоим шефом, уж извини. Ибо в своей риторике ты забываешь о главном: программы исполняются компьютерами, но читают-то их — люди. Дешёвый нонкоформизм из разряда "как правильно держать молоток" хорош, как этап развития подростка или молодого человека, но хранить его до седых волос — это с гарантией встречать старость без её почтенной спутницы — мудрости. При этом совершенно не надо впадать в другую крайность, и полностью подчиняться воле окружающих. В прочем, я отвлёкся.
ЮЛ>Честно говоря, я потому ожидал встретить тут тусующуюся толпу бандерлогов, с которыми я имею опыт общения на форумах различных тематик, от политических до научных и конспирологических. Но просмотрев реплики, я не нашел, что за "ужасность" высказалось какое то определенное большинство. Более того, я нахожу сообщения вполне толерантные, и даже с видимыми противниками, мне кажется, вполне можно найти понимание. Потому засчитываем заявление господина об явной "ужасности" ложью №1.
Скажем так, код вполне нормальный, если (и только если) принять как данность, что он вырос из экспериментальной разработки. Чуть ли, не из разработки "в стол". О недостатках в той дискуссии было сказано достаточно много, поэтому повторять не буду. Ограничусь лишь тем, что — да, его обязательно надо переработать перед выкладыванием в общий доступ, или как там у вас оформлена передача кода коллегам.
ЮЛ>(Прошу прощения, надо прерваться. Продолжение следует. И обещаю, что по тематике форума, а не в форме разборки с Крутым меном)
ЮЛ>Ага, тут есть редактирование сообщения. Поехали.
ЮЛ>Давайте договоримся о парадигмах. Всякое программирование занимается полезным делом, когда воплощает решение задач реального мира. Программирование основано на языке, это его формальная сторона, тогда как содержательной является решение задач, то есть разработка алгоритма. ЮЛ>С этой точки зрения, все претензии господина относятся к формальной стороне дела, к сути проблемы он даже не подступал, и даже сама тема его "Оцените качество кода" чисто формальна — он даже не сделал попыток объяснить постановку задачи, почему и непонятно, что же он хочет.
Как ни странно, здесь твой шеф вполне в своём праве. Он, как шеф, должен заботиться о том, чтобы работа одного не создавала неподъёмную проблему для других, хаять его за это нет никакого смысла. Сложность работы с исходным кодом вполне "вычисляется" по сугубо формальным признакам — длинам функций, внятности идентификаторов и т.п. То есть, почти с первого взгляда несложно догадаться, что данный код будет тяжело сопровождать.
Я очень сильно подозреваю, что апелляции к МакКоннелу (или как там его...) были последним доводом в ряду восклицаний о "нечитабельности". Говоря проще: шеф хотел, чтобы ты переписал код более структурированным и понятным образом, а ты упёрся рогом. При этом твой шеф оказался терпеливым и начал вести просветительскую беседу (вместо того, чтобы просто поставить вопрос ребром: или переписывай, или увольняйся). Это не всегда удаётся, особенно, если оппонент категорически не желает слушать, ну и вообще, на такие увещевания нужен определённый талант, который присущ далеко не всем руководителям (но от них он и не требуется, кстати).
ЮЛ>Обсуждение в результате свелось к спору слепых о том, что такое слон, по форме частей его тела.
ЮЛ>Позвольте мне расширить аналогию. ЮЛ>Все эти классы, шаблоны и прочие новомодные фичи для существа программы представляют что-то вроде оглавления, содержания книги. Но не оглавления составляют ценность книг. И не их оформление. Представим современных книгочеев, спорящих о качестве книги по ее переплету, обложке и тому подобным мелочам, но при том не удосуживающихся прочесть даже и главы из книги. Граф Толстой ужасен, скажут они, разве можно писать так длинно? Он явно бездарен, вот нам нравятся хокку, — если бы он умел написать Войну и мир на хокку, это было бы совсем другое дело. А так — нет, writeonly. ЮЛ>Или представьте, как какой издатель указывал бы Толстому, как и сколько писать?
В огороде бузина, а в Киеве дядька. Я бы ещё понял, если бы ты привёл аналогию "функция = предложение, класс = абзац, подсистема = глава" или что-то в этом роде. А так нельзя рассуждать: раз у Толстого "Война и Мир" не уместилась в один том, то и я буду писать функции на 50KLOC.
Вот поверь уж на слово: код очень сильно отличается от художественной литературы хотя бы тем, что худлит мы читаем для удовольствия и развлечения, а код — по необходимости. И, продолжая твой аналогию, ставить читателя перед необходимостью прочесть "ВиМ" от корки до корки, чтобы поправить знаки препинания в третьей главе, суть махровое неуважение к тому, кто правит знаки препинания. Тоже мне, блин, ВПЗР нашёлся.
ЮЛ>Возможно, с тех пор формальные каноны усовершенствовались, но где же сегодня великая литература? Сплошь халтура.
ЮЛ>Вспомним, как Моцарт задержался дорогой, слушая неумелого деревенского музыканта. И Сальери, этого мощного стража формалистики, — гений склоняется к несовершенству, ищет живую душу, а тот, кто "алгеброй поверил гармонию", лишь бездарно стучит по клавишам в своей агонии мнимого совершенства.
И тут Остапа понесло... Дружище, код не может быть совершенным никогда, от слова совсем. Стремление к совершенству — сугубо черта человека, а не кода. "Совершенный код" — это гипербола, вынесенная в название книги, не надо приписывать этой фразе избыточное значение, а то мы далеко зайдём.
ЮЛ>Совершенство смерти подобно. Ведь любое движение нарушает уже достигнутое совершенство.
Слабак! Совершенство ненаписанной программы — вот истинное совершенство, подвластное настоящему мастеру!
ЮЛ>Именно это я и хотел когда то сказать в отношении "Совершенного кода" Макконелла. Как альтернативу, я предложил бы написать книгу "Искусство написания несовершенного кода", которая оказалась бы еще полезнее. Но кто внимательно прочел МакКонелла, увидит, что в ней нет строгих формальных требований, это не катехизис программиста, а всего лишь сборник полезных приемов и интересных идей.
Строгие ограничения вносит только компилятор, остальные обусловлены (sic!) социальным контекстом. То есть тем, что с кодом, как правило, работает не один человек и поэтому код нужно не только писать, но и читать. И поэтому нужно предпринимать определённые телодвижения, для того, чтобы упростить задачу чтения и последующей модификации кода.
ЮЛ>Но, как всегда, находятся не в меру религиозно-озабоченные деятели, которые возводят из частных случаев догматы и начинают слепо придерживаться их. Так возникают Крутые Манагеры.
Признаться, GhostCoders не произвёл на меня впечатления "Крутого Манагёра". Отсюда я ставлю под сомнение обоснованность твоего пафоса.
ЮЛ>Спрашивается, где у Конелла запрет на писание функций длиной более 200 строк? Что за соображения обосновывают эту магическую величину? Может ли код остаться неплохим при 201, 300, 1000 строках?
Не преувеличивай, это отнюдь не запрет, как таковой. "Один экран текста" — это тот предел объёма программного текста, который удобно анализировать, т.к. не надо гонять текст вверх-вниз. Отсюда появилось неформальное правило: ограничивать размер функции одним экраном (примерно полсотни строчек на нынешних мониторах). Естественно, что в отдельных случаях это правило нарушают. Например, если логика алгоритма требует построить длинный switch/case на несколько сотен ключей. И уверяю тебя, никто в такой ситуации даже не пикнет относительно "неканоничности" такого кода.
ЮЛ>Да, и вот этот мой код и есть тому подтверждение. При чем, я не говорю, хорошим, я говорю, неплохим, поскольку он все равно хорошо поддается отладке и скейлингу (последнее тому подтверждение — мой последний новый код, как развитие вами виденного, с новым оригинальным алгоритмом).
Отладке он хорошо поддаётся как раз из-за того, что ты не пользуешься ни шаблонами, ни разбиением на кода на отдельные смысловые куски (вернее, последним пользуешься, но в недостаточной степени). Но с другой стороны, твой код мало пригоден, например, к тестированию автоматическим тестом и отсюда — к фиксации его поведения. Это нормально для экспериментальной разработки "для себя", но не очень хорошо, если предполагается коллективное использование.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
V>Дак я сделал такой вывод не на основании здесь написанного, а на основании того КрутогоМанагера, писавшего в том посте — чел и на работе так делал. а тутошние простыни просто это подтверждают
Так давайте разберем писанину КрутогоМанагера,
например
=Оказывается, он про do{ }while(false) у МакКонела прочитал.=
Чепуха, я это сам как то нашел, а потом нашел такое же решение у Конелла.
=Бить функции на более мелкие — категорически отказывается, типа для него это плохо,
приходиться "скакать как козлу" с метода на метод, непонятным код становиться.=
Про это я вроде объяснил, ни от кого возражений не последовало.
Кстати, что за более мелкие в моем случае? Учтите что на фирме я работал с VC++10 (кажется), а сейчас вовсе с VC++7, так что модные фичи не проходят (даже на 10м были неприятные проблемы с отладчиком)
=Заменить стиль линий (константа 1 в нескольких местах в этом коде) на const int TMP_STYLE_LINE = 1; согласился сделать только после часа дискуссий (!).=
Дискуссия заключалась лишь в том, что эта константа вообще иррелевантна к делу и ее даже не стоит специально заводить.
Тупизна победила.
=При этом мы в какие дебри только не лезли, он и в метафизику какую-то забрел и черт знает еще что (это когда я ему пытался доказать что магические константы — это зло).=
Как всегда, Крутой Манагер не понял сути дела и начал доказывать очевидности. Ок, капитан Очевидность!
=При этом, он обвиняет меня в том, что я невнимательно прочитал "МакКонела" ("Совершенный код"),
а он прочитал его очень внимательно, результат прочтения данной книжки — это его выше приведенный код.=
В результате прочтения МакКонелла я сделал очень интересные социологические наблюдения , которых не заметил даже Конелл. Но это не для этого форума.
=Еще типа что пишем одни только "обвертки", которые ничего не делают, много куча коротких функций,
которые тоже ничего не делают, только вызывают другие функции и т.д. =
Положим, делают только передачу между уровнями интерфейсов, но это сути не меняет. За такую "работу", с позволения сказать, манагер платит вдвое больше чем за разработку алгоритма. Наверное, так правильно.
=Систему контроля версий (у нас GIT), не любит. Его перл это "это гит виноват".=
Про гит я расскажу отдельно. Это непередаваемый уровень тупизма.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>И тут Остапа понесло... Дружище, код не может быть совершенным никогда, от слова совсем. Стремление к совершенству — сугубо черта человека, а не кода. "Совершенный код" — это гипербола, вынесенная в название книги, не надо приписывать этой фразе избыточное значение, а то мы далеко зайдём.
<offtopic>
Не соглашусь! Совершенный код — это ненаписанный код. Но это уже совсем другая тема
</offtopic>
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Код был написан меньше чем за два месяца. Мной одним. Не потому, что я отказывался работать в команде, а потому что команда безбожно тупила. Естественно, я не собирался оставлять код в таком виде, а думал его переработать со временем. Профнепригодность — это когда код востребован заказчиком? Ну, не знаю. Скорее это профнепригодность манагера.
Был у меня опыт работы по написанию алгоритмов на крупную контору. Иногда 100 строк кода проходят ревью по несколько дней. И это очень качественно и аккуратно написанный код. И они — ревьюверы правы, что рассматривают каждую строчку под лупой, придираются к именам переменных. Если твой код будет работать у миллионов пользователей, то практически любой баг в нём наверняка проявится. В нём не должно быть даже намёка на неясность.
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Здравствуйте, местные хакеры. ЮЛ>я здесь новый и не стал бы сюда заглядывать по своей нужде, но спровоцировал мой начальник. Бывший мой начальник, поскольку недавно уволил меня при очень странных обстоятельствах. Этот типчик вам здесь известен, это его тема "Оцените качество кода" http://rsdn.ru/forum/cpp/5787830.flat
висит у вас на форуме, и это он вызвал меня на этот форум, будучи уверен, что будто мне нечего будет возразить, и меня тут раздавят морально, так же как он раздавил уже материально.
У меня большой опыт написания подобного плохого кода в режиме "это надо было сделать ещё позавчера" или "если мы это не сделаем прямо сейчас, то заказчик от нас уйдёт". Небольшая часть его была переписана более-менее нормально. Но те тонны кода, что остались, как показало время, сильно тормозили развитие продукта. Так что твой бывший менеджер прав. Код, подобный твоему имеет тенденцию накапливаться и момент, когда поддержка старого продукта становится дороже, чем написание нового, может наступить очень быстро.
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>=Оказывается, он про do{ }while(false) у МакКонела прочитал.= ЮЛ>Чепуха, я это сам как то нашел, а потом нашел такое же решение у Конелла.
Допустим, что здесь он тебя не понял.
ЮЛ>=Бить функции на более мелкие — категорически отказывается, типа для него это плохо, ЮЛ>приходиться "скакать как козлу" с метода на метод, непонятным код становиться.= ЮЛ>Про это я вроде объяснил, ни от кого возражений не последовало. ЮЛ>Кстати, что за более мелкие в моем случае?
Ну, уж хотя бы ATL можно было попользовать, вместо ::SafeArrayCreate. Декомпозицией я заниматься не хочу, но опыт подсказывает, что длинные функции всегда можно разбить. Исключение составляют программы с очень жёсткими требованиями к производительности, там такое разбиение не всегда желательно, но это явно не твой случай.
ЮЛ>Учтите что на фирме я работал с VC++10 (кажется), а сейчас вовсе с VC++7, так что модные фичи не проходят (даже на 10м были неприятные проблемы с отладчиком)
Не пори муру. Мелкие функции прекрасно обрабатываются аж со времён MSC. Касательно "фишек", у MS была долгая проблема с поддержкой стандарта, но сейчас это не релевантно дискуссии. А отладчик всегда поглюкивает, это не мешает отлаживать даже очень размашистые шаблоны, так что, не пугай — мы тут пуганые.
ЮЛ>=Заменить стиль линий (константа 1 в нескольких местах в этом коде) на const int TMP_STYLE_LINE = 1; согласился сделать только после часа дискуссий (!).= ЮЛ>Дискуссия заключалась лишь в том, что эта константа вообще иррелевантна к делу и ее даже не стоит специально заводить. ЮЛ>Тупизна победила.
Если имеется в виду вот эта константа, то шеф прав:
epEllipseParam.style = 1;
Даже если она иррелевантна, то её всегда можно потом убрать.
ЮЛ>=При этом мы в какие дебри только не лезли, он и в метафизику какую-то забрел и черт знает еще что (это когда я ему пытался доказать что магические константы — это зло).= ЮЛ>Как всегда, Крутой Манагер не понял сути дела и начал доказывать очевидности. Ок, капитан Очевидность!
То есть он тебе про Фому, ты ему про Ерёму. Угу-угу.
ЮЛ>=Еще типа что пишем одни только "обвертки", которые ничего не делают, много куча коротких функций, ЮЛ>которые тоже ничего не делают, только вызывают другие функции и т.д. = ЮЛ>Положим, делают только передачу между уровнями интерфейсов, но это сути не меняет. За такую "работу", с позволения сказать, манагер платит вдвое больше чем за разработку алгоритма. Наверное, так правильно.
По такой логике, писать ты должен всё на ассемблере. На хрена эти языки высокого уровня? Разве что для тупорылых, которые не могут читать в автокоде! Ну детский сад, право слово...
ЮЛ>=Систему контроля версий (у нас GIT), не любит. Его перл это "это гит виноват".= ЮЛ>Про гит я расскажу отдельно. Это непередаваемый уровень тупизма.
Он-то здесь при чём?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Итак , про гит.
Сразу скажу, что у меня небольшой опыт его использования — всего с год на этой фирме.
А история вообще была почти в самом начале.
Значит, мне досталось разработка плагина для Компаса. Различные задания, которые мы заложили в план, требовали пары месяцев, и то результат был не очень ясен. Я тем не менее рассчитывал добиться всего возможного.
Поэтому на всякий случай я делал свой проект на экспериментальной ветке гита и не делал коммитов в общий релиз фирмы, который Крутой Манагер поставляет своему шефу за бугор. Там вместо гита используется SVN, система линейная и потому требующая предварительной подготовки (линеаризации) коммитов из гита.
Пока я работаю, один ухарь из фирмы (из тех, что получают вдвое больше моего) по уговору с начальником от нечего делать тоже взялся за этот проект, причем, как оказалось, стал коммитить его прамо на SVN. Через месяц выяснилось, что результат у него сырой, много глюком и неустранимых проблем. Посовещавшись с начальником, я продолжил свой проект и через месяц успешно его выполнил, причем без единой проблемы и глюков, плагин летал. И тут начались проблемы с гитом. Во первых, мне заявили "Ты должен был коммитить ежедневно свою работу". Но куда коммитить, если там лежит уже негодный проект ухаря? Я им популярно объяснил, что коммитить безболезненно можно лишь параллельные проекты, а не один на другой. Не понимают!
Ладно, делаем слияние с кучей промежуточных чекпойнтов. Гит в таком случае зачем то делает слияния последовательно, хотя мне всего лишь надо заместить последний снимок на SVN своим последним проектом. Гит затягивает все это на несколько часов, причем я должен выуживать и разрешать все промежуточные несуществующие в реальности конфликты.
В конце концов, эта техника была прекращена, и я сказал, что гит тут недоделан. Мало того, непонятны его правила слияния, да и разбираться в куче файлов — только провоцировать где-то что-то пропустить.
Через нек.время мы все таки заменили окончательный проект напрямую, без помощи этих слияний.
За то, что я не делал коммиты (в дурной проект), я теперь поминаем Крутым Манагером. Тому ухарю никаких последствий, ни за ненужные коммиты и свяязанные с этим проблемы, ни за зря потраченное время.
Никто на фирме так и не понял, что коммитить с двух различных проектов ежедневно — глУпо. Вся их практика — латание дыр в своем коде.
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Здравствуйте, местные хакеры.
Коллега, а Вы с какой целью этот топик подняли?
Хотите переубедить местную публику, получить ответы на вопросы или какой-то морально сатисфакции?
Здравствуйте, ArtDenis, Вы писали:
AD>У меня большой опыт написания подобного плохого кода в режиме "это надо было сделать ещё позавчера" или "если мы это не сделаем прямо сейчас, то заказчик от нас уйдёт". Небольшая часть его была переписана более-менее нормально. Но те тонны кода, что остались, как показало время, сильно тормозили развитие продукта. Так что твой бывший менеджер прав. Код, подобный твоему имеет тенденцию накапливаться и момент, когда поддержка старого продукта становится дороже, чем написание нового, может наступить очень быстро.
Я уже объяснил, что проект полностью был завершен. Что там еще модифицировать и выуживать? У меня, как правило, глюков не бывает, я все исправляю еще до релиза. Вот уж поверьте, бывают такие программы, которые не требуют никакого сопровождения. Это вам не как у Райкина "Кто рукав к гульфику пришил?"
Здравствуйте, Юрий Лазарев, Вы писали:
V>>Не затрагивая профессиональные навыки, а только психологию, скажу, что ты, похоже, из тех людей, которые лучше будут часами трындеть, чем просто пойдут и сделают. ЮЛ>Похоже, вы тоже из манагеров?
В Ваших словах прямо какая-то классовая ненависть читается.
Что Вы имеете против "манагеров"?
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Я уже объяснил, что проект полностью был завершен. Что там еще модифицировать и выуживать? У меня, как правило, глюков не бывает, я все исправляю еще до релиза.
Проект завершён. И что? Откуда тебе неменеджеру знать что дальше с ним будет? Что за детская самоуверенность?
ЮЛ>Вот уж поверьте, бывают такие программы, которые не требуют никакого сопровождения. Это вам не как у Райкина "Кто рукав к гульфику пришил?"
Вот уж не поверю.
Здравствуйте, ArtDenis, Вы писали:
ЮЛ>>Вот уж поверьте, бывают такие программы, которые не требуют никакого сопровождения. Это вам не как у Райкина "Кто рукав к гульфику пришил?" AD>Вот уж не поверю.
Отчего же, бывают такие программы.
Это такие, которыми никто не пользуется
Здравствуйте, chaotic-good, Вы писали:
CG>Вы там все так себе программисты, судя по всему. CG>То что ты бывшего коллегу называешь "ухарем" характеризует не с лучшей стороны тебя а не его.
Потому что я прекрасно знаю о ком пишу. У меня в разное время были прекрасные товарищи, которых увольняли без причин. Один, например, сейчас работает в нижегородском Интеле.
Так вот с этим типом-ухарем отношения не сложились сразу. Товарищ много мнит о себе. Впрочем, начальник его в этом поощряет.
Здравствуйте, 0x7be, Вы писали:
0>Отчего же, бывают такие программы. 0>Это такие, которыми никто не пользуется
Как ни странно, пользуются. У нас полгорода из агенств недвижимости уже лет 8 юзают мою программу по недвижимости, которую я вообще не сопровождаю. (Правда, и денег оттого не получаю).
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Пока я работаю, один ухарь из фирмы (из тех, что получают вдвое больше моего) по уговору с начальником от нечего делать тоже взялся за этот проект, причем, как оказалось, стал коммитить его прамо на SVN.
Хм... Хотя допускаю, что хотели таким образом показать заказчикам некий прогресс.
ЮЛ>Через месяц выяснилось, [...] И тут начались проблемы с гитом. Во первых, мне заявили "Ты должен был коммитить ежедневно свою работу". Но куда коммитить, если там лежит уже негодный проект ухаря? Я им популярно объяснил, что коммитить безболезненно можно лишь параллельные проекты, а не один на другой. Не понимают!
Я что-то не понимаю. Если твой "ухарь" коммитился непосредственно на SVN, то выходит, что вы либо никак не конфликтовали, либо всякий раз должны были перетирать обновления друг друга. Реквестирую помощи GhostCoders.
ЮЛ>Через нек.время мы все таки заменили окончательный проект напрямую, без помощи этих слияний. ЮЛ>За то, что я не делал коммиты (в дурной проект), я теперь поминаем Крутым Манагером. Тому ухарю никаких последствий, ни за ненужные коммиты и свяязанные с этим проблемы, ни за зря потраченное время. ЮЛ>Никто на фирме так и не понял, что коммитить с двух различных проектов ежедневно — глУпо. Вся их практика — латание дыр в своем коде.
Ну, если это был единственный конфликт из-за Git, то претензия к тебе выглядит странно. Действительно, в таком случае единственный здравый выход — полностью удалить старый проект и заменить его новым, а не заниматься слияниями.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Как ни странно, пользуются. У нас полгорода из агенств недвижимости уже лет 8 юзают мою программу по недвижимости, которую я вообще не сопровождаю. (Правда, и денег оттого не получаю).
Верю
P.S. Вы лучше мне вот на этот вопрос дайте ответ: здесь.
Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>... товарищи, которых увольняли без причин.
т.е. это обстоятельство никак не намекает на то, что, возможно, виноваты не все вокруг, а наоборот?
ЮЛ>Один, например, сейчас работает в нижегородском Интеле.
это ни о чем не говорит. знал я одного такого, который в гугле работал. в прошедшем времени
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)