Pull to refresh
33
0
Андрей Тарицын @Taritsyn

Веб-разработчик

Send message
Как разработчик Bundle Transformer, я хочу отметить, что обработка кода (трансляция, минимизация, преобразование относительный путей в абсолютные (только для CSS-кода) и объединение кода в один файл) производится только при первом обращении к бандлу. Затем обработанный код кэшируется в памяти сервера и все остальные запросы уже читают код из кэша. Также стоит отметить, что предварительно минимизированные файлы (файлы с расширениями *.min.js and *.min.css) в Bundle Transformer не подвергаются повторной минимизации, что существенно экономит ресурсы сервера.

Ваше замечание по поводу синтаксического анализа кода справедливо лишь отчасти. В некоторых модулях-минимизаторах Bundle Transformer (BundleTransformer.MicrosoftAjax, BundleTransformer.Yui, BundleTransformer.Closure и BundleTransformer.UglifyJs) можно включить синтаксический анализ кода средствами самого минимизатора. Для этих целей служит свойство severity. Единственный недостаток текущей реализации в том, что предупреждения выводятся c помощью exception`ов. Но в будущих версиях я планирую переписать данный механизм под использование логгеров, т.е. сделать его похожим на систему вывода ошибок и предупреждений из другого моего проекта Web Markup Minifier.
Честно говоря, с haXe я не работал, поэтому ничего о нем сказать не могу. Как я понял, haXe – это самостоятельный язык программирования со своим собственным синтаксисом. TypeScript же – это надмножество JavaScript, т.е. любой JavaScript-код является валидным TypeScript-кодом, что существенно облегчает перенос на него старого JavaScript-кода. Если CoffeeScript можно назвать скриптовым Sass, то TypeScript – это скриптовый LESS.
Главная фишка TypeScript – это статическая типизация. При написании больших JavaScript-приложений на TypeScript отпадает необходимость в написании простейших юнит-тестов.

Сейчас про TypeScript написано огромное количество однотипных статей, прочитав которые возникает мысль, что TypeScript – это клон CoffeeScript от Microsoft. Но на самом деле это не так.

Пожалуй, самой лучшей статьей про TypeScript является статья Николаса Закаса «Thoughts on TypeScript». Для более глубоко понимания языка рекомендую прочитать спецификацию.
Razbezhkin, данная статья – это просто описание релиза. Более подробную информацию о Bundle Transformer Вы можете узнать из статей «Bundle Transformer – модульное расширение для ASP.NET Bundling and Minification» и «Вышел Bundle Transformer 1.6.2 или что изменилось за полгода?».
Вопрос к организаторам: «Под черновиком презентации подразумевается только файл Power Point или еще нужно предоставить закадровый текст?».
Спасибо! Честно говоря, не знал об этой возможности.
У Chirpy есть один существенный недостаток: чтобы обработать файл минимизатором нужно добавить префикс к расширению, что создает проблемы при работе с некоторыми менеджерами ресурсов. Мне больше нравится подход, используемый в VS-расширении Minifier, когда минимизатор привязывается к файлу с помощью свойства Custom Tool.

Кстати, под WebMatrix есть хороший аналог Chirpy под названием OrangeBits Compiler.
Спасибо, но я уже пробовал все перечисленные продукты и Bundle Transformer писал с оглядкой на них.
Конечно, не стоит. Вообще, если Вы хотите нанять хороших разработчиков, то Вам следует прочитать статью «Ошибка при поиске кандидатов» и взять на вооружении описанные рекомендации.
Не нужно путать комментарии с текстом статьи.
К сожалению, а может быть и к счастью, с представителями компании пообщаться не удалось.
Я, кстати, компанию эту не ругал, а просто привел факты и указал на халатность их HR-службы.
Сейчас на западе популярен альтернативный, но похожий на БЭМ подход – SMACSS.
Angelina_Joulie, строка, идентифицирующая версию bundle`а, меняется не при сборке проекта, а при изменении файлов, входящих в bundle. Без использования этой строки работа B/M бессмысленна, т.к. номер версии позволяет правильно управлять кэшем браузера.

Как я понимаю, Вы хотите использовать B/M и Bundle Transformer для оффлайнового HTML5-приложения? Мне кажется, что в случае оффлайнового приложения Вам лучше использовать предварительную минимизацию файлов. Для предварительной минимизации Вы также можете использовать: задачи MSBuild из библиотек Microsoft Ajax Minifier или YUI Compressor for .Net, Webgrease (пока дает ошибки при обработке CSS-файлов), VS-расширение Minifier или самый мощный продукт для предварительной минимизации Chirpy.
Подборка бесплатных электронных книг по темам, связанным с JavaScript, на JSbooks — jsbooks.revolunet.com
Информация для разработчиков, использующих Visual Studio: библиотека ECMAScript 5 Polyfill, код из которой был показан в 7-й лекции Дугласа Крокфорда «ECMAScript 5: The New Parts», доступна для скачивания через NuGet — nuget.org/packages/ES5.
Первое обращение к Bundle`у происходит в момент подгрузки кода.

Если файл отсутствует на диске, то он игнорируется и код Bundle`а собирается из остальных файлов. Если этот файл был единственным в Bundle`е, то при подгрузке кода клиенту возвращается пустая строка.

Встроенные в B/M минимизаторы при обработке кода не генерируют исключений. В этом случае, в объединенный код Bundle`а попадает или некорректной код, или строковое представление сообщения об ошибке. Минимизаторы и трансляторы, входящие в библиотеку Bundle Transformer, генерируют исключения.
В режиме релиза рендерится ссылка на объединенный и минимизированный код, URL которого совпадает c URL Bundle`а (например, ~/Content/themes/base/css), а в режиме отладки рендерятся ссылки на отдельные необработанные файлы, входящие в Bundle.

Объединенный и минимизированный код Bundle`а генерируется при первом обращении к Bundle`у и затем хранится в памяти.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity