Пять продвинутых Git-команд, благодаря которым вы будете выглядеть как профи
Расскажем о пяти передовых концепций Git: git bisect, git cherry-pick, git rebase, git add -p, git commit –amend - все они могут сэкономить много времени, которое вы тратите на чтение StackOverflow, когда возникают сложности с управлением версиями.
3 верных способа оптимизировать ревью на GitHub
Предлагаем 3 искусных приема для оптимизации ревью пул-реквестов: раздельный просмотр различий, отображение только новейших изменений и предложение изменений.
Как извлечь показатели из устаревшей системы в реальном времени, не изменив ни строчки кода
При работе с устаревшим фреймворком добавление дополнительных функций может обернуться рядом проблем. Лучше привлечь более новую систему, способную реагировать на изменения в устаревшем проекте. Узнайте о том, как это сделать, не изменив ни единой строчки кода.
Зачем изучать программирование?6 способов освоить кодинг дома
Интерес к программированию растет день ото дня. В марафоне по овладению навыками кодинга участвуют как взрослые, так и дети.Появляются языки программирования для различных категорий...
Как научиться не только писать код, но и быть хорошим программистом
Писать код - дело текущего дня. А вот умение быть отличным инженером ПО - навык, который будет актуален всегда. Порассуждаем над тем, почему так важно постоянно совершенствовать навыки, знания и опыт.
Идиома CRTP и написание общих функций в C++
Разбираемся в концепции CRTP (Curiously recurring template patterns, рекурсивный шаблон). Она поможет описывать в C++ общую функциональность, комбинируя шаблоны и наследование.
Путь программиста-самоучки: преимущества и подводные камни
На пути у программиста-самоучки немало серьезных вызовов. Вам придется найти свое место в выбранной сфере, столкнуться с множеством вопросов без ответов и полностью отдаться...
Какую СУБД начать изучать в первую очередь?
Какую систему баз данных стоит изучить в первую очередь? И стоит ли вообще изучать какие-либо СУБД, ведь для этой работы есть специально обученные люди?
Да,...
Ленивая загрузка, агрегирование и CQRS
Рассмотрим шаблоны, позволяющие справляться с приложениями, у которых повышается сложность, и поймем, в каких случаях пригодится каждый из них.
Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 2
Часть 1, Часть 2
Не забывайте про принцип DRY (Не повторяйтесь)
Принцип DRY гласит:
“ Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках...
Худший враг программиста — долгосрочная актуальность
Что по-вашему будет труднее?
· решить проблему в коде;
· решить более масштабную проблему в коде
Да, я тоже так считаю.
Программирование сводится к решению проблем. Если вы...
Этические аспекты клонирования голоса и возможности его применения
Если вы до сих пор считаете, что понятия “клонирование голоса” и “дипфейк” новы, то ошибаетесь. Первые опыты по имитации человеческого голоса проводились уже в...
Как украсть секреты разработчиков через Websocket?
Это история о запутанном и не очень полезном методе извлечения кода, создаваемого ничего не подозревающими JavaScript разработчиками, занятыми над секретными проектами.
Недавно в сети появилась...
OTP-аутентификация c Devise
Сделаем простую реализацию OTP-аутентификации с Devise-функционалом Confirmable без сторонних библиотек или обширных конфигураций. Напишем функции для обработки форм валидации OTP и повторной его отправки.
Как стать Git-мастером: 7 советов по повышению производительности
Автозаполнение команд Git в терминале
Большинство команд терминала для Git начинаются с ключевого слова git, за которым следует пробел и второе ключевое слово. Из-за наличия...
Комментарий в коде написать - всё равно, что проиграть
Могу себе представить, какое бурное негодование вызвал у вас лишь заголовок данной статьи, но не спешите бросать в меня камни и просто выслушайте. Уместные...
6 способов оптимизировать рабочий процесс в Pandas
Несмотря на популярность, у Pandas есть немало скрытых возможностей. Предлагаем ознакомиться с 6 из них - они помогут повысить эффективность анализа данных.
Как пройти собеседование по проектированию систем?
У большинства компаний в сфере информационных технологий отдельный тур собеседования посвящён проектированию систем. Кандидатов просят спроектировать масштабируемую систему типа Facebook NewsFeed, Instagram stories, WhatsApp-чата,...
Основные принципы дизайна для НЕ дизайнеров
Я сформировала этот список, посредством многолетнего наблюдения за своими друзьями НЕ дизайнерами, семьей и коллегами, которым постоянно приходится сталкиваться с необходимостью применения дизайна в...
Как я создал расширение браузера и обучил ChatGPT обращаться к внешним сайтам за информацией...
Расскажем, как с помощью расширения Tampermonkey и прокси CORS Anywhere обучить ChatGPT получать доступ к внешним сайтам, анализировать извлекаемый с их страниц контент и искать в нем ответ на заданный вопрос.
Битва трендов: React vs Angular vs Vue
Подождите, по-моему, я уже писал на эту тему… Да, но слишком многие жаловались, что я так и не сказал, что же лучше. Поэтому в...
Как запустить и использовать файловые системы с помощью Amazon FSx
Компаниям, которые хотят запускать приложения Windows в облаке, нужно сетевое хранилище файлов, полностью совместимое с их приложениями и средами Windows. Рассмотрим систему Amazon FSx, которая во многом облегчает перенос рабочих нагрузок Windows в облако.
Принцип открытости/закрытости: расширение кода без модификации
Принцип открытости/закрытости позволяет создавать отличные проекты на основе имеющегося набора свойств. А используете ли вы метод validate для видео, документов и других расширений? Посмотрите, как это делается.
Вы не понимаете своих программистов
...Открытое письмо не-технарям в технических компаниях
Может показаться, что мы заняты только этим:
Но на самом деле всё несколько сложнее.
Обычно разработчики — целеустремлённые люди, многие из них сами...
Как использовать агенты Hugging Face для решения задач NLP
Предлагаем пошаговое руководство по использованию инструментов и агентов библиотеки Transformers. В отличие от ChatGPT, агенты Transformers имеют доступ ко многим моделям, доступным на Hugging Face. Такой арсенал значительно улучшит пользовательский опыт приложений.
Что в голосе моем? - Код!
Недавно у меня состоялся интересный разговор со слабовидящей девушкой. Вернувшись домой, я поймал себя на мысли, а что было бы, имей я такого рода...
Как создать конвейер автоматизированных сборок для проекта в Arduino Часть 2/2
Часть 1, Часть 2
Давайте добавим Arduino Zero. Модифицируем часть программы, которая устанавливает ядро AVR, и добавляем другой код:
# Установка ядер Arduino
arduino-cli core install arduino:avr
arduino-cli...
Как научиться задавать вопросы, проектировать системы и выявлять ошибки?
7 навыков логического мышления, необходимых для карьерного роста разработчика программного обеспечения
Карьерные трудности UX/UI дизайнера
Нейросети, "дизайноголия", банальность, невнимательность к мелочам и другие проблемы дизайнеров интерфейсов и пользовательского опыта
Как обнаружить дублирование кода в проекте
Обнаружение повторяющегося кода - необходимая часть качественного проектирования. Пренебрежение ею чревато снижением читабельности проекта и усложнением его обслуживания. Ознакомьтесь с несколькими способами обнаружения и удаления дублирующегося кода.
Основные правила код-ревью
Code review или обзор кода - работа, требующая высокого уровня профессионализма. Ознакомьтесь с его лучшими практиками: вот что нужно и что нельзя делать разработчику при обзоре кода.
Топ-5 примеров комментирования кода
Ничто не может объяснить код лучше самого кода. Но в некоторых случаях без комментирования не обойтись. Узнайте, как правильно использовать комментарии и тем самым повысить читабельность кода.
Полезные команды Git
Набор консольных утилит Git создан в помощь программисту. Используя их, он может управлять версиями проекта. Само собой, при работе с Git требуется знание определенных команд. Сегодня мы рассмотрим базовые команды Git и научимся добавлять и изменять удаленный репозиторий, а также удалять ветки.
Теория игр
Узнаем, как объяснить конфликты, ситуации и возможности повседневной жизни с помощью математики.
Топ 3 самых популярных языка программирования в 2018 году
Нет ничего удивительного в том, что в нынешнее время человеку становится все труднее и труднее, как говорится, «взять быка за рога» и просто освоить...
Почему я полюбила тестирование и теперь советую его вам
Среди разработчиков часто можно услышать о том, что тестирование тормозит разработку. Я считаю это утверждение ошибочным. Да, действительно, польза тестов зачастую оказывается незаметна в...
Установка и использование Snap-пакетов в Ubuntu 18.04
Введение
Snap (или Snappy) — это система развертывания программ и управления пакетами, созданная Canonical. Эти пакеты чаще называют «снепами». Для работы с ними используется утилита «snapd», встроенная...
Выбираем шрифт
Факторы, которые следует учитывать при выборе шрифта для вашего следующего проекта.
Serif или Sans Serif, вот в чем вопрос
Большинство шрифтов можно разделить на две основные категории:...
Чистый код работает медленно, но он все равно нужен
Что важнее - чистота, читаемость, расширяемость и надежность кода или производительность? Чтобы ответить на этот вопрос, нужны прагматизм и гибкость квалифицированного специалиста. Прислушайтесь к рекомендациям опытного разработчика iOS, Android и игр.
Хитрости объектно-ориентированного программирования. Часть 3: Смерть от аргументов
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2.
Аргументы, аргументы, аргументы
Длинные списки аргументов в функции крайне трудны для вызываемого...
Обнаружение и извлечение текста из изображения с помощью Python
Представляем удобные техники OCR и OpenCV для обнаружения и извлечения текста в цифровом изображении
Как находиться в потоке, программируя в парах
Не так давно я поинтересовался у коллег по команде, может ли разработчик находиться в потоке, программируя в паре. Ответ по-настоящему меня удивил. Дело в...
Чему я научился за первые два года работы программистом
Университет и работа
Шел 2015 год, когда я был студентом Флоридского университета. Тогда я учился у профессора, который по самому сложному предмету задавал в...
Успешный релиз ПО: распространенные ошибки перед запуском продукта
Как желание сделать все и сразу, отсутствие общения и неправильные KPI уничтожают казалось бы успешные и нужные продукты.
Школа ленивого разработчика: ускоренный курс по созданию фрагментов кода в VS Code
Каждый разработчик сталкивался с утомительной необходимостью вводить один и тот же повторяющийся код бесконечное количество раз, начиная с цикла for и заканчивая логированием данных...
Программирование: 5 недооцененных навыков
Убедитесь, что они есть в вашем арсенале
Сейчас инженеры-программисты нуждаются в довольно широком спектре навыков. Наверху списка этих навыков вы найдете что-то вроде того, что… вам...
В чем Windows превосходит Linux
Автор рассказывает, почему ему пришлось распрощаться с Linux и снова возвратиться к Windows. Кроме того, ему удалось попробовать новую Windows, и он подробно рассказал о ее преимуществах и недостатках.
Лучшие JavaScript библиотеки за 2019 год для построения диаграмм
Вступление
По мере того, как увеличиваются объёмы и сбор данных, необходимость визуализации этих данных становится всё более актуальной. Разработчики ищут способы объединять миллионы записей баз...
5 ключевых правил успешного ревью кода
Учитывая важность ревью кода в процессе разработки, сформулируем 5 правил, способствующих повышению его эффективности.
5 методов написания чистого кода для любого проекта
Рассмотрим несколько советов по повышению качества баз кода, которые пригодятся при создании различных проектов: фронтенда, бэкенда, командной строки, настольных и мобильных приложений.
Упрощаем интеграцию Kafka со Spring Boot
Разберем ключевой функционал и настройку Kafka и узнаем, как он вписывается в Spring Boot. Научимся маршрутизировать и фильтровать сообщения, отправлять и получать их с помощью шаблонов и прослушивателей Kafka, а также преобразовывать форматы пользовательских данных.
Как выбрать язык программирования для проекта машинного обучения
Это руководство поможет вам сравнить языки программирования, используемые в машинном обучении: Python, R, Java, C++, JavaScript и Julia. Оцените их возможности и ограничения, чтобы выбрать наиболее подходящий для вашего проекта.
Как создать простой агент с Guidance и локальной моделью LLM
Познакомимся с инструментом Guidance, который управляет выводом больших языковых моделей и обеспечивает корректное выполнение инструкций.
Получение одного события разными группами получателей в Kafka с Spring Boot
Настроим отправку события в темы Kafka с группами получателей, запустим службы заказов, хранения и платежей. Отправим HTTP-запросы, получение события проверим в консольных журналах.
Разработка ПО — системы плагинов
Рассмотрим особенности систем плагинов, которые позволяют разработчикам расширять функциональность и модульность программ. В качестве примера создадим чат-бот.
Топ-6 признаков некомпетентного программиста
Некомпетентность в программировании - не всегда результат неопытности. Плохого разработчика узнают по его "почерку" и нескольким другим признакам.
ТОП-10 признаков плохого кода: хардкод и спагетти-код в примерах на JavaScript
Повторения, непоследовательность, длинные условия, сложность алгоритма по времени и памяти - очевидные ошибки начинающих разработчиков.
Чистая архитектура: руководство для начинающих
Разбираемся в том, что такое чистая архитектура, какие преимущества она дает и как ей следовать на практике. Рассмотрим все примеры с иллюстрациями.
Будущее графических дизайнеров в эпоху машинного обучения
Сможет ли искусственный интеллект заменить графического дизайнера? Этот вопрос волнует многих. Расскажем, как машинное обучение и искусственный интеллект действуют сегодня и поделимся прогнозами экспертов.
Airtable: рецепт молниеносного создания баз данных и таблиц
Познакомимся с платформой Airtable и ее уникальными возможностями в создании баз данных и электронных таблиц. Покажем, как импортировать данные и визуализировать их в виде диаграммы.
Автоматизированные тесты - качественно и непременно эффективно!
Не воспринимайте автоматизированные тесты как наказание. Их цель не в том, чтобы пройти проверку кода или соответствовать критериям приемлемости и показателям инструментов покрытия кода....
Технология составления промптов для модели ИИ на примере одного чат-бота
Научимся составлять инструкции для моделей ИИ на примере конкретного чат-бота. Рассмотрим такие этапы процесса, как определение концепции мышления модели, установка контекста и формата вывода ответа, построение вопроса и проверка вывода.
Три нашумевших диаграммы. Исследование JavaScript в 2018
Вы думали статистика и графики — это скука? Подумайте ещё раз…
Нашумевший — это буквально самое заезженное слово в интернете, если не считать слово «буквально». Но в этот раз — это...
Как увеличить ваши шансы на получение должности разработчика
На прошлой работе в качестве senior-developer я помогал проводить собеседования и нанял большую часть своей команды разработчиков. В этой статье я использую полученные знания...
Как эффективно использовать флаги функций
Расскажем о проверенном на практике подходе по работе с флагами функций. Просто, быстро и результативно!
Как я начала кодить
Моя история настолько далека от программирования, насколько это возможно. На тот момент я уже десять лет училась в школе. У меня есть степень магистра...
Как добавить в проект тестирование скриншотов с Cypress
Разработчиков, как правило, заботит качество кода. Есть различные виды тестов, которые помогают избежать ситуаций, когда код ломается после добавления в проект новой функции. Но...
#03TheNotSoToughML | Регрессия: Ошибки → Спуск с вершины горы
По меткому высказыванию Педро Домингоса, машинное обучение - это результат слияния необъяснимой эффективности математики с такой же необъяснимой эффективностью данных. Некоторые склонны впадать в панику при беглом знакомстве с МО, полагая, что оно требует сложнейших математических вычислений. В специальной серии статей мы поставили перед собой задачу развеять этот миф.
Как исследовать и визуализировать данные МО для обнаружения объектов на изображениях
Предлагаем руководство по созданию интерактивной визуализации для обнаружения объектов с помощью Renumics Spotlight 1.6.0. Ознакомление с подобными передовыми технологиями позволит принимать более обоснованные решения при выборе дополнительных обучающих данных.
Перестаньте фокусироваться на синтаксисе, если хотите стать senior-разработчиком
Вы переезжаете в новый город и не знаете, где находится ближайший продуктовый магазин.
Вы не станете волноваться, а просто воспользуетесь Google Maps.
После того, как вы...
Вам следует изучить программирование
Знаете, как это ужасно, когда ты женишься, а немного позже встречаешь любовь всей жизни? То же произошло и со мной.
Я поступил в университет на...
Программируем с интерфейсами: и у нас на это 5 причин
Начну с самого важного. ВСЕГДА используйте интерфейсы . Ну или хотя бы в большинстве случаев, когда пишете программу или создаёте проект. Чем больше, тем лучше....
Как перестать переживать по поводу дедлайна
Дедлайн…
Один из самых больших кошмаров для разработчика.
Признайтесь, вас пугает это слово. Даже сейчас, читая эти строки, ваши волосы встают дыбом.
Вам интересно, откуда я это...
Как создать бесплатный сайт на GitHub Pages
GitHub Pages — это один из тех классных инструментов, о которых мало кто знает. Практически любой GitHub -репозиторий можно превратить в полноценный сайт в два клика.
Хотите разместить...
У меня появилась идея для приложения, но…я не разработчик
У меня есть идея для веб-приложения
Мои поздравления — вас посетила муза! Теперь пришло время внимательно взглянуть на вашу идею и решить, следует ли ее доработать, перейти...
Расширения VS Code, в 3 раза повышающие скорость работы
Возьмите на заметку 5 лучших расширений VS Code. Они значительно ускорят ваш рабочий процесс и помогут избежать досадных ошибок при написании кода.
5 секретов продуктивной работы в VS Code
VS Code предлагает много возможностей настроить работу так, как вам нужно. Рассмотрим 5 способов сделать работу в VS Code более продуктивной.
3 ошибки на собеседованиях по программированию, из-за которых можно получить отказ
После неудачного технического собеседования соискатели часто не могут понять, что пошло не так. Поговорим о распространенных ошибках и о том, как их избежать.
Возвращаемся к SOLID
Вы помните, что именно представляет собой один из краеугольных камней большой разработки программного обеспечения?
В первые годы своей работы большинство разработчиков сталкиваются с принципами SOLID,...
Как обучать программированию подростков?
В последнее время многие родители спрашивали меня, как я учился программировать, в основном, чтобы узнать, как им обучать своих детей. И каждый раз я...
Парадоксы нейминга: Windows придумали не в Microsoft, а Android — в Apple
Узнайте, как появились самые известные названия в мире компьютерных технологий. Будьте готовы к потрясающим открытиям. В мире нейминга не существует правил и ограничений.
Как начать работать программистом почти без опыта
Я попал в Кремниевую Долину через черный ход — я начинал свою карьеру с простых и быстрых подработок на фрилансе. Рекомендую этот подход: это эффективный и...
Как написать хороший проектный документ
Будучи разработчиком ПО, я трачу много времени на чтение и написание проектных документов. Прочитав и написав сотни таких документов, я заметила сильную зависимость между...
Три фактора сдерживания прогресса ИИ
Реализовать трансформационный искусственный интеллект, несмотря на его революционный потенциал, достаточно трудно. Бизнес, экономика и общество сдерживают его прогресс. Предлагаем ознакомиться с мнением экспертов по этому поводу.
BabyAGI — автономный ИИ-агент для оптимизации задач
Изучите 10 примеров задач, выполняемых автономным ИИ-агентом BabyAGI. Способность логически рассуждать, принимать сложные решения и контролировать параметры делает BabyAGI бесценным помощником в автоматизации управления задачами.
Как отладка поможет вам стать лучшим разработчиком
Если бы мне предложили подвести итог своей карьере программиста с помощью двух суровых истин, я бы сказал так:
Все, что может пойти не так,...
Стоит ли разработчику изучать VIM в 2020 году?
Введение
Небольшая предыстория для понимания контекста. В конце 2018 года я всерьез занялся программированием, решив развивать карьеру. До этого я создавал (довольно плохие) сценарии для...
Внедрение зависимостей, или Разработчики совсем обленились
Внедрение зависимостей — это круто. Реально круто. Но это ещё и ад.
Идея о том, чтобы IoC-контейнер разрешал все зависимости объектов явного конструктора, всячески поддерживается...
Наглядное руководство по каждому типу тестов
“В теории после каждого внесения исправлений необходимо запустить весь банк тестовых случаев, которые ранее запускались в системе, чтобы убедиться, что она каким-то непонятным образом...
Как писать код, который будет нравится вам в будущем
Дядя Бен однажды сказал Питеру Паркеру: “С большой силой приходит большая ответственность”. Эта цитата относится также и к программистам, отвечающим за разработку проектов. После...
Легко и быстро: автоматизация развертывания AWS EC2 с GitHub Actions и Docker Hub
Пошагово настроим экземпляр AWS EC2, создадим и добавим в DockerHub образ Docker и настроим рабочий поток Github Actions. В итоге научимся автоматизировать и оптимизировать рабочий процесс развертывания, уменьшая риск человеческой ошибки.
Руководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis
Рассмотрим написание docker-compose.yml и запуск веб-приложения в связанных контейнерах Docker Compose на примере Node.js и Redis.
GitHub Actions и Vercel — быстрое развертывание проектов
На практическом примере научимся настраивать GitHub Actions для развертывания проекта на Vercel.
Шоу должно продолжаться: обеспечение безопасности Netflix Studios с масштабированием
Узнайте об одной из выдающихся стратегий Netflix Studios - развертывании приложений, гарантирующем 100% аутентификации поддерживающим его сервисам. Она многократно сокращает время и усилия разработчиков, а также риски безопасности в интернет-пространстве.
3 основных принципа несвязных приложений
Самая большая ошибка объектно-ориентированного проектирования - это инкапсуляция устойчивого состояния. Что будет, если этого не делать?
5 правил кода
За последнее время я сформировал список актуальных рекомендаций относительно того, что должен и чего не должен делать современный разработчик. Давайте ознакомимся с пятью из...
14 когнитивных измерений — мастхэв для современного программиста
Хотите стать первоклассным программистом? Тогда приготовьтесь к постоянному совершенствованию. Для начала узнайте о 14 когнитивных измерениях, разработанных Томасом Грином для оценки дизайна программ.
Возраст - это просто цифра
“Я боюсь, что для меня уже слишком поздно менять профессию… Вообще менять что-либо существенное в жизни уже поздно. Мне уже (подставьте соответствующий вам возраст,...
Что определяет настоящего “Senior” разработчика?
В мире программирования один лишь факт того, что вы долго работаете разработчиком, не делает из вас отличного специалиста. По моему опыту, разработчики и инженеры...
Фитнес-функции и их роль в эволюции архитектуры
Познакомимся с фитнес-функциями и посмотрим, как они проверяют ПО на соответствие стандартам архитектуры.
Очистка операторов импорта TypeScript с помощью псевдонимов путей
В мире программирования особенно ценятся кодовые базы, которые легко поддаются чтению. "Незасоренные" операторы импорта во многом способствуют этой цели. Сегодня поговорим о том, как сделать их чище с помощью псевдонимов путей.
Итераторы и генераторы в JavaScript
Предлагаем полное руководство по итерационным механизмам JavaScript. Итераторы и генераторы позволят эффективно получать и обрабатывать данные, сделают кодовую базу более управляемой и масштабируемой.
Почему ведущие инженеры ненавидят собеседования
Представьте, что вы директор небольшой средней школы, который хочет нанять нового учителя. Так как работает у вас их не очень много, то нужно убедиться...
Как не опустить руки во время обучения чему-то новому?
В моей жизни было время, когда я регулярно добивался больших успехов в развитии своих навыков. Мне это удавалось, благодаря тому, что я изо всех...
Получаем данные Open Street Map в Python
Случалось ли вам работать над проектом, где были необходимы картографические данные определенной местности? Например, сколько шоссе пересекают город или сколько ресторанов расположено в заданной...