Re[3]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 25.02.16 04:16
Оценка:
Здравствуйте, sharpcoder, Вы писали:

S>Наняли команду толковых c# кодеров, написали ТЗ. И вот задача была переписать продукт. dotNet'чики радостно заявили что за 6 месяцев все перепишут, и еще за 6 — все отладят, сделают необходимые вспомогательные модули и продукт можно будет продавать.


....

S>В 2006 они сделали первый работающий прототип. (3 года прошло)

S>В 2008 прототип так и не начал стабильно работать (всего 5 лет прошло), и проект закрыли!

Толковых? Ты точно ничего не перепутал?
Re[2]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 25.02.16 04:18
Оценка:
Здравствуйте, 0BD11A0D, Вы писали:

BDA>Если выделенное болдом верно


Наконец то появился один человек, который прочитал исходное сообщение полностью

BDA>Можно написать эту функцию(ции) сбоку и передавать управление ей, а вызовы имеющегося кода закомментировать.


Нет смысла, поскольку почти весь код — это разбор и конверсия конфигов.
Отредактировано 25.02.2016 5:10 consign . Предыдущая версия .
Re[4]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 25.02.16 04:21
Оценка: +2
Здравствуйте, koandrew, Вы писали:

K>Ты ничего не знаешь об МС.


На редкость аргументированное заявление.
Re[3]: как доходчиво объяснить менеджеру?
От: Transformerrr  
Дата: 25.02.16 07:46
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, Andrew.W Worobow, Вы писали:


AWW>>#define _15_ 15

·>Ой, да ладно... ещё терпимо. Я видал такое:
·>
·>public class Constants
·>{
·>  public static final int ONE = 1;
·>  public static final int TWO = 2;
·>  public static final int THREE = 3;
·>...
·>  public static final int FIFTEEN = 15;
·>...
·>}
·>

·>И всё потому, что правильно поставленный процесс разработки — запускается checkstyle и ругается на magic constant.

Наверное В правильном процессе не нашлось места для код ревью
Re: как доходчиво объяснить менеджеру?
От: Molchalnik  
Дата: 25.02.16 07:55
Оценка:
Здравствуйте, consign, Вы писали:

C>Код в лучших традициях подхода "меня укусил Гамма" — куча классов с одним методом, каждый вызывается строго через интерфейс и создается через абстрактную фабрику (при том, что у всех интерфейсов ровно по одному наследнику)


Про код "навырост" — когда-то тоже писал код навырост, но потом даже до моей дурной башки стало доходить, что навырост конечно надо писать, но не так. Не усложнять структуру, а оставлять крепления для "выроста" этой структуры. Например, в данном случае, вместо интерфейса может быть
typedef MyClass MyClassInterface;

читабельность усложняет незначительно, а "навырост" в полном масштабе.

Автор же, подозреваю, либо кайфует от применения правильных подходов, либо тренируется, учась на простом проекте сложным вещам.


И, кстати, я разбирался в таком проетке "навырост", удовольствия не получил. 5 уровней абстракции, за которыми конкретно выполняющий уровень код. С простой программой можно месяц возиться. Имхо, если такое "навырост" есть, то должно быть превосходно документировано, а желательно оставить один уровень абстракции, но так, чтобы при необходимости достраивались другие 4.
Re[3]: как доходчиво объяснить менеджеру?
От: lgb Канада  
Дата: 25.02.16 07:56
Оценка: +1
Здравствуйте, consign, Вы писали:

BDA>>Если выделенное болдом верно

C>Наконец то появился один человек, который прочитал исходное сообщение полностью

BDA>>Можно написать эту функцию(ции) сбоку и передавать управление ей, а вызовы имеющегося кода закомментировать.

C>Нет смысла, поскольку почти весь код — это разбор и конверсия конфигов.

Ну, ты же сказал, что можешь переписать все за один день. Почему бы тогда не сделать это дома, пусть даже за несколько вечеров и облегчить тем самым жизнь себе и другим?
Потом скажешь руководству, что вот вам новый компактный код, он полностью покрыт тестами (у тебя же есть все спецификации?), скорость увеличилась примерно на 146%, поддержка упростилась и все такое. И пусть решают, внедрять твое или оставить старое.

Мне сейчас достался проект, где тоже куда ни плюнь — фабрика на фабрике, декораторы интерфейсами погоняют, комментарии отсутствуют и т.д. Нужно добавить новую фичу — сижу, трассирую код, чтобы понять, что откуда берется. Почти разобрался. Переписать все заново? Проект огромный, живет уже несколько лет. И, что самое характерное, приносит компании доход. Каковая компания из этого дохода платит мне зарплату. За которую я и занимаюсь этим проектом.
Re[3]: как доходчиво объяснить менеджеру?
От: 0BD11A0D  
Дата: 25.02.16 08:03
Оценка:
Здравствуйте, consign, Вы писали:

BDA>>Можно написать эту функцию(ции) сбоку и передавать управление ей, а вызовы имеющегося кода закомментировать.

C>Нет смысла, поскольку почти весь код — это разбор и конверсия конфигов.

Значит, не «изрядная», а «львиная». Код у вас, конечно, на C++ (иначе, откуда бы все эти проблемы). Черт его знает, без примеров дальше малоконструктивно обсуждать. Я верю, что вам достался over-engineering, но разбор JSON'а на C++ простым и не будет. Насколько его можно упростить, переписав, по сравнению с имеющейся астронавтикой — хз.

UPDATE

Судя по NEST, это C#. Ну, опять же, надо бы сначала взглянуть на код, хотя шансов сильно его сократить больше. Стратегия, возможно, подойдет та же самая.
Отредактировано 25.02.2016 8:10 0BD11A0D . Предыдущая версия .
Re[4]: как доходчиво объяснить менеджеру?
От: _Artem_ Россия  
Дата: 25.02.16 08:39
Оценка:
Здравствуйте, 0BD11A0D, Вы писали:

BDA>Значит, не «изрядная», а «львиная». Код у вас, конечно, на C++ (иначе, откуда бы все эти проблемы). Черт его знает, без примеров дальше малоконструктивно обсуждать. Я верю, что вам достался over-engineering, но разбор JSON'а на C++ простым и не будет. Насколько его можно упростить, переписав, по сравнению с имеющейся астронавтикой — хз.


Странное заявление. В чем проблема разобрать JSON на C++? Легко и просто делается. Применив визитор по типам нодов и что-то типа SAX парсера, все получится очень элегантно.
Re[2]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 25.02.16 10:18
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>Про код "навырост" — когда-то тоже писал код навырост


В данном конкретном случае, это не код навырост, а просто культ карго. Попытка применения паттернов мартышками, которые не понимают, когда они нужны, а когда — нет.
Re[4]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 25.02.16 10:20
Оценка:
Здравствуйте, lgb, Вы писали:

lgb>Потом скажешь руководству


Уже обсуждали. За такие штучки любой ПМ по шапке надает, кроме одного их крайне редкого подвида.
Re[4]: как доходчиво объяснить менеджеру?
От: · Великобритания  
Дата: 25.02.16 11:13
Оценка: :)
Здравствуйте, Transformerrr, Вы писали:

T>Наверное В правильном процессе не нашлось места для код ревью

Нашлось. Но когда индусы ревьювят индусов...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: как доходчиво объяснить менеджеру?
От: Олег К.  
Дата: 25.02.16 22:32
Оценка:
S>>В 2006 они сделали первый работающий прототип. (3 года прошло)
S>>В 2008 прототип так и не начал стабильно работать (всего 5 лет прошло), и проект закрыли!

C>Толковых? Ты точно ничего не перепутал?


Тут вот какая проблема. Есть кто реально что-то может сделать, т.е. толковые, а есть кто думает, что что-то может. А есть еще звиздуны. Хороший начальник знает сильные и слабые стороны своих подчиненных, но в том-то и дело, что большинство из них также как и программисты не разбираются в своей работе.
Re[3]: как доходчиво объяснить менеджеру?
От: Олег К.  
Дата: 25.02.16 22:34
Оценка:
S>Гендир там был веселый человек. Помню как он сказал в момент получения работающего прототипа "поздравляю всех вас с тем, что вы научились использовать современные технологии"

Шарпкодер, ответь на вопрос мгу. Мне тоже интересно. И еще мне интересно почему он продолжил вбухивать деньги в проект хотя было видно что программисты не справляются.
Re[3]: как доходчиво объяснить менеджеру?
От: Олег К.  
Дата: 25.02.16 22:40
Оценка: +3 :)
C>В данном конкретном случае, это не код навырост, а просто культ карго. Попытка применения паттернов мартышками, которые не понимают, когда они нужны, а когда — нет.

Чувак, ты чертовски прав! Это плюс тебе. Минус же тебе в том, что ты не можешь плюнуть и работать в рамках существующего кода. То есть ты не senior enough.

Я понимаю что это у тебя что-то вроде типа "крика души," но нужно принять данное как должное. Плохой код (повторюсь, я согласен с тобой что это плохой код и не потому что он чужой, а потому что там "мартышки применили паттерны"!) это издержки нашей профессии. Это нужно принять. Увы.
Re[4]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 26.02.16 10:15
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>То есть ты не senior enough.


Это смотря по какой шкале считать. С технической точки зрения, выкинуть этот код — единственный разумный вариант. А вот с точки зрения корпоративной политики, всё намного сложнее.
Re[5]: как доходчиво объяснить менеджеру?
От: lgb Канада  
Дата: 26.02.16 12:58
Оценка: +1 :)
Здравствуйте, consign, Вы писали:

lgb>>Потом скажешь руководству


C>Уже обсуждали. За такие штучки любой ПМ по шапке надает, кроме одного их крайне редкого подвида.


Конечно, если ты будешь переделками в рабочее время заниматься. А дома за одно воскресенье, например, сделать правильную версию — какие проблемы вообще? Дольше здесь обсуждать, чем просто взять и сделать.
Re[5]: как доходчиво объяснить менеджеру?
От: Олег К.  
Дата: 26.02.16 23:31
Оценка: +1 :)
ОК>>То есть ты не senior enough.

C>Это смотря по какой шкале считать. С технической точки зрения, выкинуть этот код — единственный разумный вариант. А вот с точки зрения корпоративной политики, всё намного сложнее.


Предложение переписать проект целиком прокатит лишь для небольших проектов вроде "твоего," но в целом это неверно. Есть куча проектов которые тянутся с 70-х-80-х-90-х гг. Миллионы строк кода не самого лучшего качества который непросто переписать. Поэтому, мой тебе совет. Или попроси начальника чтобы он дал задачу автору или плюйся но стисни зубы и сделай что от тебя хотят.
Re[6]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 27.02.16 04:47
Оценка:
Здравствуйте, lgb, Вы писали:

lgb>А дома за одно воскресенье, например, сделать правильную версию — какие проблемы вообще?


Про это уже было выше.
Re[6]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 27.02.16 04:48
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Есть куча проектов которые тянутся с 70-х-80-х-90-х гг. Миллионы строк кода не самого лучшего качества который непросто переписать. Поэтому, мой тебе совет. Или попроси начальника чтобы он дал задачу автору или плюйся но стисни зубы и сделай что от тебя хотят.


Такой подход не подходит другим проектам, поэтому так нельзя сделать с этим проектом. Занятная логика.
Re[7]: как доходчиво объяснить менеджеру?
От: lgb Канада  
Дата: 27.02.16 13:47
Оценка:
Здравствуйте, consign, Вы писали:

C>Здравствуйте, lgb, Вы писали:


lgb>>А дома за одно воскресенье, например, сделать правильную версию — какие проблемы вообще?


C>Про это уже было выше.


Можещь пальцем показать, а то не могу найти.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.