Челлендж: 🤣 🤣 🤣 Расскажи бабушке про статанализ
Скоро Новый год, время подарков и несерьезных челленджей.
Задача простая: в комментариях к этому посту максимально простым языком напишите что такое статанлиз, так чтобы даже бабушка поняла (можно в шуточной форме).
Кто соберет больше всего положительных реакций под комментарием получит приз - книгу «60 антипаттернов для С++ программиста» автор Андрей Карпов - сооснователь копании PVS-Studio.
Книга будет полезна новичкам, кто хочет глубже изучить C++ и понять почему некоторые вещи делать вредно. А самое ценное - в книге опсано еще и "почему" вредно!
Чтобы вы прониклись всей важностью момента, книгу нельзя купить в магазине, это ограниченный тираж, который расходится только между своими!
P.S. Итоги подведем на стриме в выходные! Торопитесь, времени мало!
SOER | PRO | Boosty
Скоро Новый год, время подарков и несерьезных челленджей.
Задача простая: в комментариях к этому посту максимально простым языком напишите что такое статанлиз, так чтобы даже бабушка поняла (можно в шуточной форме).
Кто соберет больше всего положительных реакций под комментарием получит приз - книгу «60 антипаттернов для С++ программиста» автор Андрей Карпов - сооснователь копании PVS-Studio.
Книга будет полезна новичкам, кто хочет глубже изучить C++ и понять почему некоторые вещи делать вредно. А самое ценное - в книге опсано еще и "почему" вредно!
Чтобы вы прониклись всей важностью момента, книгу нельзя купить в магазине, это ограниченный тираж, который расходится только между своими!
P.S. Итоги подведем на стриме в выходные! Торопитесь, времени мало!
SOER | PRO | Boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥4 1 1
Forwarded from Соер.Клуб | инженерный подход
Почему люди боятся совершать действия?
Легко дать совет: «Сходи на 10 собеседований», «Предложи начальнику внедрить новую фичу», «Возьми на себя дополнительную активность», «Реши 30 задач на литкоде» и т. д. Такие вещи постоянно советуют со всех сторон. Почему эти советы не такие простые, как кажутся? Давайте размышлять.
👉 Проблема: «Наш мозг ленив».
Сталкиваюсь с тем, что люди всегда находят причину, почему совершить то или иное действие — это бессмысленное телодвижение. Мол, все равно ничего не получится, это не мое и тому подобные штуки.
Много читал и слушал материала на эту тему, насколько я понял, проблема в том, что наш мозг суперзатратная (с позиции энергии) штука, и если хвататься за все подряд, то энергии может не хватить на что-то важное.
Поэтому энергию надо экономить, а это значит «лениться» выгодно, чтобы сохранить силы.
👉 Проблема: «Нам страшно».
Мы так устроены, что страх перед потерей у нас гораздо сильнее, чем радость от приобретения. Человек предпочтет ничего не делать, если при этом гарантированно ничего не потеряет.
Под потерями, как правило, понимается время и деньги. Если речь заходит о деньгах, то всё — стоп машина, никуда не едем.
Другая потеря — это репутация, которая сводится к мысли «А что обо мне подумают люди?». Спойлер: как правило, люди либо ничего не подумают, либо подумают, что ты дурак, независимо от твоего действия или бездействия.
👉 Проблема: «Избыток информации».
Первые две проблемы, как правило, парализуют волю, а вот третья проблема заставляет кипеть мозг. Даже если человек решил что-то сделать, то возникает момент «А с чего начать?», и тут целый ворох информации обрушивается со всех сторон.
Даже простая задача — «сходить на собеседование», порождает кучу вопросов: «Куда?», «Как подготовиться?», «Почему не зовут?», «Что, если провалю?» и т. д. Поэтому оказывается, что простые советы на деле не имеют простых, понятных планов действия.
👑 Что делать?
Для меня эффективна стратегия «маленьких шагов», я уже много раз говорил, что такой подход решает приведенные проблемы:
💪 Решение проблемы «Мозг ленив»: мозг не воспринимает «маленький шаг» как что-то опасное или энергозатратное.
💪 Решение проблемаы«Нам страшно»: при маленьком шаге и потери воспринимаются не так опасно.
💪 Решение проблемы «Ворох информации»: чем проще действие, которое нужно совершить, тем понятнее, что нужно делать.
Итоговое решение в том, чтобы декомпозировать задачу на более простые шаги, которые не требуют больших усилий. Но при этом важно совершать небольшие шаги регулярно.
Здесь поможет планирование и фиксация успехов — заведите календарь, где отмечайте дни, когда вы что-то сделали для достижения цели, и планируйте, что вы будете делать на следующей неделе.
Со временем привычка совершать небольшие действия приведет к аккумулированию результата. И вы удивитесь, на что способны.
Легко дать совет: «Сходи на 10 собеседований», «Предложи начальнику внедрить новую фичу», «Возьми на себя дополнительную активность», «Реши 30 задач на литкоде» и т. д. Такие вещи постоянно советуют со всех сторон. Почему эти советы не такие простые, как кажутся? Давайте размышлять.
👉 Проблема: «Наш мозг ленив».
Сталкиваюсь с тем, что люди всегда находят причину, почему совершить то или иное действие — это бессмысленное телодвижение. Мол, все равно ничего не получится, это не мое и тому подобные штуки.
Много читал и слушал материала на эту тему, насколько я понял, проблема в том, что наш мозг суперзатратная (с позиции энергии) штука, и если хвататься за все подряд, то энергии может не хватить на что-то важное.
Поэтому энергию надо экономить, а это значит «лениться» выгодно, чтобы сохранить силы.
👉 Проблема: «Нам страшно».
Мы так устроены, что страх перед потерей у нас гораздо сильнее, чем радость от приобретения. Человек предпочтет ничего не делать, если при этом гарантированно ничего не потеряет.
Под потерями, как правило, понимается время и деньги. Если речь заходит о деньгах, то всё — стоп машина, никуда не едем.
Другая потеря — это репутация, которая сводится к мысли «А что обо мне подумают люди?». Спойлер: как правило, люди либо ничего не подумают, либо подумают, что ты дурак, независимо от твоего действия или бездействия.
👉 Проблема: «Избыток информации».
Первые две проблемы, как правило, парализуют волю, а вот третья проблема заставляет кипеть мозг. Даже если человек решил что-то сделать, то возникает момент «А с чего начать?», и тут целый ворох информации обрушивается со всех сторон.
Даже простая задача — «сходить на собеседование», порождает кучу вопросов: «Куда?», «Как подготовиться?», «Почему не зовут?», «Что, если провалю?» и т. д. Поэтому оказывается, что простые советы на деле не имеют простых, понятных планов действия.
Для меня эффективна стратегия «маленьких шагов», я уже много раз говорил, что такой подход решает приведенные проблемы:
💪 Решение проблемы «Мозг ленив»: мозг не воспринимает «маленький шаг» как что-то опасное или энергозатратное.
💪 Решение проблемаы«Нам страшно»: при маленьком шаге и потери воспринимаются не так опасно.
💪 Решение проблемы «Ворох информации»: чем проще действие, которое нужно совершить, тем понятнее, что нужно делать.
Итоговое решение в том, чтобы декомпозировать задачу на более простые шаги, которые не требуют больших усилий. Но при этом важно совершать небольшие шаги регулярно.
Здесь поможет планирование и фиксация успехов — заведите календарь, где отмечайте дни, когда вы что-то сделали для достижения цели, и планируйте, что вы будете делать на следующей неделе.
Со временем привычка совершать небольшие действия приведет к аккумулированию результата. И вы удивитесь, на что способны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥17🤡5🌚2🤝2😁1
Forwarded from Деплой (Vasiliy)
Про критику, конфликты и российское IT / В офисе S0ER
Финальное интервью этого года - откровенный разговор с Соером.
В конце ноября Соер приехал в Москву, мы записали живое интервью и поговорили в нем на все злободневные темы, которыми он жил весь этот год.
Мы разобрали почему он перестал делать контент на ютубе, почему и зачем собирается пойти в обучение, зачем он влез в конфликты, как они на него повлияли и как он реагирует на критику. А еще поговорили про технологический суверенитет и куда мы все идем в нашем с вами IT в России.
Получилось почти два часа насыщенного разговора. Принесли вам прямо под ёлочку.
С Наступающим! Спасибо, что вы с нами.
Смотрим! |📱 YouTube | 📱 VK | 💙 RuTube |
Финальное интервью этого года - откровенный разговор с Соером.
В конце ноября Соер приехал в Москву, мы записали живое интервью и поговорили в нем на все злободневные темы, которыми он жил весь этот год.
Мы разобрали почему он перестал делать контент на ютубе, почему и зачем собирается пойти в обучение, зачем он влез в конфликты, как они на него повлияли и как он реагирует на критику. А еще поговорили про технологический суверенитет и куда мы все идем в нашем с вами IT в России.
Получилось почти два часа насыщенного разговора. Принесли вам прямо под ёлочку.
С Наступающим! Спасибо, что вы с нами.
Смотрим! |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43❤10🔥5😁1
Forwarded from Соер.Клуб | инженерный подход
Важно! Я хочу ещё раз предостеречь своих подписчиков, в сети появились фейковые материалы в мой адрес:
- каналы от моего имени (Внимание! у одного из каналов скопировано отображаемое имя и аватарка с S0ER.live)
- комментарии форварднутые из фейковых каналов, а так же скриншоты этих сообщений
- аудиозаписи сделанные с использованием нейронок (дипфейки)
- вероятно есть и фейковые фото.
У меня есть только два канала где я пишу, активность в телеграм на других ресурсах я практически не веду. Обязательно проверяйте реальный userId, в том числе на похожее написание.
Я не могу ничего с этим поделать, надеюсь, что если не отвечать, то пройдёт само собой. В чем цель я пока не очень понимаю, выглядит как дурацкая шутка, почти все материалы так или иначе появляются в одном месте.
- каналы от моего имени (Внимание! у одного из каналов скопировано отображаемое имя и аватарка с S0ER.live)
- комментарии форварднутые из фейковых каналов, а так же скриншоты этих сообщений
- аудиозаписи сделанные с использованием нейронок (дипфейки)
- вероятно есть и фейковые фото.
У меня есть только два канала где я пишу, активность в телеграм на других ресурсах я практически не веду. Обязательно проверяйте реальный userId, в том числе на похожее написание.
Я не могу ничего с этим поделать, надеюсь, что если не отвечать, то пройдёт само собой. В чем цель я пока не очень понимаю, выглядит как дурацкая шутка, почти все материалы так или иначе появляются в одном месте.
✍27👍19😱7🤣7👌3👎2😁2💅1
Forwarded from Соер.Клуб | инженерный подход
YouTube
Как ИИ влияет на архитектуру ПО
#soer #itubeteam
Спонсорство - https://www.youtube.com/channel/UCe_T...
Чат для программистов - https://discord.gg/3UVJWAs
Спонсорская помощь - https://www.patreon.com/soersoft
Группа ВК - https://vk.com/codeartblog
Github - https://github.com/soersoft…
Спонсорство - https://www.youtube.com/channel/UCe_T...
Чат для программистов - https://discord.gg/3UVJWAs
Спонсорская помощь - https://www.patreon.com/soersoft
Группа ВК - https://vk.com/codeartblog
Github - https://github.com/soersoft…
❤40👍13 8 6👎2😱2🔥1👏1🤮1
Forwarded from Соер.Клуб | инженерный подход
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Софтскилы для программиста
#soer #itubeteam
Спонсорство - https://www.youtube.com/channel/UCe_T...
Чат для программистов - https://discord.gg/3UVJWAs
Спонсорская помощь - https://www.patreon.com/soersoft
Группа ВК - https://vk.com/codeartblog
Github - https://github.com/soersoft…
Спонсорство - https://www.youtube.com/channel/UCe_T...
Чат для программистов - https://discord.gg/3UVJWAs
Спонсорская помощь - https://www.patreon.com/soersoft
Группа ВК - https://vk.com/codeartblog
Github - https://github.com/soersoft…
🔥28👍8🤡3
Forwarded from Соер.Клуб | инженерный подход
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥20🤡17 6🤣4 4👍2🤮1
Forwarded from Соер.Клуб | инженерный подход
Для подписчиков soer.pro (уровень stream и выше) создал группу 👥 "Фанзона" в телеграм ✈️ , чтобы туда попасть:
💡 Подключить на Платформе свой телеграм аккаунт https://platform.soer.pro/#!/pages/account/profile
💡 Добавить группу "Фанзона" https://platform.soer.pro/#!/pages/overview/groups
💡 Перейти по ссылке на Telegram
Бонусы фанзоны:
- ранний доступ к видео S0ER.Talks (я сейчас пишу по 2-3 видео в неделю, а публикую раз в неделю, чтобы не ждать, можно смотреть в фанзоне)
- контент план ближайших видео и стримов
- субботние стримы (все кто хочет принять участие в стриме или предложить тему, а так же иметь доступ к записи стримов, которые не сохранены на ютубе)
- Обмен опытом (все кому нужны небольшие советы могут задать их в фанзоне и участники подскажут)
- неизданные видео
- планирование встреч по городам
В целом эта группа для тех кому нравится мой контент и не хочется ждать его выхода.
Бонусы фанзоны:
- ранний доступ к видео S0ER.Talks (я сейчас пишу по 2-3 видео в неделю, а публикую раз в неделю, чтобы не ждать, можно смотреть в фанзоне)
- контент план ближайших видео и стримов
- субботние стримы (все кто хочет принять участие в стриме или предложить тему, а так же иметь доступ к записи стримов, которые не сохранены на ютубе)
- Обмен опытом (все кому нужны небольшие советы могут задать их в фанзоне и участники подскажут)
- неизданные видео
- планирование встреч по городам
В целом эта группа для тех кому нравится мой контент и не хочется ждать его выхода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18 7 3🤮2
Forwarded from Соер.Клуб | инженерный подход
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Красные флаги для программиста на что смотрят компании
#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - https://t.iss.one/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Основной канал для общения и публикации новых видео - Телегарм - https://t.iss.one/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
❤16 11 8🤮4👍2
Forwarded from S0ER.Teach
Сделал мастеркласс по версионированию документов в SPA
В этой задаче мы разберемся, как спроектировать свой подход к версионированию документов в проекте и как это помогает решать следующие проблемы:
👉 множественная обработка одних и тех же данных (например, мы редактируем документ с мобильного и десктопа), нужно понять, какие данные в каком порядке были изменены;
👉двойная загрузка данных на клиенте и, как следствие, потеря несохраненных изменений;
👉ошибки синхронизации стейта (кто раньше, кто позже).
В качестве примера взят механизм создания документов, которые используются в NarisApp.
Посмотреть воркшоп на платформе. так же можно посмотреть видео с описанием проблемы.
В этой задаче мы разберемся, как спроектировать свой подход к версионированию документов в проекте и как это помогает решать следующие проблемы:
👉 множественная обработка одних и тех же данных (например, мы редактируем документ с мобильного и десктопа), нужно понять, какие данные в каком порядке были изменены;
👉двойная загрузка данных на клиенте и, как следствие, потеря несохраненных изменений;
👉ошибки синхронизации стейта (кто раньше, кто позже).
В качестве примера взят механизм создания документов, которые используются в NarisApp.
Посмотреть воркшоп на платформе. так же можно посмотреть видео с описанием проблемы.
👍13 6 5🤮2👻1
Forwarded from Соер.Клуб | инженерный подход
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Почему кажется, что архитектура кода не нужна
#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - https://t.iss.one/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Основной канал для общения и публикации новых видео - Телегарм - https://t.iss.one/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
👍14🔥7 5🤮2❤1🤔1
Forwarded from S0ER.Code
Низкий уровень: как выглядят вызовы функций по указателю на ASM
В языках высокого уровня, таких как C или C++, часто используются указатели на функции. Это позволяет динамически выбирать, какую функцию вызвать в runtime. Но как это выглядит на уровне ассемблера? Давайте разберемся.
Для начала рассмотрим простой пример на C, где используется указатель на функцию:
Здесь мы создаем указатель на функцию func_ptr, который указывает на функцию callme, и затем вызываем функцию через этот указатель.
Как это выглядит в ассемблере?
Используем Compiler Explorer, чтобы преобразовать этот код в ассемблер. Вот что получилось:
Что здесь происходит?
Создание указателя на функцию:
В функции main мы видим, что адрес функции callme сохраняется в памяти по адресу [rbp-8]:
Здесь OFFSET FLAT:callme — это адрес функции callme в памяти.
Загрузка указателя в регистр:
Затем этот адрес загружается в регистр rax:
Вызов функции по указателю:
После этого происходит вызов функции через регистр rax:
Инструкция call использует значение в регистре rax как адрес функции, на которую нужно перейти.
Пролог и эпилог
Как и в случае с обычным вызовом функции, здесь также присутствуют пролог и эпилог:
Пролог:
Здесь сохраняется значение rbp, устанавливается новый кадр стека и выделяется место для локальных переменных.
Эпилог:
Здесь восстанавливается значение rbp и выполняется возврат из функции.
Пример с массивом в функции
Давайте добавим массив в функцию callme и посмотрим, как это повлияет на ассемблерный код:
В ассемблере это будет выглядеть так:
Здесь видно, что в прологе добавилась инструкция sub rsp, 128, которая выделяет место на стеке для массива a[128].
Вывод
Сегодня мы узнали, как вызов функций по указателю выглядит на уровне ассемблера.
Основные моменты:
Указатель на функцию — это просто адрес функции в памяти.
Вызов функции по указателю осуществляется через регистр, в котором хранится адрес функции.
Пролог и эпилог присутствуют как при обычном вызове функции, так и при вызове через указатель.
Таким образом, даже такие высокоуровневые конструкции, как указатели на функции, имеют свое прямое отражение в ассемблерном коде.
В языках высокого уровня, таких как C или C++, часто используются указатели на функции. Это позволяет динамически выбирать, какую функцию вызвать в runtime. Но как это выглядит на уровне ассемблера? Давайте разберемся.
Для начала рассмотрим простой пример на C, где используется указатель на функцию:
int callme() {
return 1;
}
void main() {
int (*func_ptr)() = callme;
func_ptr();
}
Здесь мы создаем указатель на функцию func_ptr, который указывает на функцию callme, и затем вызываем функцию через этот указатель.
Как это выглядит в ассемблере?
Используем Compiler Explorer, чтобы преобразовать этот код в ассемблер. Вот что получилось:
callme:
push rbp
mov rbp, rsp
mov eax, 1
pop rbp
ret
main:
push rbp
mov rbp, rsp
sub rsp, 16
mov QWORD PTR [rbp-8], OFFSET FLAT:callme
mov rax, QWORD PTR [rbp-8]
call rax
nop
leave
ret
Что здесь происходит?
Создание указателя на функцию:
В функции main мы видим, что адрес функции callme сохраняется в памяти по адресу [rbp-8]:
mov QWORD PTR [rbp-8], OFFSET FLAT:callme
Здесь OFFSET FLAT:callme — это адрес функции callme в памяти.
Загрузка указателя в регистр:
Затем этот адрес загружается в регистр rax:
mov rax, QWORD PTR [rbp-8]
Вызов функции по указателю:
После этого происходит вызов функции через регистр rax:
call rax
Инструкция call использует значение в регистре rax как адрес функции, на которую нужно перейти.
Пролог и эпилог
Как и в случае с обычным вызовом функции, здесь также присутствуют пролог и эпилог:
Пролог:
push rbp
mov rbp,
rsp sub rsp, 16
Здесь сохраняется значение rbp, устанавливается новый кадр стека и выделяется место для локальных переменных.
Эпилог:
leave ret
Здесь восстанавливается значение rbp и выполняется возврат из функции.
Пример с массивом в функции
Давайте добавим массив в функцию callme и посмотрим, как это повлияет на ассемблерный код:
int callme() {
char a[128];
return 1;
}
В ассемблере это будет выглядеть так:
callme:
push rbp
mov rbp, rsp
sub rsp, 8 ; <-- обратите внимание, тут сработала Red Zone
mov eax, 1
leave
ret
Здесь видно, что в прологе добавилась инструкция sub rsp, 128, которая выделяет место на стеке для массива a[128].
Вывод
Сегодня мы узнали, как вызов функций по указателю выглядит на уровне ассемблера.
Основные моменты:
Указатель на функцию — это просто адрес функции в памяти.
Вызов функции по указателю осуществляется через регистр, в котором хранится адрес функции.
Пролог и эпилог присутствуют как при обычном вызове функции, так и при вызове через указатель.
Таким образом, даже такие высокоуровневые конструкции, как указатели на функции, имеют свое прямое отражение в ассемблерном коде.
🔥35👍14🤯7 5 4
Forwarded from S0ER.Arch
История успеха: NPM — как небольшой проект стал основой экосистемы JavaScript
Сегодня поговорим о NPM (Node Package Manager) — одном из самых важных инструментов в мире JavaScript. Это не просто менеджер пакетов, а целая экосистема, которая изменила способ разработки программного обеспечения. Давайте разберемся, как NPM стал таким успешным.
Начало: 2009 год
В 2009 году Райан Дал (Ryan Dahl) представил миру Node.js — среду выполнения JavaScript на стороне сервера. Node.js быстро набрал популярность благодаря своей асинхронной модели и высокой производительности. Однако разработчикам не хватало удобного способа делиться кодом и управлять зависимостями.
Именно тогда на сцену вышел NPM. Его создал Айзек Шлютер (Isaac Z. Schlueter) в 2010 году. Изначально NPM задумывался как простой инструмент для установки и управления пакетами в Node.js. Первая версия NPM была выпущена в январе 2010 года, и уже через несколько месяцев она стала стандартом для работы с пакетами в Node.js.
Рост экосистемы
NPM быстро стал популярным благодаря своей простоте и удобству. Вот несколько ключевых факторов, которые способствовали его успеху:
Простота использования
NPM предоставил разработчикам простой интерфейс командной строки для установки пакетов. Например, чтобы установить пакет, достаточно было выполнить команду:
Централизованный реестр пакетов
NPM создал централизованный реестр пакетов, где разработчики могли публиковать свои библиотеки и находить нужные инструменты. Это сделало процесс обмена кодом быстрым и удобным.
Поддержка зависимостей
NPM автоматически управлял зависимостями между пакетами, что значительно упрощало разработку. Файл package.json стал стандартом для описания проекта и его зависимостей.
Расцвет: 2014–2016 годы
К 2014 году NPM стал неотъемлемой частью экосистемы JavaScript. Количество пакетов в реестре росло экспоненциально.
Рост числа пакетов
В 2014 году в реестре NPM было около 100 000 пакетов. К 2016 году их количество превысило 350 000.
NPM Inc.
В 2014 году Айзек Шлютер основал компанию NPM Inc., чтобы коммерциализировать проект. Компания начала предлагать платные услуги, такие как приватные репозитории и инструменты для корпоративных клиентов.
Интеграция с другими инструментами
NPM стал интегрироваться с популярными инструментами, такими как Webpack, Babel и React, что сделало его еще более востребованным.
Кризис и восстановление
В 2016 году NPM столкнулся с серьезным кризисом. Один из разработчиков удалил свой пакет left-pad, что привело к сбою в работе тысяч проектов. Этот инцидент показал уязвимость экосистемы, зависимой от небольших пакетов.
Однако NPM быстро отреагировал на ситуацию:
Была введена политика, запрещающая удаление пакетов, которые используются другими проектами.
Команда NPM начала активно работать над улучшением стабильности и безопасности реестра.
NPM сегодня
Сегодня NPM — это огромная экосистема, которая включает:
Более 2 миллионов пакетов в реестре.
Десятки миллионов разработчиков по всему миру.
Интеграцию с современными инструментами, такими как Yarn и pnpm.
В 2020 году компания GitHub (принадлежащая Microsoft) приобрела NPM Inc. Это событие укрепило позиции NPM как стандарта для управления пакетами в JavaScript.
Причины успеха NPM:
- Простота и удобство
NPM сделал процесс управления пакетами настолько простым, что даже новички могли легко его использовать.
- Сильное сообщество
Открытость и поддержка сообщества стали ключевыми факторами роста.
- Адаптивность
NPM смог пережить кризисы и адаптироваться к меняющимся требованиям разработчиков.
- Коммерциализация
Создание NPM Inc. позволило проекту развиваться и предлагать новые функции для корпоративных клиентов.
Заключение
NPM — это не просто инструмент, а целая экосистема, которая изменила мир разработки. Его история успеха показывает, как OpenSource-проект может стать стандартом индустрии и вдохновить миллионы разработчиков по всему миру.
Сегодня поговорим о NPM (Node Package Manager) — одном из самых важных инструментов в мире JavaScript. Это не просто менеджер пакетов, а целая экосистема, которая изменила способ разработки программного обеспечения. Давайте разберемся, как NPM стал таким успешным.
Начало: 2009 год
В 2009 году Райан Дал (Ryan Dahl) представил миру Node.js — среду выполнения JavaScript на стороне сервера. Node.js быстро набрал популярность благодаря своей асинхронной модели и высокой производительности. Однако разработчикам не хватало удобного способа делиться кодом и управлять зависимостями.
Именно тогда на сцену вышел NPM. Его создал Айзек Шлютер (Isaac Z. Schlueter) в 2010 году. Изначально NPM задумывался как простой инструмент для установки и управления пакетами в Node.js. Первая версия NPM была выпущена в январе 2010 года, и уже через несколько месяцев она стала стандартом для работы с пакетами в Node.js.
Рост экосистемы
NPM быстро стал популярным благодаря своей простоте и удобству. Вот несколько ключевых факторов, которые способствовали его успеху:
Простота использования
NPM предоставил разработчикам простой интерфейс командной строки для установки пакетов. Например, чтобы установить пакет, достаточно было выполнить команду:
npm install package-name
Централизованный реестр пакетов
NPM создал централизованный реестр пакетов, где разработчики могли публиковать свои библиотеки и находить нужные инструменты. Это сделало процесс обмена кодом быстрым и удобным.
Поддержка зависимостей
NPM автоматически управлял зависимостями между пакетами, что значительно упрощало разработку. Файл package.json стал стандартом для описания проекта и его зависимостей.
Расцвет: 2014–2016 годы
К 2014 году NPM стал неотъемлемой частью экосистемы JavaScript. Количество пакетов в реестре росло экспоненциально.
Рост числа пакетов
В 2014 году в реестре NPM было около 100 000 пакетов. К 2016 году их количество превысило 350 000.
NPM Inc.
В 2014 году Айзек Шлютер основал компанию NPM Inc., чтобы коммерциализировать проект. Компания начала предлагать платные услуги, такие как приватные репозитории и инструменты для корпоративных клиентов.
Интеграция с другими инструментами
NPM стал интегрироваться с популярными инструментами, такими как Webpack, Babel и React, что сделало его еще более востребованным.
Кризис и восстановление
В 2016 году NPM столкнулся с серьезным кризисом. Один из разработчиков удалил свой пакет left-pad, что привело к сбою в работе тысяч проектов. Этот инцидент показал уязвимость экосистемы, зависимой от небольших пакетов.
Однако NPM быстро отреагировал на ситуацию:
Была введена политика, запрещающая удаление пакетов, которые используются другими проектами.
Команда NPM начала активно работать над улучшением стабильности и безопасности реестра.
NPM сегодня
Сегодня NPM — это огромная экосистема, которая включает:
Более 2 миллионов пакетов в реестре.
Десятки миллионов разработчиков по всему миру.
Интеграцию с современными инструментами, такими как Yarn и pnpm.
В 2020 году компания GitHub (принадлежащая Microsoft) приобрела NPM Inc. Это событие укрепило позиции NPM как стандарта для управления пакетами в JavaScript.
Причины успеха NPM:
- Простота и удобство
NPM сделал процесс управления пакетами настолько простым, что даже новички могли легко его использовать.
- Сильное сообщество
Открытость и поддержка сообщества стали ключевыми факторами роста.
- Адаптивность
NPM смог пережить кризисы и адаптироваться к меняющимся требованиям разработчиков.
- Коммерциализация
Создание NPM Inc. позволило проекту развиваться и предлагать новые функции для корпоративных клиентов.
Заключение
NPM — это не просто инструмент, а целая экосистема, которая изменила мир разработки. Его история успеха показывает, как OpenSource-проект может стать стандартом индустрии и вдохновить миллионы разработчиков по всему миру.
👍45❤9🔥4 4 2💅1
Forwarded from Соер.Клуб | инженерный подход
Пластичность психики
Норман Дойдж в своей книге "Пластичность мозга" раскрывает вопросы, связанные с пластичностью психики. В норме у здорового человека психика находится в состоянии равновесия благодаря своей способности адаптироваться к изменениям.
В жизни постоянно происходят различные неприятные события, как мелкие, так и значительные. Пластичность психики позволяет человеку переключать внимание, адаптироваться к новым условиям и справляться даже с трудными ситуациями.
Однако иногда психика становится ригидной (негибкой). В таком состоянии человек вместо того, чтобы адаптироваться и переживать проблемы, начинает зацикливаться на них. Это приводит к концентрации на негативных моментах, даже если они произошли давно. В результате человек может долго переживать из-за мелких обид или неудач.
Если вовремя не обратиться к специалисту, такое состояние может привести к неврозам, бессоннице и другим психологическим трудностям.
Как развить психическую гибкость?
Вот несколько советов, которые помогут сохранить и развить пластичность психики:
👑 Осознайте свои ценности и жизненные приоритеты. Понимание того, что для вас действительно важно, поможет сосредоточиться на главном.
👑 Четко определите свои стратегические цели. Это позволит вам двигаться вперед, не отвлекаясь на второстепенное.
👑 Поймите, как ваши ценности связаны с вашими целями. Это поможет отфильтровать лишнее и сосредоточиться на том, что действительно имеет значение.
👑 Работайте над тем, что важно именно для вас. Не стоит принимать чужие ценности и цели как свои собственные.
👑 Старайтесь реагировать проактивно, а не реактивно. Проактивность помогает сохранять контроль над ситуацией и не поддаваться эмоциям.
👑 Помните, что никто не идеален. Вы не обязаны оправдывать чужие ожидания — важно оставаться верным себе.
Если интересно продолжить обсуждение книги, то подключайтесь в группу Книжник на soer.pro
Норман Дойдж в своей книге "Пластичность мозга" раскрывает вопросы, связанные с пластичностью психики. В норме у здорового человека психика находится в состоянии равновесия благодаря своей способности адаптироваться к изменениям.
В жизни постоянно происходят различные неприятные события, как мелкие, так и значительные. Пластичность психики позволяет человеку переключать внимание, адаптироваться к новым условиям и справляться даже с трудными ситуациями.
Однако иногда психика становится ригидной (негибкой). В таком состоянии человек вместо того, чтобы адаптироваться и переживать проблемы, начинает зацикливаться на них. Это приводит к концентрации на негативных моментах, даже если они произошли давно. В результате человек может долго переживать из-за мелких обид или неудач.
Если вовремя не обратиться к специалисту, такое состояние может привести к неврозам, бессоннице и другим психологическим трудностям.
Как развить психическую гибкость?
Вот несколько советов, которые помогут сохранить и развить пластичность психики:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🤡12❤5👎3 2 1
Forwarded from Соер.Клуб | инженерный подход
Вышло видео "Архитектура веб-приложения для облачного решения"
Давно хочу рассказать о том, как можно мигрировать приложение в облако, сделать обзор на разные облачные инструменты и показать как можно управлять ресурсами в зависимости от нагрузки.
Первый шаг к реализации этой идеи сделан, на канале появилось вводное видео в котором я рассказал:
👑 как будет строиться архитектура NarisApp в облаке
👑 какие ресурсы понадобятся
👑 какие проблемы заметны уже сейчас
Видео доступно на всех площадках:👀 YouTube | 👀 VK | 📹 RuTube
Давно хочу рассказать о том, как можно мигрировать приложение в облако, сделать обзор на разные облачные инструменты и показать как можно управлять ресурсами в зависимости от нагрузки.
Первый шаг к реализации этой идеи сделан, на канале появилось вводное видео в котором я рассказал:
Видео доступно на всех площадках:
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Архитектура веб-приложения для облачного решения
#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - https://t.iss.one/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
GitHub - https://github.com/soerdev
Чат для программистов…
Основной канал для общения и публикации новых видео - Телегарм - https://t.iss.one/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
GitHub - https://github.com/soerdev
Чат для программистов…
1🔥36👍1 1
Forwarded from Соер.Клуб | инженерный подход
Что за «база», которая нужна в IT?
Что такое эта ваша «база»? Все знают, что она нужна, но проблема в том, что никто не может толком сказать, о какой такой «базе» идет речь.
Профессионалы под базой понимают не набор знаний, который можно чекнуть вопросами по типу «Скажи, сколько битов в одном байте?», а способность человека усваивать новые навыки при развитии в IT.
База — это набор навыков, которые позволяют человеку декомпозировать задачи, искать алгоритмическое решение, уметь планировать ресурсы и правильно распределять нагрузку. Условные «тренажеры» для формирования базы — это книги, «коммерческая» практика, обмен опытом с коллегами и прочие вопросы. Но есть нюанс: сами по себе книги не являются этой самой базой, а только инструментом!
Давайте на примере.
Вы наверняка слышали фразу, мол, если хочешь вкатиться в IT, то тебе нужна БАЗА, которую лучше постигать с ментором, и прочие бла-бла-бла. Помните этот идиотский пример про «спортзал» и тренера? Типа «хочешь идеальное тело, то тебе будет проще его получить с тренером». Подвох тут в том, что идеальное тело не достигается исключительно правильным подходом к нужным тренажерам под присмотром тренера.
Любой, кто хоть раз ставил перед собой задачу получить идеальное тело, знает, что существует огромное количество нюансов: гормоны, возраст, метаболизм, генетика, режим дня и т. д. И кроме всего этого еще есть годы упорного труда. Хороший тренер помогает не только составить программу тренировок, но и отправляет сдать анализы, посмотреть гармоны, скорректировать режим дня. И базой в спортзале обладает не тот, кто знает кучу умных слов, а тот, кто имеет натренированное тело. База — это результат труда и длительного воздействия на организм с помощью упражнений. Натренированный спортсмен может выполнять нужное количество повторений нужных упражнений, сведя риск травмы к минимуму. Человек без спортивной базы просто получит травму.
С мозгом всё ровно так же: база — это проработанный мозг, который, как и тело, требует тренировки для формирования необходимых связей между нейронами. Тренировать мозг так же обязательно, как качать тело. В нужный момент тренировка помогает концентрироваться и решать сложные задачи, и получать прочие бонусы, связанные с вполне практическими аспектами работы. Именно на эту базу легко ложатся новые алгоритмы, новые знания, новые подходы.
Если у специалиста нет базовой подготовки, то он будет вечным почемучкой, который создает кучу головной боли коллегам и не приносит особой пользы. В итоге при первой возможности его сольют за счет сокращения. Когда я говорю про базу, я лишь в очень малой части имею в виду знания (по сути, знания устаревают очень быстро). Куда важнее те навыки и ментальные способности, которые приобретает человек, работая над своим разумом.
Когда вам в очередной раз начнут впаривать про спортзал и волшебных менторов, задайте вопрос: «Что я буду УМЕТЬ после твоей помощи, какие НАВЫКИ ты поможешь сформировать, чтобы дальше я шел своим путем без постоянной необходимости возвращаться к тебе при каждом новом задании на работе?» Удивитесь, но вам расскажут про спортзал и тренажеры, про «чек-листы с правильными ответами» и ни слова про умения и навыки. Потому что никаких умений и навыков вам давать не планируют. Так работает современный бизнес: сначала вам скажут «пройдешь собес, и все завертится», а потом «подпишут» на помощь при прохождении испытательного срока.
Еще раз запомните: база — это навыки и опыт, которые помогают сформировать ваш главный инструмент как инженера — ваш мозг!
Что такое эта ваша «база»? Все знают, что она нужна, но проблема в том, что никто не может толком сказать, о какой такой «базе» идет речь.
Профессионалы под базой понимают не набор знаний, который можно чекнуть вопросами по типу «Скажи, сколько битов в одном байте?», а способность человека усваивать новые навыки при развитии в IT.
База — это набор навыков, которые позволяют человеку декомпозировать задачи, искать алгоритмическое решение, уметь планировать ресурсы и правильно распределять нагрузку. Условные «тренажеры» для формирования базы — это книги, «коммерческая» практика, обмен опытом с коллегами и прочие вопросы. Но есть нюанс: сами по себе книги не являются этой самой базой, а только инструментом!
Давайте на примере.
Вы наверняка слышали фразу, мол, если хочешь вкатиться в IT, то тебе нужна БАЗА, которую лучше постигать с ментором, и прочие бла-бла-бла. Помните этот идиотский пример про «спортзал» и тренера? Типа «хочешь идеальное тело, то тебе будет проще его получить с тренером». Подвох тут в том, что идеальное тело не достигается исключительно правильным подходом к нужным тренажерам под присмотром тренера.
Любой, кто хоть раз ставил перед собой задачу получить идеальное тело, знает, что существует огромное количество нюансов: гормоны, возраст, метаболизм, генетика, режим дня и т. д. И кроме всего этого еще есть годы упорного труда. Хороший тренер помогает не только составить программу тренировок, но и отправляет сдать анализы, посмотреть гармоны, скорректировать режим дня. И базой в спортзале обладает не тот, кто знает кучу умных слов, а тот, кто имеет натренированное тело. База — это результат труда и длительного воздействия на организм с помощью упражнений. Натренированный спортсмен может выполнять нужное количество повторений нужных упражнений, сведя риск травмы к минимуму. Человек без спортивной базы просто получит травму.
С мозгом всё ровно так же: база — это проработанный мозг, который, как и тело, требует тренировки для формирования необходимых связей между нейронами. Тренировать мозг так же обязательно, как качать тело. В нужный момент тренировка помогает концентрироваться и решать сложные задачи, и получать прочие бонусы, связанные с вполне практическими аспектами работы. Именно на эту базу легко ложатся новые алгоритмы, новые знания, новые подходы.
Если у специалиста нет базовой подготовки, то он будет вечным почемучкой, который создает кучу головной боли коллегам и не приносит особой пользы. В итоге при первой возможности его сольют за счет сокращения. Когда я говорю про базу, я лишь в очень малой части имею в виду знания (по сути, знания устаревают очень быстро). Куда важнее те навыки и ментальные способности, которые приобретает человек, работая над своим разумом.
Когда вам в очередной раз начнут впаривать про спортзал и волшебных менторов, задайте вопрос: «Что я буду УМЕТЬ после твоей помощи, какие НАВЫКИ ты поможешь сформировать, чтобы дальше я шел своим путем без постоянной необходимости возвращаться к тебе при каждом новом задании на работе?» Удивитесь, но вам расскажут про спортзал и тренажеры, про «чек-листы с правильными ответами» и ни слова про умения и навыки. Потому что никаких умений и навыков вам давать не планируют. Так работает современный бизнес: сначала вам скажут «пройдешь собес, и все завертится», а потом «подпишут» на помощь при прохождении испытательного срока.
Еще раз запомните: база — это навыки и опыт, которые помогают сформировать ваш главный инструмент как инженера — ваш мозг!
🔥56👍30🤡12👏3❤2😁1