avatar

Органичные namespace в JavaScript

Опубликовал в блог СамоПиаР
Работая с большим количеством классов в JavaScript приложении, приходится бороться с засорением глобальной области видимости различными именами классов. Хотя системы импортов частично поправляют ситуацию, хотелось бы иметь решение, позволяющее работать с namespace как это сделано, например, в C++.
Для реализации данного решения мною была подготовлена маленькая библиотечка, позволяющая писать код так:

_namespace = 'SOME.NEW.NAMESPACE'
SOME.NEW.NAMESPACE.MyClass = function {
};
//ES 2015
SOME.NEW.NAMESPACE.MyClass2 = class {
};
_namespace.MyClass3 =… //function / class / anything



Читать дальше
avatar

Локализация веб-страниц на стороне клиента

Опубликовал в блог СамоПиаР
Локализация веб-страниц — весьма частая задача для современного интернета. В данной статье описывается моя попытка решить эту задачу на стороне клиента при помощи самописных инструментов js_tr и js-linguist.

Что такое js_tr

Это утилита, позволяющая делать переводы веб-страниц на стороне клиента, используя подключенные файлы переводов. Встроенный инструментарий позволяет использовать переводчик как для JavaScript, так и для чистого HTML. Для автоматизации работы с файлами переводов используется утилита js-linguist. Подключаемый функционал написан на JavaScript без зависимостей.


Читать дальше
avatar

Свойства (properties) для C++

Опубликовал в блог Идеи
Но зачем?
Иногда программисту, который помимо С++ работает с другими языками, очень не хватает свойств объектов.
Казалось бы, языки вроде Java и C++ обходятся без свойств объектов, таких например как в Ruby, Python, JavaScript или Delphi.
Однако, предпринимаются попытки перенести свойства в C++ (например как это делает Qt), в связи с их преимуществами:
1) Изменение реализации без изменения интерфейса — просто меняем или убираем методы доступа (аксессоры)
2) Лаконичность и понятность: circle.radius = 3; вместо circle.setRadius(3);
3) Возможность «утиной типизации»
Кажется, идея заманчивая. И я решил попробовать.


Читать дальше
avatar

Оптимизация математических выражений

Опубликовал в блог Программирование

У нас в разработке все менее и менее модной становится тема оптимизации кода – считается что это дескать удел компиляторов а самим лучше в это нос не совать дабы не обжечься. Тем не менее, мы прекрасно знаем, что различные типы вычислений, например, имеют разную стоимость и я думаю мы можем предположить, что любой, даже самый умный компилятор, не в состоянии оптимизировать сложные математические выражения.

В этом посте – обзор нескольких оптимизаций вычислений, которые мы как разработчики можем применить чтобы наш код исполнялся чуточку быстрее.



Читать дальше
avatar

Создание бизнес-приложений без программирования

Опубликовал в блог Программирование
Лет десять назад я сделал штуку, которая, если ей скормить структурированный источник данных — например базу стандарта ANSI SQL92,
— анализировала базу и строила ее модель
— на основе модели строила веб-приложение
— с секьюрити, пользователями, логином, меню
— строила все скрины с соответствующими случаю фильтрами, дропдаунами и чекбоксами
— отслеживала иерерхические зависимости внутри записей
— все редактировалось inline (а-ля ajax)
— имела набор разных виджетов, типов полей, окошечек, дат, колорпикеров, форм, фильтров, чартов и прочих нужных штук
— была многопользовательской, как гуглоэксель сейчас
— любое поле можно было сделать чем угодно, от текстовой метки до сложного контрола, который открывался формой и расссчитывал свое финальное значение через пару хранимых процедур

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

Читать дальше
avatar

Monkey patching как явление

Опубликовал в блог Программирование
Привет, мои воображаемые друзья.

Знаете, как перевести с туземного на великорусский родной язык словосочетание monkey patching?

Обезьяно-латание. Такие дела. Но речь не об этом.


Читать дальше