Pull to refresh

Comments 10

Только не совсем ясен практический смысл сего действа

Неужели такой ужас делают в такой крутой компании как Позитивные технологии? Неужели компания не может купть готовый из коробки компонент Аспоус и не тратить время и деньги на изобретение квадратноколесных велосипедов?

Взяли готовые бесплатные библиотеки — в чём тут изобретение?

Это был мой первый вопрос к первой статье этого цикла ? Ценность этого решения и этих публикаций мне тоже мало понятна.
Если в деталях смотреть, то двойное преобразование выглядит ненадежным.

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

Да, я старовер и думаю, что хабр это не место для статей с описанием и инструкцией как подключить в проект бесплатные библиотеки. Вы даже толком не объяснили зачем подключать CodePages, просто так сказано на сайте либы, вот и все. Почему вы именно это выделели с сайта, а не что-то другое? Сайт RtfPipe я и сам могу прочитать.

В .NET Core пошли по пути облегчения фреймворка. Это коснулось и кодировок. Таким образом, все устаревшие таблицы для кодировок были выделены в отдельную библиотеку, оставив тем самым лишь определенные кодировки. Чтобы вновь иметь возможность получать кодировки по алиасу, необходимо зарегистрировать выделенные кодировки. Об этом можно прочитать, например, в доках к CodePagesEncodingProvider.


Так вот, по-дефолту в библиотеке используется кодировка windows-1252, т.о., чтобы не возникало исключения при работе с ней, нам необходимо зарегистрировать ранее упомянутого провайдера.


Также, хотелось бы отметить, что библиотеку System.Text.Encoding.CodePages нет необходимости подключать как нугет-пакет начиная с .NET Core 3.0, т.к. ее добавили во фреймворк. Почему это было сделано, можно прочитать здесь

Большое спасибо за объяснение!
Честно говоря, когда я разбирался с данной библиотекой, я так глубоко не копал, и вопрос кодировок не изучал — стояла задача как можно скорее сделать что-то, что будет работать.
Ваш комментарий позволил ответить на вопрос "почему так, а не иначе".
Вообще, благодаря таким комментариям, начинаешь ценить хабр еще больше)

А откуда у Вас информация, что "такой ужас" делают в Позитивных технологиях?
Я в Позитивных технологиях не работаю, Вы, по всей видимости, тоже (иначе вопрос не был бы задан), но упрекаете действительно крутую компанию в строительстве "квадратноколесных велосипедов"? Как-то это не хорошо — единственным криворуким разрабом являюсь я, и мне крайне не хотелось бы, что бы мои личные косяки и "неоптимальные" решения ассоциировались с какой-либо компанией.
Более того, приведенный в данной статье, равно как и в другой моей статье, код в том виде, в котором его видят читатели, в компании, сотрудником которой я являюсь, не используется. Иначе, это было бы, как минимум, не этично по отношению к работодателю предоставлять в открытый доступ результат, полученный в течении рабочего дня.


А теперь, по существу. Я думаю, никто не будет оспаривать тот факт, что существуют разные it-компании, в которых также реализуются разные проекты как по задачам, которые они призваны решать, так и по подходу к разработке. Где-то, менеджеры жестко придерживаются скрама, почти каждая строчка кода проходит код-ревью, активно пишется документация, а архитектура будущего решения планируется несколько месяцев. Но есть и другие компании, которые решают не такие глобальные задачи, которые не стыдятся "говнокодинга", забивают на документацию и архитектуру, но "выкатывают" свои продукты в очень короткие сроки. Можно долго спорить и осуждать второй тип компаний, но раз они до сих пор на плаву и приносят прибыль, то такая бизнес-модель, как минимум, имеет право на существование.
А теперь, представьте, что Вы работает в такой компании (ни в коем случае не буду говорить, что компания, в которой я работаю, относится ко второму типу). И Вам поставили задачу достать текст из текстовых файлов и структурировать его определенным образом. При этом, вы знаете примерное содержание документов, которые вы будете обрабатывать, потому что все эти документы однотипные (документы, например, скачиваются с сайтов гос органов). Задача должна быть решена в максимально короткие сроки (в таких компаниях всегда так), а закупка специализированного софта, как минимум, здорово сдвинет дату релиза: я пока не встречал ни одной компании, где хотелка работника, требующая проведения процедуры закупки, удовлетворялась хотя бы в течении рабочей недели. А так как речь идет о покупке продуктов Aspose, цены на которые начинаются от 2999$ встает вопрос о целесообразности приобретения такого продукта для решения далеко не самой трудной (естественно в глазах менеджмента) задачи.
В результате, разработчик должен будет подготовить обоснование необходимости приобретения такой библиотеки, пободаться с менеджерами, утвердить решение, только после чего запуститься бюрократическая машина, чтобы произвести покупку данного софта. В результате, с момента "мне надо" до момента "я начинаю использовать библиотеку", может пройти реально ощутимый промежуток времени.
В чем ценность моего решения? В том, что получать xml из rtf вы можете уже сегодня. В результате, вы можете:


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

Вместе с тем, не могу не отметить тот факт, что в каждой из своих статей я обращаю внимание на то, что:


  1. Найденное решение является бесплатным (непонятно, зачем после этого говорить, что платное решение лучше и упрекать в отказе от его использования — очевидно же, что, если можно было бы использовать годную платную либу — ее использовали бы).
  2. Решение является плодом "костылезации" и представляет собой велосипед.

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

Вы правы, я невнимательно посмотрел ваш профиль и вашу подписку на Позитивные технологии принял за ваше место работы. Приношу извинения.


Что касается самого решения, то я сам трижды обосновывал покупку аспоуса и ещё много раз других покупаемых вещей. Ведь все дело в экономике. Возьмите вашу зп на руки и помножте на 1,5 — это будет ваша себестоимость для компании. Так можно посчитать, сколько денег (только денег, а не времени) вы потратили на это решение. А ещё и наверное время тимлида. По опыту, умножьте как минимум на ещё на 2, столько вы ещё потратите на исправление ошибок и доработки. А ещё вы говорили, что у вас в компании это не уникальное решение, значит вы постоянно тратите время на поиски того, как связать друг с другом разные бесплатные решения для работы с документами.
Что касается времени, то у аспосе есть ограничения на использование до покупки или триал, и на вашу задачу это бы никак не повлияло, вы могли бы купить позже. С момента перевода денег на расчетный счёт диллера в России до получения ключа — сутки.
Цену вы неправильно нашли, это цена за все продукты, вам же надо всего два: Ворд и Ексель, они по отдельности идут.
Я верю в то, что вы хотите как лучше, просто не всегда вся картина видна, и часто купить готовое дешевле во всех смыслах.

Sign up to leave a comment.

Articles