Как стать автором
Обновить
1
0
Алексей @AnisimovAM

PHP Developer

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

Дизайн REST API для высокопроизводительных систем

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


Александр Лебедев выражает всю нетривиальность дизайна REST API. Это — расшифровка доклада Highload++ 2016.

Всем здравствуйте!
Поднимите руку те, кто фронтенд разработчик в этом зале? Кто мобильный разработчик? Кто бэкенд разработчик?
Бэкенд разработчиков большинство в этом зале сейчас, что радостно. Во-вторых, почти все проснулись. Чудесная новость.

Пару слов о себе


Кто я такой? Чем занимаюсь?

Я фронтенд team lead компании «Новые Облачные Технологии». Последние 5 лет я писал веб фронтенд, который работает с REST API и который должен для пользователя работать быстро. Я хочу поделиться опытом о том, какие API должны быть, которые позволяют этого добиться.

Несмотря на то, что я буду рассказывать со стороны фронтенда, принципы — они общие более-менее для всех. Я надеюсь и бэкенд разработчики, и разработчики мобильных приложений так же найдут для себя в этом рассказе полезные вещи.
Всего голосов 47: ↑43 и ↓4+39
Комментарии13

Как разработать кросс-платформенное приложение с помощью одной лишь разметки JSON

Время на прочтение8 мин
Количество просмотров16K
Последние несколько месяцев я работаю над новым способом создания кросс-платформенных приложений для Android и iOS под названием Jasonette. Он позволяет написать приложение от начала до конца, используя только разметку JSON.



Если ваше приложение целиком написано через разметку JSON, с ним можно обращаться, как с любыми другими данными, а также удаленно обслуживать его по требованию из облака.

Больше нет необходимости в том, чтобы приложение было захардкорено на девайсе, Вы можете обновлять его по желанию посредством обновления разметки JSON на серверной стороне. При каждом запуске ваше приложение будет заново загружаться с сервера.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии26

6 нестандартных приемов для улучшения производительности и безопасности сайта

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

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

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

Все эти методы вполне приемлемы, но вместе с ними можно использовать и следующие.

Нижеперечисленное подходит для любой платформы, в том числе WordPress, Joomla, Magento, Drupal, Node.js и пр. Посмотрим, с какими подходами вы уже знакомы, а с какими — нет.


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

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

Время на прочтение8 мин
Количество просмотров59K
image
Автор иллюстрации — John Kenn

Почему больше времени уходит на изучение редких аутоиммунных заболеваний, чем на поиск хорошего врача, а грязная посуда кажется важнее, чем составление бизнес плана?

Прокрастинация — преступление, в котором виновен каждый.

Главный ингредиент успеха — действие. Поддаваться прокрастинации — то же самое, что вообще ничего не делать. Еще одна проблема в том, что мы все-таки выполняем задуманное. Да, мы откладываем до последнего и ждем дедлайна, но все же беремся за дело. И это плохо, ведь появляется ложная уверенность в завершении задачи независимо от времени начала действий.
Еще хуже когда сроков нет вообще. Как долго мы сможем откладывать, пока возможность не будет упущена окончательно?

У жизненных целей нет дедлайна, а значит и нет последствий его срыва. Так что откладывать мы можем бесконечно и не принимать никаких действий. Но без действий не будет и результатов.
Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии56

85% сотрудников забивает на системы управления проектами. Как мы делаем свою

Время на прочтение5 мин
Количество просмотров32K
Последние 10 лет для ведения проектов мы пользовались такими системами как YouTrack, Jira, Asana, Slack, SmartSheet, BaseCamp, Trello и даже белой доской, а также постоянно тестировали что-то новое. По нашему мнению, главная проблема всех систем управления в том, что люди в компании попросту забивают на её использование. А было бы здорово, если информация на все отделы распространялась из одной системы и вся команда сама активно постоянно ей пользовалась.

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

Для начала хотели реализовать 2 вещи:

  • Секундомеры на каждой задаче, потому что было ощущение, что это позволит точнее понимать как расходуется время в команде;
  • Универсальность. Предполагали, что отдел разработки, поддержки и все остальные отделы могут работать в одной системе.



Мы с головой ушли в это ответвление компании, разработка идёт уже 10 месяцев, а с нового года взяли ещё человека на мобильные версии. Сейчас открыто бета-тестирование, более 50 команд активно пользуется нашей системой. Под катом хотим поделиться тем, что у нас получилось и рассказать о том, какие кастомные подходы к управлению проектами оказались провальными.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии32

Что разработчики Xamarin должны знать на начало 2017 года

Время на прочтение8 мин
Количество просмотров34K
Представляем вам пятничную подборку полезных гайдов и шпаргалок от Джеймса Монтемагно для разработчиков разного уровня.


Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии41

Матрица с идеями для стартапов

Время на прочтение2 мин
Количество просмотров48K
Буквально на днях Эрик Стромберг, бывший совладелец книжного сервиса Oyster, чуть более года назад проданного Google, рассказал о матрице, которая поможет вам найти идею для нового стартапа. Сама задумка создания подобной матрицы многим показалась чрезвычайно интересной. Пост Эрика, размещенный в его блоге на Medium, спровоцировал обширную дискуссию и вызвал интерес у мировых СМИ. Тем, кто еще не слышал об этой концепции, мы предлагаем ознакомиться с переводом резонансной публикации.


Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии37

Архитектура микросервисов

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


К сожалению, у меня нет опыта работы с микросервисами, но около года назад я очень активно интересовался этой темой и изучил все источники информации, какие смог найти. Я просмотрел несколько выступлений на конференциях, прочитал несколько статей очень авторитетных и опытных специалистов вроде Мартина Фаулера, Фреда Джорджа, Эдриана Кокрофта и Криса Ричардсона, чтобы как можно больше узнать о микросервисах. Эта статья — результат моих изысканий.
Всего голосов 79: ↑75 и ↓4+71
Комментарии269

Настраиваем приватный Docker-репозиторий

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

Docker одна из горячих тем в разработке. Большинство новых проектов строится именно на Docker. Как минимум, он отлично зарекомендовал себя для распространения ПО, например, наша система поиска по документам Ambar устанавливается с помощью docker-compose.


В начале работы над Ambar мы использовали публичный docker-репозиторий, но с ростом проекта и появлением enterprise версии мы задумались над созданием собственного приватного репозитория. В данной статье мы поделимся своим опытом развертывания селф-хостед репозитория: пошагово опишем весь процесс, попытаемся обойти все подводные камни.

Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии14

Как сделать кроссплатформенное десктопное приложение на базе веб-технологий

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


Дмитрий Дудин (xbSoftware)


Сегодня я вам расскажу про технологию nw.js, большинство слайдов моей презентации будет посвящено ей. Это технология позволяет разрабатывать десктопные приложения и писать их на html, javascript и css. Причем приложение будет кроссплатформенное — под Windows, Linux и Mac. Можно их сбилдить и они будут иметь доступ к графическому интерфейсу системы, т.е. смогут еще работать с менюшками и т.д.
Всего голосов 58: ↑47 и ↓11+36
Комментарии119

LexikFormFilterBundle, создаем фильтрующие формы еще быстрее

Время на прочтение9 мин
Количество просмотров5.8K
Сразу, коротко и по делу о том, какие типы фильтров вы сможете использовать из коробки с уже созданной кастомизацией:

BooleanFilterType
CheckboxFilterType
ChoiceFilterType
CollectionAdapterFilterType
DateFilterType
DateRangeFilterType
DateTimeFilterType
DateTimeRangeFilterType
DocumentFilterType
EmbeddedFilterTypeInterface
EntityFilterType
NumberFilterType
NumberRangeFilterType
SharedableFilterType
TextFilterType

Судя из названий должно быть примерно понятно, что конкретно делает тот или иной фильтр, при этом ничего не мешает создавать свои собственные фильтры или расширять существующие.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии7

Распределение Пуассона и футбольные ставки

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



Если объединить статистические данные спортивных соревнований с распределением Пуассона, то можно рассчитать вероятное количество мячей, которые будут забиты во время футбольной игры. На этом основании можно понять откуда берутся букмекерские ставки, а также научиться самостоятельно их рассчитывать с помощью R.

ТМ 2.5 ТБ 2.5
Всего голосов 43: ↑42 и ↓1+41
Комментарии37

Symfony — комбинируем GridFS файлы с ORM сущностями

Время на прочтение5 мин
Количество просмотров4.8K
В предыдущей статье я писал о загрузке файлов в GridFS. Там мы создали MongoDB документ со свойством $file, аннотированным как @MongoDB\File. Так как ORM сущности я использую чаще, чем ODM документы, я искал простой способ получить доступ к документу из сущности.

Прямую связь между сущностью и документом установить нельзя, и я подумал, что не плохо было бы сделать собственный тип поля. С помощью определения собственного типа поля мы сможем контролировать способ хранения ссылки на документ и в то же время возвращать эту ссылку с помощью вызова свойства сущности.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

Использование Github в качестве хранилища пользовательских данных

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

Изображение коммита


Выбирая сервис для хранения моих данных, важной составляющей является то, как долго такой сервис будет жить. От него нужно, чтобы я смог хотя бы прочитать сохраненные данные даже если энтузиазм авторов проекта закончится вместе с деньгами для оплаты хостинга и базы данных. С таким подходом для своего проекта я искал сервисы баз данных, которые могли бы хранить пользовательские данные бесплатно. Многообещающим проектом был Parse.com, о котором я уже писал ранее в статье «Сайт без бекенда». Но в январе 2016 мы узнали, что Parse.com проживет только один год и будет закрыт. В связи с этим я решил перевести хранение данных пользователей в git-репозиторий, который опубликован на Github.

Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии21

Твой/мой/наш код

Время на прочтение4 мин
Количество просмотров23K
Коллега однажды спросил: «А кому с юридической точки зрения принадлежит код, который пишет разработчик?». Выяснив у юристов все тонкости прав на код, я решила поделиться полученными знаниями.


Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии39

Пишем свой первый плагин для Brackets

Время на прочтение4 мин
Количество просмотров6.2K
Brackets — это бесплатный редактор от Adobe с открытым кодом, который полюбился веб-разработчикам из-за своей киллер-фичи Extract из PSD-файлов. Brackets поддерживает систему плагинов-расширений на основе JS. О процессе разработки одного из таких плагинов я и хотел бы рассказать.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии7

Как мы учили Facebook делать сайты или План “Конверт”

Время на прочтение4 мин
Количество просмотров11K
В конце прошлого года нам поставили задачу — сделать инструмент, который автоматически создавал бы адаптивный сайт на основе информации со страницы бизнеса в соцсети. На этом пути мы:

  • Познакомились с правнуком Льва Термена и выполнили его просьбу.



  • Похоже, первыми реализовали автоматический перенос отзывов с Facebook на другие платформы.
  • И изобрели еще один способ ускорить работу над недорогим сайтом для фрилансера и заказчика.
А начиналось все с чистого листа
Всего голосов 37: ↑32 и ↓5+27
Комментарии21

5 UI фишек для современного Андроид приложения. Код, идеи и живой пример

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

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

Статья не ставит своей целью научить проектировать пользовательский интерфейс или объяснить сокровенный смысл Material дизайна, но надеюсь, приведенные примеры смогут вдохновить Ввас на эксперименты с дизайном ваших приложений.
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии15

Как не стать спамером со своей уютной рассылочкой

Время на прочтение1 мин
Количество просмотров67K
image
Пользователь когда-то подписался на рассылку, но уже забыл когда, и главное зачем. Теперь ежедневно к нему падает спам, а по собственному опыту он знает, для того чтобы отписаться нужно зайти по ссылке свой профиль, найти и снять там какую-то галку а главное, помнить свой логин и пароль на давно забытом им сайте.
Его действия? «В спам!»

А по другую сторону баррикад находитесь Вы с вашей уютненькой подписочкой, полезной информацией и очень удобной системой отписки, о которой пользователь так никогда и не узнает.

И вот, с десяток таких «отписок» и гугл будет удобно отсортировывать ваши рассылки в папочку Спам (584), у ВСЕХ ваших подписчиков.

Однако многие из нас уже успели заметить: некоторые письма в Gmail при попытке отметить их «В спам!» САМИ предлагают отписаться от рассылки в один клик.

Эта фича была введена google более года назад, но лишь единицы рассылок научились ей пользоваться. И не удивительно. В рекомендациях по осуществлению массовых рассылок, лишь косвенно упоминается о том, что Вам нужно сделать.
А сделать нужно не многое.
Читать дальше →
Всего голосов 238: ↑230 и ↓8+222
Комментарии60

О том, как мы на PHP запускали настоящий MS Excel и что из этого вышло

Время на прочтение6 мин
Количество просмотров28K
Не секрет, что зачастую PHP-программистам приходится решать задачи, весьма далёкие от бытового представления о «веб-разработке». Развитие языка в последние годы привело к тому, что PHP всё чаще считают языком общего назначения, пригодным не только для сайтов, но и для других задач.

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

Дано


  • Многие наши партнёры (скажем прямо — это крупные банки) любят считать что-то в Excel. Причем «любят» — это очень нежно сказано. Сложнейшие скоринговые модели могут быть «запрограммированы» в Excel, в файле из сотни листов с десятками макросов
  • Перевести «программы», написанные в Excel на какой-либо язык программирования — практически нереально. Это займет уйму времени, а проблема постоянного обновления и проверки корректности делает такую задачу и вовсе нерешаемой


Требуется


  • Основная информационная система нашей компании написана на PHP. Она содержит в себе как веб-интерфейсы, так и множество консольных сервисов и воркеров.
  • С этими «программами» в Excel нужно как-то взаимодействовать из консольных приложений на PHP — передавать в них данные, обсчитывать, получать результаты

Некоторое время нам хватало возможностей популярной библиотеки PHPExcel. Но когда от бизнеса поступило очередное требование «нужно, чтобы работали макросы, и еще бы хорошо всё это сохранять в PDF», стало понятно, что выбранный путь — тупиковый. Нужно не парсить файлы xlsx, не имитировать просчёт, и даже не использовать Open Office, а научиться взаимодействовать с «настоящим» Microsoft Excel.


Что из этого вышло - под катом
Всего голосов 50: ↑46 и ↓4+42
Комментарии102

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность