Size: a a a

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

2020 June 21
Библиотека программиста
Поговорим о рефакторинге. Представьте, что у вас есть фрагмент кода, который можно сгруппировать.

Приём рефакторинга, который подразумевает выделение участка кода в новый метод (или функцию) и вызов этого метода вместо старого кода, называется ...
Анонимная викторина
75%
Извлечением метода (Extract Method)
18%
Встраиванием метода (Inline Method)
3%
Извлечением переменной (Extract Variable)
4%
Посмотреть результаты
Проголосовало: 2987
источник
2020 June 22
Библиотека программиста
Вы знаете, что большое количество строк кода в методе усложняет понимание его функционала. Это основная проблема, которую решает этот рефакторинг.

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

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

Порядок рефакторинга следующий:
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/
источник
Библиотека программиста
Если вы не хотите набирать каждую команду для Git целиком, вы можете настроить … для любой команды с помощью git config. Они используются для создания кратких команд, которые связываются с длинными командами Git.
Анонимная викторина
9%
Атрибуты
73%
Псевдонимы
15%
Хуки
3%
Посмотреть результаты
Проголосовало: 3120
источник
2020 June 23
Библиотека программиста
Благодаря псевдонимам (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>
источник
Библиотека программиста
источник
Библиотека программиста
​​⚛️ 12 бесплатных ресурсов для изучения React

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

https://proglib.io/sh/mg0694a72A
источник
Библиотека программиста
В том случае, когда тело метода очевиднее самого метода, необходимо заменить вызовы метода его содержимым и удалить сам метод. Как называется такой приём рефакторинга?
Анонимная викторина
46%
Встраивание метода (Inline Method)
18%
Замена метода объектом методов (Replace Method with Method Object)
31%
Извлечение метода (Extract Method)
5%
Посмотреть результаты
Проголосовало: 2787
источник
2020 June 24
Библиотека программиста
Основаная причина использовования приёма рефакторинга под названием Встраивание метода (Inline Method) заключается в том, что проблемно становится разобраться с множеством методов, тело которых состоит из простого делегирования к другим методам.

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

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

Алгоритм рефакторинга в данном случае следующий:
1. Убедитесь, что метод не переопределяется в подклассах. Если он переопределяется, воздержитесь от рефакторинга.
2. Найдите все вызовы метода. Замените эти вызовы содержимым метода.
3. Удалите метод.
источник
Библиотека программиста
Мобильный разработчик - работа мечты!
💰 Высокая зарплата
↗️ Карьерный рост
✨ Востребованность на рынке
🏝 Возможность работать удаленно
🔥 Работать с удовольствием

В 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

Переходите по ссылкам, чтобы узнать больше!
источник
Библиотека программиста
Вы развернули проект в боевом окружении и начали получать отчёты об ошибке. Если вы не знаете, что сломано, а с тех пор было сделано множество коммитов, можно воспользоваться командой ... , которая выполняет бинарный поиск для поиска проблемного коммита.
Анонимная викторина
31%
git blame
20%
git grep
35%
git bisect
15%
Посмотреть результаты
Проголосовало: 3209
источник
2020 June 25
Библиотека программиста
Аннотирование файла, реализуемое посредством команды 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.
источник
Библиотека программиста
​​🕐 Как в Google Chrome измерить использование памяти веб-страницей

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

https://proglib.io/sh/6JdwuHLFEs
источник
Библиотека программиста
​​Если ты хочешь изменить профессию и попасть в 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 на покупку курса.
источник
Библиотека программиста
Как называется приём рефакторинга, при котором разные переменные используются для разных значений, то есть каждая переменная должна отвечать только за конкретную (одну) часть функционала?
Анонимная викторина
15%
Замена переменной вызовом метода
67%
Расщепление переменной
7%
Удаление присваиваний параметрам
11%
Посмотреть результаты
Проголосовало: 3099
источник
2020 June 26
Библиотека программиста
Предположим, что у вас есть локальная переменная, которая используется для хранения разных промежуточных значений внутри метода (за исключением переменных циклов). В таком случае на помощь приходит приём рефакторинга Расщепление переменной, который подразумевает использование разных переменных для разных значений.

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

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

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

🦖 https://t.me/SelectelNews
источник
Библиотека программиста
Как выглядит команда Git, реализующая поиск строки / регулярного выражения в любом из файлов вашего проекта или истории коммитов?
Анонимная викторина
23%
git search
24%
git find
45%
git grep
7%
Посмотреть результаты
Проголосовало: 3604
источник
2020 June 27
Библиотека программиста
Главным преимуществом команды 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'
источник
Библиотека программиста
Представьте, что у вас есть временная переменная, которой не присваивается ничего, кроме результата простого выражения. Как называется приём рефакторинга, подразумевающий замену обращения к переменной этим выражением?
Анонимная викторина
16%
Расщепление переменной
26%
Удаление присваиваний параметрам
49%
Встраивание переменной
9%
Посмотреть результаты
Проголосовало: 2944
источник