Как стать автором
Обновить
5
0
Руслан @rajdee

Front-end Developer

Отправить сообщение

Favicons, Touch Icons, Tile Icons и т. д. Что выбрать?

Время на прочтение6 мин
Количество просмотров153K
От переводчика.
Это перевод статьи Филипа Бернарда с сайта css-tricks.com. Часть статьи, содержащую описание работы с созданным им сервисом, я позволил себе опустить. Если вы найдете ошибки, просьба сообщить о них в личном сообщении.

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


Фавикон был представлен в 1999 году, в Internet Explorer 5 (источник) и стандартизирован W3C несколько месяцев спустя. Это была маленькая иконка, представляющая сайт.



С тех пор большинство настольных браузеров следуют тенденции и используют фавикон тем или иным способом. Это очень просто, не так ли? Создать маленькую картинку и добавить в любой интернет-проект, чтобы сделать его «завершённым». Ничего сложного.
Или нет?
Всего голосов 73: ↑71 и ↓2+69
Комментарии44

Цикл стартапа: как (в общем) работает венчурное инвестирование

Время на прочтение9 мин
Количество просмотров30K

Привет, Хабр! Недавно я выпустил книгу о юридическом сопровождении венчурных инвестиций и IT-бизнеса. Продавать книгу я не собираюсь, поэтому с удовольствием выкладываю одну главу для членов хабрасообщества.

Книга «Закон стартапа»:
  1. Стартапер vs. предприниматель
  2. Выбираем форму
  3. Регистрация
  4. Корпоративное управление
    Как юридически строится компания
  5. Текущая работа
    Договоры и как они работают
    Как проверить партнера по открытым источникам
  6. Налоги
    Что платит IT-бизнес в России?
  7. Государственная поддержка
  8. Цикл стартапа
    Как (в общем) работает венчурное инвестирование
  9. Венчурные сделки
  10. Венчурные фонды
  11. Интеллектуальная собственность
  12. Офшоры и ВЭД
    Преимущества и подводные камни офшоров


По работе (я юрист и преподаватель) часто приходится объяснять студентам, как работает венчурное инвестирование и зачем инвестору вкладывать деньги в IT-бизнес, по сути, не получая ничего взамен. Поэтому я постарался объяснить природу венчурного феномена. Конечно, это все равно теория, на практике есть куча нюансов и деталей, но как общее руководство, я думаю, подходит. Если что-то останется неясным, спрашивайте в комментах, объясню по мере возможностей ;-)
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии19

Идиоматичный Redux: Дао Redux'а, Часть 1 — Реализация и Замысел

Время на прочтение20 мин
Количество просмотров19K

Мысли о том, какие требования выдвигает Redux, как задумано использование Redux и что возможно с Redux.


Введение


Я потратил много времени, обсуждая онлайн паттерны использования Redux, была ли это помощь тем, кто изучает Redux в Reactiflux каналах, дискуссии о возможных изменениях в API библиотеки Redux на Github'е, или обсуждение различных аспектов Redux'а в комментариях к тредам на Reddit'е или HN (HackerNews). С течением времени, я выработал свое собственное мнение о том, что представляет собой хороший, идиоматичный Redux код, и я хотел бы поделиться некоторыми из этих мыслей. Несмотря на мой статус мейнтейнера Redux'а, это всего лишь мнения, но я предпочитаю думать, что они являются достаточно хорошими подходами.


Redux, в своей сути, невероятно простой паттерн. Он сохраняет значение, выполняет одну функцию для обновления значения когда это необходимо, и уведомляет любых подписчиков о том, что что-то изменилось.


Несмотря на эту простоту, или, возможно, вследствие ее, существует широкий спектр походов, мнений и взглядов о том, как использовать Redux. Многие из этих подходов широко расходятся с концепциями и примерами из документации.


В то же время, продолжаются жалобы на то, как Redux «заставляет» вас делать вещи определенными способами. Многие из этих жалоб на самом деле включают концепции связанные с тем, как Redux обычно используется, а не фактическими ограничениями наложенными самой библиотекой Redux. (Например, только в одном недавнем HN треде я видел жалобы: «слишком много шаблонного кода», «константы action'ов и action creator'ы не нужны», «я вынужден редактировать слишком много файлов чтобы добавить одну фичу», «почему я должен переключаться между файлами чтобы добраться до своей логики?», «термины и названия слишком сложны для изучения или запутанны», и слишком много других.)

Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии12

История моего стартапа: 500000 пользователей за 5 дней на стодолларовом сервере

Время на прочтение11 мин
Количество просмотров35K
Похоже, все в мире стартапов согласны с тем, что первые версии приложений должны представлять собой минимально жизнеспособный продукт (MVP, Minimal Viable Product), создавая который можно не особо заботиться о его масштабировании с технической точки зрения. Мне много раз доводилось слышать о том, что самое главное в подобных делах – поскорее выпустить нечто работающее. И, до тех пор, пока бизнес-модель нормально функционирует в условиях роста клиентской базы – всё нормально. А тратить время и деньги на то, чтобы сделать систему, которая сможет выдержать внезапный наплыв пользователей, не стоит. Беспокоиться нужно лишь о проверке предположений, об оценке рынка и о раскрутке бизнеса. Масштабируемость – это то, что можно отложить на потом. К несчастью, такая вот слепая вера в шаблонные идеи уже не раз приводила к оглушительным провалам. Pokémon GO, и, в частности, связанные с этим проектом приложения, служат напоминанием об этом.


Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии13

О структуре и масштабировании сложных приложений для Node.JS

Время на прочтение7 мин
Количество просмотров20K
Структура программных проектов – это важно. От решений, принятых в самом начале работы, зависит то, какой будет эта работа в течение всего жизненного цикла продукта.



В основу данного материала легли ответы на часто задаваемые здесь вопросы, касающиеся структурирования сложных приложений для Node.js. Он предназначен для всех, кто чувствует потребность в улучшении структуры собственных разработок.

Вот основные темы, которые мы здесь раскроем:

  • Разработка хорошо масштабируемых приложений, которые легко поддерживать.
  • Качественное разделение конфигурационных данных и основного кода приложения.
  • Использование в Node.js-приложениях процессов различных типов.

Здесь мы, иллюстрируя различные концепции, будем пользоваться приложением-примером, полный код которого можно найти на GitHub.
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии5

Отрисовка векторной графики — триангуляция, растеризация, сглаживание и новые варианты развития событий

Время на прочтение13 мин
Количество просмотров24K

В далёком 2013м году вышла игра Tiny Thief, которая наделала много шуму в среде мобильной Flash (AIR) разработки из-за отказа от растровой графики в билдах, включая атласы анимации и прочего — всё что было в сборке хранилось в векторном формате прямиком из Flash редактора.
Это позволило использовать огромное количество уникального контента и сохранить размер установочного файла до ~70 мегабайт (*.apk-файл из Google Play). Совсем недавно снова возник интерес к теме отрисовки векторной графики на мобильных устройствах (и вообще к теме отрисовки вектора с аппаратной поддержкой), и меня удивило отсутствие информации "начального" уровня по этой теме. Это обзорно-справочная статья по возможным способам отрисовки вектора и уже существующим решениям, а так же о том, как подобные вещи можно сделать самостоятельно.


Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии10

Тестирование в React

Время на прочтение14 мин
Количество просмотров43K
image

Каждый JS-разработчик рано или поздно начинает писать тесты и сожалеть, что не стал делать этого раньше. Поскольку за последние пару лет все постепенно перешли к компонентной разработке на основе React, Angular или, например, Vue, это дало очередной толчок для популяризации тестирования, так как компоненты обычно малы и тестировать их гораздо проще. В данной статье мы рассмотрим компонентное тестирование в React.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии10

Множество JS-пакетов в одном репозитории

Время на прочтение8 мин
Количество просмотров20K

image


Хабрадевелоперам, привет! Не так давно мы начали разрабатывать комплексный проект, у которого есть или планируется несколько видов фронт-енда, множество сервисов бэк-енда, интерфейс командной строки, демоны и много ещё чего. У всего этого в свою очередь есть шареный код, а совершенно новые приложения должно быть возможным собирать из имеющихся кирпичиков простым и понятным образом.


Если не занудствовать с терминологией, мы делаем платформу. Платформу для визуального программирования под DIY-электронику.


Несмотря на то, что проект находится на ранней стадии, кодовая база уже грозилась превратиться в кашицу. Чтобы это присечь, мы перевели проект на так называемый monorepo-подход. На Хабре не оказалось материалов на эту тему, поэтому попытаюсь восполнить пробел.

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии15

Нянчим проект на React-redux с пелёнок

Время на прочтение20 мин
Количество просмотров66K
intro
В начале этого года мы в HeadHunter начали проект, нацеленный на автоматизацию различных HR-процессов у компаний-клиентов. Архитектурой этого проекта на фронте выбрали React-Redux стек.

За 9 месяцев он вырос из небольшого приложения для тестирования сотрудников в многомодульный проект, который сегодня называется “Оценка талантов”. По мере его роста мы сталкивались с вопросами:

  • хранения стейта, его нормализации;
  • построения масштабируемой архитектуры проекта, удобной иерархии — как в структуре, так и в бизнес-логике.

Это проявлялось в изменении подхода к построению компонентов, архитектуры редьюсеров.

Давайте поговорим о том, как мы развивали проект и какие решения принимали. Некоторые из них могут оказаться “холиварными”, а другие, напротив, “классикой” в построении большого проекта на redux. Надеюсь, что описанные ниже практики помогут вам при построении react-redux приложений, а живые примеры помогут разобраться, как работает тот или иной подход.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии32

Air Berlin: реализация Progressive Web App

Время на прочтение12 мин
Количество просмотров19K
Привет, Хабр! На прошедшей 18 мая в Калифорнии юбилейной конференции для разработчиков Google I/O было много всего. Серьёзные штуки для Android, монументальные изменения и интеграции в продуктах Firebase, да и просто множество анонсов и классных технологий. Но кое-что ещё мы пока не обсуждали. Речь идёт о Progressive Web App’ах (современных веб-приложенях) — сайтах, написанных так, словно это современные мобильные приложения: удобные, простые, интуитивно понятные и комфортные для использования на сенсорном дислпее.

Поэтому в ближайшие два месяца мы собираемся не только публиковать статьи по теме PWA, но и провести тематическую онлайн конференцию 11 октября — Progressive Web Apps Day. Пока же предлагаем вашему вниманию реальный кейс использования PWA от AirBerlin.


Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии7

Три принципа производительности в JavaScript, делающие Bluebird быстрым

Время на прочтение7 мин
Количество просмотров17K

Компания Reaktor поделилась в своём блоге принципами и примерами оптимизации JavaScript-кода, применёнными в библиотеке промисов Bluebird, созданной их сотрудником Petka Antonov (Петкой Антоновым).

Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии3

30 легковесных JavaScript плагинов и библиотек

Время на прочтение5 мин
Количество просмотров107K
В это обзоре мы познакомимся с 30 бесплатными JavaScript плагинами и библиотеками, которые сфокусированы на определенных задачах. Это простые, полезные и легкие решения, которые помогут сделать процесс веб-дизайна и разработки гораздо проще и быстрее.

Как и следовало ожидать ниже вы найдете много плагинов для создания ползунков, галерей с изображениями, адаптивных меню, а также много других полезных плагинов и библиотек. Также в списке представлены плагины, которые предлагают действительно уникальные функциональные возможности. Давайте взглянем на список!
Читать дальше →
Всего голосов 66: ↑53 и ↓13+40
Комментарии16

Выбираем состав изоморфных React-приложений на следующие 12 месяцев

Время на прочтение2 мин
Количество просмотров22K
Друзья, уже шесть часов вечера, последний понедельник августа, а это значит — последняя неделя лета. Давайте подведём итог и немного пофантазируем?

Сейчас формируем некий Isomorphic React App бойлерплейт на следующие 12 месяцев, с которым можно быстро стартовать новые проекты. Пока видим такой набор:

1. React 15.
2. На сервере — Node.js и Express.
3. CSS modules и isomorphic-style-loader для автоматической генерации Critical CSS при Server-side Rendering. Или всё-таки JSS?
Читать дальше →
Всего голосов 57: ↑34 и ↓23+11
Комментарии105

Ценность многошрифтового дизайна

Время на прочтение15 мин
Количество просмотров18K


Я заметила, что одна из особенностей моего дизайнерского стиля — это готовность использовать, на первый взгляд, слишком большое количество разных гарнитур шрифтов. Я видела неисчислимое множество статей о сочетаниях и системах использования шрифтов, и почти везде рекомендуется использовать меньше шрифтов в любом дизайне. Я и к своей работе получала такие комментарии – дескать, работы приятные, несмотря на количество используемых шрифтов.
«Очень нравится сайт, потому что он не боится нарушать одно из первых правил шрифта – не использовать слишком много разных гарнитур. Используется четыре шрифта, два из семейства sans-serif и два из serif — Galaxie Copernicus, Interstate, Harriet и Nimbus Sans. Основной момент такого дизайна – последовательность, и сайт Бетани Хек последовательно использует каждый из шрифтов для своей цели.»
— Джеремия Шоаф, Typewolf


Расцениваю это, как вызов. Спасибо, Джеремия!

Хочу поспорить и рассказать о ценности эклектичных систем, и о том, как создать структуру проекта, чтобы эффективно использовать совместно несколько шрифтов.



Так почему же у нас есть правила насчёт количества используемых гарнитур?
Реально много больших картинок.
Всего голосов 17: ↑16 и ↓1+15
Комментарии4

Интересная задачка для интервью, карринг и частичное применение функции

Время на прочтение3 мин
Количество просмотров80K
Хожу по job interview. Где-то скучно, где-то весело. Где-то интересно. На одном из таких меня попросили написать функцию, которая умеет складывать два числа. Я написал:

  it ('should add two numbers', function () {
    var add = function (a,b) {
      return a + b;
    };

    assert.equal(add(2,3), 5);
  });


А если, говорят, сигнатура функции должна быть типа такой: add(num1)(num2)? Не вопрос, говорю. Думая, что хитрый буржуин хочет проверить, знаю ли я про то, что можно возвращать функции из функций, пишу вот такое:

  it ('should be called like add(num1)(num2)', function () {
    var add = function (a) {
      return function (b) {
        return a + b;
      };
    };

    assert.equal(add(2)(3), 5);
  });


Читать дальше →
Всего голосов 168: ↑163 и ↓5+158
Комментарии74

5 Flexbox методов, о которых вы должны знать

Время на прочтение4 мин
Количество просмотров78K
Flexbox является стандартом CSS, оптимизированным для проектирования пользовательских интерфейсов. Используя различные свойства Flexbox мы можем построить нашу страницу из небольших блоков, которые затем с легкостью сможем перемещать и изменять размеры, как нам угодно. Адаптивные веб-сайты и приложения пользуются огромным спросом в нынешней веб-индустрии.

В этой статье я хочу показать вам пять flexbox методов к решению проблем компоновки при верстке. Также я приведу практические примеры для демонстрации, в которых применяются эти методы.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии7

Планировщик путешествий своими руками за пару часов

Время на прочтение8 мин
Количество просмотров14K

Автор: Сергей Матвеенко

Однажды ко мне пришел инвестор одного проекта и сказал: «Давай сделаем планировщик путешествий по картам Google!» Я согласился. Тогда инвестор стал рассказывать, как техдиректор представлял себе архитектуру этого планировщика: он говорил что-то про связь с сервером, про ключ API, про запросы в Google, про деньги за запросы, которых будет много и т. д. Все выглядело сложно и красиво. Однако затем мы стали внимательно читать документацию Google API и вдруг поняли, что на самом деле нам сервер не нужен. Вообще! Весь планировщик можно сделать на клиенте. А самое интересное — мы можем обойтись даже без API-ключа (при условии, что мы будем использовать JS API). В итоге я за два дня смог написать такой планировщик, с логикой на стороне клиента, на основе Google API, без использования сервера. Все оказалось очень просто.

Я расскажу, как можно сделать простейший планировщик такого рода буквально за пару часов. Конечно, за это время можно собрать только прототип, но главное — он будет работать! Его главной функцией будет прокладка оптимального маршрута между достопримечательностями в интересующем нас городе; может присутствовать разбивка плана поездки по дням. Все будет сделано на AngularJS с использованием Google Maps/Places API. Я расскажу об особенностях работы с этим API и о некоторых его возможностях, которые не указаны в документации. Также мы поговорим о выделении логики в клиентские приложения.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии3

Тонкости модульной системы ECMAScript 2015 (ES6)

Время на прочтение5 мин
Количество просмотров116K
Уже около полугода я пишу на ES6 (который в итоге назвали ES-2015) и ES7, с использованием бабеля в качестве транслятора. Писать мне приходилось в основном серверную часть, соответственно, использование модулей было само собой разумеющимся: до ES6 — с помощью модульной системы самой ноды, а теперь — с помощью стандартизированной семантики самого языка. И мне захотелось написать статью, в которой расписать тонкости, плюсы, подводные камни и необычности новообретенной модульной системы языка: отчасти — чтобы другим было проще, отчасти — чтобы разобраться во всём окончательно самому.

Я разберу, что такое модуль, как происходит экспорт сущностей, как происходит импорт сущностей, чем система модулей ES6 отличается от системы модулей в NodeJS.
Итак, начнем.
Всего голосов 39: ↑39 и ↓0+39
Комментарии38

Как собеседовать ИТ-специалистов

Время на прочтение2 мин
Количество просмотров33K
Одна из наших основных задач — сделать IaaS простым и понятным. Для этого мы постоянно оптимизируем работу нашего провайдера и рассказываем об этом здесь. Например, мы уже писали о том, как работает API нашего IaaS-провайдера и делились опытом разработки своего DNS-менеджера.

Сегодня мы решили взглянуть на западный опыт и рассмотреть тему найма ИТ-специалистов. Для этого мы оттолкнулись от заметки Реджинальда Брэтуэйта (Reginald Brathwaite) из компании Page Duty и кратко проанализировали инсайты, которые он описал.

Читать дальше →
Всего голосов 48: ↑27 и ↓21+6
Комментарии101

50 лучших инструментов для разработки CSS и JavaScript

Время на прочтение3 мин
Количество просмотров73K
Веб-разработчику постоянно необходимо быть в курсе появления новых библиотек и инструментов. Я нашёл и выбрал несколько лучших инструментов для разработки как CSS, так и JavaScript. Это не просто копипаста – это выборка, основанная как на рекомендациях, так и на личном опыте использования.

Разработка фронтэнда – штука хитрая. И хотя она не слишком сложная для освоения, некоторые тонкости освоить также не помешает. В сети ежедневно появляются отличные ресурсы. Они могут дать толчок развитию ваших навыков и помочь вам лучше выполнить вашу задачу.

Лучшие инструменты для CSS и JavaScript


1) Fileicone

Сборник 100%-CSS файловых иконок. Может пригодиться для дизайна страниц.

image

2) Marx

Элегантное обнуление CSS безо всякого JavaScript.

image
Читать дальше →
Всего голосов 54: ↑36 и ↓18+18
Комментарии17

Информация

В рейтинге
Не участвует
Откуда
Симферополь, Республика Крым, Россия
Зарегистрирован
Активность