поиск

ShrinkSafe – не красиво, зато мало и быстро

Намусорил: Алексей «Vooparker» Аникутин
В категории: Javascript

Не знаю как вы, а я очень люблю красоту отформатированного кода. И дело не только в эстетическом аспекте, но и в том, что разобраться в таком коде намного проще. А если где-то что-то не понятно на помощь приходят всякого рода комментарии. Но вся эта красота может сказаться на производительности, если речь идет о некомпилируемых языках, таких как JavaScript. А ведь хочется и красоты, и производительности. И вот здесь нам на помощь приходят так называемые
обфускаторы.

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

Свой выбор по совету товарища (Димон, спасибо!) я остановил на ShrinkSafe. Ознакомившись с весьма «не большой» докой и опробовав ShrinkSafe в деле, я подумал, что было не плохо автоматизировать его использование при сборке проекта. Отлично, этим и займемся.

Нам потребуются:

  • jre
  • «антструмент» Ant
  • ну и конечно сам ShrinkSafe в виде jar

Как проинсталить jre не буду рассказывать, а про ant можно почитать здесь. Что уже прочитали и проинсталили? Ну что ж, переходим к ShrinkSafe.

Я обычно храню подобные инструменты в папке C:\Program Files\tools\. Поэтому в этой папке я создал папку ShrinkSafe и положил туда скаченный jar. Вы же можете разместить jar где вам угодно, только не забудьте где. =)

Ну что ж переходим к написанию задачи. Но сначала предлагаю кое-что вынести в файл build.propeties (который не забываем подключить к основному build.xml). Скажем вот такую строку:

shrinksafe=C:/Program Files/tools/ShrinkSafe/custom_rhino.jar

Ну что ж добрались до самого главного. Пишем задачу в build.xml:

<target name="copyjs">
<exec executable="java" output="[путь_до_сжатого_файла]js-lib-compressed.js”>
	<arg line=”-jar ‘${shrinksafe}’ -c [путь_до_исходного_файла]js-lib.js” />
</exec>
</target>

В итоге, я теперь работаю с красивым и читабельным js кодом, при этом эта красота никак не сказывается на производительности этого кода, плюс весь процесс обфускации автоматизирован. Так что название статьи может звучать и так: ShrinkSafe — красиво, мало и быстро. На этом на сегодня все, желаю успехов.



Написать комментарий:

 

Bы можете использовать следующие теги для форматирования: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



User's collector

Внимание!
Эта опция станет доступной только после того как вы авторизуетесь.


 запомнить меня 
Я новый пользователь

На правах рекламы