LINUX.ORG.RU
решено ФорумTalks

Читая чужие исходники...


0

0

Кто что думает, когда читает чужие исходники? Например: Почему автор пишет все сам, когда есть готовые библиотеки? Почему он любит С строки в проекте на С++, когда есть std::string? Установка программы из сырцов - это пытки для мазохистов.

И еще...А вы что думаете, что думают о вашем коде?



Последнее исправление: LinuxUser-0x0 (всего исправлений: 1)
Ответ на: комментарий от DELIRIUM

std::wstring

ну всё равно же, приходит wchar_t*, выходит wchar_t*, всё через указатели делается

Uter
()
Ответ на: комментарий от sergv

Ага. А самый большие быдлокодеры - Бернштейн со студентами, Таненбаум со студентами... :-)

Ваш сарказм неуместен, мне очень жаль, что вы пытаетесь комментировать мои слова, не удосужившись их прочитать. Таненбаум как раз не быдлокодер, а ученый, который занимается исследованиями в области системного программирования. Быдлокодер - это тот, кто будет писать микроядро для запуска своей мегопрограммы для расчета зарплаты сотрудников предприятия, потому что Таненбаум, изучающий микроядра всю жизнь - старый глупый дурак, который нихрена не понимает в микроядрах.

Yasenfire
()
Ответ на: комментарий от drBatty

ГСМ, такое ГСМ...

Я рад, что вы признали свои недостатки. Теперь давайте думать как с ними бороться. Рекомендую начать с литературы, не относящейся непосредственно к программированию. Чем раньше вы перестанете быть поэтом, мечтающим о написании великой оды, и перейдете в разряд инженеров, способных решать практические задачи, тем больше денег вы принесете своему работодателю, получите сами, и в целом все будет гораздо лучше.

в итоге и получается тормозное УГ.

Например, одним из камней, которые вам придется миновать на пути к званию software engineer будет осознание того факта, что в большинстве случаев заказчику неважно, за какое время будет отрабатывать софт - одну секунду или пять (на самом деле, для него было бы не слишком принципиально, даже если бы задача выполнялась за час или полсуток). То, что по нажатию на кнопку все не делается «за***» моментально - можно и потерпеть, если благодаря этому не придется кормить в течение года малолетнего охламона, наворотившего кучу говна из указателей на строки с нулевым терминатором, и теперь являющегося единственным, кто может хоть как-то разгрести это убожество.

Yasenfire
()
Ответ на: комментарий от Yasenfire

> > > часто сой код работает быстрее, и жрёт меньше. Ведь мне знакомо ТЗ, а автору библиотеки - нет. Потому библиотеки пишут для сферического вакуума, и они _всегда_ хуже.

> > Свой код пишет социопат, которому наплевать на то, как будут поддерживать его проект, и который по определению хуже вникает в предметную область, чем автор библиотеки. Поэтому свой код пишут только индусы и быдлокодеры, и он _всегда_ хуже.

> Ага. А самый большие быдлокодеры - Бернштейн со студентами, Таненбаум со студентами... :-)

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

Что читаю - о том и пою.

Ладно, Таненбаума исключим... Просто так - объяснение слегка невнятно. Т.к. он со студентами еще и библиотеки пишет (первый слой цитат).

Бернштейн быдлокодером выходит все равно - у него и в qmail, и в DNS-овских тулзах многие функции системных библиотек переписаны в угоду специфичности задач и скорости работы.

sergv
()
Ответ на: комментарий от dmfd

Читаю

Мне стоит больших усилий убеждать его, что покомпонентная работа с векторами - зло (этот парень передаёт по отдельности массив компонент x, компонент y и т.д.), что thrust и stl иногда лучше указателей, что шаблоны лучше копипасты и т.д.

но не понимаю, как можно называть его профессиональным программистом.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Есть диплом программиста и стаж работы по написанию какой-нибудь системы учёта удоев козьего молока - человек формально профессиональный программист.

Нет того или другого - будь ты хоть Кнутом, Маккарти и Александреску в одном лице - формально ты любитель. Мы не о человеческих качествах сейчас говорим.

dmfd
()
Ответ на: комментарий от no-dashi

Тогда придется в этой структуре еще и длину строки хранить - получим лишнюю операцию разыменования указателя + ненужную трату памяти.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

У писателей драйверов и ядер может и нет других вариантов (как там обстоят дела не знаю).

В остальных местах использование в с++ pure с style является ни чем иным, как детектором неосилятора ООП, плюсов и стандартной библиотеки, велосипедиста и примата, не обладающего абстрактным мышлением. Вроде всё.

dmfd
()
Ответ на: комментарий от dmfd

У писателей драйверов и ядер может и нет других вариантов

Я не сильно ковырялся в исходниках модулей, но те, что ковырял, были человеческими - с нормальными null-terminated строками. Здесь как раз надо аккуратно работать - всякие идиотские структуры лучше не создавать.

В остальных местах …

Согласен: вот в последнем «драйвере», который я пытался заставить работать (похоже, «индусы» писали, т.к. с ПЗС-кой работать можно, но считать с нее данные не получается), библиотека написана на плюсах, но внутри - практически 100%-й С. Правда, чертовы обертки классов сильно мешали - пришлось по кусочкам выдирать данные и собирать их в почти новый продукт.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от dmfd

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от dmfd

Но, блин, даже если это не так, оптимизировать работу со строками - это в 95% кода настолько неправдоподобно глупо, что я склоняюсь к тому, что меня троллят.

dmfd
()
Ответ на: комментарий от Eddy_Em

Тогда придется в этой структуре еще и длину строки хранить - получим лишнюю операцию разыменования указателя + ненужную трату памяти.

ЗАЧЕМ МНЕ НУЖНО РАЗЫМЕНОВЫВАТЬ УКАЗАТЕЛЬ, ЭТО ТАК ДОРОГО! ЛУЧШЕ Я ЕЩЕ РАЗ ПРОЙДУСЬ ПО МАССИВУ ДЛЯ ПОИСКА НУЛЬ-ТЕРМИНАТОРА! STRNCAT, STRNCPY, MALLOC, FREE, SEGMENTATION FAULT! Я ОПЯТЬ ЗАБЫЛ ВЫДЕЛИТЬ ПАМЯТЬ ПОД НУЛЬ-ТЕРМИНАТОР. У МЕНЯ НЕТ ВРЕМЕНИ ЧТОБЫ РАЗБИРАТЬСЯ С С++, ЛУЧШЕ Я ЕЩЕ РАЗ СЭКОНОМЛЮ НА СПИЧКАХ И ИСПОЛЬЗУЮ С-СТРОКИ!

AptGet ★★★
()

Почему он любит С строки в проекте на С++, когда есть std::string?

Есть мнение, что примение готового решения ведет к подгонке проблемы под данное решение, а не к поиску онного. Зачем юзать std::string только как контейнер, если, например, активно не юзаются конкатенация и поиск?

x0r ★★★★★
()
Ответ на: комментарий от dmfd

Да пожалуйста. Я - не программист. И учить меня программировать не надо. Я решаю свои задачи методами, о которых наслышан и/или о которых (в т.ч. и здесь) мне подсказали. Могу и велосипед изобрести - лишь бы задачу решить.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от AptGet

Могу и сделать дебильный велосипед (структуру, в которой длина строки содержится наряду с самой строкой), но только если это будет оправдано: т.е. если определение длины строки происходит очень часто.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Я, вообще-то, тоже не программист. Но всё-таки предпочитаю немного думать головой и искать оптимальные пути, а не сводить всё к шапкозакидательству.

dmfd
()
Ответ на: комментарий от Eddy_Em

Да, а потом перегрузить оператор + для конкатенации и == для сравнения. Потом запилить всё это в шаблон.

dmfd
()
Ответ на: комментарий от dmfd

А я люблю сначала все обосрать, а потом сказать: «ну я же сразу говорил, что делать надо так-то»…

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от dmfd

Я «плюсы» вообще не использую. Так что, перегрузить операторы физически не смогу ☺

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от x0r

Зачем юзать std::string только как контейнер, если, например, активно не юзаются конкатенация и поиск?

Потому что C-строка - это реализация, а string - ее абстракция. Тому, кто мнит себя великим и бородатым системным программистом, надо ронять на пальцы томик Страуструпа, пока он не достигнет просветления и не начнет заниматься бизнес-логикой.

Yasenfire
()
Ответ на: комментарий от LinuxUser-0x0

Гентушники используют фреоны? Зачем?

Deleted
()
Ответ на: комментарий от Yasenfire

ООП головного мозга такое ООП. Продолжайте дальше клепать свои интирпрайз аппликухи на джабе и .net

x0r ★★★★★
()
Ответ на: комментарий от Miguel

Вообще, обычно так думает порядка 100% о 90%...

95% о 95%... В любых вопросах, о чем бы то ни было.)

chinarulezzz ★★
()
Ответ на: комментарий от x0r

Жаль, что существуют программисты, не знающие значения слова «абстракция», что под ним подразумевается и когда оно появилось.

Yasenfire
()

Почему автор пишет все сам, когда есть готовые библиотеки?

бывает так, что библиотека слишком жирна или бывает ресурсоёмкой, а необходима лишь одна-две функции... Бывает так, что алгоритм в библиотеке - не оптимальный для своей задачи. Бывает так, что библиотека тянет больше информации за собой, чем это сделает лишь пара функций...

А вы что думаете, что думают о вашем коде?

я для себя скриптую, мне пофигу)

chinarulezzz ★★
()
Ответ на: комментарий от Eddy_Em

Могу и сделать дебильный велосипед (структуру, в которой длина строки содержится наряду с самой строкой), но только если это будет оправдано: т.е. если определение длины строки происходит очень часто.

Разумный подход.

AptGet ★★★
()
Ответ на: комментарий от Deleted

А вы его не чувствуете? Не знаю, мне, например, доставяет удовольствие переписывать с нуля многие вещи.

AlexCones ★★★
()
Ответ на: комментарий от chinarulezzz

Насчет библиотек согласен: сам в одном велосипеде использую кучу библиотек лишь ради нескольких функций. Некоторые библиотеки вполне можно было бы повыкидывать из зависимостей (например, ту же лептонику: в ней алгоритмы очень уж неоптимизированы).

Eddy_Em ☆☆☆☆☆
()

Рацпредложение. Давайте, перед тем как что-то писать здесь, каждый укажет, какое отношение он имеет к программированию: есть ли диплом (или пока только зачётка) профильного ВУЗа, призы на олимпиадах по программированию и т.д. Интересно распределение мнений именно по этому признаку.

А то вдруг левые люди вроде меня испортят мнение молодёжи об индустрии.

dmfd
()
Ответ на: комментарий от Eddy_Em

Меня в детстве покусал перфекционизм) Один раз писал бота на питоне и оптимизировал-оптимизировал-оптимизировал пока не заёпся) Когда энтузиазм вернулся - решил написать на руби, чтоб проверить скорость работы. Оказалось что руби выигрывал. Оптимизировал на питоне. Питон оказался быстрее. Оптимизировал на руби. Руби выигрывал. Опять питон ковырял. Питон выигрывает. Ковыряю руби - руби выигрывает. Спустя недельку окончательно заёпся, но зато понял как часто библиотеки могут не подходить под задачу, и не нужно стесняться велосипедить (предварительно сверив, конечно).

chinarulezzz ★★
()
Ответ на: комментарий от dmfd

есть ли диплом

Эта бумажка не гарантирует вообще ничего.

призы на олимпиадах по программированию

Это тоже не совсем то, но ближе.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от chinarulezzz

А вот если бы сразу написал на сишечке с null-terminated строками, то получил бы превосходный результат с первого раза.

dmfd
()
Ответ на: комментарий от Eddy_Em

Это и не должно ничего гарантировать. Я же говорю, мне интересны именно мнения людей с специальным образованием, вне зависимости от их таланта.

dmfd
()
Ответ на: комментарий от dmfd

есть ли диплом (или пока только зачётка) профильного ВУЗа, призы на олимпиадах по программированию

Гм, интересно, какое это отношение имеет к зарабатыванию денег программированием.

baverman ★★★
()
Ответ на: комментарий от Eddy_Em

Тогда придется в этой структуре еще и длину строки хранить - получим лишнюю операцию разыменования указателя + ненужную трату памяти.

Можно всё хранить в одном куске памяти: и размер и саму строку тогда лишнего разыменования не будет, только добавится смещение.

Begemoth ★★★★★
()
Ответ на: комментарий от baverman

Хорошо, мнение всех людей, которые уже больше года зарабатывают одним только программированием.

dmfd
()
Ответ на: комментарий от x0r

Но ведь stl написана в декларативно-функциональном стиле!

Yasenfire
()
Ответ на: комментарий от Eddy_Em

еще и длину строки хранить - получим лишнюю операцию разыменования указателя + ненужную трату памяти

Фортовские со счётчиком строки использовать хочешь ты.

Xenesz ★★★★
()
Ответ на: комментарий от dmfd

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

Вообще-то сначала нужно что-то сделать, а потом уже оптимизировать критические 5-10% кода. Главное, не допускать преждевременной пессимизации.

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.