Re[4]: Низкая квалификация работников
От: Олег К.  
Дата: 14.11.11 06:18
Оценка: +1
K>>>Рефакторить или отказаться с этим работать, других вариантов для уважающего себя профи просто нет

ОК>>Виден совет непрофессионала. Код которому 10-20-30 лет и который писала куча людей которые больше не работают в компании ты тоже начнешь сразу переписывать или отказываться с ним работать?


K>Точно, как это я не сообразил. Настоящие "профи" код никогда не рефакторят

K>Я всегда переписываю код, который крив. Неважно кто его писал и когда.

Сдается мне что ты не видел реально больших проектов с кодом который уж точно никаких позывов к рефакторингу не вызовет. Ну а раз у тебя возникает желание переписать какой-то код, то значит он не так уж и плох в первую очередь.
Re[4]: Низкая квалификация работников
От: Олег К.  
Дата: 14.11.11 06:31
Оценка: 1 (1) +1
ОК>>У топикстартера не менее гениальное видение кода. Здесь.
Автор: alexsoff
Дата: 13.11.11

A>А что я тут не правильно сказал? Человек работающий с этим проектом не знает вообще ООП, не знает про интерфейсы, и уж не очевидно ли что если я ввиду любые ООП конструкции(что как бы подразумевает введение паттернов) это повысит планку для вхождения? обоснуйте свой ответ, а не кидайтесь г*ном сударь.

Если кратко, то... Первое и самое главное. Нужно стремиться к коду который поймет любой студент. Второе. ООП и, о боже, интерфейсы не везде и всегда нужны. Третье. Ни разу не видел хорошего кода с паттернами но видел кучу плохого с оными. Четвертое. Открою тебе секрет. Паттерны тоже не нужны. Совсем не нужны. Пятое. То что ты описал — обычная рабочая ситуация. Правь код в контексте текущей задачи. Если что-то перестанет работать в коде этого товарища в будущем (например поменяется сервер базы), то тогда и решай появившуюся проблему.

Г...ном и не думал кидаться. Извини если что.
Re[4]: Низкая квалификация работников
От: Олег К.  
Дата: 14.11.11 06:39
Оценка:
ОК>>Ну почему сразу вытягивать? Топикстартер описал обычную рабочую ситуацию.
E>Когда изначально даж SVN не было ? Сплошной копипаст, все связано со всем через глобальные переменные, код даже не процедурный, а куча вложенных if for switch? Проходили, знаем про такие проекты. Чем больше у конкурентов таких рабочих ситуаций, тем нам лучше, что могу сказать .

И что ты предлагаешь? Чтобы каждый очередной девелопер переписывал код предыдущих?

У конкурентов примерно аналогично.
Re[5]: Низкая квалификация работников
От: Klatu  
Дата: 14.11.11 06:53
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Сдается мне что ты не видел реально больших проектов с кодом который уж точно никаких позывов к рефакторингу не вызовет.


Это точно, не видел. Всегда есть что-нибудь кривое. Или вообще всё

ОК>Ну а раз у тебя возникает желание переписать какой-то код, то значит он не так уж и плох в первую очередь.


Чего-чего?
Re[5]: Низкая квалификация работников
От: elmal  
Дата: 14.11.11 07:05
Оценка: +3
Здравствуйте, Олег К., Вы писали:

ОК>И что ты предлагаешь? Чтобы каждый очередной девелопер переписывал код предыдущих?

Лично я переписываю. Точнее рефакторю безжалостно все, до чего могу дотянуться в рамках выполняемых задач. Как свое рефакторю, так и чужое. А бывает и какие то куски полностью переписываю, в том числе и свои, так как требования и ограничения изменились, и появляется более оптимальное на данном этапе времени решение. В конце концов за баги и косяки предшественников отвечать мне, и если от дерьма не избавляться, то сорвем все сроки и потеряем клиентов. В результате можем делать меньшим количеством народа больше и быстрее, чем конкуренты. Если это не делать, и если каждый в команде это не будет делать, то проект рухнет под тяжестью дерьма в нем.
теория разбитых окон, советую ознакомиться
Re[11]: Низкая квалификация работников
От: MxMsk Португалия  
Дата: 14.11.11 07:12
Оценка: -2
Здравствуйте, alexsoff, Вы писали:

MM>>Короче, сиди и не выпендривайся.

A>Не внимательно читаешь, я отвечаю за этот проект, что не ясно?
Это был стёб. Мне то как раз ясно, что ты хочешь сделать хорошо. Меня удивляет, что находятся товарищи, считающие, что вместо советов, лучше тебя опустить и выставить неопытным бестолочем.
Re[12]: Низкая квалификация работников
От: Олег К.  
Дата: 14.11.11 07:24
Оценка: +2
MM>>>Короче, сиди и не выпендривайся.
A>>Не внимательно читаешь, я отвечаю за этот проект, что не ясно?
MM>Это был стёб. Мне то как раз ясно, что ты хочешь сделать хорошо. Меня удивляет, что находятся товарищи, считающие, что вместо советов, лучше тебя опустить и выставить неопытным бестолочем.

Никто его не опускает и он таки неопытный. Ты только подумай. Топикстартер хочет с нуля переписать проект в который уже вложены деньги. О каком опыте тут может быть речь?

Ладно этот проект маленький. А что бы он делал с проектом который существенно больше и дольше находится в продакшне?
Re[6]: Низкая квалификация работников
От: Олег К.  
Дата: 14.11.11 07:29
Оценка: +1
ОК>>И что ты предлагаешь? Чтобы каждый очередной девелопер переписывал код предыдущих?
E>Лично я переписываю. Точнее рефакторю безжалостно все, до чего могу дотянуться в рамках выполняемых задач. Как свое рефакторю, так и чужое. А бывает и какие то куски полностью переписываю, в том числе и свои, так как требования и ограничения изменились, и появляется более оптимальное на данном этапе времени решение.

У тебя как-то все очень легко получается. И время на все есть. И на форум тоже есть. Меня терзают смутные сомнения.

E>В конце концов за баги и косяки предшественников отвечать мне, и если от дерьма не избавляться, то сорвем все сроки и потеряем клиентов. В результате можем делать меньшим количеством народа больше и быстрее, чем конкуренты. Если это не делать, и если каждый в команде это не будет делать, то проект рухнет под тяжестью дерьма в нем.

E>теория разбитых окон, советую ознакомиться

Не рухнет. Мой экспириенс говорит что и код с кучей г-на может жить десятками лет.
Re[4]: Низкая квалификация работников
От: iiice Россия  
Дата: 14.11.11 07:30
Оценка: :)))
Товарищ Маузер, очевидно Вы не в полной мере осознвёте все последствия использования глобальных переменных. Размер программы тут не при чём. А вот портабельность кода убивается на раз — на некоторых платформах глобальность, а порой и синглтоны, технологически недопустимы. Пример — android. И пожалуйста, поосторожнее с поучениями молодёжи.

PS. О себе. Вырос, набрался опыта, осознал, ужаснулся, весь опыт выкинул нахрен как вредный, и больше накапливать не буду. Темпы сейчас такие...
Re[6]: Низкая квалификация работников
От: Undying Россия  
Дата: 14.11.11 07:35
Оценка: +1
Здравствуйте, alexsoff, Вы писали:

A>Это очевидно, добавляем слой абстракции — сложность увеличилась, или не?


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

A>Избавляемся от практики копипаста — сложность увеличилась, т.к. приходится теперь вместо механической работы — думать и понимать как система устроена в целом.


Проблема копипасты как раз не в лишней механической работе, а в том что думать при внесении изменений приходится очень много. Т.к. при копипасте изменение кода в одном месте требует изменения кучи других мест, и понять что это за места намного сложнее, чем при наличии хорошей архитектуры.
Re[7]: Низкая квалификация работников
От: cvetkov  
Дата: 14.11.11 07:41
Оценка:
Здравствуйте, alexsoff, Вы писали:

__>>это для тебя она станет организованной. а придет новый человек, для него твой код будет свалкой гавна. любому человеку именно его стиль кажется самым правильным среди всех.

__>>ты понимаешь, что все, что ты наменяешь, нужно будет заново перетестировать? стоимость этого учитываешь? или ты собрался сразу идеальный код писать? ты уверен, что знаешь как сделать лучше? а насколько лучше? а оно того стоит?
A>Разве применение паттернов, может превратить мешанину кода в еще большее гОвно,
легко. патерны нифига не панацея, их тоже можно неправильно применить.
A> неужели ты ставишь мнение таких метров программирования как Фаулер, Эванс,Бэк по структурированию и паттерированию программ в грош?
не знаю как он, а я их гениями не считаю.

__>>правильно. выявил, сообщил. занимаешься текущими делами.

A>От того, что я сообщу будет зависеть чем я буду заниматься далее или клепать новый проект или переписывать существующий.
а чего ты хочеш?
Re[7]: Низкая квалификация работников
От: elmal  
Дата: 14.11.11 07:43
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>У тебя как-то все очень легко получается. И время на все есть. И на форум тоже есть. Меня терзают смутные сомнения.

Есть время, потому как за кодом слежу, и не довожу до такого состояния, когда подвиги требуется совершать . А вот кто дерьмо не разгребает — у тех времени никогда нет.

ОК>Не рухнет. Мой экспириенс говорит что и код с кучей г-на может жить десятками лет.

Жить то может. Вот только при наличии конкурентов мой опыт говорит, что через 4 года конкуренты начнут тебя догонять, если в проекте куча говна, а далее обгонять. Ну а если конкурентов нет, то да — может и 50 лет прожить.
Re[6]: Низкая квалификация работников
От: Undying Россия  
Дата: 14.11.11 07:47
Оценка: 2 (1) +1
Здравствуйте, alexsoff, Вы писали:

A>Это очевидно, добавляем слой абстракции — сложность увеличилась, или не? Избавляемся от практики копипаста — сложность увеличилась, т.к. приходится теперь вместо механической работы — думать и понимать как система устроена в целом.


И кроме того дополнительные абстрактные слои далеко не единственный способ устранения дублирования. В 90% случаев дублирование кода прекрасно устраняется чистыми (работающими только с принимаемыми аргументами и выходным значением) функциями. При этом в отличие от дополнительных абстрактных слоев чистые функции не увеличивают, а уменьшают сложность, т.к. при чтении кода делают очевидным какие именно переменные используются в преобразовании. А ООП это очень дорогой инструмент, который нужно применять только тогда, когда без него действительно не обойтись, а таких ситуаций, как правило, не много.
Re[13]: Низкая квалификация работников
От: MxMsk Португалия  
Дата: 14.11.11 07:48
Оценка: +1
Здравствуйте, Олег К., Вы писали:

ОК>Никто его не опускает и он таки неопытный. Ты только подумай. Топикстартер хочет с нуля переписать проект в который уже вложены деньги. О каком опыте тут может быть речь?

Неопытный забил бы на всех давно. Человек совета пришел спросить, а ему вместо этого "в зеркало гляди", да на возраст пеняют.

ОК>Ладно этот проект маленький. А что бы он делал с проектом который существенно больше и дольше находится в продакшне?

У меня был опыт проекта, в котором участвовал очень своеобразный разработчик. Он намного старше меня и более опытнее, должность тоже была круче. Когда я увидел его код, ужаснулся. Потом решил, может мне опыта не хватает. Потом я тоже приходил на RSDN за подобным советом. Меня выставили таким же дураком, не способным понять всей гениальности затеи... Однако, я тогда смог продавить переписывание модуля. Но то была лишь капля в море. И знаешь что в итоге случилось? Проект не приняли. Ага! Приложение просто не работало нормально, потому что тот опытный разработчик, которого я видите ли не понимал, писал код чертовски хреново. И когда пришло время проверять поделку не в дебаге, а с пользователями, последние офигели от количества недоработок, глупых ошибок и неустоучивости системы. Но я о таком результате говорил с самого появления на проекте. Но! Менеджер взвесил риски и решил не исправлять. Советчики с RSDN тоже подумали, что я шибко молод. И вот вам красноречивый итог.
Re[11]: Низкая квалификация работников
От: grosborn  
Дата: 14.11.11 07:58
Оценка: +1
> но тут возникает вопрос, не быстрее ли выкинуть код и переписать с нуля?

Переписать с кучей паттернов, с кучей исключений, держащися только на 90% покрытии тестами и гарантированно не работающим за пределами оных, поскольку ты под дебагером стараешься на код не смотреть.
Ну что я тут могу сказать, вперед и с песней! Гарантия, что следующий после тебя программист поднимет такую же ветку, каких тут уже сотни.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[2]: Низкая квалификация работников
От: nen777w  
Дата: 14.11.11 08:13
Оценка:
__>если цель поднятие чсв, то публично высмеивайте коллегу за его косяки

гм... а я так делаю, ну только не публично конечно, но есть у меня товарищь с паралельного проэекта вот я ему для поржать кусочки сплавляю,
правда без указания афтора.
ну и это не говнокод типа забыли чего то там проинициализировать, удалить память и т.п. а реальный говнокод от которого просто убежать и спрятаться хочется
я плохо поступаю да? разве другие так не делают
Re[7]: Низкая квалификация работников
От: Osaka  
Дата: 14.11.11 08:26
Оценка:
U>Проблема копипасты как раз не в лишней механической работе, а в том что думать при внесении изменений приходится очень много
Если для копипастеров не проблема думать "очень много" по сравнению с тем если бы делали "с паттернами", то почему они не выбирают менее трудный путь (при котором думать надо меньше) и не переходят на паттерны?
Re: Низкая квалификация работников
От: c3p0  
Дата: 14.11.11 08:42
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>Устроился на работу, по функциональным обязанностям должен буду отвечать за разработанные проекты. Но дело в том, что уже до меня был написан проект, разработчик которого, мягко говоря, не был "профи". В коде проекта все слои оказались смешаны, в UI размазана бизнес логика и порой присутствуют такие перлы, что можно только закрыть глаза, например конекшен стринги захардкожены жестко в коде и продублированы по всему приложению — бывает даже случается так, что в одном методе встречается 3-4 места с жестко прописанным конекшен стрингом. я не уже говорю о копипасте Бывали места, где имя функции содержало вперемешку кирилический символы и латиницу. Что делать в таком случае? Переписывать проект заново, но сомневаюсь, что это поддержит начальство (проект на 6 человеко месяцев) или оставить все как есть, но в этом случае будем молиться на этого разработчика и думать как бы он не ушел.


А рефакторить не пробовали?
К слову, для этого не обязательно весь код на помойку выкидывать.

Надо начинать с малого:

Сначала легкий рефакторинг
— все, что захардкожено в коде вынести куда надо
— копипасты вынести в функции
— поправить имена на читабельные и понимабельные

Потом более глубокий:
— Пересмотреть логическую структуру кода, разделить слои или что там у вас.

Т.е. надо сделать рефакторинг, который ничего не ломает. Это должно занять не больше недели. Потом тесты чтобы убедиться что все прошло ок.

Или копаться в чужом коде и делать его лучше это не для гуру?

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

Не факт кстати, что разработчик неквалифицированный. Говнокод может писать и нормальный разработчик, который не в состоянии образумить дергающее его начальство.
Если вы параноик — это еще не значит, что за вами никто не следит
Re[3]: Низкая квалификация работников
От: __kot2  
Дата: 14.11.11 08:42
Оценка: 3 (1) +1
Здравствуйте, nen777w, Вы писали:
N>гм... а я так делаю, ну только не публично конечно, но есть у меня товарищь с паралельного проэекта вот я ему для поржать кусочки сплавляю,
N>правда без указания афтора.
N>ну и это не говнокод типа забыли чего то там проинициализировать, удалить память и т.п. а реальный говнокод от которого просто убежать и спрятаться хочется
N>я плохо поступаю да? разве другие так не делают
я не делаю. когда моложе был, подходил к разработчику, обьяснял ему тихо в приватной беседе почему так больше делать не стоит. но понимания никогда не встречал. народ бесился просто. после нескольких неудачных попыток с разными людьми забил. пусть каждый пишет, как хочет. нужно обязательное разделение на области ответственности кода и процедура передачи этой ответственности. в своей области пиши как хочешь, но чтобы ничего чужого не сломалось. я вообще обычно не заглядываю в код, который мне лично нафиг не нужен. мне просто неинтересно туда смотреть. позже случайно открыл, что просто достаточно самому писать хороший код и тогда коллеги сами начинают заимствовать твои решения. ну а то, что в других проектах что-то другое — ну, дык, и люди в Африке городают, всем хорошо не сделаешь. захотят люди твоего совета — подойдут да спросят. не захотят, значит, он им не нужен.
Re[6]: Низкая квалификация работников
От: __kot2  
Дата: 14.11.11 08:45
Оценка: 12 (1) +4
Здравствуйте, alexsoff, Вы писали:
U>>Очень пугает, то что ты противопоставляешь хорошесть кода и порог вхождения в код. Если при "улучшении" кода порог вхождения увеличивается, то скорей всего вместо улучшения происходит усложнение кода.
A>Это очевидно, добавляем слой абстракции — сложность увеличилась, или не? Избавляемся от практики копипаста — сложность увеличилась, т.к. приходится теперь вместо механической работы — думать и понимать как система устроена в целом.
просто делать сложно. сделать сложно — очень просто.
код должен быть максимально простой, с минимально связанными компонентами. так, что разрабатывая одну часть, можно вообще даже не догадываться, что там в других происходит. любая часть должна быть максимально интуитивна. то, что не интуитивно, нужно совместно обговаривать.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.