Обложка канала

Библиотека программиста

72412 @proglibrary

Библиотека программиста — обзоры книг, видеолекции и образовательные статьи, которые помогут вам улучшить процесс познания в разработке.

  • Библиотека программиста

    1 июля в 20:00 (мск) – День открытых дверей онлайн-курса «Промышленный ML на больших данных». Запишитесь: https://otus.pw/fGNM/

    Встречу проведет руководитель онлайн-курса Дмитрий Бугайченко (Управляющий директор в Сбербанке). Специалист по работе с большими данными и машинному обучению. В течение 8 лет работал в «Одноклассники.ru». Руководил командой OK Data Lab (лаборатория для исследователей в области big data и machine learning).

    Первые 20 участников, зарегистрировавшихся на вебинар, получат Сертификат на скидку на электронную почту в течение 1-2 дней после трансляции.
    Еще 10 сертификатов на скидку распределят в прямом эфире между теми, кто записался на вебинар.

    Запись на участие в розыгрыше закрывается в день проведения вебинара в 16:00 (полные правила акции читайте на сайте https://otus.ru/legal/promo/) Применить Сертификат можно только после успешного прохождения вступительного тестирования.

    Так что готовьте вопросы, сдавайте вступительный тест и присоединяйтесь: https://otus.pw/3HCI/
  • Библиотека программиста

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

    Если у вас есть ветка <branch>, над которой вы хотите работать с кем-то ещё, вы можете отправить её на удалённый сервер <remote> с помощью команды git push <remote> <branch>.

    Закрепляем знания: для выполнения операций на удаленных ветках сначала настраиваем удаленный репозиторий и добавляем его в конфигурацию локального репозитория.
    $ git remote add <remote> <remote-url>

    Помещаем копию локальной ветки <branch> в удаленный репозиторий <remote>:
    $ git push <remote> <branch>
  • Библиотека программиста

    ​​💸 12 способов зарабатывать с помощью программного кода

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

    https://proglib.io/sh/u7tJsmH5S4
  • Реклама

  • Библиотека программиста

    Вы разработчик, который думает о переходе в область Data Science? Тогда вам будет интересно прийти на онлайн-митап, посвященной этой теме.
    На нем мы поделимся опытом перехода из программистов в дата сайентисты, расскажем о том, что вас ждет и на какие грабли лучше не наступать.
    Если вам интересно, о чем весь этот хайп про data science – ждем вас на митапе в понедельник 29 июня в 18-00 (время московское): https://skillfactoryschool.timepad.ru/event/1343117
  • Библиотека программиста

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

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

    Алгоритм рефакторинга:
    1. Найдите все места, где используется переменная, и замените их выражением, которое ей присваивалось.
    2. Удалите объявление переменной и строку присваивания ей значения.
  • Библиотека программиста

    Главным преимуществом команды git grep перед такими системными командами, как grep и ack, является скорость работы и возможность искать не только в рабочем каталоге, но и в любом другом дереве Git.

    Поиск слова pattern в проекте:
    $ git grep pattern

    Отображение нумерации строк, в которых присутствуют совпадения:
    $ git grep -n pattern

    Подсчет количества упоминаний pattern в проекте:
    $ git grep -с pattern

    Поиск в старой версии проекта:
    $ git grep pattern v1

    Также команда позволяет использовать логическое И и ИЛИ.

    Поиск строки, где упоминаются и первое слово, и второе:
    $ git grep -e 'first' --and -e 'another'

    Поиск строки, где встречается хотя бы одно из слов:
    $ git grep --all-match -e 'first' -e 'second'
  • Библиотека программиста

    IT-канал про серверы, технологии и динозавров разыскивает подписчиков!

    🦖 https://t.me/SelectelNews
  • Библиотека программиста

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

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

    Итак, от использования данного приёма рефакторинга вы получаете следующие преимущества:
    – каждый элемент программы отвечает за за конкретную (одну) часть функционала, что сильно упрощает поддержку кода в будущем;
    – улучшается читабельность кода;
    – формируете почву для дальнейшего выделения повторяющихся участков кода в отдельные методы.

    Алгоритм рефакторинга:
    1. Найдите место в коде, где переменная в первый раз заполняется каким-то значением. В этом месте переименуйте ее, причем новое название должно соответствовать присваиваемому значению.
    2. Подставьте её новое название вместо старого в тех местах, где использовалось это значение переменной.
    3. Повторите операцию для случаев, где переменной присваивается новое значение.
  • Библиотека программиста

    ​​Если ты хочешь изменить профессию и попасть в IT – эта новость для тебя!

    Test Pro начинает набор курса Software QA.

    Это 9 недель обучения и практики над реальными проектами.

    Мы делаем упор на практику, тщательно выбираем преподавателей и сертифицируем в конце курса. А 80% наших студентов находят работу уже в течении трех месяцев после окончания курса и даже во время обучения.

    За 9 недель ты:

    • нуля обучишься новой профессии;
    • на старте сможешь зарабатывать от $25-$35 в час;
    • получишь обратную связь от профессионалов в своем деле;
    • научишься писать тест-кейсы, чек-листы, тест-планы, mind maps и многое-многое другое (с деталями учебного плана ты можешь ознакомиться на нашем сайте).

    Все наши преподаватели практики, которые работают в профессии на рынке США от 5-ти до 10-ти лет.

    Работали в таких компаниях: Amazon, Toyota, Google, Visa, AT&T, T-Mobile, US Census Bureau, Disney.

    Если тебе интересно, регистрируйся на нашу первую бесплатную неделю, чтобы ознакомиться с нашей программой и пройти целую неделю обучения абсолютно бесплатно – http://testpro.io/proglibrary

    А если у тебя остались вопросы, ты всегда можешь задать их нам в нашем чате – https://t.me/ek_testpro_chat

    И ещё сейчас действует скидка $400 на покупку курса.
  • Библиотека программиста

    ​​🕐 Как в Google Chrome измерить использование памяти веб-страницей

    Держим руку на пульсе производительного веба. В этой статье учимся измерять утечки памяти страницы Google Chrome с помощью нового интерфейса performance.measureMemory().

    https://proglib.io/sh/6JdwuHLFEs
  • Библиотека программиста

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

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

    Предположим, что версия 1.2.15 вашего проекта работала, но версия в ветке master падает. Чтобы найти коммит, который вызывает крах приложения, необходимо воспользоваться следующей последовательностью команд:
    $ git bisect start
    $ git bisect good v1.2.15
    $ git bisect bad master


    Если вы выполните git branch в этот момент, вы увидите, что git переместил вас временно в новую ветку с имененм bisect. Эта ветка указывает на определённый коммит, который можно достичь из ветки master, но не из v1.2.15. Протестируйте его, и узнайте падает ли программа.

    Если падает, то выполняем git bisect bad. Продолжайте в этом духе, уведомляя git на каждом этапе что версия, которую вы пробуете, нормальная или проблемная, и заметьте, что число повторных просмотров оставшихся для тестирования уменьшается приблизительно наполовину каждый раз.

    После определённого количества тестов, вы получите в результате SHA-1 коммита-виновника проблем. Вы можете затем исследовать коммит с помощью git show, чтобы найти его автора, и написать отчет об ошибке с SHA-1 коммита. В заключении выполните git bisect reset.
  • Библиотека программиста

    Мобильный разработчик - работа мечты!
    💰 Высокая зарплата
    ↗️ Карьерный рост
    Востребованность на рынке
    🏝 Возможность работать удаленно
    🔥 Работать с удовольствием

    В Skill-Branch для этого есть курсы:
    👉🏼Middle Android Developer на Kotlin - 9 месяцев углубленного изучения Android-разработки
    Более 300 часов лекций и практики за 9 месяцев, 2 реальных проекта в портфолио! Научитесь работать с актуальными технологиями и инструментами (Kotlin, RxJava, Gradle, Mockito, Firebase, Espresso, ML Kit, GraphQL), изучите Dagger 2 и RxJava 3, процессы тестирования Android-приложений и получите Code review проекта от ведущих IT-специалистов

    👉 Flutter - первый в Рунете курс по Flutter в мобильной разработке: 100+ часов практики за 3.5 месяца. Система автоматической проверки, Code Review вашего проекта и приложение в портфолио!

    👉🏼DEV-Intensive Android - бесплатный онлайн-интенсив по Android-разработке на Kotlin, для быстрого освоения Android разработки на Kotlin

    Переходите по ссылкам, чтобы узнать больше!
  • Библиотека программиста

    Основаная причина использовования приёма рефакторинга под названием Встраивание метода (Inline Method) заключается в том, что проблемно становится разобраться с множеством методов, тело которых состоит из простого делегирования к другим методам.

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

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

    Алгоритм рефакторинга в данном случае следующий:
    1. Убедитесь, что метод не переопределяется в подклассах. Если он переопределяется, воздержитесь от рефакторинга.
    2. Найдите все вызовы метода. Замените эти вызовы содержимым метода.
    3. Удалите метод.
  • Библиотека программиста

    Онлайн-мероприятия на неделю

    Вебинар «Введение в k6 load testing tool», 24 июня
    Начало пути в GameDev, 25 июня
    Создание SPA на Vue.js с нуля, 25 июня
    BugsBusters: встреча об инструментах тестирования, 25 июня
    Дзен-митап: видеорекомендации. Онлайн, 26 июня
    Alfa Battle – онлайн-чемпионат по прикладному программированию для Java-разработчиков, 27 июня
    SQL инъекции. Тестирование на проникновение, выявление, защита, 30 июня
  • Библиотека программиста

    ​​⚛️ 12 бесплатных ресурсов для изучения React

    React – одна из самых популярных JavaScript-библиотек для разработки пользовательских интерфейсов. В этой статье вы найдете подборку бесплатных ресурсов о React: открытые курсы, подкасты, ёмкие конспекты и плейлисты YouTube.

    https://proglib.io/sh/mg0694a72A
  • Реклама

  • Библиотека программиста

    Благодаря псевдонимам (aliases) рабочие процессы становятся эффективнее, поскольку вы можете настроить каждую длинную и сложно запоминающаюся команду Git под себя, и использовать всего несколько символов, например:
    $ git config --global alias.co checkout

    Приведенный пример демонстрирует создание глобальных псевдонимов для команды git checkout, которая по‑прежнему доступна, хотя теперь для нее можно использовать псевдоним git co. Эти псевдонимы созданы с флагом --global, поэтому они сохраняются в глобальном файле конфигурации. В системах Linux такой файл находится в домашнем каталоге пользователя в файле .gitconfig.

    Вы можете использовать псевдонимы для создания новых команд Git. Часто в Git приходится удалять недавно добавленные файлы из индекса. Для этого команде git reset передаются различные параметры. Можно создать псевдоним, чтобы использовать это поведение и задать ключевое слово для команды с псевдонимом:
    $ git config --global alias.unstage 'reset HEAD --'

    В примере создается новый псевдоним unstage. С его помощью можно вызвать команду git unstage и выполнить сброс в индексе.

    Теперь следующие две команды эквивалентны.
    $ git unstage <filename>
    $ git reset HEAD --<filename>
  • Библиотека программиста

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

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

    С помощью данного приёма вы сможете:
    ✔️Улучшить читабельность кода.
    ✔️Убрать дублирование кода.
    ✔️Изолировать независимые части кода, уменьшая вероятность ошибок.

    Порядок рефакторинга следующий:
    1. Создайте новый метод и назовите его так, чтобы название отражало суть функционала метода.
    2. Поместите проблемный фрагмент кода в новый метод.
    3. Если переменные объявлены перед интересующим вас участком кода, значит, их следует передать в параметры вашего нового метода, чтобы использовать значения, которые в них находились ранее.
    4. Если локальная переменная как-то изменяется в вашем участке кода, это может означать, что её изменённое значение понадобится дальше в основном методе. Если это так, то значение этой переменной необходимо возвратить в основной метод, чтобы ничего не сломать.
  • Библиотека программиста

    ​​OTUS открывает набор на новый онлайн-курс «Промышленный ML на больших данных» займите своё место со специальной скидкой: https://otus.pw/eWCy/

    За 5 месяцев обучения вы:
    - Использовать стандартные инструменты ML-конвейеров в распределенной среде;
    - Разрабатывать собственные блоки для ML-конвейеров;
    - Адаптировать ML-алгоритмы к распределенной среде и инструментам big data;
    - Использовать Spark, SparkML, Spark Streaming;
    организовывать промышленные конвейеры сбора данных;
    - Разрабатывать алгоритмы потоковой подготовки данных для машинного обучения;
    - Обеспечивать контроль качества на всех этапах движения ML-решений в промышленную эксплуатация.

    Делиться экспертизой будут проверенные преподаватели-практики: Дмитрий Бугайченко (Управляющий директор в Сбербанке). Специалист по работе с большими данными и машинному обучению. В течение 8 лет работал в «Одноклассники.ru». Руководил командой OK Data Lab (лаборатория для исследователей в области big data и machine learning).

    Сделайте первый шаг в карьере по работе с большими данными и машинному обучению - присоединяйтесь прямо сейчас: https://otus.pw/eWCy/