Pull to refresh
1
0
Алексей @alexeykhlopitskiy

Fullstack разработчик

Send message

Теория, практика и личный опыт в обучении IT-управленцев

Level of difficultyEasy
Reading time4 min
Views2.3K

Всем привет. Меня зовут Сергей Фегон. Я ex-CТО, сейчас работаю руководителем нескольких групп разработки финтех-продуктов экосистемы компаний ВБЦ и TenChat, а также преподаю в OTUS. Делюсь своими знаниями на курсах CTO/Технический директор и Team Lead в OTUS. За время преподавательской деятельности и на основе личного управленческого опыта, я сформировал для себя несколько основных столпов подготовки IT-менеджеров:

Читать далее
Total votes 12: ↑9 and ↓3+12
Comments0

Основы тестирования React-приложений через Cypress

Level of difficultyEasy
Reading time6 min
Views2.2K

Привет, Хабр! Сегодня рассмотрим как автоматизировать тестирование React-приложений с инструментом Cypress.

Читать далее
Total votes 7: ↑7 and ↓0+11
Comments1

Профилирование производительности React-приложений

Reading time7 min
Views18K
Сегодня поговорим об измерении производительности рендеринга React-компонентов с использованием API React Profiler. Ещё мы будем оценивать взаимодействия с компонентом, применяя новый экспериментальный API Interaction Tracing. Кроме того, мы воспользуемся API User Timing для проведения собственных измерений.

В качестве площадки для экспериментов воспользуемся приложением React Movies Queue.


Приложение React Movies Queue
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments0

ООП, «святая троица» и SOLID: некоторый минимум знаний о них

Reading time43 min
Views115K

Необходимое вступление


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


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


Столь малые гарантии поднимают вопросы о причинах, по которым статья пишется. Я считаю, что этим вещам должны учить везде, где учат программированию, вплоть до уроков информатики в школах с углублённым её изучением. Тем не менее, для меня стала пугающе нормальной ситуация, когда я узнаю, что собеседник мой коллега, причём работающий уже не первый год, но про инкапсуляцию «что-то там слышал». Необходимость собрать всё это в одном месте и давать ссылку при возникновении вопросов зрела давно. А тут ещё и мой «pet-project» дал мне изрядно пищи для размышлений.


Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.



Читать дальше →
Total votes 88: ↑82 and ↓6+76
Comments79

Паттерн проектирования «Команда» / «Command»

Reading time4 min
Views82K
Почитать описание других паттернов.
A

Проблема


Необходимо иметь эффективное представление запросов к некоторой системе, не обладая при этом знаниями ни об их природе ни о способах их обработки.

Описание


Существует по крайней мере три мотивации к использованию шаблона “Команда”:
  • инкапсулирование запроса в виде объекта для последующего протоколирования/логирования и т.п.
  • наделение сущности “вызов метода объекта” свойствами самостоятельного объекта;
  • объектно-ориентированный обратный вызов (callback);

Читать дальше →
Total votes 50: ↑42 and ↓8+34
Comments18

Приведение значений к Boolean в JavaScript

Reading time2 min
Views16K

Логическое (или булевое) значение - это примитивный тип данных, который может содержать в себе true или false (правда или ложь). JavaScript использует приведение типа, чтобы привести значение к true\false. Есть явные и скрытие методы преобразования значений в их логические аналоги.

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

Читать далее
Total votes 7: ↑2 and ↓5-2
Comments5

Как получить высокоэффективную команду?

Reading time5 min
Views4.5K

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

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments0

Как мы писали свой курс по Go и почему в итоге их получилось три

Reading time10 min
Views15K


В ноябре 2021 года Яндекс.Практикум запустил курс «Go-разработчик» для программистов, которые хотят добавить Go в свой стек. На курсе не рассказывают о базовых вещах, а сразу объясняют студенту, как переложить его знания в парадигмы Go.

Меня зовут Алексей Полевой, я продакт-менеджер курса. В этом посте мы с командой расскажем, почему не обучаем программированию на Go с нуля, зачем даём два учебных проекта на выбор и насколько важен обмен опытом с ментором — действующим сеньор-разработчиком.
Читать дальше →
Total votes 16: ↑14 and ↓2+17
Comments5

Что нужно знать, чтобы быть синьором?

Reading time11 min
Views90K

В последнее время случилась (и продолжает случаться) тьма публикаций про кадровый голод в айти, про переоценённость синьоров, недооценённость всех остальных, про золотые горы, скандалы, интриги и конский перекос баланса фракции "программисты". Ну, короче, вы сами всё читали и вполне себе в теме. Так вот, в сим опусе хочется вспомнить, а ктож такой синьор и что ему крайне желательно знать, чтобы синдром самозванца не накрывал и чтобы окружающие уважали и на поклон за советом приходили.

Ну-ка, ну-ка...
Total votes 165: ↑147 and ↓18+151
Comments258

Мультитенантная архитектура для SaaS приложений

Reading time14 min
Views54K

Что такое мультитенантность (multitenancy)?


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

Мультитенантность бывает разной, например, ее можно представить следующей схемой:

Читать дальше
Rating0
Comments0

Мультитенантность: как вырастить из одного приложения линейку независимых продуктов

Reading time3 min
Views3.3K

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

В первую очередь мультитенантность нужна SaaS-продуктам, но не только. Этот подход применяется везде, где компания параллельно поддерживает несколько версий одного продукта.

Читать далее
Total votes 4: ↑2 and ↓2+2
Comments6

Мы уникальны. И, вероятно, одиноки

Reading time9 min
Views28K

Каждому, кто убеждён (пусть и в душе) в своём превосходстве над другими и в величии своего жизненного пути, нужно почаще смотреть на эту фотографию. Та самая pale blue dot. Это Земля, какой её увидел в 1990-м году «Вояджер-1», к тому моменту улетевший на 6 млрд километров от Солнца. Никто не сказал ещё об этой фотографии лучше Карла Сагана. Человеческая цивилизация невообразимо незначительна даже в масштабах Солнечной системы, что уж говорить о Млечном Пути или ещё более крупных звёздных скоплениях… Одиноки ли мы как цивилизация? Или хотя бы как жизнь, возникшая на планете? У сторонников ответов «да» и «нет» есть пачки аргументов, от «если мы не одни, то где все?» до «мы такие примитивные, что пока не можем никого заметить». 

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

Читать далее
Total votes 60: ↑51 and ↓9+64
Comments151

Redux Business Logic

Reading time6 min
Views11K

Как-то раз в Телеграмм-чате React_JS (кстати, русскоязычный чат, присоединяйтесь) обсуждали вопрос: "где в React-приложении должен быть расположен код, отвечающий за бизнес-логику". Вариантов несколько, мнения разделились. Ну а я решил записать подкаст (автор @PetrMyazin).

Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments21

Как я оседлала лошадку тревожной прокрастинации, и что из этого вышло

Reading time11 min
Views26K

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

Таким камнем стала для меня эта статья. Я задумала написать её ещё в апреле. Натолкнул меня на эту мысль ролик про прокрастинацию. К концу видео автор прорисовывают связь между прокрастинацией и тревожностью. По ходу просмотра и ревизии собственного опыта и наблюдений, всплыло несколько мыслей про то, откуда что берётся, как связаны между собой тревога, усталость и прокрастинация, и как с этим всем обращаться. И, самое главное, как развернуть это всё себе на пользу.

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

Читать далее
Total votes 27: ↑22 and ↓5+26
Comments22

Заблуждения Clean Architecture

Reading time15 min
Views421K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments203

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Middle
From 100,000 ₽
JavaScript
React
TypeScript
React Native
NextJS
.NET
ASP.Net