Ненормальный GraphQL в Electron или как я писал десктопный клиент для Tinder

Автор: admin от Вчера, 16:25, посмотрело: 23

Предыстория


Ненормальный GraphQL в Electron или как я писал десктопный клиент для Tinder


Привет, Хабр. В начале зимы 2016 года я снова стал одинок. Спустя какое-то время я решил завести себе профиль в Tinder. Всё бы ничего, но постепенно стала накапливаться усталость из-за невозможности нормально печатать на физической клавиатуре. Мне виделось несколько решений этой проблемы:



  • Смириться и продолжать использовать официальное приложение для смартфона

  • Использовать BlueStacks с официальным приложением на Android

  • Использовать существующие клиенты для десктопа (Tinder++)

  • Написать свой


Первый вариант меня не устраивал из-за принципиального превосходства реальной клавиатуры над экранной. Второй вариант не подходил из-за того, что всё-таки это было бы приложение, не оптимизированное под десктоп. Третий вариант был всем хорош кроме дизайна, багов, и малой активности в репозитории. Позже Tinder++ получил письмо от юристов Tinder и проект был и вовсе свёрнут. Таким образом, лично для меня выбор был очевиден.

Что из этого вышло

Категория: Программирование » Веб-разработка

 

Понимание событийной архитектуры Node.js

Автор: admin от 6-06-2017, 17:45, посмотрело: 27

Понимание событийной архитектуры Node.js


Большинство Node-объектов — вроде HTTP-запросов, ответов и потоков (streams) — реализуют модуль EventEmitter, благодаря которому они могут генерировать и прослушивать события.


const EventEmitter = require('events')

Простейшая форма управления по событиям — это callback-стиль некоторых популярных Node.js-функций, к примеру fs.readFile. По этой аналогии событие генерируется однократно (когда Node готов к вызову коллбэка), а коллбэк действует как обработчик события. Давайте сначала разберём эту базовую форму событийно-управляемой архитектуры.

Категория: Программирование, Веб-разработка

 

CSS в JavaScript: будущее компонентных стилей

Автор: admin от 31-05-2017, 16:15, посмотрело: 52

CSS в JavaScript: будущее компонентных стилей


С помощью встроенных стилей можно получить все программные возможности javascript, что дает нам преимущества в виде предварительного процессора CSS (переменные, примеси и функции), а также помогает решить множество проблем, возникающих в CSS, таких как конфликт пространства имен и применения стилей.


Чтобы получить больше информации о проблемах CSS, решаемых в javascript, вы можете посмотреть презентацию «React CSS в JS» (React CSS in JS), а для того чтобы изучить улучшение производительности с помощью Aphrodite, прочитайте статью Inline CSS at Khan Academy: Aphrodite. Если же вы хотите узнать больше о лучших практиках CSS в javascript, ознакомьтесь с руководством Airbnb (Airbnb’s styleguide).


Здесь речь пойдет об использовании встроенных стилей javascript для создания компонентов, позволяющих решить основные проблемы дизайна, о которых я рассказывал ранее в статье «Прежде чем осваивать дизайн, необходимо ознакомиться с основами» (Before you can master design, you must first master the fundamentals).

Категория: Программирование » Веб-разработка

 

Что нового нас ждет в Swift 4?

Автор: admin от 31-05-2017, 02:25, посмотрело: 37

Оглавление



  • Односторонние диапазоны

  • Строки

  • Приватные объявления видимы в экстеншенах того же файла

  • Умные ключи пути

  • Архивирование и сериализация

  • Улучшения в Dictionary и Set

  • Метод MutableCollection.swapAt

  • reduce с поддержкой inout

  • Генеретики в сабскриптах

  • Мостик для NSNumber

  • Экземпляры классов и подтипов
  • Категория: Программирование, Веб-разработка, iOS

     

    О дженериках в PHP и о том, зачем они нам нужны

    Автор: admin от 26-05-2017, 21:25, посмотрело: 54

    О дженериках в PHP и о том, зачем они нам нужны


    В этой статье мы рассмотрим некоторые распространённые проблемы, связанные с массивами в PHP. Все проблемы могут быть решены с помощью RFC, добавляющего в PHP дженерики. Мы не будем сильно углубляться в то, что такое дженерики, но к концу статьи вы должны понять, чем они полезны и почему многие так ждут их появления в PHP.

    Категория: Программирование

     

    Потоки выполнения и PHP

    Автор: admin от 25-05-2017, 19:35, посмотрело: 40

    Потоки выполнения и PHP


    PHP и потоки выполнения (threads). Предложение всего лишь из четырёх слов, а по этой теме можно написать книгу. Как обычно, я не буду так делать, зато дам вам информацию, чтобы вы стали разбираться в предмете до определённой степени.


    Начнём с путаницы, которая есть в головах у некоторых программистов. PHP — это не многопоточный язык. Внутри самого PHP не используются потоки выполнения, и PHP не даёт возможности пользовательскому коду нативно использовать их в качестве механизма параллелизации.


    PHP очень далёк от других технологий. Например, в Java очень активно используются потоки выполнения, ещё они могут встречаться в пользовательских программах. В PHP такого нет. И тому есть причины.

    Категория: Программирование

     

    Почему следует полностью переходить на Kotlin

    Автор: admin от 24-05-2017, 19:15, посмотрело: 55

    Почему следует полностью переходить на Kotlin


    Хочу рассказать вам о новом языке программирования, который называется Kotlin, и объяснить, почему вам стоит использовать его в своём следующем проекте. Раньше я предпочитал Java, но в последний год пишу на Kotlin везде, где только можно. И в данный момент я не представляю себе ситуации, в которой лучше было бы выбрать Java.


    Kotlin разработан в JetBrains, и участие тех же людей в создании наборов IDE, таких как IntelliJ и ReSharper, хорошо заметно по самому языку. Он прагматичен и краток, благодаря чему написание кода превращается в приятный и эффективный процесс.


    Хотя Kotlin компилируется в javascript и скоро будет компилироваться в машинный код, я сконцентрируюсь на его первичной среде — JVM.


    Итак, несколько причин, почему вам следует полностью переходить на Kotlin (порядок случаен):

    Категория: Программирование, Веб-разработка, Android

     

    Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go

    Автор: admin от 23-05-2017, 16:10, посмотрело: 48

    Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go


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


    Как и в большинстве других ситуаций с несколькими возможными решениями, дело не в том, какой из вариантов лучше, дело в понимании компромиссов. В этой статье мы сравним Node, Java, Go и PHP из-под Apache, обсудим модели ввода/вывода в разных языках, рассмотрим достоинства и недостатки каждой модели и прогоним простенькие бенчмарки. Если вас волнует производительность ввода/вывода вашего следующего веб-приложения, то эта статья для вас.

    Категория: Программирование

     

    Разбиение слов на элементы таблицы Менделеева

    Автор: admin от 18-05-2017, 17:00, посмотрело: 38

    Разбиение слов на элементы таблицы Менделеева


    (Полный исходный код лежит тут)


    Сидя на пятичасовом занятии по химии, я часто скользил взглядом по таблице Менделеева, висящей на стене. Чтобы скоротать время, я начал искать слова, которые мог бы написать, используя лишь обозначения элементов из таблицы. Например: ScAlEs, FeArS, ErAsURe, WAsTe, PoInTlEsSnEsS, MoISTeN, SAlMoN, PuFFInEsS.

    Категория: Программирование

     

    Функциональное программирование в JavaScript с практическими примерами

    Автор: admin от 28-04-2017, 15:15, посмотрело: 49

    Функциональное программирование в JavaScript с практическими примерами


    Функциональное программирование (ФП) может улучшить ваш подход к написанию кода. Но ФП непросто освоить. Многие статьи и руководства не уделяют внимания таким подробностям, как монады (Monads), аппликативность (Applicative) и т. д., не приводят в качестве иллюстраций практические примеры, которые могли бы помочь нам в повседневном использовании мощных ФП-методик. Я решил исправить это упущение.


    Хочу подчеркнуть: в статье сделан упор на том, ЗАЧЕМ нужна фича Х, а не на том, ЧТО такое фича Х.

    Категория: Программирование

     
    Назад Вперед