Сборка JS: хрень о двух концах

Или вот зашла речь о сборке JavaScript и CSS.

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

Например, на одной страничке у нас подключаются файлы A.js, B.js и C.js. Загружаются они браузером за три запроса и сохраняются в кэше.

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

А теперь мы переходим на другую страницу, на которой у нас используются сценарии A.js, B.js и D.js. В обычной ситуации браузер бы запросил D.js, а остальные два файла взял бы из кэша. Но теперь у нас на продакшене вместо трёх файлов — один ABD.js. И браузеру приходится тащить к себе по второму разу содержимое A и B.

А потом мы вносим изменения в B.js. В случае без сборки, браузеру пришлось бы обновить только один этот файл. В случае со сборокой же, пришлось обновлять все сборки, где участвует B. В нашем случае, это и ABC.js и ABD.js.

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

Топ

Тройка самых, на мой взгляд, провакационных фраз, вызывающих дикое бурление говн: «Бога нет», «Спартак — чемпион» и «Классы в JavaScript».

Прими участие в переводе Юникода и получи уважение!

unicode-table.com

Сайт «Таблица символов Юникода», это не только триумф дизайна над разумом, это ещё и кладезь полезной информации по символам из стандарта Unicode.

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

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

Вы можете помочь проекту одним из следующих способов:

  • Перевести его на какой-либо из языков
  • Исправить обнаруженные неточности
  • Уточнить и дополнить имеющиеся данные
  • Добавить новые интересные наборы символов
  • Написать статьи о конкретных символах, разделах, языках и странах
  • Улучшить поиск по сайту

Либо просто прислать денег.

Всем чмоки .

Traits и т.п.

Две недели не писал, а пиздюлей мне никто так и не дал. Ну ладно, вот, допустим, трейты. Вещь вполне себе, как оказывается, терпимая.

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

Теоретики плачут, что Traits, это никакое тебе не множественное наследование в высоком понимании этого термина. А самый, что ни на есть, банальный автоматизированный копипаст.

Однако, если посмотреть на языки с нормальным множественным наследованием, оно всё равно там в большинстве случаев используется именно для копипаста. Да и вообще, чуть ли не вся история развития программирования, это история автоматизации копипаста.

Остальной текст под катом

Май Ступид Дэй Форэвер!

Среда — день тяжёлый? Всё никак не можете отойти от новогодних праздников? Тупо смотрите в монитор, не зная что делать?

Наш новый сайт для вас!

My Stupid Day

My Stupid Day предоставляет, практически, неограниченные возможности. Вы можете наглядно лицезреть, какая часть этого постылого дня уже прошла и сколько вам ещё осталось тут торчать. Можно наблюдать это графически, в процентах, часах и секундах! Тонкая настройка под нестандартный рабочий график. Активно бегущие десятые доли секунды несут успокаивающий эффект. Сразу становится понятно, что осталось не так много и смысл в этой жизни всё-таки присутствует.

И это только бета-версия!

Ставьте лайк! Расскажите своим скучающим друзьям о нашем сайте.

Если же вы инвестор, не знающий, куда вложить деньги, то My Stupid Day идеальный кандидат для быстро окупающихся инвестиций. Потенциал дальнейшего развития и монетизации безграничен. Например:

— Контекстная реклама и геотаргетинг. «Пятница, конец рабочего дня? Вот ближайшие бары.». «Скучно? Посмотри эти сайты со смищными картинками».

— Кастомные панели на любой вкус. До отпуска осталось 5 дней… Лето наступит через восемь месяцев… До окончания школы 9 лет и 5 часов…

— Профили и социализация. Пример: девушка присылает вам ссылку на свой профиль «я заканчиваю в 19:00». А вы ей на свой: «у меня зарплата только через две недели». И получаете от обиженной девушки «у меня месячные со вчерашнего дня».

— Корпоративные аккаунты. Время до дедлайна.

— Сбор статистики по продолжительности рабочего дня и продажа их социологам и спецслужбам.

И ещё множество возможностей. Не упустите свой шанс!

Приятного рабочего дня.

Путь извращенца: антикэш в имени файла

Итак, значит, есть у нас сервер с nginx и на нём сайтик. На сайте, кроме страничек есть статические файлики: картиночки, скриптики и цээсэсочки. Лежат они в своих папочках — /i/, /js/, /css/. Указываем браузеру, чтобы он их кэшировал получше и лишний раз к нам не обращался:

location ~^/(i|js|css)/ {
	expires 30d;
}

Но наши файлики могут периодически меняться. Чтобы клиент имел всегда свежую версию файла, используем GET-параметр с указанием «ревизии». В простейшем случае, это просто некий хэш от времени изменения файла. То есть, так указываем:

<script src="/js/my-super-script.js?ae12f"></script>

Изменится файл — вместо «ae12f» другое подставится.

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

Но извращенцы всегда найдут выход. Пишем в nginx’е:

rewrite ^/(i|css|js)/[0-9a-f]+/(.*)$ /$1/$2   last;

А в ссылках теперь вместо /js/my-super-script.js?ae12f указываем /js/ae12f/my-super-script.js. Глупые прокси думают, что это просто статический файл в каталоге с идиотским именем. А наш nginx просто выкидывает этот каталог из пути.

Кто поделится менее дурацкими решениями по этому поводу?

Воскресный вечер брюзжания

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

Офисный интернет стоит в 50 (пятьдесят) раз дороже домашнего. Ладно, хуй с ним, переживём. Звоню интернетчикам, договариваюсь: завтра в 12:00 придут инет проводить. Их задача — придти из соседнего здания и прокинуть провод с антресолей к нам в офис, дальше всё сами разведём. Нужно потратить полчаса и получить за это 1 000 (одну тысячу) рублей сразу и ещё 5 000 (пять тысяч) рублей ежемесячно, при себестоимости стремящейся к нулю.

Прихожу к оговоренному времени и 45 (сорок пять) минут сижу на подоконнике, ожидаю высочайших персон. Наконец, приходят два сонных поца. «А, ну да, вот тут провод, да, нужно его туда прокинуть. Ну, завтра мы пришлём монтажника». А нахуя вы сейчас припёрлись? Вечером звонят: «чего-то наш парень не может, он в другой день зайдёт». В итоге бизнесмены-провайдеры идут нахуй и лот уходит другим. А всего-то надо было прийти самому, вместо загулявшего монтажника, и прокинуть этот сраный провод.

Или сам офис. Офис — шлак. Но просят так, как будто это бизнес-центр класса А в центре. Да хуй с вами, ладно, вот деньги, возьмите. Не берут деньги. Тут, говорят, ещё небольшой ремонт сделать надо, за недельку справимся, приходите в следующий понедельник.

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

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

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

Так и живём…

go\Pager

Решил собрать все маленькие дурацкие PHP-тулзы в одном месте: https://github.com/vasa-c/go-helpers.

И первым будет пагинатор.

Пример: https://blgo.ru/go/helpers/pager/.

Пагинируйте всё, что придёт в голову, не отрываясь от подушки!

go\DB 2.0.1 и github.com

Перенёс go\DB 2 с гуглокода на гитхаб: https://github.com/vasa-c/go-db.

А заодно и обновил чуть-чуть.

Мировые новости за март

Разработчики PHP узнали какого невысокого мнения о них питонист adw0rd и чтобы хоть как-то загладить свою вину перенесли исходники на git.

Для тех же, кто ещё не полностью ушёл на питон вышел PHP 5.4. Traits, встроенный сервер и ещё много всяких весёлых вещей, хоть местами и сделанных через жопу.

А Егорка Хомяков узнал, что питонист adw0rd думает о git и сломал github.

Появился сайтик «паттерны JavaScript». По мнению многих рецензентов отличное и качественное собрание на все случаи жизни. По мнению других — беспросветная хуита.

Полезнее будет JavaScript в диаграммах.

Книжка «собеседование в вопросах и ответах». Уметь программировать необязательно. Нужно просто знать ответы на идиотские вопросы.

Нашлись дискеты с исходниками Prince of Persia. Только что с ними делать непонятно.

Релизнулась стабильная версия языка Go. Ну и чёрт с ним.

Учёные впервые извлекли кино из мыслей подопытных. Оказалось, что в мыслях подопытных сплошное порно.

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

Популярный блог о всякой херне blgo.ru затеял редизайн, да только пока всё ещё хуже, чем было.

По страницам: 123456789101112131415