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)

Rise 29.12.2015 06:08

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

Deff 29.12.2015 10:46

Цитата:

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

Цитата:

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

Если не брать в расчёт шаблонизаторы, а ваяние скриптов под запрос, зачастую интерес отнюдь не в скорости, а в алгоритме.
====================
Цитата:

Сообщение от FINoM
Кто-то крадет мои поюсики на Хабре. Джон Резиг, наверное.

На Хабре, главное тактика ответов на первые два вопроса,
Если начинаешь оспаривать наезды, особенно на фичах-альтернативных популярным фреймворкам, получаешь кучу минусов.
Хитрый ход, сделать упор в первых двух комментах, что востребовано в проектах где
a) Политикой руководства запрещены тяжёлые фреймворки.
b) Разработка приложений с быстрой реакцией

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
======================
/Ну а по серьёзному, имхо будет востребовано/


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