Архив рубрики: О программировании

IO — добрый брат-близнец JavaScript

Seven languages in seven weeks: Ruby, IO, Prolog, Scala, Erlang, Closure, Haskell

Читаю прелюбопытнейшую книжку — «Семь языков за семь недель«. Языков программирования, разумеется. Читаю и пребываю в перманентном восторге. По списку идут Ruby, IO, Prolog, Scala, Closure, Erlang и Haskell, и я только-только добрался до Scala. Prolog, разумеется, здорово прошелся по психике в шипастых сапожищах, но больше всего в душу запал IO. Читать далее IO — добрый брат-близнец JavaScript

В чем прелесть test-driven development

Test-Driven Development

Как я уже писал раньше, одно из первых болезненных откровений по прибытию на канадскую контору было то, что я пишу отвратительный и никому не понятный код. С тех пор прошло некоторое время, я прочитал стопку профессиональной литературы, и.. продолжил писать отвратительный и никому не понятный код. В чем засада? Читать далее В чем прелесть test-driven development

Почему тесты должны быть быстрыми

snailНемного о программировании.

Разговаривали на рабочей кухне с непосредственным начальством о моих задачах. Ну в конце беседы я решил немного выпендриться, и гордо так заявляю:

— А еще, когда я задачу доделаю, наши тесты должны стать заметно быстрее.

Но вместо того, чтобы поклониться мне в ноги и назвать спасителем, вождь заявляет дословно следующее:

— А мне не важно, чтобы они были быстрыми. Мне важно, чтобы они были надежными. Читать далее Почему тесты должны быть быстрыми

Типизированные массивы в JavaScript

Typed arraysРешил собрать волю в кулак и прочитать-таки документацию про ArrayBuffer, Uint8Array, DataView и всех их родственников. Оказалось, что типизированные массивы это милая и широко-используемая штука по всему фронту JS/HTML5, и я — последний человек на земле, который ими не пользуется.

Читать далее Типизированные массивы в JavaScript

Sorting JavaScript Array Of Objects

Out of the box JavaScript Array.prototype.sort method uses simple yet effective approach — it converts every item to Unicode string and orders them by comparing respective code point values. That explains, why [1, 2, 10].sort() produces [1, 10, 2], instead of more logical  [1, 2, 10]. If you want more, e.g. sort in descending order or by object property name, Array.prototype.sort accepts custom comparer function that allows you to implement your own sorting logic.

Читать далее Sorting JavaScript Array Of Objects

Simplest Chrome Extension: Content Script

I really like the concept of browser extensions. Especially for Chrome. Surprisingly, though, I never remember Chrome Extensions being a hot topic. Why? If you’re front-end developer like I am, chances are that you spend most of your time in the browser. Why not to fix a thing or two?
What’s more interesting, writing extensions is not that difficult. In common scenario it’s manifest and JS file with logic. Just another JavaScript application.

Let’s take the simplest one: content script. Читать далее Simplest Chrome Extension: Content Script

When Server-Sent Events (SSE) is much better choice than WebSocket

Many web apps nowadays, including project I’m working on, rely on real time notifications from the server. GMail instantaneously adds incoming mail, Facebook shows chat messages and likes, list can go on.

My app does the same: it subscribes to certain topics and keeps open channel for server updates. Traditionally, we’ve been using long polling for that, but it felt like a hack, so we decided to switch to web sockets and fall back to long polling for legacy browsers. It took me 2 years to get to Ilya Grigorik’s «High Performance Browser Networking» book and realise that Server-Sent Events was much better choice. Here’s why. Читать далее When Server-Sent Events (SSE) is much better choice than WebSocket

Простейшее расширение для Google Chrome: content script

Меня, почему-то, очень воодушевляет возможность писать расширения для хрома. Это не значит, что я этим воодушевлением как-то пользуюсь, но тем не менее. Задачи я получаю через Chrome, в нем же их потом тестирую, в нем же читаю (не)довольные письма от заказчиков после коммита, и на каждой стадии хватает мелочей, которые можно улучшить.

А расширение — оно простое. Манифест + какой-нибудь js файл с логикой — и всё.

Читать далее Простейшее расширение для Google Chrome: content script