Здравствуйте, мыщъх, Вы писали:
М>>>хочу сказать, что первый код я читаю быстрее второго, т.к. банально меньше движений глазами. Т>>А понимаешь что он делает с какой скоростью? М>понимаю, конечно. пускай не в терминах книжных цен, но в этом месте как раз ни цен, ни книг и быть не должно, т.к. идет подсчет элементов по критерию. каких именно элементов -- зависит от контекста.
Просто подсчёт чего то без контекста не несёт смысловой нагрузки. Надо понять какая задача тут решается, а не просто "считаем циферки".
Т>> Прочитать мало, надо ещё правильно его распарсить. Т>> А когда каша на экране то куда проще пропустить какую нибудь деталь. М>там нечего пропускать. код читается влет.
Я такое обычно переформатирую в читабельный вид перед тем как браться читать.
М>и писал его выдающийся человек у которого есть чему поучиться.
У тебя когда то тоже можно было чему поучиться. Теперь же, увы.
М>>>главное -- вместить единицу смыслового блока на экран. Т>>Чего? Тебе за единицы блоков которые влазят на экран платят что ли? inverse-индусский код? М>мне платят фиксированную зарплату вообще-то.
Тебе её платят за "вместить единицу смыслового блока на экран" или за работающий, понятный и поддерживаемый код?
Впрочем ты ж помнится сам говорил что в production код не пишешь.
Здравствуйте, Философ, Вы писали:
Ф>Почему? Ф>блин, неужели это так сложно, долбануть лишний раз энтер, или пробел после запятой?
Это нужно делать тулом а не поднимать вой.
Ф>особенно усложняет жизнь линк: люди иногда просто мозгодробительные вещи иногда пишут. Ф>блин, у меня вот это
Здравствуйте, Трололоша, Вы писали:
Т>Здравствуйте, мыщъх, Вы писали:
Т>Просто подсчёт чего то без контекста не несёт смысловой нагрузки. Надо понять какая задача тут решается, а не просто "считаем циферки".
это только в первом классе задачки на конкретных примерах. у маши была одна книга, а у вовочки две. потом книги превращаются в a*x^2 + b*x + c = 0.
или вы хотите сказать, что если магазин начнет торговать не только книгами, но и дисками, то половину кода придется переписывать? ну-ну...
какая задача решается я уже писал. реально код считает кол-во элементов, удовлетворяющих критерию. в нем нет ничего специфичного для книг.
М>>там нечего пропускать. код читается влет. Т>Я такое обычно переформатирую в читабельный вид перед тем как браться читать.
а потом diff'ы с ума сходят, когда пытаешься сравнить две версии одного и того же файла.
Т> Тебе её платят за "вместить единицу смыслового блока на экран" Т> или за работающий, понятный и поддерживаемый код?
к моему коду претензий нет. работает на куче платформ и живет своей жизнью.
Т>Впрочем ты ж помнится сам говорил что в production код не пишешь.
я говорил, что не девелопер в том смысле, что работаю в ресерче. в продакшен пишу, конечно.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Ф>функциональный стиль я читаю и понимаю хуже (медленнее), чем императивный.
Функционально здесь задан исключительно предикат, а он и есть функция. Способы задавать его иначе, в частности, через объекты, неестественны и обычно обусловлены ограничениями ЯП.
Что касается функции, лучше Криса мне не написать:
кошмар. немедленно учить ... программирование. извините, но это код на бейские. потому что только на бейсике повторное использование кода не предусматривалось в принципе (имеется ввиду ранний бейскик). повторяю еще раз -- данный код не имеет никакой "книжкой" специфики и может считать хоть огурцы, хоть пятна на солнце.
Только слово "кошмар" я бы написал с большой буквы и добавил после него !!!!111
Здравствуйте, vdimas, Вы писали:
SV.>>Во-первых, название функции, может быть? Во-вторых, давайте на каждый чих по функции будем заводить.
V>Это ни разу не смертельно.
Когда у вас большой проект, и в нем 100500 разкопипащенных функций по суммированию 1) книжек дороже заданной суммы; 2) огурцов; 3) пятен на солнце, это-таки смертельный номер.
Здравствуйте, Философ, Вы писали:
C>>Я также могу быть уверен, что добавление внутрь тела цикла оператора continue не сломает логику перебора (как будет в варианте с while). Ф>continue в этом цикле (да и вообще, в таких циклах) не к месту — цикл здесь служит конкретной цели.
Не очевидно. В один прекрасный момент мы решаем, что текущий элемент нам больше не интересен, и надо перейти к следующему. Или мы пишем сложное условие фильтрации и, чтобы не городить монструозное выражение с ?: или аналогами, разбиваем его на несколько if (…) continue, после которых идёт собственно обработка.
C>> а r_eip ещё и константой. Ф>??
for (…)
{
const long r_eip = GetEventEa();
…do something…(r_eip);
}
Ф>[…] я не знаю возможностей этого скриптового языка, поэтому не стал это предлагать.
Ой, а я не заметил, что это скриптовый язык — выше по треду был C++ и тэгом [ccode] оформлено.
В случае доморощенного скриптового языка локальных переменных в цикле и в теле цикла может принципиально не быть. Соображение о continue остаётся.
Здравствуйте, мыщъх, Вы писали:
М>какая задача решается я уже писал. реально код считает кол-во элементов, удовлетворяющих критерию. в нем нет ничего специфичного для книг.
Вообще то изначально обсуждали примеры форматирования кода.
М>>>там нечего пропускать. код читается влет. Т>>Я такое обычно переформатирую в читабельный вид перед тем как браться читать. М>а потом diff'ы с ума сходят, когда пытаешься сравнить две версии одного и того же файла.
А всё, есть только переформатированная версия, которая пойдёт в репу с комментом "codestyle fixed"
Т>> Тебе её платят за "вместить единицу смыслового блока на экран" Т>> или за работающий, понятный и поддерживаемый код? М>к моему коду претензий нет. работает на куче платформ и живет своей жизнью.
Кто кроме тебя его правит?
Здравствуйте, abibok, Вы писали:
A>Все остальные средства, как то вордовский документ с описанием стандарта, уговоры и проработки нарушителей на митингах, споры о правильный и неправильных стандартах — не эффективны.
А у нас как то все без спецсредств единого стиля более менее придерживаются. Приходится только новичков какое то время поправлять.
... << RSDN@Home 1.2.0 alpha 5 rev. 61 on Windows 7 6.1.7601.65536>>
Здравствуйте, Трололоша, Вы писали:
Т>Здравствуйте, мыщъх, Вы писали:
Т>>>Я такое обычно переформатирую в читабельный вид перед тем как браться читать. М>>а потом diff'ы с ума сходят, когда пытаешься сравнить две версии одного и того же файла. Т>А всё, есть только переформатированная версия, которая пойдёт в репу с комментом "codestyle fixed"
а следом за ней пойдет ваше мужкое достоинство. лесом. извините за прямоту, но случайно не на мусорную корзину работаете? вполне типичная ситуация. вася написал файл foo.c, я его форкнул в bar.c и добавил кучу полезного функционала, затем вы переформатировали foo.c с комментом "codestyle fixed", попутно пофиксив пару багов и добавив тройку новых фич. и тут вася решил смержить foo.c и мой bar.c, т.к. ему мои плюшки по вкусу. вася делает diff, слегка охреневает от ваших комментов и потому делает бранч baz.c, где мержит свой старый foo.c и мой независимый bar.c, после чего вам нужно смержить baz.c, чтобы внести ваш багфикс и ваши фичи.
М>>к моему коду претензий нет. работает на куче платформ и живет своей жизнью. Т>Кто кроме тебя его правит?
"живет своей жизнью" подразумевает, что код правится, развивается, форкается и все это происходит без моего участия. при этом у нас происходит перекрестное опыление. я мержу лучшие фичи из их бранчей, а они из моих. некоторые фичи "размазаны" по всему коду. например, поддержка работы с файлами неограниченного размера.
если вы переформатируете мой код и у вас окажутся права на коммит, то я пожму плечами и сделаю свой форк, где у вас уже прав не будет и дальше дело за народом за каким из двух бранчей следовать.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>вася написал файл foo.c
Если он его написал в том стиле, который ты тут приводил то сразу после обнаружения foo.c Вася получит скипидарную клизму, чтоб больше так не делал и следовал принятым code standards. После чего будет назначен виноватый (скорее всего сам Вася) и никто ничего не будет форкать пока код не будет исправлен. Если он кому то вдруг прямо щас надо — то он отрепортит лиду/PMу о том, что Вася насрал в репу и будет ждать исправления.
М>если вы переформатируете мой код и у вас окажутся права на коммит, то я пожму плечами и сделаю свой форк, где у вас уже прав не будет и дальше дело за народом за каким из двух бранчей следовать.
У вас code guidelines вообще есть? Или каждый хреначит как ему больше нравится?
Здравствуйте, Трололоша, Вы писали:
Т>Здравствуйте, мыщъх, Вы писали:
М>>если вы переформатируете мой код и у вас окажутся права на коммит, то я пожму плечами и сделаю свой форк, где у вас уже прав не будет и дальше дело за народом за каким из двух бранчей следовать. Т>У вас code guidelines вообще есть? Или каждый хреначит как ему больше нравится?
есть, конечно. и одно из самых главных правил -- не править код из эстетических соображений. вообще, если правку можно внести, а можно и не вносить, то решение автоматически принимаются в пользу второго варианта и правка не вносится. а у вас как-то иначе?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>вася написал файл foo.c, я его форкнул в bar.c и добавил кучу полезного функционала, затем вы переформатировали foo.c с комментом "codestyle fixed", попутно пофиксив пару багов и добавив тройку новых фич. и тут вася решил смержить foo.c и мой bar.c, т.к. ему мои плюшки по вкусу. вася делает diff, слегка охреневает от ваших комментов и потому делает бранч baz.c, где мержит свой старый foo.c и мой независимый bar.c, после чего вам нужно смержить baz.c, чтобы внести ваш багфикс и ваши фичи.
Жесть! Ну и бардак.
М>при этом у нас происходит перекрестное опыление. я мержу лучшие фичи из их бранчей, а они из моих. некоторые фичи "размазаны" по всему коду. например, поддержка работы с файлами неограниченного размера.
О! Практикуете беспорядочные половые связи в извращенной форме? Я кажется понял — когда вы говорите о сексе с негритянками, вы на самом деле имеете в виду ваш процесс разработки с неграми-кодерами
Здравствуйте, мыщъх, Вы писали:
М>>>если вы переформатируете мой код и у вас окажутся права на коммит, то я пожму плечами и сделаю свой форк, где у вас уже прав не будет и дальше дело за народом за каким из двух бранчей следовать. Т>>У вас code guidelines вообще есть? Или каждый хреначит как ему больше нравится? М>есть, конечно. и одно из самых главных правил -- не править код из эстетических соображений. вообще, если правку можно внести, а можно и не вносить, то решение автоматически принимаются в пользу второго варианта и правка не вносится.
Какой бардак. Где ты говоришь работаешь сейчас?
М>а у вас как-то иначе?
Разумеется. Есть единый стиль, в котором все пишут. Он не очень чтобы строгий, но основное форматирование определено жёстко и обязательно к исполнению.
> есть, конечно. и одно из самых главных правил -- не править код из эстетических соображений. вообще, если правку можно внести, а можно и не вносить, то решение автоматически принимаются в пользу второго варианта и правка не вносится. а у вас как-то иначе?
Когда привыкаешь к нормальному форматированию, то пишешь сразу так что потом не нужно никаких правок из эстетических соображений. Единственный момент, это когда обрабатываешь код после того как устоялась и отлажена структура объектов. В этот момент код доводится до конечного вида, вносятся контрольные блоки, код окомментаривается. Вот тут приходится его немного менять из соображений удобочитаемости и понятности.
И главное, программист должен гордиться своей работой, а как можно гордиться неотформатированным кодом?
Здравствуйте, SV., Вы писали:
SV.>>>Во-первых, название функции, может быть? Во-вторых, давайте на каждый чих по функции будем заводить. V>>Это ни разу не смертельно.
SV.>Когда у вас большой проект, и в нем 100500 разкопипащенных функций по суммированию 1) книжек дороже заданной суммы; 2) огурцов; 3) пятен на солнце, это-таки смертельный номер.
В процессе адекватного развития проекта зачастую так и происходит: локальные наколенные "велосипеды" медленно но верно заменяются хорошо отлаженным повторно-используемым кодом.
Здравствуйте, vdimas, Вы писали:
SV.>>>>Во-первых, название функции, может быть? Во-вторых, давайте на каждый чих по функции будем заводить. V>>>Это ни разу не смертельно.
SV.>>Когда у вас большой проект, и в нем 100500 разкопипащенных функций по суммированию 1) книжек дороже заданной суммы; 2) огурцов; 3) пятен на солнце, это-таки смертельный номер.
V>В процессе адекватного развития проекта зачастую так и происходит: локальные наколенные "велосипеды" медленно но верно заменяются хорошо отлаженным повторно-используемым кодом.
...и вот мы уже написали свой хорошо отлаженный повторно-используемый STL.
Ладно бы еще, если б именно STL, как реализация, не нравился и переписывался. Меня вот он чисто эстетически убивает, в отличие от FCL (наконец-то онтопик!). Но оформлять условный подсчет количества именно книжек, да еще по неуниверсальному предикату, в отдельную функцию... Короче, многое я узнал про некоторые местные ники.
Здравствуйте, SV., Вы писали:
SV.>Ладно бы еще, если б именно STL, как реализация, не нравился и переписывался. Меня вот он чисто эстетически убивает, в отличие от FCL (наконец-то онтопик!). Но оформлять условный подсчет количества именно книжек, да еще по неуниверсальному предикату, в отдельную функцию...
Это не прикол, вы на полном серьезе? В школе проблем не было, когда решали задачу "было у вас 5 яблок, забрали 2"? Из себя при этом не выходили, типа как так яблоки забирают?