Во общем есть у нас проект, внутренний для заказчика. Пишем уже версию 3.
Я пока с начала проекта делал адаптацию к 2008-й студии, потом занимался написанием всякого разного рода вспомогательных библиотек.
Теперь вот понадобилось прикрутить кой чего в другой части к которой Я дела не имел, в том что понаписывали другие "орлы".
Открываю код и вижу откровенную кашку-какашку, или другими словами говнокод...
В некоторых местах реально хуже того что Я встречал у индусов, (они у нас тоже ошиваются).
Мне к этой какашке надо прикрутить кой чего своего, и теперь дилема, переписывать за ними всёравно нужно будет, код который уже есть как Я уже сказал какашка, реально зло берёт когда видишь это, отношения c коллегами тоже портить не хочется.
Даже если сказать что это г.. нужно переписать переписывать это буду Я (специфика проекта такая). По натуре вроде чел Я не конфликтный, как мне кажется, если это конечно лично меня и моих интересов не касается.
Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
12.05.2011 19:07, nen777w пишет:
> > Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Когда будешь устраивать вздрючку не забывай здесь писать, по крайней
мере я попкорном запасаюсь.
Здравствуйте, nen777w, Вы писали:
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
вам пар спустить или проблему решить? кстати, вспомнилась классика:
Любой русский программист, после пары минут чтения кода, обязательно вскочит
и произнесет, обращаясь к себе: переписать это все нафиг. Потом в нем
шевельнется сомнение в том, сколько времени это займет, и остаток дня
русский программист потратит на то, что будет доказывать самому себе, что
это только кажется, что переписать это много работы. А если взяться и
посидеть немного, то все получится. Зато код будет красивый и правильный. На
следующее утро русский программист свеж, доволен собой и без единой запинки
докладывает начальству, что переписать этот кусок займет один день, не
больше. Да, не больше. Ну, в крайнем случае, два, если учесть все риски. В
итоге начальство даст ему неделю и через полгода процесс будет успешно
завершен. До той поры, пока этот код не увидит другой русский программист.
А в это время, в соседних четырех кубиках, будет ни на секунду не утихать
работа китайских программистов, непостижимым образом умудряющихся прийти
раньше русского программиста, уйти позже, и при этом сделать примерно втрое
меньше. Эта четверка давно не пишет ничего нового, а только поддерживает
код, написанный в свое время индусом, и дважды переписанный двумя разными
русскими. В этом коде не просто живут баги. Здесь их гнездо. Это гнездо
постоянно воспроизводит себя при помощи любимой китайской технологии
реиспользования кода — copy/paste. Отсюда баги расползаются в разные стороны
посредством статических переменных и переменных, переданных по ссылке (ведь,
китайский программист не может смириться с неудобствами вызванными тем, что
он не может изменить значение внешнего параметра). Вспоминая об этих
переменных и ссылках, русский программист, как правило, на время теряет дар
английской речи, и переходит к какой-то помеси русского и китайского. Он
давно мечтает переписать весь кусок, над которым работают китайцы, но у него
нет времени. Он уже переписывает два больших куска, и доказал начальству
необходимость переписать третий. Кроме того, русский программист боится
обидеть китайцев. Они могут решить, что он пытается вытеснить их с работы. К
слову сказать, напрасно боится, поскольку китайцы уже так решили.
На китайцах висят серьезные баги, о которых знает начальство и постоянно их
торопит. Китайцы уважают начальство и потому перевешивают баги друг на друга
очень торопливо. Они знают, что все попытки починить приведут к появлению
новых багов, еще худших. И в этом они правы. Разобраться в том, в каком
порядке меняются статические переменные, и как приобретают свои значения,
способен только один человек на фирме — индус. Но он пребывает в медитации.
Поэтому, когда всю четверку уволят во время сокращения... А кого еще
увольнять? Русский — еще не переписал свой кусок, а индус — главная ценность
фирмы — он редко обращает внимание на проект, но когда обращает, все
понимают, что так как он, архитектуру никто не знает. Так вот, когда
китайцев увольняют, у их кода возможны две основные судьбы. Первая — он
попадет к русским, и его перепишут. Вторая — он попадет к местному,
канадскому программисту.
О, канадский программист это особый тип. Он, ни на минуту не задумываясь,
как рыцарь без страха и упрека, бросится фиксить самый свирепый баг
китайского кода. Этот Баг живет там уже три года, и китайцы уже четырежды
(каждый по разу) сообщали начальству, что он пофиксен. Но Баг каждый раз
возвращался, как Бетмен в свой Готхем.
Итак, канадский программист, воспитанный на героической патетике
американского футбола — бросаться в бой головой вперед, сделает то, чего
китайцы не рисковали делать в течении трех долгих лет. Он, при помощи
дебагера, отследит место, где статическая переменная приняла значение -1
вместо правильного 0, и решительным движением заведет рядом вторую
переменную с правильным значением. Баг погибнет в неравной схватке с героем.
Но победа будет достигнута тяжелой ценой. Работать перестанет все, включая
только что переписанный русским программистом код. Это повергнет русского
программиста в задумчивость на целых два дня, после чего он сделает, в
общем-то, предсказуемый вывод о том, что дизайн с самого начала был
неправильным, и все надо переписать. На это нам нужна неделя. Да, неделя, не
больше.
Канадский программист смело бросится налаживать все, и станет еще хуже, хотя
казалось бы... Эта суета выведет из медитации индуса, который придумает и
вовсе гениальное решение — отбранчить код. Согласно его плану, мы теперь
будем поддерживать две версии одного и того же кода — одну работающую, но с
Багом, другую без Бага, но не работающую. Русский программист, услышав об
этом плане, сломает линейку об стол и обзовет жену дурой, но на митинге
возразить не решится.
К счастью, все это не сильно влияет на дела фирмы, поскольку продукт
продается и так. Поэтому менеджмент ходит в целом довольный и не устает
напоминать всем, что они отобраны как лучшие среди лучших. И что мы давно
доказали свою способность выпускать продукт тем, что выпускаем его иногда.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Vzhyk, Вы писали:
V>12.05.2011 19:07, nen777w пишет:
>> >> Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку? V>Когда будешь устраивать вздрючку не забывай здесь писать, по крайней V>мере я попкорном запасаюсь.
не.. ну как вам это... класс частью открытых (самизнаетедлячего) частью закрытых членов, с какогота х-ра виртуальным деструктором (пустым), с одной единственной не виртуальной функцией, и конечно же!!! те мемберы котрые в классе инициализируются и используются в этой самой функции, потому как левая пятка писавшего это чудо диктует что локальные переменные нынче вышли из моды. + enum из кодов ошибок этой саммой функции часть которых объявленна просто для фонаря... или с хитрым замыслом оставить о себе память?
решил что молча пока что перепишу. дальше если меня будут носом тыкать в этот проект буду бузить, и устраивать вздрючку.
Здравствуйте, nen777w, Вы писали:
N>Во общем есть у нас проект, внутренний для заказчика. Пишем уже версию 3. N>Я пока с начала проекта делал адаптацию к 2008-й студии, потом занимался написанием всякого разного рода вспомогательных библиотек. N>Теперь вот понадобилось прикрутить кой чего в другой части к которой Я дела не имел, в том что понаписывали другие "орлы". N>Открываю код и вижу откровенную кашку-какашку, или другими словами говнокод... N>В некоторых местах реально хуже того что Я встречал у индусов, (они у нас тоже ошиваются). N>Мне к этой какашке надо прикрутить кой чего своего, и теперь дилема, переписывать за ними всёравно нужно будет, код который уже есть как Я уже сказал какашка, реально зло берёт когда видишь это, отношения c коллегами тоже портить не хочется. N>Даже если сказать что это г.. нужно переписать переписывать это буду Я (специфика проекта такая). По натуре вроде чел Я не конфликтный, как мне кажется, если это конечно лично меня и моих интересов не касается.
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
попробуй сперва узнать почему Орлы так написали? Бывает, что банально нет времени и приходится писать говнокод, а потом делать рефакторинг этого всегою
Здравствуйте, cli, Вы писали:
cli>Здравствуйте, nen777w, Вы писали:
N>>с какогота х-ра виртуальным деструктором (пустым)
cli>Открытым, закрытым?
открытым конечно! cli>Класс не наследуется?
удивительно да?
более того если брать по логике — класс занимается экспортом неких данных из БД в XML, а в другом файле в MianFrame.cpp (приложение гуёвое) существет такой же экспорт, просто с небольшим отличием! классно, не правда ли?
Более того!!! как оказалось класс который готовит данные для экспорта шоб вы думали.... ? Ага! Может показать MessageBox! Во как!
Здравствуйте, HolyNick, Вы писали:
HN>А чем не нравится enum ошибок?
enum нравится. не нравится то что некоторые коды ошибок в этом enum объявленны для наверно... хз чего вообще. т.е. их реально не используют.
короче пойду Я наверно сейчас домой, а завтра утричком молча перебарабаню эту какашку. сори за пост... нужно было выпустить пар.
Здравствуйте, nen777w, Вы писали:
cli>>Класс не наследуется? N>удивительно да? N>класс занимается экспортом неких данных из БД в XML, а в другом файле в MianFrame.cpp (приложение гуёвое) существет такой же экспорт, просто с небольшим отличием! классно, не правда ли?
Думаю, стоит спросить у человека который этот код написал почему именно так. По идее он мог планировать унаследовать один от другого, а времени как всегда не хватило.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, nen777w, Вы писали:
N>>Я N>>Я N>>Я N>>Я... Я
IT>Это ты непроизвольно шифт задеваешь, когда 'я' набираешь или что-то религиозное?
Понимаешь, Д' Артаньян пишется с большой буквы, даже с двух больших букв.
Здравствуйте, nen777w, Вы писали:
N>решил что молча пока что перепишу. дальше если меня будут носом тыкать в этот проект буду бузить, и устраивать вздрючку.
Вот если ты так сделаешь, то тебя ВЗДРЮЧАТ. И правильно сделают.
И вообще... Тебе сколько лет? Яйца курицу не учат, знаешь ли
Здравствуйте, alpha21264, Вы писали:
A>И вообще... Тебе сколько лет? Яйца курицу не учат, знаешь ли
Фигасе, а ты тот самый какакодер? Скандалы, интриги, расследования?
Здравствуйте, nen777w, Вы писали:
N>Здравствуйте, HolyNick, Вы писали:
HN>>А чем не нравится enum ошибок? N>enum нравится. не нравится то что некоторые коды ошибок в этом enum объявленны для наверно... хз чего вообще. т.е. их реально не используют.
так на будущее наверное сделали. просто TODO или коммент забыли добавить?
я наоборот ненавижу — кто-нибудь что-то увидит, решит что это я от тупости написала, не спросит зачем я это сделала, и молча удалит. потом ругаешься с человеком и ролбэкаешь
N>Теперь вот понадобилось прикрутить кой чего в другой части к которой Я дела не имел, в том что понаписывали другие "орлы". N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Нужно ввести новую метрику, отношение количества межорловых передач кода к количеству переписываний.
Здравствуйте, denisko, Вы писали:
D>Здравствуйте, alpha21264, Вы писали:
A>>И вообще... Тебе сколько лет? Яйца курицу не учат, знаешь ли D>Фигасе, а ты тот самый какакодер? Скандалы, интриги, расследования?
Кино посмотри. "День радио".
"Ты че? половину бака слил?!!! Предупреждать надо!!! Я вторую половину слил..."
Здравствуйте, alpha21264, Вы писали:
A>Здравствуйте, denisko, Вы писали:
D>>Здравствуйте, alpha21264, Вы писали:
A>>>И вообще... Тебе сколько лет? Яйца курицу не учат, знаешь ли D>>Фигасе, а ты тот самый какакодер? Скандалы, интриги, расследования?
A>Кино посмотри. "День радио". A>"Ты че? половину бака слил?!!! Предупреждать надо!!! Я вторую половину слил..."
A>К стати, а тебе сколько лет?
Для атоса слишком много, а для графа де ла фер слишком мало. А ты с какой целью интересуешься?
Здравствуйте, denisko, Вы писали:
D>Здравствуйте, IT, Вы писали:
IT>>Здравствуйте, nen777w, Вы писали:
N>>>Я N>>>Я N>>>Я N>>>Я... Я
IT>>Это ты непроизвольно шифт задеваешь, когда 'я' набираешь или что-то религиозное? D>Понимаешь, Д' Артаньян пишется с большой буквы, даже с двух больших букв.
ха-ха-ха
На самом деле уже спрашивали, отвечаю ещё раз — мне так нравится. Вас это беспокоит, хотите об этом поговорить?
Здравствуйте, denisko, Вы писали:
D>Здравствуйте, alpha21264, Вы писали:
A>>Здравствуйте, denisko, Вы писали:
D>>>Здравствуйте, alpha21264, Вы писали:
A>>>>И вообще... Тебе сколько лет? Яйца курицу не учат, знаешь ли D>>>Фигасе, а ты тот самый какакодер? Скандалы, интриги, расследования?
A>>Кино посмотри. "День радио". A>>"Ты че? половину бака слил?!!! Предупреждать надо!!! Я вторую половину слил..."
A>>К стати, а тебе сколько лет? D>Для атоса слишком много, а для графа де ла фер слишком мало. А ты с какой целью интересуешься?
Ну... Хочу навык усовершенствовать... Есть такая наука — психолингвистика,
которая гласит, что по тому что человек говорит (пишет) про него много чего сказать можно.
По твоему сообщению выходит что тебе где-то 22-25 лет. Угадал?
N>>На самом деле уже спрашивали, отвечаю ещё раз — мне так нравится. Вас это беспокоит, хотите об этом поговорить? IT>Да.
Хорошо. Тогда на этом и закончим.
Здравствуйте, Kernan, Вы писали:
N>>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку? K>попробуй сперва узнать почему Орлы так написали? Бывает, что банально нет времени и приходится писать говнокод, а потом делать рефакторинг этого всегою
Если нынешний код и правда Г (а не заготовка для дальнейшего развития, которую наш герой понять ниасилил или промежуточный вариант рефакторинга старой талелки макарон), то "не было времени" — очень гнилая отмаза. Стопроцентный индикатор рук из жопы, когда даже при наличии времени код все равно получается с запахом.
Здравствуйте, alpha21264, Вы писали:
A>>>К стати, а тебе сколько лет? D>>Для атоса слишком много, а для графа де ла фер слишком мало. А ты с какой целью интересуешься?
A>Ну... Хочу навык усовершенствовать... Есть такая наука — психолингвистика, A>которая гласит, что по тому что человек говорит (пишет) про него много чего сказать можно. A>По твоему сообщению выходит что тебе где-то 22-25 лет. Угадал?
Здравствуйте, nen777w, Вы писали: N>Открываю код и вижу откровенную кашку-какашку, или другими словами говнокод... N>Мне к этой какашке надо прикрутить кой чего своего
инкапсуляция — одна из основ ООП. Меня, например, совершенно не волнуют внутренности кода который я собираюсь использовать. меня интересует только его интерфейс. я не сомневаюсь например что имплементация винапи это аццкое кумарное месиво гавна, но какая разница, если оно работает как задокументировано? зачем лезть и тратить свое время на бесполезную работу? вы думаете что можете сделать лучше? так и тот кто писал тот код, тоже наверняка считает, что он пишет лучше вас.
Здравствуйте, nen777w, Вы писали:
HN>>А чем не нравится enum ошибок? N>enum нравится. не нравится то что некоторые коды ошибок в этом enum объявленны для наверно... хз чего вообще. т.е. их реально не используют.
Скорее всего в процессе N-го переписывания, какие-то коды перестали использоваться, из енума забыли убрать или просто на всякий случай оставили, вдруг опять понадобятся.
Во проблему нашёл. Тебе несколько байт в исходниках жалко?
Здравствуйте, pvirk, Вы писали:
P>Здравствуйте, denisko, Вы писали:
A>>>По твоему сообщению выходит что тебе где-то 22-25 лет. Угадал? D>>Неа, лет на 5 промахнулся.
P>17-20?
12. Ну и каково быть поиметым школотой? (с) Картман.
N>На самом деле уже спрашивали, отвечаю ещё раз — мне так нравится. Вас это беспокоит, хотите об этом поговорить?
Нет, тысяча чертей! Но я смеюсь с каждой такой канальи.
Здравствуйте, nen777w, Вы писали:
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Чтобы такого не было, необходимо периодически проводить код-ревью.
Умалчивать не стоит. Во-первых, сам можешь чего-то недоглядеть.
Во-вторых, если не будет такого обмена опытом, то качество кода будет оставаться приблизительно на одном и том же уровне.
Главное не начинай так: "Я тут у тебя в коде порылся... Представляешь, тут столько г***?!".
Будь максимально дипломатичен.
Здравствуйте, nen777w, Вы писали:
N>не.. ну как вам это... класс частью открытых (самизнаетедлячего) частью закрытых членов, с какогота х-ра виртуальным деструктором (пустым), с одной единственной не виртуальной функцией, и конечно же!!! те мемберы котрые в классе инициализируются и используются в этой самой функции, потому как левая пятка писавшего это чудо диктует что локальные переменные нынче вышли из моды. + enum из кодов ошибок этой саммой функции часть которых объявленна просто для фонаря... или с хитрым замыслом оставить о себе память?
Постепенно приводить в нормальный вид. Зато это всё работает и неплохо оттетстировано. Если это не так — то тогда зачем этот код вообще нужен.
А причины, почему код такой, могли быть разные: когда писал опыта ещё не было, он может ещё студентом подрабатывал. А возможно надо было что-то быстро налабать. И кстати, не факт, что этот язык у него основной.
Здравствуйте, зиг, Вы писали:
зиг>Здравствуйте, alpha21264, Вы писали:
A>>>>К стати, а тебе сколько лет? D>>>Для атоса слишком много, а для графа де ла фер слишком мало. А ты с какой целью интересуешься?
A>>Ну... Хочу навык усовершенствовать... Есть такая наука — психолингвистика, A>>которая гласит, что по тому что человек говорит (пишет) про него много чего сказать можно. A>>По твоему сообщению выходит что тебе где-то 22-25 лет. Угадал?
зиг>а мне сколько???
Здравствуйте, зиг, Вы писали:
зиг>я наоборот ненавижу — кто-нибудь что-то увидит, решит что это я от тупости написала, не спросит зачем я это сделала, и молча удалит. потом ругаешься с человеком и ролбэкаешь
а всего-то надо внедрить в процесс код ревью и никаких истерек не будет.
12.05.2011 19:26, nen777w пишет:
> > решил что молча пока что перепишу. дальше если меня будут носом тыкать в > этот проект буду бузить, и устраивать вздрючку.
Ну и дурак будешь. Таким образом, ты просто будешь один за всех все
писать, а зарплаты повышать будут остальным.
А бузить начнешь, еще и косится на тебя будут.
Если на вашей конторе начальство набрало столько безграмотных, то они
этому начальству зачем-то нужны.
Так что, лучшее для тебя, это сделать только то, что просят, а если
вклиниться в тот код не получается, лучше так и скажи начальству, что
там код очень сложный, у меня не получается, пусть лучше тот, кто писал,
то и добавляет функциональность.
Соответственно начальство тебе даст задачу другую, которую ты в срок
сделаешь и вытрясешь себе повышение.
V>Так что, лучшее для тебя, это сделать только то, что просят, а если V>вклиниться в тот код не получается, лучше так и скажи начальству, что V>там код очень сложный, у меня не получается, пусть лучше тот, кто писал, V>то и добавляет функциональность. V>Соответственно начальство тебе даст задачу другую, которую ты в срок V>сделаешь и вытрясешь себе повышение.
Интересно, а хоть кто-то конгда-то реально говорил такое? Мол, код слишком сложный, я не разбираюсь.
Я имею в виду разработчиков выше junior уровня.
Или у вас везде идеальный код и никаких костылей нет?
Может кто-то из менеджеров такое слышал от, например, senior developer?
Здравствуйте, nen777w, Вы писали:
N>Теперь вот понадобилось прикрутить кой чего в другой части к которой Я дела не имел, в том что понаписывали другие "орлы". N>Открываю код и вижу откровенную кашку-какашку, или другими словами говнокод... N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Вздрючить, однозначно!
Прямо так и спроси у орлов: "Орлы мои, сколько я буду за вами подтирать? Нафига такой говнокод плодить?"
13.05.2011 14:53, blackhearted пишет:
> > Интересно, а хоть кто-то конгда-то реально говорил такое? Мол, код > слишком сложный, я не разбираюсь.
Я говорил и не раз. Особенно, когда чей-то говнокод подсовывали.
> > Как реагировали?
Расстраивались. Облом-с выходил. Потом успокаивались. Кушать-то манагеры
тоже хотят.
Здравствуйте, blackhearted, Вы писали:
B>Интересно, а хоть кто-то конгда-то реально говорил такое? Мол, код слишком сложный, я не разбираюсь. B>Я имею в виду разработчиков выше junior уровня. B>Или у вас везде идеальный код и никаких костылей нет? B>Может кто-то из менеджеров такое слышал от, например, senior developer? B>Как реагировали?
Ну я регулярно говорю что-то в духе "вот этот модуль писал тот-то, я тут ни в зуб ногой, прийдется потратить столько-то на въезжание; рекомендую таск передать тому-то" или "я с этим никогда не работал в отличии от того-то, лучше спросить его-то" сказать не стесняюсь. Вообще говоря, самый страшный грех разработчика — вводить менеджера в заблуждение. Конечно, есть юниор-менеджеры и г**рулевые, которые могут воспринять подобное как проявление лени или недостаток квалификации. Ну дык, чай мы не крепостные.
Здравствуйте, nen777w, Вы писали:
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
короче так как вы крутая контора, сто пудов у вас весь код лежит в версионном хранилище.
далее, ищете того "орла" который закинул эту какашку. Затем получаете ВСЕ коды этого "орла" и
анализируете их. Далее станет понятно стоит вздрючить или нет.
Может правда, человек делал впопыхах временный костыль. А может перманентно так пишет код.
Я так кстати в своё время обнаружил кто отпустил в мою сторону в виде комментария ничем не обоснованный матерный
пасквиль...гы гы, оказался мой тим лид — гнилушка. Привычка у него такая была, увидит код с которым не согласен — сразу писать с матерными словечками.
Надо было в морду дать, я решил что слишком много чести и увольнулся.
Я знаю, как управлять Вселенной. И скажите, зачем же мне бежать за миллионом?!(c)
S>Я так кстати в своё время обнаружил кто отпустил в мою сторону в виде комментария ничем не обоснованный матерный S>пасквиль...гы гы, оказался мой тим лид — гнилушка. Привычка у него такая была, увидит код с которым не согласен — сразу писать с матерными словечками. S>Надо было в морду дать, я решил что слишком много чести и увольнулся.
вообще тут аккуратнее надо быть blame команда показывает последнего менявшего данную строку, но это изменение могло быть, скажем, перемещением кода в другое место или чем-то таким же безобидным.
А ты сразу по морде и увольняться..
Здравствуйте, nen777w, Вы писали:
N>>>с какогота х-ра виртуальным деструктором (пустым) cli>>Класс не наследуется? N>удивительно да?
вы всё ещё на 4004 работаете? знаете, недавно уже 8-разрядные процессоры появились...
виртуальный деструктор — это правило хорошего тона. как раз на тот случай, если класс будет наследоваться. считать это хорошим тоном или нет — ваше дело, а вот обижаться на человека что он следует другим стандартам кодирования — это признак отсутствия опыта командной работы
Здравствуйте, __kot2, Вы писали:
__>Здравствуйте, nen777w, Вы писали: N>>Открываю код и вижу откровенную кашку-какашку, или другими словами говнокод... N>>Мне к этой какашке надо прикрутить кой чего своего __>Меня, например, совершенно не волнуют внутренности кода который я собираюсь использовать.зачем лезть и тратить свое время на бесполезную работу?
[qute]
Модульность это хорошо, и меня совершенно не волнует то, как работает модуль, если он работает. Функции это хорошо, и меня совершенно не волнует то, как работает функция, если она работает так как описано в документации. Меня совершенно не волнуют внутренности кода который я собираюсь использовать.
[/qute]
В каком месте сдесь ООП?
Всё сказанное выше — личное мнение, если не указано обратное.
Для этого нужно изменить код контрола, в частности, добавитьнужный функционал.
Изменить код модели, в частности, добавить нужный функционал.
[добавить] — это именно то, о чем писал ТС.
Однако, добавить нужный функционал частенько не получается: структура кода не позволят, нужно немного изменить логику работы кода (пока не меняя функционал), нужно изменить структуру кода.
(То, что стоит после нужно лежит в области определения слова Рефакторинг.)
И только потом писать нужную фичу.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Философ, Вы писали: Ф>Здравствуйте, __kot2, Вы писали: Ф>Бывает, что на контрол нужно добавить виджет.
свят-свят (перекрещиваюсь), открестился я уже от всякой гуйни, ни дай бог опять к ней вернуться (три раза сплевываю через плечо).
Здравствуйте, __kot2, Вы писали:
__>Здравствуйте, Философ, Вы писали: Ф>>Здравствуйте, __kot2, Вы писали: Ф>>Бывает, что на контрол нужно добавить виджет. __>свят-свят (перекрещиваюсь), открестился я уже от всякой гуйни, ни дай бог опять к ней вернуться (три раза сплевываю через плечо).
Что, слишком сложно?
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, nen777w, Вы писали:
N>Во общем есть у нас проект, внутренний для заказчика. Пишем уже версию 3. N>Я пока с начала проекта делал адаптацию к 2008-й студии, потом занимался написанием всякого разного рода вспомогательных библиотек. N>Теперь вот понадобилось прикрутить кой чего в другой части к которой Я дела не имел, в том что понаписывали другие "орлы". N>Открываю код и вижу откровенную кашку-какашку, или другими словами говнокод... N>В некоторых местах реально хуже того что Я встречал у индусов, (они у нас тоже ошиваются). N>Мне к этой какашке надо прикрутить кой чего своего, и теперь дилема, переписывать за ними всёравно нужно будет, код который уже есть как Я уже сказал какашка, реально зло берёт когда видишь это, отношения c коллегами тоже портить не хочется. N>Даже если сказать что это г.. нужно переписать переписывать это буду Я (специфика проекта такая). По натуре вроде чел Я не конфликтный, как мне кажется, если это конечно лично меня и моих интересов не касается.
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Зачем сразу дрючить? Поговори. Если по нормальному всё будет. То уладите. Нет покажи начальнику и спроси с какой стороны к этой кучке гавна привентить свои фекалии чтобы видел масштаб бедствия.
Здравствуйте, alpha21264, Вы писали:
A>Здравствуйте, nen777w, Вы писали:
N>>решил что молча пока что перепишу. дальше если меня будут носом тыкать в этот проект буду бузить, и устраивать вздрючку.
A>Вот если ты так сделаешь, то тебя ВЗДРЮЧАТ. И правильно сделают. A>И вообще... Тебе сколько лет? Яйца курицу не учат, знаешь ли
У нас такое в порядке вещей. Нанимают вчерашнего студента. ПШП ваятеля. который узнаёт что такое ява. И с криками ФСЁ ГАВНО. Начинает переписывать,проект. Под дружные сюсюканья начальников.
Здравствуйте, Философ, Вы писали:
Ф>Здравствуйте, __kot2, Вы писали:
__>>Здравствуйте, Философ, Вы писали: Ф>>>Здравствуйте, __kot2, Вы писали: Ф>>>Бывает, что на контрол нужно добавить виджет. __>>свят-свят (перекрещиваюсь), открестился я уже от всякой гуйни, ни дай бог опять к ней вернуться (три раза сплевываю через плечо).
Ф>Что, слишком сложно?
не сложнее чем туалеты чистить. никто этим заниматься не хочет. на буй обычно студентов посылают для зарабатывания экспириенс пойнтов.
Здравствуйте, __kot2, Вы писали:
__>Здравствуйте, Философ, Вы писали:
Ф>>Что, слишком сложно? __>не сложнее чем туалеты чистить. никто этим заниматься не хочет. на буй обычно студентов посылают для зарабатывания экспириенс пойнтов.
Да, это интересно! Как-то раньше даже не подозревал, что крутые перцы считают ниже своего достоинства занятие гуем. И да, это пожалуй критерий — таким нехитрым способом можно вычислить крутого перца.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Философ, Вы писали: Ф>Да, это интересно! Как-то раньше даже не подозревал, что крутые перцы считают ниже своего достоинства занятие гуем. И да, это пожалуй критерий — таким нехитрым способом можно вычислить крутого перца.
это интересно было лет 30 назад, дедуля. сейчас уже все написано. будущее за GPGPU. нечего время свое тратить на всякую шнягу.
BZ>вы всё ещё на 4004 работаете? знаете, недавно уже 8-разрядные процессоры появились...
BZ>виртуальный деструктор — это правило хорошего тона. как раз на тот случай, если класс будет наследоваться. считать это хорошим тоном или нет — ваше дело, а вот обижаться на человека что он следует другим стандартам кодирования — это признак отсутствия опыта командной работы
Там если вы читали не только с виртуальными деструкторами проблема. Там вообще проблема, одна сплошная. Ладно хрен с ними.
Ф>>Что, слишком сложно? __>не сложнее чем туалеты чистить. никто этим заниматься не хочет. на буй обычно студентов посылают для зарабатывания экспириенс пойнтов.
Вот вот... мне вот пришлось, как раз за студентами прибирать.
Но Я поступил по другому.
Первые две простыни Я вычистил и переписал, а глядя на 3-ю просто забил, реально нервы портить нафик надо, дописал туда что мне надо и так и оставил вонять.
Потому как если это никому нафиг не нужно то с чего бы это стало нужно мне. Афтар в зоне досягаемости, так что это его проблемы.
N>>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку? S>короче так как вы крутая контора
С каких это пор Luxoft крутая контора?
S>, сто пудов у вас весь код лежит в версионном хранилище. S>далее, ищете того "орла" который закинул эту какашку. Затем получаете ВСЕ коды этого "орла" и S>анализируете их.
Вот реально заняться больше нечем. Посмотреть можно разве что только что бы в КУ набросать.
S>Далее станет понятно стоит вздрючить или нет. S>Может правда, человек делал впопыхах временный костыль. А может перманентно так пишет код.
У меня нервы вчера сдали. Потом когда вышел продышаться решил что если это нафиг до этого никому не нужно было, то нафига это мне.
У меня есть свои собственные проекты. Там Я пишу код как нужно. А работа это работа.
Здравствуйте, nen777w, Вы писали:
N>С каких это пор Luxoft крутая контора?
так люксофт вроде всегда гордился тем что у них процесс выстроен по самому высокому уровню, нет?
и если да, то как могла такая кака попасть в головную ветку?
N>У меня нервы вчера сдали.
я на текущем месте со столькими тоннами говнокода встретился что если бы принимал близко к сердцу то уже бы давно в ящик сыграл от разрыва мозжечка.
думаю это усё не стоит наших нервов
Я знаю, как управлять Вселенной. И скажите, зачем же мне бежать за миллионом?!(c)
Здравствуйте, sumson, Вы писали:
S>Здравствуйте, nen777w, Вы писали:
N>>С каких это пор Luxoft крутая контора?
S>так люксофт вроде всегда гордился тем что у них процесс выстроен по самому высокому уровню, нет? S>и если да, то как могла такая кака попасть в головную ветку?
У люксофта это идивидуально от проекта к проекте, у Одесского люксофта это очень идивидуально. Долго рассказывать почему, так сложилось со временем.
N>>У меня нервы вчера сдали. S>я на текущем месте со столькими тоннами говнокода встретился что если бы принимал близко к сердцу то уже бы давно в ящик сыграл от разрыва мозжечка. S>думаю это усё не стоит наших нервов
Здравствуйте, nen777w, Вы писали:
N>Во общем есть у нас проект, внутренний для заказчика. Пишем уже версию 3. N>Я пока с начала проекта делал адаптацию к 2008-й студии, потом занимался написанием всякого разного рода вспомогательных библиотек. N>Теперь вот понадобилось прикрутить кой чего в другой части к которой Я дела не имел, в том что понаписывали другие "орлы". N>Открываю код и вижу откровенную кашку-какашку, или другими словами говнокод... N>В некоторых местах реально хуже того что Я встречал у индусов, (они у нас тоже ошиваются). N>Мне к этой какашке надо прикрутить кой чего своего, и теперь дилема, переписывать за ними всёравно нужно будет, код который уже есть как Я уже сказал какашка, реально зло берёт когда видишь это, отношения c коллегами тоже портить не хочется. N>Даже если сказать что это г.. нужно переписать переписывать это буду Я (специфика проекта такая). По натуре вроде чел Я не конфликтный, как мне кажется, если это конечно лично меня и моих интересов не касается.
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Дали мне код одного китайца, постоянно исключения вылетали, и получалось я виноват, типа GUI не пашет. Взял поставил вес код китайца в try/catch и как тока ошибка — сообщение типа невронная сеть китайца не пашет. И все, китаец пусть исправляет свой код.
А вообще чужие какашки чистить хуже нет, лучше не трогать.
М>Он, при помощи М>дебагера, отследит место, где статическая переменная приняла значение -1 М>вместо правильного 0, и решительным движением заведет рядом вторую М>переменную с правильным значением.
И для доступа к ним будет написан метод, который начнёт работать с двумя переменными вместо одной.
Потому и говорят, что ООП — нагромождение костылей. И что число взаимосвязей в такой программе растёт по гиперболической кривой, плавно переходящей в экспоненту.
Так сокрытие данных же?
Или вы так давно пишете на ФЯ, без указателей и переменных общего пользования, что даже не помните, откуда берётся говнокод?
Он происходит от данных. Отлитых в гранит и незыблемо покоящихся на месте.
А современное программирование — напоминает диснеевский мультик "Белоснежка и семь Гномов", где главная героиня изображает из себя Примадонну и ни хрена же не делает, а семеро козлов вокруг неё прыгают и бегают (даже без выходных).
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Сейчас дрючить уже поздно и продуктивно. Лучше разобраться как такой код попал в проект. Кто делал code review, кто писал тесты, и т.д. Сделайте так, чтобы в будущем эта ситуация не повторялась и заработаете себе гораздо больше бонусов к карьере, чем если будете брюзжать и тащить все на себе.
Здравствуйте, nen777w, Вы писали:
N>с какогота х-ра виртуальным деструктором (пустым), с одной единственной не виртуальной функцией, и конечно же!!!
Так виртуальный деструктор это нормально. Вот если бы не было других виртуальных функций, то можно было бы и поэкономить на спичках. А так какая разница.
Если человек пишет плохой код, то пусть он лучше ВСЕГДА использует виртуальные деструкторы. Никаких исключений.
Здравствуйте, nen777w, Вы писали:
N>Чо делать? Пойти спустить пар и молча переписать или устроить вздрючку?
Вздрючка — всегда плохо. Переписывание — почти всегда плохо. Переписывать надо тогда, когда есть объективная причина для этого (тормозит, нельзя добавить нужный функционал, падает, зависает и т.п.) Эстетические критерии идут лесом, особенно если продукт активно кем-то используется.
У меня иногда возникает желание сесть и переписать EMF & GMF но здравый смысл берет верх
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, nen777w, Вы писали:
N>>>>с какогота х-ра виртуальным деструктором (пустым) cli>>>Класс не наследуется? N>>удивительно да?
BZ>вы всё ещё на 4004 работаете? знаете, недавно уже 8-разрядные процессоры появились...
BZ>виртуальный деструктор — это правило хорошего тона. как раз на тот случай, если класс будет наследоваться. считать это хорошим тоном или нет — ваше дело, а вот обижаться на человека что он следует другим стандартам кодирования — это признак отсутствия опыта командной работы
а знаете, на i586+ отлично работает джава и сишарп
// sarcasm mode off
есть правило — "не писать лишнего".
"virtual" это не просто слово которое можно приписать к любой функции. оно имеет вполне конкретные причины для использования —
1. возможность полиморфного вызова
2. возможность использования dynamic_cast
3. форсированное инстанцирование шаблонов
4. ???
профессионалы это знают, и когда они видят слово "virtual", они ожидают что оно было применено вследствие одной из причин из списка выше
class Foo { public: virtual ~Foo() {} };
означает то что Foo не final и что где-то будет "delete foo;" (в т.ч. внутри "smart_ptr<Foo>")
если это не так, то это вызывает недоверие к коду, создается впечатление, что тот кто писал код не знает что он пишет, возможно далее в коде будут другие странные места.
если стандарт кодирования говорит, что надо писать код, который вызывает удивление у людей читающих код, то это плохой стандарт кодирования
Здравствуйте, IT, Вы писали:
IT>Это ты непроизвольно шифт задеваешь, когда 'я' набираешь или что-то религиозное?
На самом деле, безотносительно Фримена, это — безотказный и очень простой старый-добрый способ протроллить практически любой социум. Эльфинг, кстати, тоже возможен. Достаточно каждое сообщение к Тебе адресовывать именно так