Эволюция серверной архитектуры: n-слойная, DDD, шестиугольная, луковичная, чистая
Проследим историю основных архитектур с их отличиями. Как код разделялся на слои и отчего рыдают и плачут миллионы разработчиков по всему миру?
Почему программисты не бросают работу?
Примечание: В этой статье я выражаю своё личное мнение, а не взгляды какой-либо компании.
Технические компании постоянно пытаются понять, что нужно сделать ,чтобы сотрудники были довольны. Добиться...
4 причины использовать перечисления PHP вместо старомодных констант класса
Переходим с констант класса на перечисления, рассмотрим их преимущества на примерах. Чем полезны подсказки типа?
Будущее графических дизайнеров в эпоху машинного обучения
Сможет ли искусственный интеллект заменить графического дизайнера? Этот вопрос волнует многих. Расскажем, как машинное обучение и искусственный интеллект действуют сегодня и поделимся прогнозами экспертов.
От 0 до 300 SQL-запросов в месяц: 3 практических совета
SQL - это связующее звено между пользователем и системой управления БД. Предлагаем несколько лайфхаков от практикующего аналитика данных, которые позволяют упрощать SQL-запросы и эффективно загружать данные в дашборд.
5 лучших курсов по React Native для разработчиков мобильных приложений
Если вы — веб-разработчик, который хочет создавать мобильные приложения, но не хочет тратить время на изучение Java/Kotlin (для Android) или Objective C/Swift (для iOS),...
3 инструмента, чтобы начать программировать на недорогом гаджете
В твиттере я общаюсь с людьми, которые только приступают к разработке приложений. Иногда они говорят, что, чтобы начать программировать, им нужен (дорогой) ноутбук. Но для...
OTP-аутентификация c Devise
Сделаем простую реализацию OTP-аутентификации с Devise-функционалом Confirmable без сторонних библиотек или обширных конфигураций. Напишем функции для обработки форм валидации OTP и повторной его отправки.
3 верных способа оптимизировать ревью на GitHub
Предлагаем 3 искусных приема для оптимизации ревью пул-реквестов: раздельный просмотр различий, отображение только новейших изменений и предложение изменений.
Что нового в Ubuntu 18.04
Перед тем как вы начнете устанавливать новую версию Linux Ubuntu, приготовьтесь ко всем ее нововведениям и улучшениям, которых в этом выпуске появилось немало!
Ubuntu 18.04...
Cтарая поговорка гласит: “Одна голова хорошо, а две — лучше”
Я часто слышу, как люди говорят о том, что их работа продвигается более эффективно и плодотворно когда они остаются одни. Также я знаю, что...
Яндекс опубликовал календарь дней быстрого найма
Яндекс объединил все мероприятия по быстрому найму в одном календаре. Сейчас в нём доступны три типа событий, которые позволят устроиться в компанию за несколько...
Век программируй, век учись
В программировании приходится учиться методом проб и ошибок. Далее я расскажу о 9 важных уроках из своего непростого личного опыта.
1. Как раз самых дешевых,...
Топ-12 расширений VSCode
Эти расширения VS Code должны быть в арсенале каждого разработчика. Несмотря на различный уровень сложности, они помогут повысить вашу производительность, сделают рабочий процесс проще и увлекательней.
Как разработчику стать архитектором ПО?
“Что скажешь?”. Когда мне первый раз задали этот вопрос на ревью спринта, у меня не нашлось ответа. Тогда я был начинающим разработчиком, и он...
EdgeCloud: вывод генеративного ИИ на новый уровень с помощью конвейеризации моделей
Знакомьтесь с EdgeCloud - первой гибридной платформой для облачных вычислений, которая реализует операции МО для настройки, управления и поддержки конвейеров моделей ИИ. Получите удовольствие от использования демонстрационной площадки EdgeCloud для преобразования текста в изображение.
Топ 10 лучших дистрибутивов Linux в 2018 году
Мир дистрибутивов Linux крайне разнообразен и новичку будет достаточно сложно определиться с выбором. Мы подготовили данный Топ-10 дистрибутивов Linux, чтобы помочь вам найти для...
Топ-5: непреднамеренная ложь программистов
Я знаю, я лгал!
Признаюсь. Я был разработчиком и остаюсь им. Разработка — больше, чем просто работа. Это — состояние души. Невозможно просто перестать писать код....
Станьте экспертом в разработке с этими продвинутыми советами по кодированию. Часть 2
Предыдущие части: Часть 1
Добро пожаловать во вторую часть продвинутых советов по написанию кода. В данной статье мы продолжим изучение остальных code smells с реальными...
Создание и оценка базовых и продвинутых RAG-приложений с помощью LlamaIndex и Gemini Pro в...
В 1-й части этого руководства рассмотрим этапы создания базового RAG-приложения с помощью фреймворка данных LlamaIndex и модели Gemini Pro. Кроме того, протестируем это приложение с использованием системы TruLens на релевантность контекста, а также релевантность и обоснованность ответа.
Как создать криптовалютный дашборд с помощью Plotly и API Binance
Упрощаем отслеживание активов
Как установить API Binance
Binance предоставляет два типа доступа к API: реальный и тестовый.
Настраиваем реальный API Binance
Реальный API обеспечивает прямой доступ к аккаунту. В нем...
SCDB: простая Open Source БД типа «ключ — значение»
Рассмотрим особенности нового решения для хранения данных. Приведем пример кода, обозначим перспективы.
С этими советами у junior-разработчиков не возникнет проблем на их первой работе
В самом начале вашей карьеры в сфере разработки программного обеспечения вам может быть страшно, но от этого не менее увлекательно и волнительно.
Я знаю это...
Как настроить Visual Studio Code для C, C++, Java, Python
Visual Studio Code — популярный редактор кода, бесплатный и с открытым исходным кодом. Но я уверен: каждый из нас, кто пытался настроить Visual Studio Code для разработки...
Клятва Гиппократа для дизайнеров в эпоху искусственного интеллекта
Время разработки этических принципов для дизайнеров настало. Клятва Гиппократа для дизайнеров не только послужит защитой от возможных ошибок, но и станет навигатором, направляющим специалистов на создание инноваций, действительно служащих интересам человечества.
Введение в конвейерную обработку данных с использованием бессерверной архитектуры
Сегодня мы расскажем вам о построении сквозных конвейеров данных с использованием бессерверных технологий. Мы сосредоточимся на Amazon Web Services (AWS) для построения конвейера, однако подобную архитектуру можно легко воспроизвести на любой другой облачной платформе, включая Google Cloud Platform (GCP), Microsoft Azure и т. д.
Выход из тени: 6 малоизвестных команд Linux
Функциональность Linux не сводится лишь к ls и grep. Уверен, что, скорее всего, вы уже использовали эти инструменты для быстрого поиска и решения простых...
Что такое шаблон SAGA и какую проблему он решает в микросервисной архитектуре
Шаблон SAGA помогает решать специфическую для архитектуры микросервисов проблему. Это сложный в применении инструмент, которым должен владеть опытный разработчик.
Объяснение понятий вероятности: оценка максимального правдоподобия
Как оценить неизвестный параметр? Представляем вашему вниманию оценку максимального правдоподобия - действенный способ, используемый в современной математической статистике.
Инженерия будущего: интеграция данных, программного обеспечения и искусственного интеллекта
Сегодня возникает необходимость перейти от изолированных задач к интегрированным системам. Узнайте, как признание общности трех дисциплин - инженерии данных, разработки ПО и ИИ - улучшает стратегии рекрутинга и поддерживает адаптируемые ИТ-архитектуры.
Стоит ли разработчику изучать VIM в 2020 году?
Введение
Небольшая предыстория для понимания контекста. В конце 2018 года я всерьез занялся программированием, решив развивать карьеру. До этого я создавал (довольно плохие) сценарии для...
Путь программиста-самоучки: преимущества и подводные камни
На пути у программиста-самоучки немало серьезных вызовов. Вам придется найти свое место в выбранной сфере, столкнуться с множеством вопросов без ответов и полностью отдаться...
Зачем переходить с Gitbook на Readme
Легче сказать "запустить документацию", чем сделать это. Не так-то просто выбрать платформу для размещения документации, да и предоставляемые инструменты сильно различаются. Опыт компании Budibase поможет вам сделать обоснованный выбор.
Как получить работу в крутой компании
Пару лет назад я разговаривал со своей подругой, Бернадетт Лангман, которая на данный момент занимает должность старшего технического рекрутера в американской технологической компании Qualtrics....
Как писать статьи о программировании и науке о данных, которые будут читать
Предлагаем пошаговое руководство по написанию технических публикаций, способных не отпугнуть, а привлечь читателя.
Антишаблоны программирования
Познакомьтесь с ошибками, которые часто сопровождают процесс разработки ПО. Даже встретив среди них грабли, на которые вы уже наступали, не поленитесь повторить пройденное, чтобы в следующий раз не облажаться!
Как не опустить руки во время обучения чему-то новому?
В моей жизни было время, когда я регулярно добивался больших успехов в развитии своих навыков. Мне это удавалось, благодаря тому, что я изо всех...
Как создать бота Discord с Node.js, Discord.js и OpenAI GPT-3
Поэкспериментируем с ИИ и на сервере Discord создадим бота, который сможет отвечать на вопросы, рассказывать анекдоты и выполнять разные интересные задания.
5 весомых причин познакомиться с паттерном “Компоновщик”
Рассмотрим преимущества паттерна "Компоновщик", позволяющего писать грамотный код.
Как вернуть былой энтузиазм к программированию
Недавно я наткнулся на тему в сообществе Reddit, где люди заявляли о своей утрате интереса к программированию. Прочитав эту тему, можно сделать вывод, что...
Продвинутый CLI: команды, которые должен знать каждый разработчик
1. wget
В операционных системах, подобных Unix, команда wget загружает файлы, обслуживаемые по HTTP, HTTPS или FTP через сеть. По умолчанию она включена во все...
Что мы ожидаем от разработчиков на каждом уровне
Работа в офисе, а особенно дистанционно требует постоянной коммуникации между всеми сотрудниками, поэтому каждому сотруднику следует иметь представление о том, какие задачи, помимо, конечно же, программирования ему предстоит выполнять.
Как написать оператор Kubernetes?
История о том, как важно порой даже малое изменение. Создадим, протестируем и запустим оператор в кластере Kubernetes.
7 причин выгорания программистов
Джерри — джуниор-разработчик, который в начале своей карьеры не мог дождаться утра, чтобы приступить к работе. И каждый вечер, даже после 10-часового рабочего дня, он чувствовал...
Почему стоит использовать Argo CD вместо (или вместе) с Helm в среде Kubernetes
Узнайте о преимуществах использования Argo CD в среде Kubernetes и возможности его интеграции с Helm и другими инструментами. Изучите этапы настройки Argo CD в среде Kubernetes для создания приложения и пример мониторинга с его помощью YAML-файлов в Git.
Как оставаться на гребне волны в океане современных веб-разработок
Мир современных технологий предъявляет высокие требования к разработчикам, которые должны быть в курсе всех новейших тенденций. Выход один - исследовать, учиться и использовать верные стратегии и инструменты.
Извините, но мы не можем воскресить вас
Мы не можем загрузить ваш мозг в компьютер, потому что вы ни в малейшей степени не определяетесь связями между вашими нейронами.
Что делает невозможную фигуру невозможной?
Невозможные фигуры образуются линиями, соединенными между собой самым противоречивым образом, с искажением перспективы. При зрительном восприятии таких изображений возникает эффект оптической иллюзии, запредельной реальности....
Лучшие бесплатные источники наборов данных для анализа
Сбор высококачественных данных представляет собой важную часть любого анализа данных или проекта по машинному обучению. В целях экономии вашего драгоценного времени команда WebDataRocks подготовила...
Сегментация изображений с использованием сети обратного внимания
Авторы статьи "Семантическая сегментация с обратным вниманием" разработали модель, которая обучается не только распознавать на изображении класс фона, но и дифференцировать различные объекты.
BabyAGI — автономный ИИ-агент для оптимизации задач
Изучите 10 примеров задач, выполняемых автономным ИИ-агентом BabyAGI. Способность логически рассуждать, принимать сложные решения и контролировать параметры делает BabyAGI бесценным помощником в автоматизации управления задачами.
Опытный программист теряет работу
Может ли профессионал в ИТ-сфере остаться без работы в 65 лет? Может, но солидный возраст не повод уйти на покой. Узнайте, что вас может ожидать в жизни.
Чистая архитектура: руководство для начинающих
Разбираемся в том, что такое чистая архитектура, какие преимущества она дает и как ей следовать на практике. Рассмотрим все примеры с иллюстрациями.
Насколько эффективен промпт-инжиниринг в разработке ПО?
Не упускаем ли мы что-то важное, сосредотачиваясь на обучении ИИ тому, в чем преуспели сами, - написанию кода при разработке ПО? Ответить на этот вопрос поможет сравнение эффективности ИИ и человека в решении сложных задач программной инженерии.
Спецификация API — основа успешной разработки
Докажем, почему спецификации API имеют важное значение для долгосрочного успеха приложений. Расскажем о преимуществах, а также перечислим негативные последствия их отсутствия.
Полезные рабочие плагины TMUX
Расширим ваш арсенал TMUX. Научимся устанавливать и использовать любой плагин, разберем каждый из них. Расскажем, как создавать собственные TMUX-плагины.
Почему западные приложения более минималистичны, чем азиатские?
Узнаем, чем отличаются культуры коллективизма и индивидуализма. Изучим влияние этих культур на онлайн-коммуникацию, а также UI/UX дизайн. Выделим основные различия двух культур и узнаем, как улучшить локализацию продукта.
Искусственный интеллект + распределённые реестры = оружие против фейковых новостей
Поддельные новости — довольно важная проблема в нашем онлайн мире. И хотя дезинформация и пропаганда существуют уже сотни лет, новости-фейки сегодня становятся по-настоящему серьёзной угрозой. Частично...
YAML против JSON: какой формат эффективнее для работы с LLM?
Сравним два формата, применяемых в работе с языковыми моделями: JSON и YAML. Выясним, почему YAML эффективнее с точки зрения временных и ресурсных затрат, чем JSON.
Почему вы никогда не будете слишком стары, чтобы изучать Java (или любой другой язык...
“Любви все возрасты покорны.”
Несмотря на то, что очень многие солидарны с этой фразой, я постоянно наблюдаю за тем, как люди загоняют себя в мнимые...
Создание языковой модели для чатов
Хотите создать чат-бота, способного имитировать непринужденный стиль переписки с друзьями? Предлагаем наглядное руководство по интеграции GPT с приложением.
Автомасштабирование по запаздыванию Kafka с KEDA
Настроим автоматическое масштабирование приложения на основе внешних источников событий. Как это делается с KEDA? Рассмотрим два способа.
Почему люди проваливают собеседования по алгоритмам и структурам данных в крупных компаниях?
Компьютерные науки — это область с огромными возможностями. Миллионы студентов всего мира мечтают построить карьеру в этой сфере. Но возникает неожиданная проблема: несмотря на то, что...
Рабочий процесс на GitHub: профессиональный уровень
Предлагаемое руководство по совместной разработке на Github поможет эффективно управлять кодовой базой. В нем даются рекомендации по выполнению всех ключевых этапов рабочего процесса: от определения проблем и задач проекта до рецензирования и слияния кода.
Индексирование в MySQL: руководство для начинающих
Это руководство поможет расширить представление о возможностях индексирования в MySQL. Вы узнаете, когда необходимо индексирование и как формируются, оптимизируются и удаляются индексы. Кроме того, научитесь создавать уникальные индексы с первичным ключом.
Как выводятся векторы на C++
Сравним способы вывода векторов: цикл for на основе диапазона, итератор, а также сочетание std::copy и std::ostream_iterator. Разберем их нюансы и типичные ошибки, проиллюстрируем примерами и поможем выбрать оптимальный способ.
7 признаков того, что вы - опытный разработчик
На первый взгляд может показаться, что профессия программиста — одна из самых перспективных. На второй — тоже: это одновременно и сложная, и полезная обществу...
Хватит использовать Pandas, пора переходить на Spark + Scala!
Переход с Pandas на Spark и Scala не настолько труден, насколько вы можете предположить, при этом в итоге ваш код будет выполняться быстрее, и,...
Станьте экспертом в разработке с этими продвинутыми советами по кодированию. Часть 1
Самое худшее, что может произойти с разработчиком, — это застрять в своей нынешней квалификации. Когда вы знаете о пробелах в собственных знаниях, но не понимаете, чем...
Форматы .tar .zip .gz: Различия и эффективность
Вы наверняка встречали файлы с расширением .tar, .zip или .gz . А знаете ли вы, чем они отличаются, почему мы их используем, и какой формат наиболее эффективен?
Различия между...
21 способ быть хреновым разработчиком
Интернет буквально кишит статьями, повествующими о том, как вы можете улучшить ваши навыки разработки. Эти статьи гласят о “лучшей коммуникации”, “работе в команде”, “постоянном...
Базовый классификатор: наглядное руководство с примерами кода для начинающих
Отправной точкой в машинном обучении является установление стандартов с помощью базовых моделей. Ознакомьтесь со основным механизмом, стратегиями и ключевыми параметрами этого процесса, чтобы оценить эффективность простейшего инструмента МО - базового классификатора.
Основные принципы сборки мусора в Java
Освобождение памяти - один из важнейших процессов в среде Java, повышающий производительность приложения. Сегодня проследим за главными этапами этого процесса, разберем основные типы сборщиков мусора и познакомимся с лучшими практиками управления памятью в Java.
Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 2
Часть 1, Часть 2
Не забывайте про принцип DRY (Не повторяйтесь)
Принцип DRY гласит:
“ Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках...
Как и почему я перешёл с Ruby на Python
В 2008, когда я ещё учился на инженера-разработчика, двое моих друзей решили запустить проект под названием Feedbooks. Суть проекта состояла в создании электронной библиотеки,...
Рекомендации по обработке и регистрации ошибок в React
Как правильно обрабатывать и регистрировать ошибки в React, какие инструменты стоит для этого выбрать?