Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Bala.js - функция для выборки элементов на странице в 408 символах (https://javascript.ru/forum/project/60330-bala-js-funkciya-dlya-vyborki-ehlementov-na-stranice-v-408-simvolakh.html)

nerv_ 29.12.2015 10:56

Цитата:

Сообщение от kobezzza
В тот день, когда такая хрень станет для меня узким местом - я брошу программировать

хорошо сказано :)

Цитата:

Сообщение от FINoM
Кто-то крадет мои поюсики на Хабре.

Не в плюсиках счастье и не в их колличестве. Плюсы всего лишь отражают популярность. О качестве кода (решения) они ничего не говорят.

Гозар уже делал нечто подобное

Deff 29.12.2015 11:18

Цитата:

Сообщение от nerv_
Плюсы всего лишь отражают популярность.

На Хабре, минусы отражают популярность. Общий порыв: заклевать автора при малейшем колебании.

FINoM 29.12.2015 13:10

Цитата:

Сообщение от Rise
FINoM, , $, Bala убрать из параметров и объявить как function declaration, тогда ; станет не нужен после них, даст -6.

Гениально, спасибо!
(Хотя, может, не так и гениально, просто я - тормоз).

По поводу поста на Хабре, тут виден серьезный прогресс. Все посты несколькогодичной давности, где автор предлагал отказаться от jQuery были адски заминусованы. Меня интересует не карма-рейтинг-дрочерство, а реакция людей. Тут мнения разделились на ~60/40, Vanilla побеждает.

FINoM 29.12.2015 13:19

Теперь 394 символов :)

Deff 29.12.2015 13:50

Цитата:

Сообщение от FINoM
По поводу поста на Хабре, тут виден серьезный прогресс. Все посты несколькогодичной давности, где автор предлагал отказаться от jQuery были адски заминусованы.

FINoM, Ибо как не верти, нативный js по удобству функционала движется к jQuery (грил более 4-лет назад) Ибо автор JQ здорово уловил потребность, да пока наибольший функционал удобств реализован в JQ, но натив движется к задумкам автора
=====================
Цитата:

Сообщение от FINoM
Меня интересует не карма-рейтинг-дрочерство

Ну противопоставлять Bala - jQ для данной аудитории, даж подспудно - ну откровенно нарываться, ибо многие так натив до конца не знают, и оно им не нужно, для правки пары селекторов
По-моему благоразумно было сразу обращаться к js аудитории нативщиков и желающих быстрых и минималистических библиотечек.
Цитата:

Сообщение от FINoM
Тут мнения разделились на ~60/40, Vanilla побеждает.

90% просто не нужны были в теме, отсеки их изначально обращением к нужной части
Цитата:

Сообщение от kobezzza
бывает юзаю всякие /prev/closest/find.

Эти добавки бы убили большинство контрпротивостояния джикверистов

FINoM 29.12.2015 15:26

Следующая цель - сделать функцию компактнее кода Google Analytics. Нужно совсем немного: дойти до 386 символов, т. е. убрать 8 символов.

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-12418613-4', 'auto');
  ga('send', 'pageview');
(пробелы и переносы тоже учитываются, этот код предоставляет Гугл)


UPD
Можно упростить задачу и сравнивать этот код:
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-12418613-4', 'auto');
  ga('send', 'pageview');

</script>


С этим (предварительно убрав все пробелы)
<script>$=function(d,e,f){function c(a,b){return new g(a,b)}function g(a,b){a&&[].push.apply(this,a[e]?[a]:""+a===a?/</.test(a)?((b=d.createElement(b||e)).innerHTML=a,b.children):b?(b=c(b)[0])?b[f](a):[]:d[f](a):(typeof a)[7]?"c"==d.readyState[0]?a():d[e]("DOMContentLoaded",a):a)}c.fn=g.prototype=[];c.one=function(a,b){return c(a,b)[0]||null};return c}(document,"addEventListener","querySelectorAll")</script>


Разница в 3 символа.

FINoM 01.01.2016 22:24

С Новым Годом! Bala.js похудела на 18 символов (минус точка с запятой, которую я вернул на бочку). Это сделано благодаря отказу от конструктора в пользу Object.create.

$=function(e,f,g){function c(a,b,d){d=Object.create(c.fn);a&&d.push.apply(d,a[f]?[a]:""+a===a?/</.test(a)?((b=e.createElement(b||f)).innerHTML=a,b.children):b?(b=c(b)[0])?b[g](a):d:e[g](a):(typeof a)[7]?"c"==e.readyState[0]?a():e[f]("DOMContentLoaded",a):a);return d}c.fn=[];c.one=function(a,b){return c(a,b)[0]||null};return c}(document,"addEventListener","querySelectorAll");

Deff 01.01.2016 22:55

Цитата:

Сообщение от Deff
Цитата:

Сообщение от kobezzza
бывает юзаю всякие /prev/next/closest/find.

Эти добавки увеличили бы востребованность в N раз, несмотря на увеличение кол-ва символов от минималки

.
Ну реально на микрозадачах, решаемых на коленке все с удовольствием откажутся от jQ или собственных библиотечек, если будет текущая Bala.js с такой добавкой . Назови её Bibizyan2016 (или Bibi2016), если жаль трогать Bala.js

Выложи, в том жа Хабре, если за неделю 40 плюсов не будет - я съем галстук :D
======================
/Ну а по серьёзному, имхо будет востребовано/

Deff 01.01.2016 23:14

FINoM,
Ксать есть практически незадействованный символ вместо $ => µ
И имя соответствует микробиблиотеке
-------------------------------
Новое имя позволило бы использовать библу и наряду с неизвестными версиями jQ
К примеру: Постепенная замена (возможных для замены библой) кодов на jQ.
-------------------------------
И, имхо, название бы статьи менее вызывающее(зачем дразнить ?), ну типо:

« Бла-Бла.js - микробиблиотека для микрозадач »

callbackhell 02.01.2016 22:57

Цитата:

Сообщение от Deff
Ксать есть практически незадействованный символ вместо

Кстати, пользуют подобную обфускацию только мартышки. Это экономия на спичках.


Часовой пояс GMT +3, время: 23:06.