Pull to refresh
0
0
Send message

Я сделал PWA и выложил в трёх магазинах приложений. И вот что я выяснил

Reading time12 min
Views48K
Перевод I built a PWA and published it in 3 app stores. Here’s what I learned.

Недавно я опубликовал прогрессивное веб-приложение Chavah Messianic Radio, музыкальный проигрыватель вроде Pandora, и выложил его в трёх магазинах приложений (Google Play, iOS App Store, Windows Store).







Процесс выкладывания был тяжёлый и поучительный. Вот что я выяснил.
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments61

Простое объяснение принципов SOLID

Reading time7 min
Views285K


Принципы SOLID — это стандарт программирования, который все разработчики должны хорошо понимать, чтобы избегать создания плохой архитектуры. Этот стандарт широко используется в ООП. Если применять его правильно, он делает код более расширяемым, логичным и читабельным. Когда разработчик создаёт приложение, руководствуясь плохой архитектурой, код получается негибким, даже небольшие изменения в нём могут привести к багам. Поэтому нужно следовать принципам SOLID.

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

Чтобы понять принципы SOLID, нужно чётко понимать, как использовать интерфейсы. Если у вас такого понимания нет, то сначала почитайте документацию.

Я буду объяснять SOLID самым простым способом, так что новичкам легче будет разобраться. Будем рассматривать принципы один за другим.
Читать дальше →
Total votes 46: ↑38 and ↓8+30
Comments201

Как я начал любить Vue

Reading time15 min
Views61K

Вступление



Данный пост — это логическое продолжение моего поста/статьи — Как я перестал любить Angular / How I stopped loving Angular.
Рекомендуется к ознакомлению перед прочтением.


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

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments56

Система автоматического документирования REST-API в Laravel проектах

Reading time8 min
Views23K

Преамбула


Для того, чтоб описать и задокументировать правила клиент-серверного
взаимодействия используя Rest-api можно выделить три основных метода:


  1. Описывать своим коллегам правила обращения к серверу на пальцах
    Этот метод быстр и не требует долгосрочной поддержки, но высока вероятность, что вас за это будут бить.
  2. Руками составлять Google-docs/Wiki/Readme в проекте
    Удобно тем, что однажды написанная документация не требует повторного объяснения. Её можно показать коллегам и даже иногда заказчику. Минусом данного метода является долгосрочная поддержка такой документации. Когда Api в проекте вырастает до таких размеров, что сама мысль "А когда же я обновлял документацию?" вызывает холодок по спине, тогда вы понимаете, что дальше так продолжаться не может. Формально вы можете обновлять документацию очень часто и маленькими фиксами, но это до первого отпуска.
  3. Использовать систему автодокументирования
    И вот для того, чтобы решить минусы первых двух методов человечество придумало системы автоматического документирования. Основная идея заключается в том, что к проекту пристыковывается некий плагин, который собирает информацию по вашему коду, сам составляет документацию и обёртывает её в удобочитаемый формат. Но большинство решений по этому методу не идеальны. Давайте попробуем сделать инструмент, который поможет получить документацию нашего проекта с минимальным количеством телодвижений

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments6

Комментирование кода: хороший, плохой, злой

Reading time4 min
Views43K


Вы наверняка это слышали: «Хороший код является самодокументированным».

Я больше 20 лет зарабатываю написанием кода, и слышал эту фразу чаще всего. Это клише.

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

Она истинна? Да.

Означает ли она, что вы никогда не должны комментировать код? Нет.

В этой статье мы рассмотрим разные аспекты комментирования кода.
Читать дальше →
Total votes 75: ↑67 and ↓8+59
Comments25

Когнитивные тренировки: «апгрейд» памяти и мышления

Reading time5 min
Views66K


Наш мозг — удивительная система, которая постоянно показывает занятные фокусы. Знаком ли вам эффект «красной машины»? Человек покупает красную машину и вдруг начинает все время видеть на улице красные машины. Такое искажение называется «иллюзия частоты» или «феномен Баадера-Майнхоф» и происходит из-за селективного внимания мозга и склонности всегда подтверждать свою точку зрения (confirmation bias). 

Мозг не только подвержен когнитивным иллюзиям, но и способен гибко реагировать на внешние раздражители. Можно ли в таком случае «накачать разум», оказывая на него стимулирующее воздействие? Метаанализ Калифорнийского университета показал, что краткосрочные когнитивные тренировки ведут к положительным эффектам в важных когнитивных функциях, измеряемых лабораторными тестами.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments10

Docker. Начало

Reading time7 min
Views229K


Примерно такие же эмоции я и мои коллеги испытывали, когда начинали работать с Docker. В подавляющем большинстве случаев это происходило от недостатка понимания основных механизмов, поэтому его поведение казалось нам непредсказуемым. Сейчас страсти поутихли и вспышки ненависти происходят все реже и все слабее. Более того, постепенно мы на практике оцениваем его достоинства и он начинает нам нравиться… Чтобы снизить степень первичного отторжения и добиться максимального эффекта от использования, нужно обязательно заглянуть на кухню Docker'a и хорошенько там осмотреться.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments31

4 совета по работе с Vue.js

Reading time4 min
Views49K

Вот несколько советов по работе с Vue.js которые я выработал за последний год.


Используйте стрелочные функции в компонентах


ES6 подарил нам новый способ объявления функций с удобным биндингом текущей области видимости. При использовании старого способа, this может ссылаться не на то что вы ожидаете.


Например:

Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments9

Своими руками. Как я сделал сервис сбора статистики цен на туры

Reading time4 min
Views15K
Работа — работой, но иногда хочется отдохнуть. Предположим, вы собрались в отпуск в жаркие края. Перед вами сразу возникает несколько вопросов, основные из которых:

1) Куда поехать отдыхать
Действительно, нужно перечитать множество источников, чтобы определиться, где сейчас (или когда вы там собрались) тепло, нужна ли для въезда в страну виза, сколько стоит путёвка и т.д.

2) Когда поехать отдыхать
Допустим, вы знаете, что хотите провести свой отпуск в Египте, но не знаете когда. Самый важный вопрос для многих — когда дешевле всего туда ехать? Так же важно знать, какая там погода и т.д.

image
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments39

Vue.js и как его понять

Reading time8 min
Views47K
В своей работе, мне относительно недавно пришлось столкнуться с фреймворком Vue.js, т.к. до этого, я занимался в основном backend разработкой, пришлось со многим разбираться и многое было сложновато понять, особенно, когда раньше использовал только jQuery. В рамках данной статьи, я хочу помочь своему читателю разобраться с теми проблемами в понимании, с которыми столкнулся я. Конечно проблемы на этапе изучения чего-то нового у всех возникают разные, но и не мало тех, у кого они будут похожи, именно на это и будет направлена данная статья.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments15

Оповещение в Telegram и Slack в режиме реального времени. Или как сделать Alert в Splunk — Часть 2

Reading time3 min
Views17K
Мы продолжаем тему алертинга в Splunk. Ранее мы говорили о том, как настроить отправку оповещений на электронную почту, а сегодня покажем Вам, как отправлять уведомления в мессенджеры, такие как Telegram и Slack.

В статье вы найдете пошаговую инструкцию по настройке.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments3

Руководство по SEO JavaScript-сайтов. Часть 2. Проблемы, эксперименты и рекомендации

Reading time13 min
Views16K
В первой части перевода этой статьи мы говорили о том, как веб-мастер может взглянуть на свой ресурс глазами Google, и о том, над чем стоит поработать, если то, что увидит разработчик сайта, окажется не тем, чего он ждёт.

image

Сегодня, во второй части перевода, Томаш Рудски расскажет о наиболее распространённых SEO-ошибках, которым подвержены сайты, основанные на JavaScript, обсудит последствия грядущего отказа Google от механизма AJAX-сканирования, поговорит о предварительном рендеринге и об изоморфном JavaScript, поделится результатами экспериментов по индексированию. Здесь, кроме того, он затронет тему особенностей ранжирования сайтов различных видов и предложит вспомнить о том, что помимо Google есть и другие поисковики, которым тоже приходится сталкиваться с веб-страницами, основанными на JS.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments5

Как написать одностраничное приложение (SPA) с использованием Vue.js

Reading time7 min
Views127K
Одностраничные приложения

Одностраничные приложения (SPA) имеют мнжество преимуществ, таких как скорость, по-настоящему хороший UX, и полный контроль HTML-разметки. Становится всё больше и больше сайтов SPA; всё больше инструментов, которые упрощают процесс разработки SPA. Вы, вероятно уже читали о молодом и перспективном фреймворке Vue.js. Предлагаю вам глубже погрузиться в Vue и на конкретном примере разобраться с простым SPA.

Мы напишем клиент-серверное приложение простейшего блога. Приложение будет отображать список записей а также полный текст каждой отдельной записи. И само собой, всё это будет происходить без перезагрузки страницы.

Ознакомившись с примером этого приложения, вы научитесь извлекать данные в Vue, создавать роуты и разберётесь с интересной особенностью Vue — однофайловыми компонентами.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments28

Разрабатываем игру на SVG + React. Часть 1

Reading time23 min
Views34K

TL;DR: в этих сериях вы узнаете, как заставить React и Redux управлять SVG элементами для создания игры. Полученные в этой серии знания позволят вам создавать анимацию не только для игр. Вы можете найти окончательный вариант исходного кода, разработанного в этой части, на GitHub.


image

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments9

Ох уж эти модальные окна или почему я полюбил render-функции в VueJs

Reading time19 min
Views53K
Привет всем!
Моя первая публикация прошла с неприятным осадком. Я обещал исправить это недоразумение и на ваш суд представляю свою первую статью-урок по VueJs. Надеюсь, она окажется полезной. Мыслей много, опыта тоже немало. Всю жизнь учусь по чужим статьям, урокам. Пришло время тоже делиться знаниями.
А будем мы творить модальные окна. Да опять они. Но не такие простые, как описаны в первой моей (не моей) публикации.

Много уже их создано для Vue. Пользовался всякими. И видимо, когда достигаешь какого-то определенного уровня владения инструментом (в данном случае Vue), сразу хочется сделать велосипед, но конечно со своими прибамбасами, типа, чтобы круче всех и т.д. И я не стал исключением из правил.

Из всех доступных модальных компонентов, использовал в основном этот — Vuedals.
Но решил я его проапгрейдить. В принципе от основы остался только EventBus и взаимодействие событий связанных с открытием-закрытием окон. Основной компонент переписан и стал оберткой-контейнером и добавлен новый компонент — само модальное окно.
Но обо всем по порядку. И статья получится очень немаленькая, кто осилит, тот красавчик :)
Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments21

Пунктирные вау-эффекты: о магии простыми словами

Reading time7 min
Views37K


Продолжаем смотреть технические приемы создания различных анимаций в интерфейсах. Мы уже познакомились с частицами, масками и изменением форм различных объектов — настал черед рисовать пунктирные линии.

Перед тем, как перейти к статье, сделаю небольшое отступление. Эта серия статей предназначена для разработчиков (в первую очередь начинающих), которые хотят делать красивые вещи, но совершенно запутались в сложных инструментах. Каждый раз мы затрагиваем какой-то один прием использования того или иного инструмента и смотрим, к созданию какиих эффектов его можно применить. Комментарии о том, что “во времена флеша было лучше” или что “нужно анимации рисовать в AfterEffects” безусловно имеют право на существование, но будут вырваны из контекста и совершенно не помогут начинающим в решении их задачи.
Total votes 60: ↑60 and ↓0+60
Comments15

Разворачиваем связку Nginx+Php-Fpm+MySQL с magento2 на борту и раскладываем по контейнерам в Docker

Reading time6 min
Views79K
Добрый день!

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

Но в целом они упираются в одну связку это Nginx\Appache, SQL (тут вариаций много, все зависит от предпочтений заказчика), PHP и желательно чтобы это было разложено по контейнерам.
Поэтому я решил рассказать на примере, как все это поднять без особых усилий.

Возможно кому-то это поможет понять, на простом примере, что к чему. Описывать что такое Docker я не буду, т.к. статей на эту тему вагон и маленькая тележка.

В данной статье, мы подготовим небольшую структуру:

  • В качестве вэб сервера будет использоваться Nginx с минимальной настройкой для запуска проекта.
  • В качестве SQL будет использовать MySQL.
  • PHP7.0-fpm версия c небольшими надстройками для запуска нашего проекта.
  • В качестве проекта который мы будем разворачивать — берем magento2.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments14

Частичные вау-эффекты: о магии простыми словами

Reading time6 min
Views17K
Существует такая категория сайтов, которые мы обычно называем «вау-сайтами». Они не предназначены для непосредственного потребления контента, а скорее производят впечатление на посетителя. Эти сайты обычно уникальны в своем дизайне, содержат экспериментальные решения для взаимодействия с пользователем, ломают стереотипы и изобилуют разными анимациями. Особый интерес представляют различные трюки с SVG и анимации, основанные на большом количестве частиц, о которых и пойдет речь в этой статье.



В целом идея воссоздания различных объектов в виде набора частиц существует уже давно. Но из-за того, что практическое применение этой идеи сильно ограничено, а каждая конкретная реализация завязана на конкретный контент, нет единой структурированной базы знаний, в которой можно было бы быстро ознакомиться со всеми приемами. В результате многие разработчики не понимают, что в основе всего лежат очень простые идеи. Их под силу реализовать каждому, кто более-менее знаком с JS.
Total votes 15: ↑15 and ↓0+15
Comments3

Создание REST API на Falcon

Reading time4 min
Views21K
Перевод статьи Create a scalable REST API with Falcon and RHSCL автора Shane Boulden.

В этой статье мы создадим REST API на основе фреймворка Python Falcon, потестируем производительность и попробуем его масштабировать, чтобы справиться с нагрузками.

Для реализации и тестирования нашего API нам понадобятся следующие компоненты:


Почему Falcon?


Falcon — это минималистичный веб-фреймворк для построения веб API, согласно сайту Falcon он до 10 раз быстрее чем Flask. Falcon быстрый!
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments13
1
23 ...

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Date of birth
Registered
Activity