← All posts tagged JavaScript

Yurtaev
боль JavaScript es6 Javascript как язык ужасен своей "магией" и непрозрачностью, и тут ситуацию вроде должен исправить ES6 (который всё равно ближайшее время не будут использовать т.к IE), но новый стандарт вместе с вкусняшками вносит всё ту же магию боли. Например возможность задавать дефолтные значения для аргументов вносит еще один промежуточный скоуп; вычисление происходит каждый раз при вызове (больше грязи!!!); проверка при помощи `undefined` и т.п .......... И эти люди мне говорят что языки поверх javascript не нужны, да я просто не хочу думать об этом всём и кастовать тёмной магией.
Yurtaev
боль JavaScript Столкнулся с проблемой что если вкладка браузера не активна то setTimeout не отрабатывает. Оказывается это теперь chrome и firefox не выполняют setTimeout/setInterval больше 1 раза в секунду. Наткнулся на забавный пост goo.gl c вариантами костылей, и костыль №4 меня очень порадовал =)

Типичная фронтенд разработка: боль, костыли и отвага
Yurtaev
Google JavaScript localStorage evil Гугл опять начинает меня иметь. Есть отличное решение для хранения данных в браузере под названием localStorage, не идеал, но есть везде.
И что опять гугл? Решил просто отключить его для chrome app и взамен предлагает использовать Storage API который обратно несовместим как минимум тем что полностью асинхронный, поэтому вынести за уровень абстракции не получается. Это было бы не так печально, но огромное количество библиотек умеет работать именно с localStorage (что логично ибо "html5") и ничего про Storage API  который только в хроме, не знают. Ничем кроме как политическим это решением обосновать не могу, и после этого меня спрашивают почему я не доверяю переходу на блинк.
Yurtaev
JavaScript Python UnitTest Только сейчас осознал что питон меня извратил до того что я не понимаю как правильно тестировать код с приватными методами, особенно в js когда просто критически необходимо скрывать внутри объекта "пароли" и критические методы от внешнего мира.
Yurtaev
coffeescript JavaScript Никогда бы не подумал, но пока было не так много кода перевел свой проект с js на coffeescript. Я всё еще считаю что он более вредный, чем полезный. Вредный для тех кто так и не осилил изучить js, для тех кто впадает в панику от прототипов. Но для тех кто в курсе всех хитростей и может не напрягаясь реализовать объект с приватными/публичными методами, coffeescript позволяет избежать написание монотонного кода и сократить количество строчек.
Я не сильно понимаю тех кто говорит что в coffeescript больше от питона, по мне так это в большей степени руби. Но с питоном тут есть общая черта. В питоне есть зародки функционального программирования, но которыми не принято пользоваться (в массе своей) т.к явное лучше, чем неявное, а всякие генераторы с лямбды для многих действительно менее явное. Поэтому в большинстве проектов лучше избегать этих "фишек".
Но черт возьми! С ними больше фана!
Yurtaev
JavaScript crazy
Ядро и драйверы NetBSD скомпилированы в JavaScript для запуска в web-браузере
via. goo.gl

Мир сходит сума, такими темпами любой новый софт будет нуждаться в большей мощности железа. Иногда мне кажется что есть какой то глобальный заговор производителей железа по продвижению новых модных технологий, но которые не оптимизированы и нуждаются в большей мощности. Меня дико бесит факт того что мой ноутбук на порядок производительнее моего первого ПК, но при этом не способен воспроизвести видео в браузере без нагрузки в 100% CPU
Yurtaev
date JavaScript Я х.з как по стандарту, но гребанные браузеры с различным поведением меня задолбали. Проблема: `new Date('2011-11-24T09:00:27+0200')` хром создает время от полуночи текущей зоны, а firefox от полуночи по гринвичу. Арррррр.
Yurtaev
books JavaScript imho Дочитал за выходные последние две из трех книжек по javascript, поделюсь немного впечатлениями:

1. «JavaScript. Шаблоны» goo.gl – отличная книга, скорее не совсем про js, а про паттерны, но конечно с описанием особенностей JS. Буду давать всем зеленым подаванам кто незнаком с шаблонами написания кода.
2. «JavaScript: сильные стороны» goo.gl – совсем тоненькая книженция (176 стр.). Повелся что написал чувак Крокфорд из yahoo , создатель JSON. Он её не позиционирует как справочник, что и правильно, но на другое она и не годна. Описывает всем известные истины языка, которые знают большинство js разработчиков, а новенькие могут узнать их из других двух книжек, или любых других книг-справочников по js (например «JavaScript. Подробное руководство» goo.gl). Мне книга не понравилось, странные куски кода на пару страниц, схемы интерпретирования выражений, странная глава которая просто перечисляет методы у списков, объектов и т.п (при том что автор не позиционирует её как ...). Не чего нового. На мой взгляд книга создана что бы немного выкачать денег.
3. Третьей по счету была книга «Веб-приложения на JavaScript» goo.gl – великолепная книга от и до расказывающая про разработку веб-приложений. Маст хэв всем начинающим во фронтэнд. Книга для имеющих представление о языке, но не имеющих (или которые хотят улучшить скил) опыта разработки больших приложений. Главный акцент поставлен на том что надо разделять логику и применять MVC. Первые главы рассказывают и показывают как самим, без помощи специализированных библиотек, реализовать MVC. Конечно потом есть главы про Backbone, Spine и JavaScriptMVC. Рассказывается про системы управлениями зависимостями (CommonJS, RequireJS и др.). Важный раздел про тестирование, описание видов тестирования применительно к веб-приложениям и библиотек реализующих их. Да тут даже описаны новые плюшки HTML5 (WS, localstorage ...) и CSS3, с мелкими примерами, да просто можно глянуть оглавление и понять что книга пока не устарела. Попади подобная книга мне пару лет назад, был бы на 7-ом небе, а сейчас буду насильно заставлять читать её подаванов.
Yurtaev
JavaScript AMD Вздумал в проект внедрить requirejs, благо должен был на отлично решить проблему с кучей файлов с коллекциями и т.п от backbone в приложение, убил пару часов, добился лишь загрузки ~20 файлов в нужном порядке + автоматическое сжатие всего добра в один файл. Столкнулся с кучей не очевидных проблем, например как, а лучше в каком месте грузить плагины для jquery и прочих, в глобальную видимость или нет, в каком месте добавить свой тригер, до момента загрузки нужной библиотека. С оптимизмом налетел, а закончил на мысли – ну хотя бы бы теперь у меня инклудится только один js файл, а все остальное в main.js прописано. Мануалы не покрыли всех мойх вопросов, а дизайн сайта с документацией вызывает у меня приступ вырви мозг. Зато второй день пишу мапы и фильтры, радуюсь как дитя малое этому, не знаю почему.
Yurtaev
JavaScript backbone.js вещь, это то что мне нравилось в ExtJS, разделить логику, и не писать дикую тонну кода. Т.к мне предстоит навалять эту саммую тонну кода, хочу уж попробовать с этим, мне MVC ближе по духу. Посмотрим как это всё можно с вебсоветами связать. Надеюсь меня это избавит от головной боли получения данных, хранения их и отрисовки.
Yurtaev
unit-test JavaScript Хм, интересную штуку гугл открыл для тестирования js кода goo.gl Выглядит широко; из плюсов вижу что прям в консоли можно запустить тесты, гоняет поверх v8