Pull to refresh
189
-0.6
Алексей Гришин @GRaAL

Разработчик широкого профиля

Send message

«Худой мир». Глава 3

Reading time12 min
Views12K
Продолжаем повествование. И на случай, если кто наткнулся на этот пост впервые, это третья глава повести. Первые две можно найти по ссылкам ниже.
Предыдущие части

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


Немного фантастики под катом
Total votes 20: ↑15 and ↓5+10
Comments7

«Худой мир». Глава 2

Reading time10 min
Views15K
И снова здравствуйте. Два месяца назад я выложил первую главу повести, и, судя по реакции, получилось неплохо. Поэтому представляю вашему вниманию вторую главу.

Прошу прощения что так долго с ней возился.

На случай если кто забыл с чего все начиналось (за два месяца немудрено) — Глава 1.


Немного фантастики под катом
Total votes 20: ↑17 and ↓3+14
Comments7

LiveReload — обновление javascript без полной перезагрузки страницы (на примере mithril)

Reading time7 min
Views35K

Вступление


Не так давно я начал пользоваться такой полезной штукой как livereload (для тех, кто не знает, что это — есть статья на хабре). Livereload отслеживает изменения в коде веб-приложения и перегружает страницу в браузере при необходимости. При этом со стилями Livereload поступает умнее и заменяет их на лету без перезагрузки, что выглядит волшебно.

К сожалению с javascript такой номер не прокатывает — Livereload не знает как гуманно заменить только изменившиеся скрипты и перегружает всю страницу. Это особенно печалит если использовать инструмент вроде mithril, в котором представление (читай — html) задается так же в javascript. Если я меняю модель или контроллер, то тут все понятно, но если я меняю класс у дива в представлении (скажем, подбирая правильное сочетание bootstrap классов), то перезагрузка страницы кажется излишней — ну вот же, я поменял одну функцию, просто перерисуй view с ее помощью!

В целом не страшно, конечно (работали же как-то без этого раньше), но почему бы не сделать работу еще немного удобнее?



Для тех, кто торопится


Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments6

Pattern-matching (еще один) в coffeescript

Reading time8 min
Views7.1K

Введение


Как-то раз я сидел и грустно смотрел на написанный в рамках изучения эрланговский код. Очень хотелось написать на нем что-нибудь более полезное, чем крестики-нолики, но как назло никаких подходящих задач в голову не приходило. Зато есть JavaScript, в котором есть и функции первого порядка, и каррирование, и map/filter/fold, и, главное, задачу придумать куда проще. А вот pattern matching-а своего нету. Беглый поиск выдал мне несколько библиотек, но предлагаемый ими синтаксис показался мне тяжеловесным. Можно ли сделать лаконичнее, ближе к родному эрланговскому синтаксису?

Спойлер: можно, если взять coffeescript, сделать так:

fn = Match -> [
  When {command: “draw”, figure: @figure = {type: “circle”, radius: @radius}}, -> 
    console.log(@figure, @radius)
  When {command: “draw”, figure: @figure = {type: “polygon”, points: [@first, @second | @rest]}}, -> 
    console.log(@figure, @first, @second, @rest);
]
fn {command: “draw”, figure: {type: “circle”, radius: 5, color: “red”}}
#output: {type: “circle”, radius: 5, color: “red”} 5

Кому интересно, как это получилось — добро пожаловать под кат.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments1
2

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
From 5,000 $