Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Портинга и препроцессинга псто

Разработка под Android *
А многим ли из вас, уважаемые, не приходилось задумываться о том, как из одного набора исходников, без лишнего напряжения душевных сил собирать две независимых версии приложения — полную и не очень? Всем, поднявшим руку, скажу: ещё придётся, ой как придётся поломать голову над этим вопросом. Ну, или можно воспользоваться рецептом ниже.
Читать дальше →
Всего голосов 38: ↑20 и ↓18 +2
Просмотры 1.2K
Комментарии 32

Поля класса доступные по имени с setter и getter в C++

C++ *
Из песочницы
Как известно, в C++ нет средства описания полей класса с контролируемым доступом, как например property в C#. На Хабрахабре уже пробегала статья частично на эту тему, но мне решительно не нравится синтаксис. К тому же очень хотелось иметь возможность обращаться к полям из ран-тайма по имени.
Читать дальше →
Всего голосов 55: ↑42 и ↓13 +29
Просмотры 20K
Комментарии 44

JavaScript|HTML Preprocessor

JavaScript *

Здравствуйте, дорогие друзья!


В один чудесный день в один чудесный час возникла острейшая необходимость в JS|HTML препроцессоре и как обычно поиск готового решения не увенчался успехом, везде чего-то не хватало (не было глобальных переменных, вставки строк, замены строк, импорта и т.п.). Ну и поскольку я суровый якутский парень, то выход был один — сделать все самому. Ну? что ж, результат моего труда я решил выложить на мнение комьюнити.
Читать дальше →
Всего голосов 22: ↑14 и ↓8 +6
Просмотры 8.3K
Комментарии 2

AnnotatedSQL lib — автоматическая генерация базы данных в Android

Разработка под Android *
При разработке приложения под Android мы часто пишем руками скрипты для создания схемы.
Все бы ничего когда это надо сделать одни раз, но когда приложение развивается, то часто приходится менять базу.
И когда это размазано по нескольким классам — то возникают проблемы, где-то забыл добавить/удалить колонку, изменить тип и прочее. Еще и копипаст «помогает»: добавлял колонку — забыл поставить запятую.

Как раз для решения этих проблем и была придумана эта библиотека.

Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 8.3K
Комментарии 15

RMI средствами С++ и boost.preprocessor

Программирование *C++ *
Из песочницы
Это моя первая публикация на сем ресурсе, посему, прошу отнестись с пониманием к допущенным мною ошибкам.

RMI — весьма банальная задача для ЯП, поддерживающих интроспекцию. Но, С++, к сожалению, к ним не относится.

В данной публикации я хочу продемонстрировать возможность реализации весьма юзабильной RMI средствами С++ препроцессора.

Постановка задачи


1. Предоставить максимально простой синтаксис, чтоб невозможно было допустить ошибку.
2. Идентификация(связывание) процедур должна быть скрыта от пользователя для того, чтоб невозможно было допустить ошибку.
3. Синтаксис не должен накладывать ограничения на используемые С++ типы.
4. Должна присутствовать возможность версионности процедур, но, так, чтоб не ломалась совместимость с уже работающими клиентами.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 6.3K
Комментарии 10

Правильное проставление определений препроцессора C++ в CMake

Разработка веб-сайтов *C++ *
Из песочницы
Определения препроцессора (preprocessor definitions) часто используются в С++ проектах для условной компиляции выбранных участков кода, например, платформозависимых и т.п. В этой статье будут рассмотрены, видимо, единственные (но крайне сложные в отладке) грабли, на которые можно наступить при проставлении #define-ов через флаги компилятора.

В качестве примера возьмем систему сборки CMake, хотя те же действия можно совершить в любом другом ее популярном аналоге.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 20K
Комментарии 5

Webpack для Single Page App

Разработка веб-сайтов *JavaScript *HTML *Node.JS *

Привет!





Отгремели фанфары, прошел звон в ушах от истязаний «евангелистов», модников в сфере фронтенд разработки. Кто-то ушел на sprockets, кто-то пустился во все тяжкие и стал писать свои велосипеды или расширять функционал gulp или grunt. Но статей по поводу популярных инструментов автоматизации процесса сборки – стало существенно меньше и это факт! Пора бы заполнить освободившееся пространство чем-то существенно иным.

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

Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 72K
Комментарии 61

Очередной метод снизить объем SPA приложения (webpack)

Разработка веб-сайтов *CSS *JavaScript *
Так уж случилось, что в последнее время мне приходится осваивать новые инструменты. Очередным таким инструментом стал webpack. Инструмент интересный, но после переезда с Google Closure * для меня стало загадкой, почему webpack не ужимает имена классов, как это делает Google Closure Stylesheets. За день, на коленке, мною был написан plugin который вполне не плохо реализовал этот функционал. Более подробное описание ниже.
Читать дальше →
Всего голосов 22: ↑16 и ↓6 +10
Просмотры 11K
Комментарии 21

Atomizer vs Minimalist Notation (MN)

CSS *JavaScript *
Из песочницы
Tutorial

Minimalist Notation (MN) (минималистическая нотация) — гибкая адаптивная технология генерации стилей.


Она генерирует стили только для существующих классов разметки html, jsx, и т.п. — благодаря чему отпадает необходимость заботиться о компонентном подходе в CSS, мёртвом CSS коде, и отпадает необходимость писать CSS код вообще.


В ней поддерживаются брейкпоинты (медиа-запросы), селекторы, приоритеты, группировки, необходимые автопрефиксы и полифилы.


Применение этой технологии похоже на использование инлайновых стилей, только с гораздо более выразительным синтаксисом и множеством дополнительных возможностей, поэтому MN можно даже назвать технологией inline styles 2.0.


MN подразумевает не только правила нотации как таковые, но и, по-сути, даже усовершенствованный альтернативный синтаксис каскадного языка установки стилей, который ориентирован на инлайновое применение.


Я разработал MN в 2017 году, и с того момента успел во многом усовершенствовать эту технологию, добавить достаточно пресетов и удобных инструментов для её изучения.


Если кто-то желает узнать о том, как мне пришло в голову разработать собственную технологию, я оставляю ссылку на свой репозиторий, дабы не плагиатить у самого себя.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 2.2K
Комментарии 9