Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Abyx, Вы писали:
A>>к тому же там для сообщений об ошибках используется std::string, за что я на них очень зол
M>Расжуйте , любопытно отчего?
там есть структура torrent_status — состояние торрента,
а у нее член std::string error; — текст ошибки, если торрент остановился из за ошибки.
(кода ошибки нету, только bool paused и string error)
выглядит этот текст например так:
Access denied: path\to\file
а в не-английской винде он выглядит так
Доступ запрещен: путь\к\файлу
^cp1251 ^cp866
т.е. разные части std::string в разных кодировках
разумеется если в пути к файлу есть например еще и китайские символы, то все совсем печально
Здравствуйте, 11molniev, Вы писали:
1>На мой взгляд код 7-zip
Это он так маскируется. А когда начинаешь его использовать как библиотеку начинает вылазить всякое:
— документация отсутствует в принципе;
— ленивые потоки поддерживаются очень и очень ограниченным количество архиваторов (архиватор здесь и далее — модуль библиотеки) (split и доступаторы к образам файловых систем), остальные приходится тупо извлекать, хотя казалось бы;
— открытие многотомного 7-zip архива и вообще любого архива засунутого в split происходит через одно место, в общем коде "либы" этого нет, приходится писать-копипастить "по мотивам";
— если сходу реализовать у себя интерфейс необходимый для многотомныех архивов, отвалится кто-то из однотомных;
— если вдруг понадобилось узнать время файла в архиве и его тип (универсальное или глобальное), прийдется внимательно читать код каждого конкретного архиватора, а для zip'а, который может сохранять время в виде FAT-, NTFS- и UNIX-времени писать толпу триков, потому что 7zip "услужливо" приводит время к "нужному" нам виду и его приходится потом возвращать в исходный вид;
— и еще что-то, что уже забылось.
Нет, конечно, спасибо автору, за то что выполнил столько грязной работы и собрал кучу разношерстного опенсор-г*на в одну библиотеку, но назвать это хорошим кодом — слишком смело.
1>и nginx хороший
Я как-то специально выделил час на то чтобы осмотреть код и составить поверхностное впечатление о проекте (вопрос интеграции с ним тогда прямо не стоял, но намечался). Итог: "ничё не понятно, многа буков, где спеки".
Если уж приводить пример хорошего, то в опенсорсе это OpenSSL и ICU: нормальное качество кода, хорошо проработанное API.
Здравствуйте, artem.komisarenko, Вы писали:
AK>Здравствуйте, 11molniev, Вы писали:
1>>На мой взгляд код 7-zip
AK>Это он так маскируется. А когда начинаешь его использовать как библиотеку начинает вылазить всякое: AK>- документация отсутствует в принципе; AK>- ленивые потоки поддерживаются очень и очень ограниченным количество архиваторов (архиватор здесь и далее — модуль библиотеки) (split и доступаторы к образам файловых систем), остальные приходится тупо извлекать, хотя казалось бы; AK>- открытие многотомного 7-zip архива и вообще любого архива засунутого в split происходит через одно место, в общем коде "либы" этого нет, приходится писать-копипастить "по мотивам"; AK>- если сходу реализовать у себя интерфейс необходимый для многотомныех архивов, отвалится кто-то из однотомных; AK>- если вдруг понадобилось узнать время файла в архиве и его тип (универсальное или глобальное), прийдется внимательно читать код каждого конкретного архиватора, а для zip'а, который может сохранять время в виде FAT-, NTFS- и UNIX-времени писать толпу триков, потому что 7zip "услужливо" приводит время к "нужному" нам виду и его приходится потом возвращать в исходный вид; AK>- и еще что-то, что уже забылось.
AK>Нет, конечно, спасибо автору, за то что выполнил столько грязной работы и собрал кучу разношерстного опенсор-г*на в одну библиотеку, но назвать это хорошим кодом — слишком смело.
Ну я имел в виду не sdk, а сам 7-zip. Хотя если честно, я не пробовал особо его использовать — просто заинтересовался и поверхностно познакомился с кодом.
1>>и nginx хороший
AK>Я как-то специально выделил час на то чтобы осмотреть код и составить поверхностное впечатление о проекте (вопрос интеграции с ним тогда прямо не стоял, но намечался). Итог: "ничё не понятно, многа буков, где спеки".
Ну там везде все свое и на первый взгляд, да, разобратся тяжеловато. Но в целом сам код вопросом не вызывает. Я в свое время интегрировал))
AK>Если уж приводить пример хорошего, то в опенсорсе это OpenSSL и ICU: нормальное качество кода, хорошо проработанное API.
По поводу OpenSSL согласен, как то не вспомнил. С ICU не сталкивался.
Здравствуйте, Vzhyk, Вы писали:
V>On 12.01.2013 14:41, Аноним 208 wrote:
>> В ИТ около 15 лет, был ~6 конторах, ни разу не слышал чтобы хоть раз >> чей-нибудь код называли хорошим, только и слышно здесь говно, там говно. V>Видел. Правда это был код американской конторы, хоть программисты и в V>Минске были и в Америке. Просто в том коде поучаствовал и Скотт Майерс.
Эпично. Самому вместе с ним не довелось работать?
Здравствуйте, Vzhyk, Вы писали:
>> В ИТ около 15 лет, был ~6 конторах, ни разу не слышал чтобы хоть раз >> чей-нибудь код называли хорошим, только и слышно здесь говно, там говно. V>Видел. Правда это был код американской конторы, хоть программисты и в V>Минске были и в Америке. Просто в том коде поучаствовал и Скотт Майерс.
Ты про тот проект, что я думаю? Ну не скажи, не скажи. Местами там перебор.
On 15.01.2013 3:07, ambel-vlad wrote:
> Ты про тот проект, что я думаю? Ну не скажи, не скажи. Местами там перебор.
Ты знаешь у кого спросить мыло Скотта и можешь пообщаться с ним на эту
тему.
А так да, переусложнение там налицо, но код приличный был. Кстати, и
после и до я насмотрелся такого местного кода (русского, беларуского),
что понял, тот код был идеален.
А русский код — индусы отдыхают. Пример, парсить RIFF WAV шапку
сдвигами. Или другой пример, заюзать патерн визитор, но всю логику
программы пустить в обход этого патерна. И это программисты не из
Урюпинска были — это питерские и с разных контор.
А>Если знаете какой-нибудь опенсорс или есть свой код в интернете пришлите ссылочку посмаковать, хоть раз взглянуть на это чудо которое не назовут говном.
Java Collections, Guava, Spring Framework 3.x, ...
Здравствуйте, Аноним, Вы писали:
А>Если знаете какой-нибудь опенсорс или есть свой код в интернете пришлите ссылочку посмаковать, хоть раз взглянуть на это чудо которое не назовут говном.
Во FreeBSD можно посмотреть исходники базовых утилит вроде cp/ls/rm и т.п. Не помню, как оно там правильно зовется. То ли world, то ли все же нет. Лет 7-8 назад там все было очень и очень хорошо. Смотреть именно из FreeBSD, если они реализацию на GNU-шную еще не поменяли.
Я в те исходники случайно залез. На линуке rm отказался удалять файл больше 4Гб, писал "cannot stat file". Я очень удивился еще, ведь там вроде всего пара системных вызовов, которые на размер файла не завязаны. Полез смотреть в код. В BSD там все было аккуратно, красиво и кратко. В GNU rm началось с какой-то кучи больших и страшных макросов, я испугался и все закрыл достаточно быстро.
Здравствуйте, Аноним, Вы писали:
А>В ИТ около 15 лет, был ~6 конторах, ни разу не слышал чтобы хоть раз чей-нибудь код называли хорошим, только и слышно здесь говно, там говно. А>Даже нет у него в отличие от говнокода названия своего, там вареньекод, медокод. А>Если знаете какой-нибудь опенсорс или есть свой код в интернете пришлите ссылочку посмаковать, хоть раз взглянуть на это чудо которое не назовут говном.
Любой код кроме своего, априори — говно
On 21.01.2013 10:57, Kernan wrote:
> Можешь пояснить как это?
Не могу, ибо код проприетарный. С так да, чел зачитывал 44 байта (что
уже неверно в общем случае) и разбирал их сдвигами. Когда я это увидел,
у меня глаза округлились. Сейчас этот чел вполне успешно работает
программистом где-то в нерезиновой.
Здравствуйте, Vzhyk, Вы писали:
V>On 21.01.2013 10:57, Kernan wrote:
>> Можешь пояснить как это? V>Не могу, ибо код проприетарный. С так да, чел зачитывал 44 байта (что V>уже неверно в общем случае) и разбирал их сдвигами. Когда я это увидел, V>у меня глаза округлились. Сейчас этот чел вполне успешно работает V>программистом где-то в нерезиновой.
Да я просто про подход спрашивал. Как это разбирать сдвигами? Можешь псевдокод привести? И как это правильнее сделать до кучи. Никакой конкретики по проекту не надо. Просто я видел разные способы разбора бинарных данных и хочется пополнить арсенал .
On 21.01.2013 11:26, Kernan wrote:
> Да я просто про подход спрашивал. Как это разбирать сдвигами? Можешь > псевдокод привести? И как это правильнее сделать до кучи. Никакой > конкретики по проекту не надо. Просто я видел разные способы разбора > бинарных данных и хочется пополнить арсенал .
formatTag+=(unsigned char)chBuff[l]*1<<8
что было переделано на:
formatTag+=(unsigned char)chBuff[l]*256
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, 11molniev, Вы писали:
1>>Перефразирую свой вопрос — есть ли конкрентые примеры, того, что Вы считаете хорошим кодом, где с ними можно ознакомится?
A>да что-то не припоминаю. A>в LLVM есть много хорошего, но там запрещены исключения,
Есть там такие говноместа, что по рукам следует бить тапками много раз.
Например, помните вызова типа clang -march=help что печатают список процессоров?
Это реализовано через анус: когда инициализируется процессор, то вместо собственно инициализации архитектуры help
оно печатает список процессоров в std::cerr и завершает работу.
То есть если вы захотите убийцу IDA с гуем, которой даёт выбрать процессор то во-первых хрен вы получите список процессоров не через задницу, во-вторых если в .ini файле вам введут "help" как тип процессор, то прога завалиться если вы специально не будете проверять на то, что там передается "help".
Меня никто не убедит что getFeatureBits'у простительно писать список фич в cerr. getFeatureBits() за это не должно отвечать.
Re: А вы видели код не говно ?
От:
Аноним
Дата:
29.01.13 09:06
Оценка:
Здравствуйте, Аноним, Вы писали:
А>В ИТ около 15 лет, был ~6 конторах, ни разу не слышал чтобы хоть раз чей-нибудь код называли хорошим, только и слышно здесь говно, там говно. А>Даже нет у него в отличие от говнокода названия своего, там вареньекод, медокод. А>Если знаете какой-нибудь опенсорс или есть свой код в интернете пришлите ссылочку посмаковать, хоть раз взглянуть на это чудо которое не назовут говном.
видел, ребята из Ек.бурга пишут, очень оригинальные собственные реализации стандартных и допольнительных либ,
оригинальные аллокарторы и много всего прочего