Re[7]: Оцените качество кода на С++
От: alexb1980  
Дата: 24.01.15 14:48
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

ЮЛ>Здравствуйте, alexb1980, Вы писали:


ЮЛ>Безусловно, надо (было) искать, но надо было и писать алгоритм. В сжатые сроки. Ну вот это ваше предложение, чем оно в принципе улучшило бы читаемость кода? Не говорю о трудоемкости написания этого множественного наследования, которое потом придется и переписывать в другой какой нибудь вид.

ЮЛ>Чем оно было бы лучше цельного алгоритма, в котором все отношения под рукой, никакой фрагментации кода?
ЮЛ>Я всегда за хорошую идею, но против фрагментации. В данном случае идея фрагментацию не перевешивает.

Тут возможно вы не правы, вот например в C# есть например sealed classes. Вот и в C++ можно что-то такое изобрести (это точно можно сделать).

Ну тогда нужно оптимизировать алгоритм, если вас не устраеват фрагментация. Тут я пока ничего предложить немогу, потомучто это трудоёмко.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[8]: Оцените качество кода на С++
От: Юрий Лазарев Россия  
Дата: 24.01.15 14:55
Оценка:
Здравствуйте, alexb1980, Вы писали:

A>Ну тогда нужно оптимизировать алгоритм, если вас не устраеват фрагментация. Тут я пока ничего предложить немогу, потомучто это трудоёмко.


Именно что трудоемко. Так можете вы прямо сказать, чем так неугодна программа с цельным алгоритмом и что исключения на длину кода все же возможны? Или превышения числа строк должны караться увольнением?
Re[9]: Оцените качество кода на С++
От: alexb1980  
Дата: 24.01.15 15:08
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

ЮЛ>Здравствуйте, alexb1980, Вы писали:


A>>Ну тогда нужно оптимизировать алгоритм, если вас не устраеват фрагментация. Тут я пока ничего предложить немогу, потомучто это трудоёмко.


ЮЛ>Именно что трудоемко. Так можете вы прямо сказать, чем так неугодна программа с цельным алгоритмом и что исключения на длину кода все же возможны? Или превышения числа строк должны караться увольнением?


Я сам несколько раз попадал под "горячую" руку (довольны менеджеры — недовольны заказчики, не довольны менеджеры — довольны заказчики, все довольны — разработчик не доволен), скорее это просто предлог для очередного сокращения...
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[10]: Оцените качество кода на С++
От: Юрий Лазарев Россия  
Дата: 24.01.15 16:18
Оценка:
Здравствуйте, alexb1980, Вы писали:

ЮЛ>>Именно что трудоемко. Так можете вы прямо сказать, чем так неугодна программа с цельным алгоритмом и что исключения на длину кода все же возможны? Или превышения числа строк должны караться увольнением?


A>Я сам несколько раз попадал под "горячую" руку (довольны менеджеры — недовольны заказчики, не довольны менеджеры — довольны заказчики, все довольны — разработчик не доволен), скорее это просто предлог для очередного сокращения...


Скорее всего. Начальник с сокращениями не церемонится. При мне за год сократил двоих. Просто так — работу сделали, больше не нужны. На самом деле не нужны менеджеры — посредники, общение исполнителя с заказчиком напрямую много эффективнее.
Так как с принципиальным вопросом — возможна ли ситуация, когда природа алгоритма требует длинного кода? Или надо непременно убивать время на (далеко не всегда оправданный) поиск улучшения, свертки кода?
Re[11]: Оцените качество кода на С++
От: elmal  
Дата: 24.01.15 17:02
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

ЮЛ>Так как с принципиальным вопросом — возможна ли ситуация, когда природа алгоритма требует длинного кода? Или надо непременно убивать время на (далеко не всегда оправданный) поиск улучшения, свертки кода?

Хороший разработчик благодаря тому, что сразу не допускает длинного кода — не убивает время, а наоборот его экономит. Лично я конечно в лоб говнокод напишу да, быстрее. Процентов так на 10. Но на отладку говнокода я потрачу в 10 раз больше времени, чем если я потружусь, и не буду допускать спагетти. Да, я в курсе, что очень многие называющие себя программистами настолько стали круты в написании говнокода, что в состоянии терять на отладку спагетти кода не в 10 раз больше времени, а в 2 раза больше времени. Вот только нахрена этот навык развивать? Когда если выработать привычку сразу писать максимально нормально, то прирост производительности работы будет гораздо больше. Да, я в курсе, что таким навыком мало кто обладает. Да, я в курсе, что в российских институтах нормально писать не учат. Да, я в курсе, что очень тяжело попасть на проект с нормальным кодом, где можно этому учиться. Я в курсе, что даже чтение Макконела не выработает эту привычку. И я в курсе что это очень тяжело, этому можно учиться всю жизнь, и все равно не достигнешь совершенства.

Но также я в курсе, что умение сразу писать код дает больший прирост производительности труда, чем любые знания деталей реализации множественного наследования, умение разворачивать списки на бумажке, умение компилировать код в уме и заучивание деталей реализации всяких I = I++ + ++I. А раз это дает повышение производительности труда — именно это и следует в первую очередь совершенствовать, причем совершенствовать постоянно. Да, умение писать код нормально никак не поможет пройти 95 процентов собеседований, а зачастую будет наоборот зачтено в минус. Вот только это поможет потом в реальной работе, в умении всегда без проблем выдерживать сроки, или хотя бы выдавать хоть что то приемлемое в сроки.
Re[12]: Оцените качество кода на С++
От: Юрий Лазарев Россия  
Дата: 24.01.15 17:53
Оценка:
Здравствуйте, elmal, Вы писали:

E>Хороший разработчик благодаря тому, что сразу не допускает длинного кода ...


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

Так как с принципиальным вопросом — возможна ли ситуация, когда природа алгоритма требует длинного кода? Или надо непременно убивать время на (далеко не всегда оправданный) поиск улучшения, свертки кода?

Значит ли то, что ваш хороший разработчик "сразу не допускает длинного кода" то, что он его вообще не пишет? Никакого. И в чем тогда выражается экономия?
Отредактировано 24.01.2015 17:58 Юрий Лазарев . Предыдущая версия . Еще …
Отредактировано 24.01.2015 17:56 Юрий Лазарев . Предыдущая версия .
Re[13]: Оцените качество кода на С++
От: elmal  
Дата: 24.01.15 19:06
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

ЮЛ>Так как с принципиальным вопросом — возможна ли ситуация, когда природа алгоритма требует длинного кода? Или надо непременно убивать время на (далеко не всегда оправданный) поиск улучшения, свертки кода?

Я не алгоритмист. Но я не знаю ситуаций, когда природа алгоритма требует длинного кода. Когда был студентом, я считал, что таких алгоритмов, которые требуют длинного кода — до хрена и больше. С опытом я уже не очень могу представить таких ситуаций.

ЮЛ>Значит ли то, что ваш хороший разработчик "сразу не допускает длинного кода" то, что он его вообще не пишет? Никакого. И в чем тогда выражается экономия?

Хороший разработчик не пишет длинный код. Он автоматом его разбивает в тот момент, когда он начинает казаться длинным. Просто на рефлексах это делает, не задумываясь и практически не тратя времени.
Re[14]: Оцените качество кода на С++
От: Юрий Лазарев Россия  
Дата: 24.01.15 19:15
Оценка:
Здравствуйте, elmal, Вы писали:

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


Ну вот вам такой алгоритм. Не понял, с каким таким опытом, если вы не алгоритмист?

E>Хороший разработчик не пишет длинный код. Он автоматом его разбивает в тот момент, когда он начинает казаться длинным. Просто на рефлексах это делает, не задумываясь и практически не тратя времени.


Надеюсь не автоматом Калашникова? Просто на рефлексах... — обезьяна какая то вырисовывается.

Я так понимаю, вы говорите о кодах уже заранее отрепетированных в голове. Здесь алгоритм писался с нуля и до последнего момента был не определен окончательно.
Отредактировано 24.01.2015 19:17 Юрий Лазарев . Предыдущая версия .
Re[15]: Оцените качество кода на С++
От: chaotic-good  
Дата: 26.01.15 10:30
Оценка: +2
ЮЛ>Надеюсь не автоматом Калашникова? Просто на рефлексах... — обезьяна какая то вырисовывается.

Хамство какое-то вырисовывается.

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


Алгоритмист-Юрий, вы можете сказать, например, какая сложность у вашего алгоритма?

Нормальный подход в данном случае:
1. спецификация или статья, описывающая алгоритм, чтобы другие люди могли ее прочитать и покритиковать
2. (опционально) эскизный проект на питоне или чем-нибудь подобном (хотя иногда это невозможно и приходится использовать C++ для эскизного проекта из за специфики задачи), чтобы можно было отладить алгоритм (внести изменения в спеку, если нужно)
3. реализация алгоритма (не в классе CSewingDlg а отдельно), чтобы можно было потестить, например подготовить набор верифицируемых кейсов в текстовом файле и прогнать тест на нем
4. заюзать полученый код в реальном приложении

Так выглядит работа нормального алгоритмиста/ресерчера в IT компании, JFYI.
Получается быстрее (так как задачи решаются по отдельности, сначала дизайн алгоритма, потом кодинг) и качественней (покрытие тестами, естественным образом получается отдельная сущьность в коде, отвечающая за алгоритм).
Отредактировано 26.01.2015 10:35 chaotic-good . Предыдущая версия . Еще …
Отредактировано 26.01.2015 10:34 chaotic-good . Предыдущая версия .
Re: Оцените качество кода на С++
От: antonio_banderas Россия  
Дата: 28.01.15 18:26
Оценка:
Здравствуйте, GhostCoders, Вы писали:

GC>Данный код был написан моим сотрудником. Мне этот код не нравится, но он мне отвечает что я субъективен и его код неплох.


Скажите плз, на какую зарплату был взят сотрудник? Москва?
Т.е. для 40 тыс. в месяц наверно неплох, для 80 уже плох.
Re[2]: Оцените качество кода на С++
От: Юрий Лазарев Россия  
Дата: 28.01.15 19:52
Оценка:
Здравствуйте, antonio_banderas, Вы писали:

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


GC>>Данный код был написан моим сотрудником. Мне этот код не нравится, но он мне отвечает что я субъективен и его код неплох.


_>Скажите плз, на какую зарплату был взят сотрудник? Москва?

_>Т.е. для 40 тыс. в месяц наверно неплох, для 80 уже плох.

Я думаю, ТС вам не ответит. Это провинция, делите все на 2. Последние месяцы жаба душила манагера платить и 10 тыс., но выхода не было — других мест не найти.
Тут еще момент. Дело в том, что в середине лета я сломал ногу, вынужден был потерять месяц и, само собой, за свой счет. Полностью потратив на аренду все свои сбережения, по выходе на работу я вскоре был осчастливлен новостью о моем скором сокращении. При том что заказчик был извещен о задержке с разработкой и согласен был ждать, ждать не изволил манагер. Он несколько раз разрывал договор с заказчиком, несмотря на то, что первый этап я вопреки всему успешно завершил; он меня уволил (забавные подробности есть в др.ветке), и второй этап, также пройденный без замечаний, я выполнил с заказчиком уже после увольнения, в прямом с ним общении — сейчас как раз неделя тестов у заказчика.
Re[3]: Оцените качество кода на С++
От: enji  
Дата: 29.01.15 06:20
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

ЮЛ>Я думаю, ТС вам не ответит. Это провинция, делите все на 2. Последние месяцы жаба душила манагера платить и 10 тыс., но выхода не было — других мест не найти.

Ты не преувеличиваешь? У нас кассир в супере получает рублей 12 минимум. Город 150 тыс примерно

ЮЛ>Тут еще момент. Дело в том, что в середине лета я сломал ногу, вынужден был потерять месяц и, само собой, за свой счет.

Почему не по больничному?
Re[4]: Оцените качество кода на С++
От: Evgeniy Skvortsov Россия  
Дата: 29.01.15 08:29
Оценка:
Здравствуйте, enji, Вы писали:

E>Ты не преувеличиваешь? У нас кассир в супере получает рублей 12 минимум. Город 150 тыс примерно


Скажем так, это не преувеличение, а откровенная брехня!

В нашем гипере кассир получает 25.

1С-ники в нашей деревне год назад получали 45. Я предметно интересовался.

Я сам на второй работе на полставки в гос. учреждении получаю 11 чистыми на руки (вернее на карту), появляюсь там раз в неделю.
Отредактировано 29.01.2015 8:32 Evgeniy Skvortsov . Предыдущая версия .
Re[3]: Оцените качество кода на С++
От: elmal  
Дата: 29.01.15 09:12
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

ЮЛ>Я думаю, ТС вам не ответит. Это провинция, делите все на 2. Последние месяцы жаба душила манагера платить и 10 тыс., но выхода не было — других мест не найти.

Ууу, если провинция, то понятно. Полное отсутствие даже начальной культуры разработки сплошняком, учиться не у кого зачастую, только по книжкам. С увольнением могу поздравить, как раз хороший случай что то поменять в жизни. Рекомендую валить в Москву на юниорскую позицию если возраст позволяет, года через полтора код будешь писать приемлемый. Да, придется на дошираке посидеть, возможно снимать комнату и тому подобное. Но затем, как будет опыт, уже по провинциальным меркам будешь мегакрут, так что можешь попробовать вернуться (я правда вернувшихся не знаю, Москва это такое место, откуда не возвращаются, либо там остаются — либо в буржундию валят), либо уже на съем однушки хватать будет, и будут перспективы роста, если напрячься и оставить провинциальный уровень потребления, то можно и квартиру купить. В любом случае — через полтора года поймешь что был не прав относительно своего текущего кода, материться на текущий код будешь еще круче, чем здесь матерятся, научишься писать его быстрее, и в то же время понятнее.
Re[5]: Оцените качество кода на С++
От: omikron Россия  
Дата: 02.02.15 15:15
Оценка:
Мб, goto в коде запрещен корпоративным стандартом? Сложно объяснить такую предубежденность.
Но смотрится забавно. Пригодится троллить code reviewer'ов.
Re[3]: Оцените качество кода на С++
От: antonio_banderas Россия  
Дата: 03.02.15 11:18
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

GC>>>Данный код был написан моим сотрудником. Мне этот код не нравится, но он мне отвечает что я субъективен и его код неплох.


_>>Скажите плз, на какую зарплату был взят сотрудник? Москва?


ЮЛ><skipped> Последние месяцы жаба душила манагера платить и 10 тыс., но <skipped>


Несмотря на всю свою говёность, имхо, для цены 10 тыс. рублей в месяц — код неплох.
Re[4]: Оцените качество кода на С++
От: c-smile Канада http://terrainformatica.com
Дата: 03.02.15 17:59
Оценка: +1 -1
Здравствуйте, antonio_banderas, Вы писали:

_>Несмотря на всю свою говёность, имхо, для цены 10 тыс. рублей в месяц — код неплох.


Станет ли этот код в два раза лучше если заплатить в два раза больше?

А вообще есть такой мудрый принцип "мы не настолько богаты чтобы покупать дешевые вещи".
Re[2]: Оцените качество кода на С++
От: wety Россия  
Дата: 09.02.15 08:22
Оценка:
Здравствуйте, Кодт, Вы писали:

Не силён в плюсах.
Подскажи, пожалуйста, есть ли в приведенном коде паттерны?
На мой взгляд, вышеприведенный код замусорен комментариями и сбит в один файл. Мне думается, чтобы код был бы читабельнее, если код можно было бы разнести по разным файликам, обрамить его в регионы, вынести в какие-нибудь header (или как там у вас в С++)?
Также я не увидел ни одного try...catch... finally, что очень и очень ужасно.
Re[3]: Оцените качество кода на С++
От: Кодт Россия  
Дата: 09.02.15 09:59
Оценка: 15 (2) +2
Здравствуйте, wety, Вы писали:

W>Здравствуйте, Кодт, Вы писали:


W>Не силён в плюсах.

W>Подскажи, пожалуйста, есть ли в приведенном коде паттерны?

Там и паттерны, и маттерны. Маттернов больше

W>На мой взгляд, вышеприведенный код замусорен комментариями и сбит в один файл. Мне думается, чтобы код был бы читабельнее, если код можно было бы разнести по разным файликам, обрамить его в регионы, вынести в какие-нибудь header (или как там у вас в С++)?


Хотя бы разбить на много функций.

W>Также я не увидел ни одного try...catch... finally, что очень и очень ужасно.


Это, как раз, не ужасно.
Во-первых, RAII избавляет от большинства finally. Это же С++.
Во-вторых, штатное исключение там — это исчерпание памяти. Но эта ситуация сама по себе настолько кровава, что нет существенной разницы между просто завершением программы и её вылетом с треском по terminate.
А все остальные исключительные ситуации — нештатные (например, отсутствие контрола с нужным идентификатором, или нулевой указатель из ком-объекта), и должны, максимум, покрываться ассертами и/или тестами.
Только если не стоит задача сделать программу устойчивой ко внутренним сбоям.
Перекуём баги на фичи!
Re: Оцените качество кода на С++
От: tapatoon  
Дата: 14.02.15 11:40
Оценка: +1
Здравствуйте, GhostCoders, Вы писали:

GC>Данный код был написан моим сотрудником. Мне этот код не нравится, но он мне отвечает что я субъективен и его код неплох.

GC>...

Доказывать бесполезно, введите code review. 2 месяца и свой код от чужого перестанете отличать. Испытано на себе.
Центр ИПсО Сил Специальных Операций
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.