Search
Write a publication
Pull to refresh
19
0
Vladimir @mvs

Creator, founder, developer

Send message

Как мы сетапили монорепозиторий с SSR и SPA для Otus.ru

Reading time10 min
Views4.5K

В начале 2017 года в KTS поступила задача - реализовать платформу для онлайн-образования Otus.ru.

От нас требовалось как можно быстрее собрать портал, на котором можно было бы посмотреть информацию о курсах. Сделать MVP нужно было как можно быстрее, а современные фронтенд-фреймворки были еще не распространены. Поэтому фронт писался на vanilla js + jquery. В 2020 году мы решили перепроектировать и полностью переписать сервис на React.

В этой статье мы расскажем, как засетапить монорепозиторий с SSR и SPA приложениями на React на примере Otus.ru

Читать далее

А на прошлом месте работы было по-другому

Reading time9 min
Views6.7K

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

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

Читать далее

Стратегия своими руками

Reading time11 min
Views19K
Он стратег, он даже тактик, словом — спец,
Сила, воля, плюс характер — молодец!

В. Высоцкий


Никогда не писал статей для Хабра, даже комментариев. И на тематические порталы не выкладывал ничего лет 5.

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


Читать дальше →

[Личный опыт] Как просто переехать в Словакию и что там делать IT-специалисту на удаленке

Reading time10 min
Views40K

В Германии инженерам хорошо платят, в Португалии тепло, а в Финляндии много стартапов и низкая конкуренция. Но что IT-специалисту делать в Словакии? Стоит ли туда перебираться, и не получится ли, что переедешь в ту же Россию, только в Европе?


Поговорили об этом с Сергеем Федосеевым, который уже три года живет в Братиславе — учится и ведет там бизнес. Он рассказал, каково вообще живется в Словакии, как тут с работой и расходами и почему уехать сюда легче, чем в любую другую страну Европы.




Читать дальше →

Как переехать в Польшу в условиях локдауна/карантина

Reading time7 min
Views11K
Update:
По рекомендации читателей небольшой апдейт. Эта статья может быть полезна жителям Республики Беларусь и тем, кто задумывается о переезде в Польшу в ближайшее время. Кому это не интересно, просто не тратьте свое время. Это очень специфический кейс, но для тех кому это важно это действительно больной вопрос.

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

Как свалить самому?


От 13 марта 2020 г. действуют новые правила пресечения внешней границы с Польшей. В первых пунктах этих правил указаны следующие лица, которым разрешено пересекать внешнюю Польскую границу: граждане Польши; иностранцы, которые являются супругами или детьми граждан Польши или находятся под их постоянной опекой; иностранцы с Картой поляка; главы дипломатических миссии; Скорее всего если вы читаете эту статью, то не один из пунктов вам не подходит. Если у вас нет карты Поляка, супруга или супруги в Польше. Но если почитать дальше, то есть пару интересных пунктов, которые вам должны подойти.

Еще немного про сервисный слой в PHP

Reading time7 min
Views30K

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

Сегодня мы поговорим об одном из способов организации бизнес логики - сервисном слое (он же service layer), когда и зачем его нужно применять, а также какие проблемы архитектуры он поможет решить. Примеры реализации будут показаны с использованием архитектурного паттерна MVC и фреймворка Laravel.

Читать далее

Когда объектов не достаточно

Reading time13 min
Views9.5K

Я искал материалы об истоках объектно-ориентированного программирования. Причина была в том, что в сообществе Laravel возникла тенденция использовать паттерн Action и говорить вот что такое «настоящее ООП». У меня возникли некоторые сомнения, и вместо того, чтобы задавать вопросы, я решил поискать ссылки времён Smalltalk. Нашёл книгу Smalltalk, Objects, and Design. И мне было так интересно её читать, что я решил поделиться с вами своими находками.

Паттерн Action гласит, что логику нужно обёртывать в классы Action. Эта идея не нова, в других сообществах продвигалась «Чистая архитектура», при которой каждый «сценарий использования» (или Interactor) должен являться самостоятельным классом. Всё очень просто. Но об этом ли говорит ООП?

Если вам интересна суть статьи, то:

  • Smalltalk был одним из первых ООП-языков. Он стал источником таких концепций, как наследование и обмен сообщениями (или как минимум он их популяризировал, насколько я вижу).
  • Как сказал Алан Кей, придумавший термин «объектно-ориентированное программирование», объектов не достаточно. Они не обеспечивают нам архитектуру. Объекты — это про взаимодействие между ними, и в случае с большими системами вам нужна возможность разделения приложения на модули, которые можно отключать по отдельности, заменять и включать снова в общую систему, не кладя при этом всё приложение. В этом контексте Алан предлагает идею инкапсуляции «сообщений» в классы, когда каждый экземпляр является сообщением в системе, подкрепляя идею наличия в Чистой архитектуре классов «Action» или «интеракторов».

Продолжайте читать, если я разжёг в вас интерес.
Читать дальше →

Laravel + Docker: наш успешный опыт использования

Reading time8 min
Views44K
image

О чем эта статья


В статье пойдет речь о нашем опыте использования Docker для быстрой настройки масштабируемого dev окружения для web разработки. Я коротко расскажу о задачах, которые стояли перед нами и об инструментах, которые были выбраны для решения этих задач. Статья отмечена значком tutorial, потому что вы найдете в ней инструкцию по разворачиваю окружения у себя. По сравнению с аналогичными статьями (ссылки в конце статьи), здесь будет меньше технических деталей и больше живых примеров.
Читать дальше →

Максимально оптимизированная веб-загрузка изображений в 2021 году

Reading time6 min
Views31K

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

Поиск замены депозита в облигациях с учетом того, что с 1 января 2021 года все выплаты облагаются налогами

Level of difficultyMedium
Reading time4 min
Views39K

Полгода назад, летом 2020 года я написал скрипт поиска ликвидных облигаций на Мосбирже (статья в закладках у 194 человек, рейтинг +45). Скрипт нужен для поиска облигаций, которые можно купить прямо сейчас с доходностью гораздо выше банковского вклада.

Сейчас, в начале 2021 года модифицировал прошлогодний скрипт, потому что проценты по вкладам так и остаются на очень низких уровнях, а с началом 2021 года ещё и изменения в налоговом кодексе РФ подоспели. 

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

Облигации как замена вклада в 2021 году

Архитектура и стоимость простого бессерверного веб-приложения Amazon Web Services

Reading time7 min
Views17K

Введение


Весной этого года я сидел в локдауне на Багамах, без права сходить на берег и, борясь со скукой, решил посмотреть, что это за зверь такой Amazon Web Services, и да, я пропал. Случилось, что называется, любовь с первого взгляда. Одной из технологий, что пьянила меня не хуже багамского рома, были бессерверные вычисления.


Читать дальше →

Облако для SOA приложений и не только

Reading time7 min
Views1.9K

Привет Хабр.

Сегодня я хочу рассказать про своё детище - платформу "qSOA.cloud", которая позволяет запускать приложения построенные по SOA в облаке по разумной цене. Например, стоимость размещения простого HTTP API сервиса, который обрабатывает ~400 000 запросов в сутки, может составлять от 3$/месяц. При этом всё устроено удобно и просто в "одном окне", так, что разработчикам сервисов не нужно думать об инфраструктурной обвязке, а нужно просто реализовывать бизнес логику. Логи, метрики, трейсинг, дискавери, рутинг, ... встроены в платформу, а сервис просто выполняет функцию, нужную бизнесу.

В SOA я очень глубоко погрузился 5 лет назад в одной E-Commerce компании из Юго-Восточной Азии. Строя там платформу, которая обрабатывает десятки тысяч RPS, мы набили много "шишек", которые были учтены в qSOA.cloud. Сейчас на платформе поддерживаются только сервисы написанные на Go, но в дальнейшем появится поддержка и других ЯП.

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

Читать далее

Петиция за дружбу удостоверяющих центров. Часть 2

Reading time4 min
Views6.1K

Привет, хабровчане!

Хочу поделиться ещё одной зашкварной историей, связанной с ЭЦП.

Прошлая проблема, которая возникла в мае, в общем-то решилась - когда я подавал инициативу на РОИ, я не знал что с 1 июля 2020 вступают в силу поправки в 63-ФЗ «Об электронной подписи», согласно которым возможность удостоверять личность действующим сертификатом аккредитованного УЦ теперь закреплена законодательно.

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

В частности, если у тебя электронная подпись на носителе - ты легко можешь воспользоваться новой редакцией ФЗ-63 и получить ЭЦП удалённо. А вот если действующая подпись облачная - начинаются проблемы.

Сегодня мне нужно было получить новый сертификат в УЦ Тензора на юрлицо для работы со СБИС. Действующий сертификат есть только от УЦ Контур. Он квалифицированный, но не на отдельном ключе, а облачный, по технологии КриптоПРО DSS.

У меня подтвержденный положительный тест на COVID, сижу дома на самоизоляции до повторных отрицательных тестов. Т.е. даже возможности лично приехать в УЦ и удостоверить личность по закону нет и остаётся вариант только удалённого выпуска.

Техподдержка Тензора сказала что единственная техническая возможность удостоверить личность облачной подписью - настроить работу с облачным хранилищем в КриптоПРО 5.0 Для этого нужно знать адрес Сервера авторизации и DSS серверов.

Читать далее

Обзор экосистемы пакетов Laravel

Reading time8 min
Views5.3K
Специально для студентов курсов «Backend-разработчик на PHP» и «Framework Laravel» подготовили еще один полезный перевод.






В мире Laravel пакеты играют важную роль. Насколько важна эта роль и какие пакеты существуют? Чтобы это узнать, мы взяли данные из API Packagist.org и отфильтровали пакеты Laravel.
Читать дальше →

Молодежный родстер «Крым» — новые горизонты

Reading time5 min
Views14K
Молодежный спортивный родстер «Крым» — это автомобиль для дорог общего пользования. Проект зародился в 2013 году, а начальный коллектив инженеров сформировался из первого состава команды «Формула Студент» МГТУ им. Н.Э. Баумана, о которой мы уже рассказывали вам в статье. Над проектом работают студенты и аспиранты под руководством опытных преподавателей.

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



На сегодняшний день уже существуют два родстера «Крым», и идет активная работа над цифровым двойником третьего прототипа и изготовлением партии несущих систем. Результаты текущей работы были представлены на недавно прошедшем международном форуме «Открытые инновации» в Сколково и на выставке «Технофорум 2020». В нашей новой статье мы хотим поделиться свежими новостями и планами команды проекта «Родстер Крым».
Читать дальше →

Видеонаблюдение за экзаменом: как это работает

Reading time4 min
Views15K

Привет! Как вы знаете, мы являемся провайдером видеонаблюдения на различных значимых событиях, в том числе и ЕГЭ. 

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

Обычно за ходом экзамена следят специальные люди — наблюдатели. Они отмечают на портале видеонаблюдения smotriege.ru подозрительное поведение участников ЕГЭ и передают обнаруженные нарушения на модерацию в Рособрнадзор. Если модераторы считают, что нарушение действительно было, то его передают дальше на отработку в пункт проведения экзаменов (ППЭ). Сотрудники ППЭ проверяют каждое такое обращение и решают, как поступить с нарушителем. Например, удалить с экзамена, если он использовал телефон или шпаргалку. 

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

Технология видеоаналитики «просматривала» видеопоток из аудитории в режиме онлайн, а между экзаменами — архивные видео из офлайна. Для сравнения: один наблюдатель может следить максимум за четырьмя аудиториями одновременно, а алгоритм может обрабатывать видео из более чем 2000 аудиторий за один экзаменационный день.

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

Читать далее

Flutter + чистая архитектура: разбираем на примере

Reading time17 min
Views82K

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

Чистая архитектура - это концепция построения архитектуры систем, предложенная Робертом Мартином - в миру "дядюшка Боб". Концепция предполагает построение приложения в виде набора независимых слоёв, что облегчает тестирование, уменьшает связность и делает приложение более простым для понимания.

Flutter - стремительно набирающий популярность фреймворк для разработки кроссплатформенных приложений. В списке поддерживаемых платформ - iOS, Android, web, в бете находится поддержка десктопа.

Под катом - рассказ о том, как построить flutter-приложение с использованием идей чистой архитектуры.

Читать далее

Создание favicon для сайта 2020

Reading time10 min
Views146K

Что такое favicon и для чего он нужен?


Favicon – это значок (иконка), который отображается во вкладке браузера, закладках, а также в сниппетах результатов поиска.

image

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

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

Какой формат использовать для favicon?


Раньше в качестве основного формата использовали ICO. Особенность данного формата – мульти-размерность. Данный файл может хранить в себе несколько размеров иконки. На смену ICO пришел формат PNG. ICO все еще поддерживаемый, но большинство современных браузеров выбирают PNG формат иконки, который легче. Некоторые браузеры не могут выбрать правильный значок в файле ICO, что приводит к неправильному использования значка с низким разрешением.

О каких платформах пойдет речь в этой статье?


  • Десктопные браузеры
  • Chrome на Android
  • Иконка закладки в iOS (PWA)
  • macOS
  • Windows

Читать дальше →

Laravel Jetstream. Зачем?

Reading time4 min
Views12K
Всем привет! В преддверии старта курса "Framework Laravel", продолжаем цикл статей про новинки в Laravel 8 от нашего эксперта и по совместительству активного участника российского сообщества Laravel — Виталия Юшкевича.


Эта статья — продолжение обзора новинок Laravel 8. Изначально задумывалось, что в этой статье будет продолжение обзора, затрагивающие преимущественно Jetstream. Но за последнее время это не сделал только ленивый.


С одной стороны, большая часть разработчиков ленивая (в хорошем смысле этого слова), с другой, "еще один обзор" много пользы не принесет. Так как последнее обновление очень горячо обсуждается в разных комьюнити (русскоязычное и за его пределами), то мне захотелось попробовать получить ответ на вопрос — почему? Давайте вместе попробуем найти ответ на этот и другие вопросы.

Читать дальше →

InheritedWidget во Flutter

Reading time5 min
Views24K
Перевод статьи подготовлен для студентов курса «Flutter Mobile Developer».





Корни деревьев виджетов во Flutter могут уходить очень глубоко…



Очень глубоко.

Компонентная природа виджетов Flutter позволяет создавать очень элегантный, модульный и гибкий дизайн приложений. Однако это также может вылиться в появление большого количества шаблонного кода для передачи контекста. Посмотрите, что происходит, когда мы хотим передать accountId и scopeId со страницы в виджет двумя уровнями ниже:
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity