Вход на сайт
Давайте попинаем...
NEW 01.02.07 14:13
Думал - дотерплю до Пятницы, но... блин... силов моих больше нет...
Сегодня босс высказался - "У меня больше нет возможности делать вещи правильно!"...
Относилось это к коду, точнее - к двум, относительно небольшим (2К и 6К в 5.5М), кускамм кода, изначально написанным "грязно", в порыве вдохновения, без всякой документации и который я уже около года требовал переделать... Код пережил три поколения системы, суммарное время на правку и "привязку" правленного кода к системе уже превысило пару рабочих месяцев и проблем с этим кодом меньше не становится...
Первым аргументом босса было - "этот код работает и делает именно то, что необходимо", теперь появился второй...
Сижу и думаю - толи продолжать бороться - пока не появится третий, хорошо знакомый, аргумент, толи начать серьзно искать новую работу...
P.S. Рабочего настроения уже не осталось...
Сегодня босс высказался - "У меня больше нет возможности делать вещи правильно!"...
Относилось это к коду, точнее - к двум, относительно небольшим (2К и 6К в 5.5М), кускамм кода, изначально написанным "грязно", в порыве вдохновения, без всякой документации и который я уже около года требовал переделать... Код пережил три поколения системы, суммарное время на правку и "привязку" правленного кода к системе уже превысило пару рабочих месяцев и проблем с этим кодом меньше не становится...
Первым аргументом босса было - "этот код работает и делает именно то, что необходимо", теперь появился второй...
Сижу и думаю - толи продолжать бороться - пока не появится третий, хорошо знакомый, аргумент, толи начать серьзно искать новую работу...

P.S. Рабочего настроения уже не осталось...
01.02.07 14:38
в ответ Rius 01.02.07 14:23
Кусков "грязного" кода и на другой работе будет до фига.
------
Не у меня. Там, где требуют "грязный" код, Я стараюсь не работать.
В чем проблема-то?
... значит все в порядке.
------
В третьем аргументе - успешность проявляется в том числе и в том, чтобы свалить до его появления и начала беспорядка...
------
Не у меня. Там, где требуют "грязный" код, Я стараюсь не работать.

В чем проблема-то?
... значит все в порядке.
------
В третьем аргументе - успешность проявляется в том числе и в том, чтобы свалить до его появления и начала беспорядка...

NEW 01.02.07 14:47
в ответ Murr 01.02.07 14:38
Тогда ищите работу, где все надо писать с нуля и самому. И где никогда не придется чужой код пфлеген. Да и зарекатся, что у вас не будет "грязного" кода, по-моему тоже не стоит.
Всего знать и все заранее учесть невозможно. То что вам сейчас кажется "чистым", по прошествии времени вполне может оказаться "грязным".
Всего знать и все заранее учесть невозможно. То что вам сейчас кажется "чистым", по прошествии времени вполне может оказаться "грязным".
NEW 01.02.07 15:10
Рискну предположить, что это собственная фирма, где сам себе виноват.
Тогда и начнется: мне хотелось бы всего - почти бесплатно и вчера. А мы начнем для бухгалтерского калкулятора решение диффуров разрабатывать.
То мурр
Я себе просто попутно записываю, где какие дырки есть. Вот сегодня например, одну заделывал: три года назад функционал сделали - сегодня вылезла. Так что не мучь шефа и не трогай то, что работает.
в ответ Rius 01.02.07 14:47
В ответ на:
Тогда ищите работу, где все надо писать с нуля и самому.
Тогда ищите работу, где все надо писать с нуля и самому.
Рискну предположить, что это собственная фирма, где сам себе виноват.

То мурр
Я себе просто попутно записываю, где какие дырки есть. Вот сегодня например, одну заделывал: три года назад функционал сделали - сегодня вылезла. Так что не мучь шефа и не трогай то, что работает.
NEW 01.02.07 15:19
в ответ Rius 01.02.07 14:47
где все надо писать с нуля и самому.
------
У меня обычно так и есть...
Всего знать и все заранее учесть невозможно.
------
Для этого есть спецификация и процесс внесения изменений.
Да и зарекатся, что у вас не будет "грязного" кода, по-моему тоже не стоит.
То что вам сейчас кажется "чистым", по прошествии времени вполне может оказаться "грязным".
------
Казаться - может. Но вот элементарно соответствовать принятому (пусть внутрифирменному, но записанному) стандарту - будет. Просто потому, что следовать стандарту проще, чем изобретать "полезности" на каждом шагу...
------
У меня обычно так и есть...

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

NEW 01.02.07 16:11
в ответ toptop 01.02.07 15:10
Я себе просто попутно записываю, где какие дырки есть.
------
Месяцев семь назад, перед начало перехода/разработки на третью версию, принудил босса написать в комментариях к коду, что он осознает, что код "грязный" и обязуется его переделать... как только появится возможность... В базе сопровождения проекта - тоже есть записи об проблемах с этими частями...
Так что не мучь шефа и не трогай то, что работает.
------
Было три поколения системы. При каждой новой версии Я аккуратненько подтягиваю код, практически все 5 мег, к требованиям новой версии, не забывая оставлять в рабочем состоянии функционал предыдущей версии - шаблоны для генерации - внешние, должны быть совместимы вверх. Код шефа - не трогаю... но когда выясняеется, что он не работает, а работать нормально он не может потому что он не вписывался даже в первую версию системы - появляются проблемы... Причем 80% процентов проблем можно было бы избежать просто написав врапер под соответствующую редакцию... но это - можно было бы - делается именно правка кода, специфически под версию и она не будет работать в следующей версии... Если бы не это - я бы и не знал, что там есть "грязный" код...
Под "работать нормально он не может" понимается примерно следующее.
Пусть есть нечто, представляющее собой определение поля в базе. Интерес представляет одна его часть - имя поля. На базе имени поля выполняется анализ, и, к примеру, замена этого поля, набором из полей и связей новых полей с другими таблицами.
При смене версии имя поля должно получаться не из определения поля, а из специального конфигурационного файла, переопределяющего имя и часть свойств поля.
Код и переписывается чтобы это разрулить...
Следующая смена - к конфигурационной информации добавляется контекстная. Теперь этот код переделывается, чтобы работать еще и с контекстной...
Код и переписывается чтобы это разрулить...
И все это вместо того, чтобы потратить недельку на анализ, написать спецификацию и перекодировать...
------
Месяцев семь назад, перед начало перехода/разработки на третью версию, принудил босса написать в комментариях к коду, что он осознает, что код "грязный" и обязуется его переделать... как только появится возможность... В базе сопровождения проекта - тоже есть записи об проблемах с этими частями...
Так что не мучь шефа и не трогай то, что работает.
------
Было три поколения системы. При каждой новой версии Я аккуратненько подтягиваю код, практически все 5 мег, к требованиям новой версии, не забывая оставлять в рабочем состоянии функционал предыдущей версии - шаблоны для генерации - внешние, должны быть совместимы вверх. Код шефа - не трогаю... но когда выясняеется, что он не работает, а работать нормально он не может потому что он не вписывался даже в первую версию системы - появляются проблемы... Причем 80% процентов проблем можно было бы избежать просто написав врапер под соответствующую редакцию... но это - можно было бы - делается именно правка кода, специфически под версию и она не будет работать в следующей версии... Если бы не это - я бы и не знал, что там есть "грязный" код...
Под "работать нормально он не может" понимается примерно следующее.
Пусть есть нечто, представляющее собой определение поля в базе. Интерес представляет одна его часть - имя поля. На базе имени поля выполняется анализ, и, к примеру, замена этого поля, набором из полей и связей новых полей с другими таблицами.
При смене версии имя поля должно получаться не из определения поля, а из специального конфигурационного файла, переопределяющего имя и часть свойств поля.
Код и переписывается чтобы это разрулить...
Следующая смена - к конфигурационной информации добавляется контекстная. Теперь этот код переделывается, чтобы работать еще и с контекстной...
Код и переписывается чтобы это разрулить...
И все это вместо того, чтобы потратить недельку на анализ, написать спецификацию и перекодировать...
NEW 01.02.07 16:24
в ответ Murr 01.02.07 16:11
Да это извечный конфликт: время - деньги - функтионал. Ты как нормальный программер пытаешься создать полноценный функционал, но выходишь за пределы времени или денег. А шеф - тоже нормальный - он тебе не дает вылазить - жертвуя функционалом. Надеюсь он понимает, чем рискует. Вот если бы у него было вчера 5 рублей... Так что кушайте маленькие и по 3. 

NEW 01.02.07 16:34
в ответ Rius 01.02.07 15:36
"следовать стандарту проще, чем изобретать "полезности" на каждом шагу"
Для нового кода - да. Но для старого и работающего, я на стороне шефа. Если работает, то не надо трогать.
------
Весь проект пишется "с нуля". Просто именно эти куски не были проработаны и были безобразно накожены...
Суть в том, что вместо недели на специфицирование и переработку уже потрачена пара человеко-месяцев на правку... и время - начинает поджимать...
Для нового кода - да. Но для старого и работающего, я на стороне шефа. Если работает, то не надо трогать.
------
Весь проект пишется "с нуля". Просто именно эти куски не были проработаны и были безобразно накожены...
Суть в том, что вместо недели на специфицирование и переработку уже потрачена пара человеко-месяцев на правку... и время - начинает поджимать...
NEW 01.02.07 16:45
в ответ toptop 01.02.07 16:24
Надеюсь он понимает, чем рискует.
-----
Вполне - он несколько лет в Штатах дрючил разработчиков, чтобы те делали все "как правильно". И он вполне признает, что именно на этом коде он нарушал и нарушает _всё_, что он требовал от других... И, вообщем-то, он прямо говорит, что часть моих обязанностей - не дать ему нарушать слишком много...
Пока я дрючу других - получается... но подвинуть босса - проблемно - он занимается еще кучей вопросов, помимо внесения "грязи" в проект...
Так что кушайте маленькие и по 3.
-----
Вот я и думаю - не пора ли искать "большие и по пять", но в другом месте...
-----
Вполне - он несколько лет в Штатах дрючил разработчиков, чтобы те делали все "как правильно". И он вполне признает, что именно на этом коде он нарушал и нарушает _всё_, что он требовал от других... И, вообщем-то, он прямо говорит, что часть моих обязанностей - не дать ему нарушать слишком много...


Так что кушайте маленькие и по 3.
-----
Вот я и думаю - не пора ли искать "большие и по пять", но в другом месте...

NEW 02.02.07 21:42
в ответ Murr 01.02.07 16:45
Это очень хорошо, когда программист сам возвращается к прежнему коду и смотрит его на "необходимость переделать". И совсем не обязательно это "грязные коды", чем больше работаешь над проектом, тем больше понимаешь. Но начальство тоже понять можно. Для него это лишние затраты. А вот искать тут же новую работу не советовала бы. Такие проблемы абсолютно везде. И даже в собственной фирме. Только там не кто-то со стороны подгоняет, а сам считаешь затраты времени. Может быть попробовать найти компромиссный вариант частичного изменения?
NEW 08.02.07 16:32
в ответ Murr 01.02.07 14:13
Ну что же - на этот грязный код снова убито порядка 4-х часов...
А ситуация - проста как... две копейки...
Усложнился один из объектов и поменялись правила сравнения этих объектов... Понятное дело, что надо быстренько подправить соответствующие классы - имплементацию объекта, итераторы для коллекций, сомпараторы для сортированных списков... & etc... На полчаса работы... А потом три часа поиска в каком из циклов этого грязного кода выполняется толи сравнение ссылок на объекты, толи дублируется старая методика сравнения... почти четыре часа...
Не, блин, надо другую работу искать...
А ситуация - проста как... две копейки...
Усложнился один из объектов и поменялись правила сравнения этих объектов... Понятное дело, что надо быстренько подправить соответствующие классы - имплементацию объекта, итераторы для коллекций, сомпараторы для сортированных списков... & etc... На полчаса работы... А потом три часа поиска в каком из циклов этого грязного кода выполняется толи сравнение ссылок на объекты, толи дублируется старая методика сравнения... почти четыре часа...
Не, блин, надо другую работу искать...

NEW 10.02.07 06:08
в ответ Murr 09.02.07 14:33
это тебе решать.
а вообще дядьку можно понять. может это звучит нереально, но он хочет иметь хоть какой-то контроль. прикинь, если бы он зависел только от того, что сделаешь только ты и никто другой. а так тебе приходится под него подстраиваться, а он при этом не теряет квалифицированую рабочую силу. у каждого должен быть свой интерфейс. иначе это выйдеет мишмаш. да и к тому же тебе работы больше. а значит и денег. настроение конечно пропадает, но если хочешь сам решать что и как должно быть то создай свою фирму и делай так.
а вообще дядьку можно понять. может это звучит нереально, но он хочет иметь хоть какой-то контроль. прикинь, если бы он зависел только от того, что сделаешь только ты и никто другой. а так тебе приходится под него подстраиваться, а он при этом не теряет квалифицированую рабочую силу. у каждого должен быть свой интерфейс. иначе это выйдеет мишмаш. да и к тому же тебе работы больше. а значит и денег. настроение конечно пропадает, но если хочешь сам решать что и как должно быть то создай свою фирму и делай так.