Как стать автором
Обновить
69
0
Алексей Гурьянов @Guria

UX Developer, Cerebral JS Core team member

Отправить сообщение

Доводы в пользу function tree

Время на прочтение13 мин
Количество просмотров19K

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


Написание хорошего кода


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


function add(numA, numB) {
  return numA + numB
}

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


test.equals(add(2, 2), 4)

Компонуемость тоже является их сильной стороной.


test.equals(multiply(add(4, 4), 2), 16)

К тому же их очень легко использовать декларативно.


const totalPoints = users
  .map(takePoints)
  .reduce(sum, 0)

Но давайте взглянем на ваше приложение. Какая его часть действительно может быть выражена чистыми функциями? Насколько часто речь идёт о преобразовании значений, которые традиционно выполняют чистые функции? Могу предположить, что большая часть вашего кода работает с побочными эффектами. Вы выполняете сетевые запросы, DOM манипуляции, используете вебсокеты, локальные хранилища, изменяете состояние приложения и так далее. Это всё описывает разработку приложения, по крайней мере в Интернете.

Читать дальше →
Всего голосов 40: ↑36 и ↓4+32
Комментарии34

Ещё один бонус счастливчикам с аккаунтами в wavesandbox.com

Время на прочтение1 мин
Количество просмотров657
Прошло 12 дней после получения от Гугла приглашения в Google Wave Developer Sandbox и заполнения мною соответствующей формы (кому интересно, выглядела она так: wave.google.com/signups/signup1.html). За время ожидания активированного аккаунта я успел получить инвайт Google Wave Preview, всё там изучить и вдоволь наиграться. Поэтому сегодня, когда наконец-то получил на руки активированный аккаунт в wavesandbox, я не ринулся с головой по Волнам, а заинтересовался, что нового мне это даст.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии8

Хабрахак. Авторизуемся на Хабре без ввода каптчи

Время на прочтение1 мин
Количество просмотров583
Уже довольно давно я регулярно посещаю Хабрахабр через Оперу Мини со своего скромного мобильного устройства Nokia 3110c. И, не смотря на анонс мобильного Хабра, продолжаю пользоваться более тяжёлым интерфейсом. В первую очередь потому что именно на неё ведут линки из RSS-ленты, а во вторую — иногда хочется и откомментить да в карму плю… сануть. Собственно до вчерашнего дня мне абсолютно ничего не мешало именно так и поступать. Открыв очередной интересный топик из ленты, я обнаружил, что любимый Хабр не узнаёт меня и предлагает пройти Авторизацию. Вроде процесс предстоял привычный, но он неожиданно для меня затянулся. Новая ХабраКаптча и хитрый фирменный рендеринг Оперы Мини решили сыграть надо мной злую шутку: предо мной предстали 6 расплывчатых символов со ссылкой ←обновить поверх них. (Жаль скриншота сделать не могу). Конечно администрация обещала как будет время допилить Хабр под Оперу Мини, но уж как-то не хочется ждать три года. И тут я вспомнил, что в почту периодически приходят оповещения от habrahabr mailer со ссылками, перейдя по которым можно пойти авторизацию без ввода пароля. Бинго! А уж Гугл-то постарался обеспечив к почте удобный доступ с мобильных устройств.

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


PS Если вы ни разу не получали сообщения от habrahabr mailer, проверьте настройки сайта.
Всего голосов 49: ↑46 и ↓3+43
Комментарии17

LaTeX на практике. Анонс

Время на прочтение1 мин
Количество просмотров4.8K
Задавшись целью закрепить навыки работы с Emacs и LaTeX, мною была выбрана первая попавшаяся статья подходящего формата на Хабрахабре, которую я решил LaTeXизировать. Результат мне показался стоящим для публичного ознакомления.

С этой страницы вы можете скачать архив с LaTeX исходниками получившегося файла. Он, как мне кажется, во многом говорит сам за себя и демонстрирует применение базовых возможностей, включая списки, таблицы, рисунки, ссылки, настройки полей и определение собственных команд. В свою очередь также осталась часть вопросов мной не решённых.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии26

Хабраследопыты

Время на прочтение1 мин
Количество просмотров553
По мотивам топика Иллюзия конфиденциальности и его комментариев.

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

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

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

Disclaimer. Участие в демонстрации означает полное понимание возможных последствий. Автор топика никакой ответственности не несёт.
Всего голосов 3: ↑3 и ↓0+3
Комментарии27

Как устроен Интернет-счётчик

Время на прочтение1 мин
Количество просмотров613
По просьбам любопытствующих размещаю историю изготовления и устройство Интернет-счётчика
Плюсуем только оригинальный топик, ибо этому нечего делать на главной.
При тщательном осмотре угла с микроволновкой был найден 3х фазный счётчик (электрический). Счётчик в своё время был заменён на новый, но в целом оставался рабочим. Пока мы его не нашли, естесственно.
Коллегой в лёгкой шутке он был назван Интернет-счётчиком. А мне как шило в… вставило, но я непременно должен был это реализовать.
Первым делом была изготовлена лицевая панель: фотобумага, струйник и OpenOffice Writer для изготовления макета. Вдохновнием послужила оригинальная панель, дизайн которой и был в наглую содран.
В качестве привода решено было использовать корпусной вентилятор, который был лишён лопастей и основного корпуса. Дальнейшие часа полтора были потрачены на подбор размещения вентилятора в корпусе. Для закрепления использованы нейлоновые стяжки и картон от коробки материнской платы. Для передачи крутящего момента использована обычная резинка для денег.
Дальше осталось только прикрутить 4 кабеля витой пары и по одной из них запитать на блок питания смонтированный под столом.
That's all folks…
Всего голосов 15: ↑10 и ↓5+5
Комментарии8

Аппаратное решение для подсчёта интернет-трафика

Время на прочтение1 мин
Количество просмотров825
Доброго времени суток! Представляю на суд хабраобщественности собственноручно изготовленное устройство для учёта интернет-трафика.


Читать дальше →
Всего голосов 80: ↑78 и ↓2+76
Комментарии37

Информация

В рейтинге
Не участвует
Откуда
Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность