Ситуация:
- говнокод везде
- бизнес диктует требования - требования решаются говнокодом...
- тестирования не существует как класс - кроме меня всем по..г(р)
- осознать проблемы отсутствия проектирования никто не может, или всем нас...ь
- решать "проблемы" через анус - норма
- "стандарт" - "да ну, там слишком завязано, нам бы попроще - с покером и принадлежностями" = говнокод
- перфекционизам + "я суперпрограммист" + "говнокод" = печаль
- запросы в цикле норма...
- развиваться никто не планирует...
- переписал движение 15 документов...средств(своих рук) на все не хватает, послать некого
В общем вопрос простой, кто виноват известно...."что делать"?
зы на текущий момент, все что меня "не касается", обхожу стороной...каждый затык в проектировании, отсылаю к программисту который это делал.
ззы не все ангелы, но меру надо знать
(1) Я для того чтобы избежать присутствия говно-кода в отделе взял на себя обязанности по "проверке корректности написания кода" - т.е. перед тем как программист пустит свою разработку/доработку в продакшн я смотрю код на предмет наличия вышеописанных вами ляпов, естественно в бизнес-логику я не вникаю, и ошибки проектирования сходу я не вижу.
В итоге:
1. Код программистов становится лучше
2. В следующий раз программист не делает таких ошибок
3. Передача знаний - рассказываю и показываю, что так не надо делать, что надо делать вот так
4. Открыв чужой код никто в обморок не падает и говно-код криво оформленный не читает
- все вышеописанные итоги, это ИМХО. Возможно на самом деле все не так хорошо.
(10) echo77, отделом разработки руководит человек в другой стране, ес-но код-ревью в принцепе не существует, я не могу заставить программистов отдавать код мне на ревью
- мы на одном уровне в должности
- будут конфликты
- все перфекционисты - у ребят "код идеален", т.к. все работает, и с этим согласны все остальные - работает же...
- указывать на ошибки - не принято, при возражениях - "работает и ладно", "никто не видит", "надо быстро", "да там не так просто"...
(11) AlexO, писать нормальный код - не значит медленно, я б сказал - наоборот намного быстрее. Правильно написаный код не требует дальнейшего вмешательства, дополнительного контроля и работает по "конец света". А насчет смеяться - хз, не могу сказать.
- все перфекционисты - у ребят "код идеален", т.к. все работает, и с этим согласны все остальные - работает же...
Вот именно. Код работает. А как и что там наваяно - никого не волнует.
Я предлагаю за разбор насчитывать часы, т.е. деньги. Хватит уже кормить "несмотренцев в будущее". Пусть смотрят. Или пусть за них платят.
P.S. "Перфекционист" - это не тот, кто считает, что у него все идеально, это нарциссизм и тщеславие. А перфекционизм - это стремление делать все наиболее качественно, лучше предыдущего, лучше всего.
(15) AlexO, оплата по ставке, так что всем пофиг сколько времени ты потратил на код. Премия начисляется на отдел - опять же пофиг кто как отработал в отдельности. Всем на разбор пофиг. Работало - значит можно поправить "чуток изменив" - для начальства это как копи-паст папочку на рабочий стол - этого не объяснить. Когда объясняешь - надо переписать-разобрать десятки тысяч строк - начальство: <<А что? Надо секретарь отксерит, так и программисты - перепишут>>.
перфекционизм - он "такой"!
Когда вместо того что бы использовать существующий функционал - на каждый чих писать велосипед - нет даже "автомобиль", это не перфекционизм - а идиотизм...когда месяцы тратятся на разработку существующего функционала - это уже дибилизам...
(16) AlexO, будем честны - программист должен думать
(17) AlexO, я не говорю писать на каждый чих проверку - достаточно граничных условий типа "этого не было в ТЗ . Ахтунг - зовите программиста!!!" Есть варианты - если не один не подошел - "упасть", а не так как сейчас - сделать абы как, "вроде провильно, а если нет - в ТЗ этого небыло!". "У вас ошибка? - сейчас обработочку перепишем, так поправим тут и тут" - о заработало - а то что это может перестать работать через два часа уже - "Не ну этого ж небыло, надо снова переписать..." и так три месяца переписывать....
писать нормальный код - не значит медленно, я б сказал - наоборот намного быстрее
Ничего подобного. Это прежде всего - подумать, как это сделать. А потом еще обходить многочисленные коряги 1С, чтобы идея не ушла в песок, а реально сработала. А не ваять "где вижу - там пишу".
(12) minimajack, можно поговорить, написать заявление, докладную вышестоящему руководителю - попросить тебя назначить ответственным за ревизию кода.
Здесь два момента - не перегнуть палку в общении с людьми - не будь категоричным и резким, преподноси ошибки мягче. Два - это не решит всех проблем
Я для того чтобы избежать присутствия говно-кода в отделе взял на себя обязанности по "проверке корректности написания кода" - т.е. перед тем как программист пустит свою разработку/доработку в продакшн я смотрю код на предмет наличия вышеописанных вами ляпов, естественно в бизнес-логику я не вникаю, и ошибки проектирования сходу я не вижу.
Вам это время оплачивают? Или на добровольных началах?
(1) Говнокод - это не всегда критично. Одно дело говнокод в обработке проведения ТН на производстве, или чекаККМ в торговле, другое дело говнокод во внешней обработке, запускаемой раз в месяц для обработки пары документов, или в одноразовой "поделке".
(1) minimajack, Если они пишут код не так как вы, это вовсе не значит то это говнокод. Разработайте принципы написания кода в приложении, определите шаблоны оформления кода.
Если ваша компания выпускает тиражные продукты для 1С - то да, ваши эмоции оправданы. Но если вы очередная компашка по торговле китайского барахлишка и 1с-ники в компании - это обслуга системы по выписке документиков - чего плакать-то? Ну неидеальный код и чо?
(4) ZOMI, скажем так, компания(международная) занимаеться производством промышленного оборудования с оборотами в миллионы евро, и неидеальный код выливается в проблемы с ВЭД-ностью, постоянными проблемами на производстве, срывов договоров, некорректностью работы ПЭО и многими другими проблемами...
"че делать то?"
неидеальный код выливается в проблемы с ВЭД-ностью, постоянными проблемами на производстве, срывов договоров, некорректностью работы ПЭО и многими другими проблемами...
Неидеальный код, как известно, бывает двух видов:
1) Решает проблему корректно.
2) Не решает проблему корректно.
В первом случае алгоритм решения задачи соблюден, но через одно известное место, во втором - не соблюден. Второй вариант делится на случаи, когда а) накосячил кодер, и б) когда некорректно сформулировано ТЗ.
В общем, желательно определиться, кто же все-таки виноват - говнокодеры или говнопостановщики задач )
В общем вопрос простой, кто виноват известно...."что делать"?
В общем случае ответ зависит от того, какие у вас есть полномочия ))
(7) MaxDavid, "решает проблему" - как говорится ставя подпорки(копи-паст), малейшее изменение(добавление, изменение чего угодно, хоть косвенно связанное) вызывает боль и муки у программиста, в результате - то что можно решить за 15 минут превращается в неделю кодирования, поиска всех вызовов и переписывания всего...при этом предыдущему говнокодеру абсолютно пофиг, голова болит у следующего
(8) Cooler, к сожалению я не директор - а именно программист...
(5) minimajack, ну, если все действительно так серьезно, то попробуйте не экономить на зарплате программистов и одновременно повышать требования - глядишь, и придет кто-то получше. А то пока что наверняка у вас современная версия "Сказки о Попе...", только без Балды.
Абсолютно неоправданная идея. Утопическая.
Если ты будешь хорошо кодить - то другие только будут смеяться, и плевать на твою работу, а то еще и начальству доложат, что ты медленно работаешь, а их говнокод - пишется быстро.
Правильно написаный код не требует дальнейшего вмешательства, дополнительного контроля и работает по "конец света".
Это продуманный, со множеством проверок и контрольными "карманами", с обработкой множества предусмотренных вариантов.
Такой код пишется в несколько раз медленнее, если не на порядок, чем "где вижу - там пишу. Хоть на заборе, хоть три буквы".
вот тебя зациклило.. а если бы система работала нормально, то и программисты не нужны были, так что это твой хлеб - править "говнокод", а бонус - ощущение превосходства над тупыми "говнокодерами". еще скажу со стороны своего длинного пути как бы программиста - блин! да сколько ж систем учета было внедрено, а потом похерено! и с лучшим кодом, и с худшим. некоторые 7.7 так доработали наилучшим наиоптимальнейшим кодом, что до сих пор не хотят с ней расставаться, хотя прогресс уже ту-ту!
(24) AlexO, это сразу что пришлось предпринимать, пока говнокодер "рядом" -> "моя твоя не понимать, прогер делал другой - пускай пилит дальше сам"...
все обработки написанные не мной - я принципиально не изменяю. Пока работы по горло, всегда можно сказать некогда заниматься-разбираться - а там глядишь и "прогер" появляется
(20) gala2009,
> если бы система работала нормально, то и программисты не нужны были
в жизни идет постоянная ротация требований, так что понятие "система работала нормально" - существовало бы недолго
> доработали наилучшим наиоптимальнейшим кодом, что до сих пор не хотят с ней расставаться
мне все равно на людей которые не желают расставаться с наработками, писать мега-оптимизированый код я не предлагаю, я хочу узнать "кто как влиял на сотрудников" для повышения качества кода.
(25) minimajack,начните с этого Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8.
Пусть переписывают пока рефлекс не выработается.
1.Для начала самому надо владеть стандартами, и "хорошим кодом".
2.Полномочия для того, чтобы осуществлять контроль качества решения задач.
3.(26) IvanAlekseev, Планерки - это да ...))), и самых "упоротых" на доску почета с перлами )
4. И, конечно. необходимо чтобы руководство было готово к изменениям, иначе получится как у Дон Кихота - бессмысленная война с мельницами...
А если "сверху" нет ни понимания, ни желания, и нет полномочий - забить ... см.п 4
Для улучшения качества кода надо по утрам собирать кодеров на планерки, на которых показывать как написать тот или иной код качественно. На 3 день говнокодеру будет самому стыдно, что он лошара.
У меня друг программист. Говорит пришел в компанию где было много говно кода и его просто так не исправить, слишком много его и костылей. Поэтому пишет такой же говно код (с костылями, так как уже все в нем)..ну и потихоньку правит. Но все уже говорит не исправь проще с нуля.
А там мне кажется слишком много изменений в том же законодателстве и тд...просто не успевают все отлаживать и исправлять. посмотрите на те же отчетности. они меняются раз в квартал, если не чаще((
(31) ipoloskov, очень часто сталкивался, что сколько девочек в Ит отделе не меняли, все остается на прежнем уровне :) Потому что "здесь так принято" :)
Вообще если бардель стал приносить мало прибыли, надо менять матрону для начала, потому что за подбор и контроль девочек она отвечают в первую очередь :)
Но опять таки не универсальный метод :)
Работал я как то в одной конторе, где регулярно раз в год меняли руководителей ИТ отделов, но поскольку они проходили "кадровый" отбор у одного и того же собственника, то он подбирал исключительно похожих друг на друга дятлов на роль руководителей отдела (так сказать выбирал по одному типажу) :)))
Да ладно, самое адское что я видел, это когда при проведении одного документа, писались движения в другой. Я так долго не мог понять почему, документ проводишь - у него вроде нормальные проводки, а через день смотришь - вообще все другое.
Сегодня убедился, что все таки рецензирование кода это хорошо и для коллектива в целом и для программиста, чей код рецензируется.
В результате, показал программисту как решить задачу проще и понятнее, заодно дал посмотреть видео по настройке ролей в СКД, показал, что есть дополнение периода в группировках СКД.
В результате отчет стал проще, а программист почерпнул много новых знаний.