Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 1
Часть 1, Часть 2
Написание чистого и читабельного кода — непростая задача, но данное краткое руководство поможет вам овладеть этим искусством.
Представьте, что читаете статью, во вступительном абзаце...
Автоматизация обновления Angular
Приложения Angular с легкостью обновляются с помощью Angular CLI. Обновление до основных релизов, как правило, происходит в течение недели после выпуска без возникновения проблем,...
10 полезных инструментов и библиотек для программистов и IT профессионалов
В каждой профессии есть свои инструменты, в том числе и у разработчиков программного обеспечения. Хороший программист знает свои инструменты лучше других, а также использует...
Как стать продуктивнее на GitHub
Недавно GitHub объявил, что теперь пользователи смогут бесплатно создавать приватные репозитории в неограниченном количестве. Прежде чем загружать код в приватный репозиторий, рассмотрим GitHub подробнее: давайте...
Магическая формула для улучшения навыков программирования
Вы программист или только хотите им стать, однако на этом этапе жизнь не прекращается. Вы должны, и мы надеемся хотите, улучшать свои навыки постоянно.
Да,...
Как взломать веб-версию WhatsApp за 3 дня — отчет белого хакера
Whatsapp не раз привлекал внимание хакеров из-за своих уязвимостей. С этой точки зрения мессенджер представляет немалый интерес для исследователей проблем безопасности. Если вы относитесь к их числу, ознакомьтесь с отчетом белого хакера о 3-дневной работе по взлому веб-версии WhatsApp.
SQL или NoSQL: как правильно выбрать базу данных?
Вертикальное масштабирование, журнал опережающей записи WAL, надежность индексов - рассмотрим плюсы и минусы реляционных баз данных.
Планировщик cron и скрипты разведки с Docker
Автоматизация инструментов в cron идет полным ходом. Настроим планировщик для целей разведки и рассмотрим примеры, где он уже применяется.
Итоги 8 лет с Kubernetes в продакшене: два крупных сбоя кластера, отказ от самостоятельного...
Проследим развитие Kubernetes по опыту запуска кластера одной из компаний. Как удалось оправиться от двух сбоев, какие уроки были усвоены? Выводы и рекомендации.
8 умных способов сохранять цифровую приватность
Неважно, как вы пользуетесь Интернетом: вполне вероятно, вашу Интернет-активность отслеживают. Недавно Натали Тридман рассказала, как люди неосознанно делятся своим местоположением. Нет, не нужно отказываться...
5 недооценённых приложений в помощь программисту
Вступление
Весьма ироничен тот факт, что разработчики используют кучу разных приложений и ПО, чтобы создавать… приложения и ПО. С течением времени мы выработали строгие предпочтения...
Подробный обзор JSON, JSON5 и циклических зависимостей
JSON - это круто, а JSON5 - еще круче! Предлагаем подробное руководство по JavaScript Object Notation (JSON). Узнайте, как работают JSON и JSON5, а также возьмите на заметку несколько способов решения проблемы циклических зависимостей.
8 бесплатных шпаргалок, которые должны быть в закладках у каждого разработчика
Как ничего не упускать и изучать программирование эффективно? Эти сайты пригодятся в качестве справочной информации, особенно при подготовке к экзамену или даже собеседованию.
Сканируем образы Docker на уязвимости
Как своевременно обнаружить уязвимости?
Итак, вы создали Dockerfile, протестировали контейнер на рабочей станции разработки и ждете, когда он подцепится в CI/CD. Через какое-то количество времени...
Полное руководство по установке Magento 2 с включенным SSL на Ubuntu ≥ 18.04
Пошагово пройдем весь процесс с самым важным аспектом - настройкой веб-сервера. Как избежать типичных ошибок?
Репозитории GitHub, которые помогут подготовиться к техническому собеседованию
Предлагаем вашему вниманию коллекцию учебных ресурсов, которые помогут легко пройти собеседование по программированию.
Почему разработчикам нужны “часы практики”
Если вы музыкант или просто увлекаетесь музыкой, то наверняка знаете, что “практика” и “репетиция” — два совершенно разных понятия.
Зачастую, у музыкантов есть “сакральные” часы практики. Эти...
Java против Kotlin. Android
Противостояние Java и Kotlin — тренд последних дней. Java — везде, однако Kotlin наступает, предлагая значительные преимущества. Итак, Java и Kotlin конкурируют. Мы обсудим...
6 технологий, которые помогут стать востребованным фронтенд-разработчиком в 2021
Вы хотите улучшить свои карьерные перспективы как разработчика в 2021 году? Возможно, вы хотите перейти на более высокооплачиваемую должность или устроиться в компанию, работающую...
8 строгих правил Илона Маска для сотрудников
На чем стоит столь успешная деятельность всемирно известного научного революционера? Знакомьтесь с цитатами из внутренних обращений Маска к своим сотрудникам, утверждающими регламент работы в компании.
Как научиться программировать по 8 часов в день
Моя система продуктивности
Я программирую всю свою жизнь. Раньше я думал, что это норма — садиться за стол, открывать ноутбук, брать задачу из списка дел...
4 ключевых аспекта проектирования распределенных систем
Что конкретно подразумевают надежность, доступность, масштабируемость и обслуживаемость? В чем заключается важность этих характеристик распределенных систем?
Планирование и оркестрация облачных задач dbt Cloud с помощью Prefect
В этой короткой статье мы проговорим настройку задач dbt Cloud и их оркестрацию с помощью Prefect. Ее содержание предполагает, что вы уже зарегистрированы на dbt Cloud и умеете использовать dbt.
Вы не понимаете своих программистов
...Открытое письмо не-технарям в технических компаниях
Может показаться, что мы заняты только этим:
Но на самом деле всё несколько сложнее.
Обычно разработчики — целеустремлённые люди, многие из них сами...
Выбираем шрифт
Факторы, которые следует учитывать при выборе шрифта для вашего следующего проекта.
Serif или Sans Serif, вот в чем вопрос
Большинство шрифтов можно разделить на две основные категории:...
Вас неправильно учили объектно-ориентированному программированию
Да, ваши преподаватели, скорее всего, сформировали у вас неверное представление об объектно-ориентированном программировании. Предлагаем поразмышлять о причинах и последствиях такого недообучения, а также о недооцененных преимуществах ООП.
Мои заметки по программной инженерии
О процессе разработки
Код предназначен не только для его непосредственного выполнения, но он также является средством общения в команде и способом описать другим решение...
Как и почему я перешёл с Ruby на Python
В 2008, когда я ещё учился на инженера-разработчика, двое моих друзей решили запустить проект под названием Feedbooks. Суть проекта состояла в создании электронной библиотеки,...
Локальная ретушь фотографий при помощи ИИ
Наиболее трудоемким процессом в редактировании фотографий является ретушь отдельных участков. Новая нейросеть ABPN значительно ускоряет этот процесс, выполняя локальное редактирование HQ-изображений в реальном времени.
7 способов ускорить ревью кода
Зачем мучиться, когда можно работать с удовольствием! Поделимся 7 продуктивными рекомендациями о том, как ускорить и оптимизировать ревью кода.
Обзор 8 ключевых команд Npm и Yarn
Хочешь быть продуктивным - учи команды команды npm и yarn CLI. А мы предоставим актуальную информацию о самых востребованных из них.
Жива или мертва: Что происходит с индустрией виртуальной реальности?
В последнее время появилось очень много статей про то, в каком состоянии находится сейчас индустрия виртуальной реальности (ВР). Хоть и чувствуя себя связанным с...
14 когнитивных измерений — мастхэв для современного программиста
Хотите стать первоклассным программистом? Тогда приготовьтесь к постоянному совершенствованию. Для начала узнайте о 14 когнитивных измерениях, разработанных Томасом Грином для оценки дизайна программ.
YAML против JSON: какой формат эффективнее для работы с LLM?
Сравним два формата, применяемых в работе с языковыми моделями: JSON и YAML. Выясним, почему YAML эффективнее с точки зрения временных и ресурсных затрат, чем JSON.
Введение в конвейерную обработку данных с использованием бессерверной архитектуры
Сегодня мы расскажем вам о построении сквозных конвейеров данных с использованием бессерверных технологий. Мы сосредоточимся на Amazon Web Services (AWS) для построения конвейера, однако подобную архитектуру можно легко воспроизвести на любой другой облачной платформе, включая Google Cloud Platform (GCP), Microsoft Azure и т. д.
Парадоксы нейминга: Windows придумали не в Microsoft, а Android — в Apple
Узнайте, как появились самые известные названия в мире компьютерных технологий. Будьте готовы к потрясающим открытиям. В мире нейминга не существует правил и ограничений.
Как я стал программистом в 40 лет
Вот, как я сменил свою прежнюю работу на front-end разработчика в 40 лет, не имея ни образования, ни опыта работы в этой сфере. Я...
Какой язык программирования учить в 2022 году?
В последние годы на рынке программного обеспечения сформировались принципиально новые перспективные направления для профессионального развития разработчика.
1. Unity (C#)
“Более половины игр в мире создано на Unity”....
5 лучших бесплатных текстовых редакторов для Windows
В представлении большинства людей современный писатель — это человек, печатающий на компьютере Apple MacBook. Они недалеки от истины, вот только не всегда учитывается один...
5 правил кода
За последнее время я сформировал список актуальных рекомендаций относительно того, что должен и чего не должен делать современный разработчик. Давайте ознакомимся с пятью из...
Создание языковой модели для чатов
Хотите создать чат-бота, способного имитировать непринужденный стиль переписки с друзьями? Предлагаем наглядное руководство по интеграции GPT с приложением.
Лучшие JavaScript библиотеки за 2019 год для построения диаграмм
Вступление
По мере того, как увеличиваются объёмы и сбор данных, необходимость визуализации этих данных становится всё более актуальной. Разработчики ищут способы объединять миллионы записей баз...
Топ-10 книг для Java-программистов
Java является одним из лидирующих языков программирования. Давайте рассмотрим книги, которые помогут в работе с Java как начинающим программистам, так и опытным профессионалам.
Введение в бинарный поиск
Представляем простой алгоритм обнаружения нужных значений - бинарный поиск. Разбираемся, как он работает, на примерах, а также описываем его этапы.
События на стороне сервера: к чему должен быть готов разработчик
События на стороне сервера - все еще не до конца изученное явление, которое может серьезно озадачить как новичка, так и профи. Тем не менее они могут принести и пользу. Рассказываем, как с помощью этих событий решить проблему генерации субтитров.
4 частые ошибки в рефакторинге
Некоторые программисты испытывают проблемы с рефакторингом. Одни процессы проходят у них довольно гладко, а другие не очень. Во втором случае есть ряд общих закономерностей. Рассказываем, как действовать, чтобы по максимуму использовать преимущества рефакторинга.
Как создать бессерверную форму для бессерверного сайта
Научимся создавать бессерверный бэкенд для приема входящих данных формы и отправки электронного письма с этими данными.
Хитрости объектно-ориентированного программирования. Часть 3: Смерть от аргументов
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2.
Аргументы, аргументы, аргументы
Длинные списки аргументов в функции крайне трудны для вызываемого...
Сделайте свой первый вклад в открытый исходный код!
Наверняка вы хоть раз задумывались о том, как улучшить существующую версию той или иной программы. Мы расскажем вам о том, как это можно сделать на практике.
5 секретов продуктивной работы в VS Code
VS Code предлагает много возможностей настроить работу так, как вам нужно. Рассмотрим 5 способов сделать работу в VS Code более продуктивной.
Простейшее объяснение парадокса Монти Холла
Парадокс Монти Холла — это одна из тех математических задач, над решением которой уже долгое время бьются многие умы, и даже всемирно известных математиков она приводит...
Программист как пользователь инструментов
Старая поговорка гласит: "Только плохие мастера винят свои инструменты". Она применима и к программной инженерии. Узнайте, как выбирать инструменты, чтобы работа стала более эффективной, а продукты - более качественными.
11 общедоступных аналогов SaaS: собственный хостинг с Docker
Ознакомьтесь с преимуществами и методами перехода от традиционных моделей SaaS (Software as a Service) к самостоятельным решениям с помощью Docker. Используя эти инструменты, вы сможете получить больший контроль над своей программной экосистемой и уменьшить зависимость от проприетарных сервисов.
Вам следует изучить программирование
Знаете, как это ужасно, когда ты женишься, а немного позже встречаешь любовь всей жизни? То же произошло и со мной.
Я поступил в университет на...
Упрощаем интеграцию Kafka со Spring Boot
Разберем ключевой функционал и настройку Kafka и узнаем, как он вписывается в Spring Boot. Научимся маршрутизировать и фильтровать сообщения, отправлять и получать их с помощью шаблонов и прослушивателей Kafka, а также преобразовывать форматы пользовательских данных.
Наглядное руководство по каждому типу тестов
“В теории после каждого внесения исправлений необходимо запустить весь банк тестовых случаев, которые ранее запускались в системе, чтобы убедиться, что она каким-то непонятным образом...
Как программирование избавляет от стресса
В течение последнего года я вернулась к различным проектам по программированию. По большей части это были исправления и изменения, начиная от обновления небольших приложений...
Механизм повторных попыток в Spring Boot: @Retryable и @Recover
Реализуем обработку временных сбоев в Spring Boot, рассмотрим аннотации для соответственных поведений. Проверим механизм в действии, отправив HTTP-запрос.
SQL: комплексный анализ оттока клиентов
Каковы решающие факторы при отказе от услуг связи и смене интернет-провайдера? Проанализируем данные по оттоку клиентов телекоммуникационной компании, сформулируем выводы и рекомендации.
Через Apache Brooklyn к автономным вычислениям
Автономные вычисления ждут вас! А приобщиться к ним можно с помощью специального фреймворка Apache Brooklyn, способного управлять настройкой и развёртыванием приложений на основе сложных алгоритмов. Без лишних слов - это инструмент, который вас приятно удивит.
Живи и программируй: обретение баланса
Поделимся ценными советами, как продуктивно работать и при этом меньше уставать. Эффективность рекомендаций проверена на личном опыте автора.
SCDB: простая Open Source БД типа «ключ — значение»
Рассмотрим особенности нового решения для хранения данных. Приведем пример кода, обозначим перспективы.
Как перестать переживать по поводу дедлайна
Дедлайн…
Один из самых больших кошмаров для разработчика.
Признайтесь, вас пугает это слово. Даже сейчас, читая эти строки, ваши волосы встают дыбом.
Вам интересно, откуда я это...
Как продвигаться в роли разработчика?
Почему одни люди преуспевают и получают большие деньги, а другие сидят на голой зарплате и топчутся на одном месте? Что лежит в основе карьерного роста и успеха? Ничего сложного, если подойти к вопросу с практической точки зрения.
Локализация: почему простого перевода пользовательского интерфейса будет недостаточно
Узнаем, что такое индекс дистанции власти и его влияние на культуру и пользовательский опыт. Узнаем, как индекс дистанции власти влияет на общение пользователей в социальных сетях, их систему оценивания товаров и услуг.
Сильные и слабые стороны метавселенной
Последнее время вокруг метавселенной царит нешуточный ажиотаж. Цифровой мир открывает массу возможностей для пользователей, но вместе с тем несет в себе определенные риски.
7 малоизвестных команд и приемов Git
Контроль версий ПО - важная часть любого проекта, и решать эту задачу позволяет Git. Повысить эффективность работы с онлайн-репозитариями этого инструмента помогут эти стандартные, но довольно редко используемые команды Git.
Обзор плагинов Obsidian
Рассмотрим несколько новых плагинов Obsidian для автоматического создания индексов папок, страницы обзора проектов, ссылок из строк, размещения галереи и геймифицирования хранилища.
6 шагов до карьеры блокчейн-разработчика
Шаг 1: оцените свои навыки
Вероятно, что у вас, как у разработчиков, после работы со множеством разных технологий появился свой “любимый” стек технологий, которые вам оказались...
Обнаружение вредоносного ПО с помощью алгоритмов МО на облачной платформе Google
Обнаружение вредоносного ПО: вирусов, червей, троянов, программ-вымогателей, рекламного и шпионского софта - волнует многих пользователей и предпринимателей. Предлагаем рассмотреть методы идентификации вредоносных программ с помощью алгоритмов машинного обучения. Материалом для исследования стал массив данных от Майкрософт объемом в 200 ГБ.
20 продвинутых проектов для освоения сложных концепций программирования
Теория не заменит практики. Попробуйте свои силы в выполнении интересных проектов.
7 полезных советов для веб-дизайнеров
Улучшаем проекты с помощью продуманной тактики, а не таланта.
Каждый веб-разработчик неизбежно сталкивается с ситуацией, когда необходимо самостоятельно принять то или иное решение, касающееся визуального дизайна.
Это...
5 признаков того, что вы тратите свой потенциал разработчика впустую
Устроившись на работу, вы легко можете застрять в ловушке простого обмена своего времени на зарплату. Вы едете на работу, заходите в офис, завариваете кофе,...
Как писать чистый код?
Роберт Мартин: «Единственная адекватная мера качества кода — это количество восклицаний «какого чёрта!» вминуту».
Позвольте объяснить. Делая код-ревью, я испытываю три эмоции:
Какого черта! — с отвращением. Этот...
Что нового в Ubuntu 18.04
Перед тем как вы начнете устанавливать новую версию Linux Ubuntu, приготовьтесь ко всем ее нововведениям и улучшениям, которых в этом выпуске появилось немало!
Ubuntu 18.04...
Первые шаги в программировании: работа без ошибок
Овладение искусством написания кода может стать неоценимым вкладом в ваше будущее, так как этот профессиональный навык востребован в современном мире как никогда раньше. Именно...
Почему вам стоит завести чек-листы для программирования
Скорее всего, многим попадался код, который выглядит как головоломка: в программе куча ненужных строк и бесполезных комментариев. Или же в неё внесли изменения, и...
Основные правила код-ревью
Code review или обзор кода - работа, требующая высокого уровня профессионализма. Ознакомьтесь с его лучшими практиками: вот что нужно и что нельзя делать разработчику при обзоре кода.
5 секретов создания востребованной технической статьи
Программисты часто делятся знаниями на страницах популярных сайтов и журналов. Рассмотрим несколько советов, которые помогут написать полезную и интересную для читателей статью.
Путешествие c LLM: от PoC к производству
Мощь больших языковых моделей (LLM) очевидна. Но так ли легко обеспечить их всем необходимым? Сегодня мы пройдем путь работы над LLM - от доказательства концепции до производства - и поговорим о том, какие меры предпринять и каких подводных камней избегать.
5 модулей Python для исследования Вселенной
Обзор 5 модулей Python для изучения космоса: PyEphem, solarsystem, geemap, turboSETI и pysat. Готовьтесь получать разнообразные данные о планетах, составлять карты, искать следы инопланетной жизни и отслеживать спутники.
Топ-5 примеров комментирования кода
Ничто не может объяснить код лучше самого кода. Но в некоторых случаях без комментирования не обойтись. Узнайте, как правильно использовать комментарии и тем самым повысить читабельность кода.
Нативное будущее кроссплатформенной разработки
Коротко о кроссплатформенности
Сейчас кроссплатформенная разработка не пользуется большой популярностью. Основная причина состоит в том, что существующие инструменты не в полной мере справляются со своей...
Установка и использование Snap-пакетов в Ubuntu 18.04
Введение
Snap (или Snappy) — это система развертывания программ и управления пакетами, созданная Canonical. Эти пакеты чаще называют «снепами». Для работы с ними используется утилита «snapd», встроенная...
Зачем разбивать код на столбцы
На мой взгляд, главная составляющая любого программирования – это читабельность кода, будь то написанный вами или кем-то другим. Читабельность складывается из множества факторов, начиная...
Выход из тени: 6 малоизвестных команд Linux
Функциональность Linux не сводится лишь к ls и grep. Уверен, что, скорее всего, вы уже использовали эти инструменты для быстрого поиска и решения простых...
Опытный программист теряет работу
Может ли профессионал в ИТ-сфере остаться без работы в 65 лет? Может, но солидный возраст не повод уйти на покой. Узнайте, что вас может ожидать в жизни.
Как улучшить написание условных выражений
В условиях, казалось бы, все предельно просто: освоив написание такого кода однажды, в дальнейшем всегда его придерживаешься. Но даже самое простое можно улучшить. Попробуем...
Искусственный интеллект и пользовательский опыт: погружение в новую эру визуализации данных
Рассмотрим роль искусственного интеллекта в визуализации. Изучим способы обработки и анализа данных на основе ИИ. Узнаем, как это влияет на пользовательский опыт. Проанализируем конкретные примеры визуализации данных на основе ИИ. Рассмотрим нюансы визуализации с помощью ИИ.
Как исследовать и визуализировать данные МО для обнаружения объектов на изображениях
Предлагаем руководство по созданию интерактивной визуализации для обнаружения объектов с помощью Renumics Spotlight 1.6.0. Ознакомление с подобными передовыми технологиями позволит принимать более обоснованные решения при выборе дополнительных обучающих данных.
4 надежных веб-сайта на страже времени разработчика
Перечень полезных сайтов, которые помогут сэкономить время на начальных этапах создания проектов: Hidden tools, Can I use, Dev Hints и Bundle Phobia.
Как разработчику стать архитектором ПО?
“Что скажешь?”. Когда мне первый раз задали этот вопрос на ревью спринта, у меня не нашлось ответа. Тогда я был начинающим разработчиком, и он...
Внедрение зависимостей, или Разработчики совсем обленились
Внедрение зависимостей — это круто. Реально круто. Но это ещё и ад.
Идея о том, чтобы IoC-контейнер разрешал все зависимости объектов явного конструктора, всячески поддерживается...
Как создать бота Discord с Node.js, Discord.js и OpenAI GPT-3
Поэкспериментируем с ИИ и на сервере Discord создадим бота, который сможет отвечать на вопросы, рассказывать анекдоты и выполнять разные интересные задания.
Что такое программирование?
“Программирование — это о решении проблем” — проф. Дэвид Малан
Краткий обзор
Каждый день мы сталкиваемся с проблемами, которые должны быть решены. Этими проблемами могут быть как...
Как научиться программировать на Java и с чего начать
Определите свои профессиональные цели и выберите язык. Это самый главный совет для новичков, желающих присоединиться к сообществу программистов. Но как же это сделать, если...
Почему сниппеты кода со StackOverflow могут повредить ваш проект
StackOverflow стал спасением для многих программистов, включая меня. Некоторые из нас никогда не посещали домашнюю страницу StackOverflow. Единственный способ, по которому мы попадали на...
Расширяем возможности собственного мозга на базе ИИ, Python и ChatGPT
Многие жалуются на провалы в памяти или с трудом пытаются вспомнить важную информацию, когда она необходима. Уследить за всем в нашем мире непросто, запоминание...
Две малоизвестные, но полезные команды npm
Npm list и npm config list - не самые известные команды в пакетном менеджере npm. Однако они могут выручить вас в ряде затруднительных случаев, сэкономив немало времени и сил.
Лучшие инструменты для разработки приложений под Android
Android предлагает разработчикам массу возможностей: это универсальная, открытая платформа, используемая миллионами пользователей по всему миру, с удивительно простой в использовании площадкой для распространения приложений....
Путь программиста-самоучки: преимущества и подводные камни
На пути у программиста-самоучки немало серьезных вызовов. Вам придется найти свое место в выбранной сфере, столкнуться с множеством вопросов без ответов и полностью отдаться...
Thonny - идеальная IDE для новичков Python
Мечтаете освоить программирование на Python, но не знаете, с чего начать? Не волнуйтесь. Thonny станет вашим гидом на протяжении всего пути обучения — даже...
Дорожная карта iOS для разработчиков Android: основы
Хотите стать универсальным разработчиком, знающим особенности программирования как для Android, так и для iOS? Этот гайд расскажет о различиях и сходствах работы с этими двумя платформами.
Rust: реализация двоичного дерева
Поскольку Rust приобрел довольно широкую известность и пополнил ряды своих преданных поклонников, я решил отложить в сторону любимый JS и заняться изучением нового языка....
Scrum: 5–3–5–3–3
В начале работы с Agile и Scrum, оказывая помощь коллегам, я обычно использовал комбинацию 3–5–3, где:
первые “3” — три роли Scrum;“5” — пять событий...