Чистый код работает медленно, но он все равно нужен
Что важнее - чистота, читаемость, расширяемость и надежность кода или производительность? Чтобы ответить на этот вопрос, нужны прагматизм и гибкость квалифицированного специалиста. Прислушайтесь к рекомендациям опытного разработчика iOS, Android и игр.
Как не лажать с JavaScript. Часть 4
Часть 1, Часть 2, Часть 3, Часть 4
Декларативный код — популярное понятие, но что оно означает на самом деле? Это что-то хорошее? Давайте разберёмся.
Если вы...
Спецификация API — основа успешной разработки
Докажем, почему спецификации API имеют важное значение для долгосрочного успеха приложений. Расскажем о преимуществах, а также перечислим негативные последствия их отсутствия.
Извините, но мы не можем воскресить вас
Мы не можем загрузить ваш мозг в компьютер, потому что вы ни в малейшей степени не определяетесь связями между вашими нейронами.
Возможности Docker, о которых вы не знали. Часть 2
Продолжаем знакомиться с расширенными возможностями Docker. В этой части вы узнаете о таких практиках, как эффективное использовании кэша сборки, ограничение ресурсов контейнеров, мониторинг с помощью Docker-событий, запуск контейнеров Docker в режиме “только для чтения”, очистка с помощью Docker Prune, переопределение точки входа для отладки и управление несколькими средами с использованием Docker-контекстов.
Как стать разработчиком проектов с открытым исходным кодом
Разработчики пишут код большую часть времени, внося таким образом вклад в проекты, которые входят жизненный цикл разработки ПО. Как правило, чтобы стать известным разработчиком,...
Основы написания мануалов при разработке
Хороший мануал продукта должен быть не просто полноценным по информации, но и понятным для пользователя. Учимся, как правильно выстраивать его разделы и содержание в целом.
Живи и программируй: обретение баланса
Поделимся ценными советами, как продуктивно работать и при этом меньше уставать. Эффективность рекомендаций проверена на личном опыте автора.
Почему большинство инженеров ПО не пишут документацию?
Неважно, работаете вы в небольшом стартапе или же в крупной корпорации, когда возникает необходимость в хорошей, ценной документации сервисов или проектов, то на ее...
Две малоизвестные, но полезные команды npm
Npm list и npm config list - не самые известные команды в пакетном менеджере npm. Однако они могут выручить вас в ряде затруднительных случаев, сэкономив немало времени и сил.
Вам следует изучить программирование
Знаете, как это ужасно, когда ты женишься, а немного позже встречаешь любовь всей жизни? То же произошло и со мной.
Я поступил в университет на...
Фреймворк или язык программирования?
Программисты сегодня…
…толком и не знают где заканчивается язык программирования и начинается фреймворк.
Что я под этим имею в виду?
Примерно до 1988-ого года большинство программ, которые...
Искусственный интеллект + распределённые реестры = оружие против фейковых новостей
Поддельные новости — довольно важная проблема в нашем онлайн мире. И хотя дезинформация и пропаганда существуют уже сотни лет, новости-фейки сегодня становятся по-настоящему серьёзной угрозой. Частично...
Как получить работу в крутой компании
Пару лет назад я разговаривал со своей подругой, Бернадетт Лангман, которая на данный момент занимает должность старшего технического рекрутера в американской технологической компании Qualtrics....
Как мне не удалось совладать с устаревшим кодом
Я очень хорошо помню свой первый опыт работы с устаревшим кодом. Я была младшим разработчиком и совершенно не представляла, что делаю.
Само приложение было чем-то...
Какой язык программирования выбрать в 2019?
Благодаря интернету весь мир имеет доступ к ресурсам для обучения программированию: как платным, так и бесплатным. Каждый щелчок мыши ведёт к новой статье, новому...
5 ловких приемов Xcode для рефакторинга кода
Ищите быстрый и эффективный способ рефакторинга кода? Представляем среду разработки Xcode и ее эффективные возможности.
Сделайте свой первый вклад в открытый исходный код!
Наверняка вы хоть раз задумывались о том, как улучшить существующую версию той или иной программы. Мы расскажем вам о том, как это можно сделать на практике.
Искусственный интеллект оживит наших близких
После того, как Роман Мазуренко, близкий друг Евгении Куйды, погиб в автокатастрофе, она решила возвести ему памятник. Она собрала все текстовые сообщения, которые он...
Как оставаться в тренде dev-индустрии
Вряд ли кто-либо станет отрицать актуальность этого вопроса для большинства разработчиков: “Как оставаться в курсе последних новостей в области разработки, ее трендов и технологий?”
Этот...
Полезные уроки из книги “Мышление, быстрое и медленное”
Возможно, это самая полезная книга о человеческом уме и поведении. Она рассказывает о ловушках ума, заставляющих нас поступать опрометчиво. Это кладезь знаний, необходимых каждому из нас, особенно людям, принимающим решения.
6 способов оптимизировать рабочий процесс в Pandas
Несмотря на популярность, у Pandas есть немало скрытых возможностей. Предлагаем ознакомиться с 6 из них - они помогут повысить эффективность анализа данных.
VIM — это не только скорость
Почему профессионалы обожают Vim, а новички его боятся? Что общего у этого текстового редактора и компьютерной игры Dark Souls? Чем, кроме скорости, он может быть полезен? Ответы на эти вопросы помогут вам приступить к освоению Vim/NeoVim и повысить свою продуктивность.
Как создать конвейер автоматизированных сборок для проекта в Arduino Часть 2/2
Часть 1, Часть 2
Давайте добавим Arduino Zero. Модифицируем часть программы, которая устанавливает ядро AVR, и добавляем другой код:
# Установка ядер Arduino
arduino-cli core install arduino:avr
arduino-cli...
7 способов ускорить ревью кода
Зачем мучиться, когда можно работать с удовольствием! Поделимся 7 продуктивными рекомендациями о том, как ускорить и оптимизировать ревью кода.
Разделение окон в Vim
Рассмотрим возможности редактора Vim в плане организации рабочего пространства: разделение окон, взаиморасположение вкладок и окон, сравнение с другими редакторами.
Flutter и SonarQube для статического анализа кода
За 8 шагов настроим SonarQube с Flutter на Apple Silicon Mac, используя Docker. Погнали!
Метрики для улучшения архитектуры ПО
На примере Java и Maven продемонстрируем, как определенные метрики помогают проектировать более масштабируемое и обслуживаемое программное обеспечение, а также изучим немного теории.
Как писать понятный код
Вы пишите код для разработчиков или только для себя?
Обзоры кода во имя добра
Я люблю обзоры кода ― разбирать чужой код и отдавать на обзор свой....
Отказ после четырех раундов технических собеседований. Что делать?
Будущий инженер-программист должен быть готов к нелегкому испытанию - встрече с придирчивыми рекрутерами. Никто не хочет получить отказ на собеседовании, но лишь немногие отвергнутые кандидаты способны превратить свою неудачу в будущий успех.
8 главных качеств технического менеджера
Один мой близкий друг, получив повышение и возглавив команду инженеров ПО, обратился ко мне за советом. И я призадумался, а что, собственно, порекомендовать? Книги?...
Визуализация map, filter и reduce
Визуализация играет важную роль в обучении. Она помогает нам запоминать сложные идеи, в том числе и по программированию.
Отображение
map(add) применяет value + 1 ко всему...
15 идей для вашего приложения. Часть 2
Предыдущие части: Часть 1
6. Поиск книг
Уровень: 2 — средний
Описание: приложение для поиска книг по названию, автору и т.д. Найденные книги и соответствующая информация о них выводится в...
В чем магия ожидаемых результатов?
Раскроем силу такого понятия как ожидаемые результаты и превратим их в инструмент для профессионального роста и качественной работы сотрудников.
Как обнаружить дублирование кода в проекте
Обнаружение повторяющегося кода - необходимая часть качественного проектирования. Пренебрежение ею чревато снижением читабельности проекта и усложнением его обслуживания. Ознакомьтесь с несколькими способами обнаружения и удаления дублирующегося кода.
Модульное тестирование с имитацией сетевых вызовов
Модульное тестирование — отличный способ удостовериться, что приложение работает на протяжении многих итераций. Иногда важно убедиться, что всё вместе работает асинхронно и что данные согласованы. Но...
Как работает искусственный интеллект
Предлагаем совершенно нетехническое объяснение принципа работы больших языковых моделей. На самом деле создать мыслящую машину не так уж и сложно. Достаточно иметь несколько математических понятий, кучу обучающих данных и кое-что еще.
Даешь меньше ошибок в проектах ПО!
Раз от ошибок в программировании никуда не деться, то постараемся свести их до минимума. Предлагаем 5 практических рекомендаций по сокращению ошибок в коде.
События на стороне сервера: к чему должен быть готов разработчик
События на стороне сервера - все еще не до конца изученное явление, которое может серьезно озадачить как новичка, так и профи. Тем не менее они могут принести и пользу. Рассказываем, как с помощью этих событий решить проблему генерации субтитров.
Приложения искусственного интеллекта: возможности и сферы применения
Вы все еще восхищаетесь Юлием Цезарем, который справлялся с тремя делами одновременно? Тогда прочтите о том, на что способен искусственный интеллект.
То, чего вам никто не расскажет о поиске работы, связанной с анализом данных
Я физик и работаю в стартапе YCombinator. Из-за специфики работы компании я получаю много писем с просьбами дать советы по построению карьеры в области...
Продвинутая генерация ответа, дополненная результатами поиска (RAG): от теории до реализации на LlamaIndex
Ознакомьтесь с концепцией продвинутой RAG, которая позволяет устранить ограничения простой RAG. Для практики предлагаем руководство по реализации простого и продвинутого RAG-пайплайнов с использованием LlamaIndex.
Изысканные уловки хакеров для кражи подарочных карт
Схема работы “Black hat” хакеров стара как мир: найти цель, взломать, заработать денег. С течением последних лет было реализовано очень много хитроумных атак по...
Философия как инструмент совершенствования программистов
Что объединяет философию и программирование? Похожий образ мышления! Разберемся, как философия может улучшить разработку ПО.
15 идей для вашего приложения. Часть 3
Предыдущие части: Часть 1, Часть 2
11. Игра Морской Бой
Уровень: 3 — продвинутый
Описание: движок Battleship Game Engine (BGE) реализует классическую пошаговую игру «Морской бой». Это пакет, отделённый от...
Куча советов по программированию, которые я дал бы себе сам после 15 лет опыта
Маркус Баффетт — известный на HackerNews автор конструктора шахматного репертуара напоминает: «Изучайте Ваш инструмент, почти всегда оно того стоит». А ещё бойтесь писать код, который можно быстро поправить, если ошибки не критичны. В конце поста автор делится идеями ускорения отладки, которые уже работают на Chessbook и могут стать полезными для Вас.
Arduino и Visual Studio Code
Займемся разработкой Arduino, вооружившись расширением PlatformIO в VS Code, и напишем первый проект с мигающим светодиодом.
Хотите стать счастливым и продуктивным программистом? Используйте эти 5 методов из Психологии!
1. Войдите в состояние потока
Во всемирно известной книге “Поток: Психология оптимального переживания” психолог Михай Чиксентмихайи раскрывает секрет того, как добиться максимальной производительности. Суть заключается...
Дизайн для искусственного интеллекта
Чем дизайн для ИИ отличается от традиционного дизайна? Расскажем про преимущества и недостатки использования ИИ в UX-дизайне, а также рассмотрим перспективы развития данного вида дизайна.
Что делает невозможную фигуру невозможной?
Невозможные фигуры образуются линиями, соединенными между собой самым противоречивым образом, с искажением перспективы. При зрительном восприятии таких изображений возникает эффект оптической иллюзии, запредельной реальности....
1984 в 2020: Социальная инженерия в Китае
Китай— крупнейшая по численности населения страна мира, в в которой проживает 1,4 миллиарда человек. Если бы правительство Китая не ввело агрессивную политику «одна семья — один...
Параллельные вычисления: введение
Работаете с большими объемами данных и хотите уменьшить время их обработки? Попробуйте параллельные вычисления!
Как внести свой первый вклад в открытый исходный код
Давно собирались внести свой вклад в открытый исходный код, но не знаете, с чего начать? Предлагаем простое и понятное руководство по этому процессу.
Жива или мертва: Что происходит с индустрией виртуальной реальности?
В последнее время появилось очень много статей про то, в каком состоянии находится сейчас индустрия виртуальной реальности (ВР). Хоть и чувствуя себя связанным с...
Почему вам нужно учить больше языков программирования
О моих свободных отношениях с языками программирования
Я занимаюсь программированием уже около 4 лет. Я начал с C#, занимаясь разработкой игр, а затем перешел на...
16 полезных расширений для SwiftUI
Предлагаем несколько примеров полезных сниппетов кода, которые можно неоднократно использовать в проектах.
Генерация ответа, дополненная результатами поиска (RAG): от теории к реализации на LangChain
Ознакомьтесь с процессом выполнения простого RAG-пайплайна. Вы сможете изучить его пошагово — от теории, изложенной в оригинальной научной статье, до практической реализации на Python с помощью OpenAI, Weaviate и LangChain.
Нативное будущее кроссплатформенной разработки
Коротко о кроссплатформенности
Сейчас кроссплатформенная разработка не пользуется большой популярностью. Основная причина состоит в том, что существующие инструменты не в полной мере справляются со своей...
Раскрутка приложения без маркетинга
Скажу сразу — все, что от вас требуется — это ежедневный труд и терпение!
Создание и продвижение нового продукта — одни из самых трудных занятий в сфере предпринимательской деятельности. Существует множество...
17 успешных примеров дизайна логотипов для различных бизнес-целей
Процесс создания дизайна для логотипа крайне важен. Давайте рассмотрим несколько примеров хорошо разработанных логотипов для различных сфер деятельности.
5 вещей, которые следует учесть перед тем, как создать свой бизнес на основе мобильного...
Начать свой бизнес, основанный на мобильном приложении, - это вызов для любого из нас. Чтобы лучше понять важнейшие шаги, которые могут потребоваться для создания мобильного приложения для iOS или Android, выделим 5 основных этапов.
Как перейти от монолитной системы к событийной
Разберемся с событийной архитектурой: где она нужна и где нет, как спланировать, спроектировать и реализовать миграцию, воспользоваться преимуществами и учесть в целевой архитектуре масштабируемость, сопровождаемость, надежность, разделение обязанностей и затраты.
Три нашумевших диаграммы. Исследование JavaScript в 2018
Вы думали статистика и графики — это скука? Подумайте ещё раз…
Нашумевший — это буквально самое заезженное слово в интернете, если не считать слово «буквально». Но в этот раз — это...
Несколько советов, которые помогут вам на собеседовании и не только
Зачастую, получить первую должность в качестве разработчика крайне трудно.
Как убедить человека принять вас на работу, если опыта как такового и нет? Какие вещи знать...
С этими советами у junior-разработчиков не возникнет проблем на их первой работе
В самом начале вашей карьеры в сфере разработки программного обеспечения вам может быть страшно, но от этого не менее увлекательно и волнительно.
Я знаю это...
#01TheNotSoToughML | Что означает “подогнать линию”
Настало время восполнить пробелы в отношении алгоритмов и концепций машинного обучения. Разбираем интуитивные решения, которые стоят за построением прогностической модели в машинном обучении.
От рекомендаций по проведению ревью кода к общечеловеческим ценностям
Став частью команды QuintoAndar, я приобщилась ко многим процессам, о которых раньше не знала. В их число входили обязательные ревью кода.
Если кратко, то в...
Как справиться с чрезмерной нагрузкой. Советы для разработчиков
В мире разработчиков происходит множество событий. Кажется, будто бесконечный список дел никогда не закончится. Рассмотрим некоторые советы, которые помогут с этим справиться.
Статья разделена на...
Манипуляции с битами. Игра в истину
Прежде всего нужно понять «Истину», как она представлена в таблице истинности. На самом деле таких таблиц несколько, но для этого урока нам хватит двух...
7 полезных советов для веб-дизайнеров
Улучшаем проекты с помощью продуманной тактики, а не таланта.
Каждый веб-разработчик неизбежно сталкивается с ситуацией, когда необходимо самостоятельно принять то или иное решение, касающееся визуального дизайна.
Это...
Что стоит знать дизайнеру перед первым хакатоном
Опыт и уроки, извлеченные из участия и победы на хакатоне
Одна из причин, по которой я так люблю дизайн, заключается в том, что его постоянное развитие...
4 модели поведения для поддержания психического здоровья на работе
Эффективная деятельность требует хорошего психического здоровья. А кто о нем позаботится, как не мы сами? Рассмотрим 4 модели поведения, обеспечивающие внутренний покой, уверенность в себе и возможности для саморазвития.
Как галлюцинируют нейросети
Как заставить нейросеть галлюцинировать? Какие развлекательные и практические задачи при помощи этого можно решить? Знакомимся с разработанным Google алгоритмом - DeepDream.
ИИ поможет создавать Dockerfile
CLI-команда docker init позволит легко инициализировать конфигурационные файлы Dockerfile и docker-compose, необходимые для запуска проекта в контейнере. Использование docker init избавит от лишней ручной работы, сэкономит время и сведет к минимуму ошибки.
Введение в конвейерную обработку данных с использованием бессерверной архитектуры
Сегодня мы расскажем вам о построении сквозных конвейеров данных с использованием бессерверных технологий. Мы сосредоточимся на Amazon Web Services (AWS) для построения конвейера, однако подобную архитектуру можно легко воспроизвести на любой другой облачной платформе, включая Google Cloud Platform (GCP), Microsoft Azure и т. д.
Remote First: программисты не должны работать в офисе
Open-space, излишний контроль, метро и пробки убивают вдохновение. Приводим аргументы в пользу того, что разработчиком лучше работать удаленно.
Как приобрести навыки, необходимые для выживания в мире современных технологий
5 способов, которые помогут перестать беспокоиться о будущем
Современный мир нестабилен и непрерывно развивается. Автоматизированные машины, данные и алгоритмы, компьютеры и код — изменения затрагивают все аспекты нашей...
Как упростить работу с базами данных в Golang с SQLX
Покажем, как легко стало оперировать базами данных. Разберем преимущества пакета database/sql: совместимость с базами данных, автоматическое сканирование структуры и вставка строк, функция Get, привязка параметров для предотвращения внедрения кода SQL.
Обнаружение вредоносного ПО с помощью алгоритмов МО на облачной платформе Google
Обнаружение вредоносного ПО: вирусов, червей, троянов, программ-вымогателей, рекламного и шпионского софта - волнует многих пользователей и предпринимателей. Предлагаем рассмотреть методы идентификации вредоносных программ с помощью алгоритмов машинного обучения. Материалом для исследования стал массив данных от Майкрософт объемом в 200 ГБ.
Двоичные деревья и двоичные деревья поиска
Хотите научиться работать с двоичными деревьями и их частным случаем - двоичными деревьями поиска? Предлагаем доступное руководство для новичков, включающее в себя методы вставки и поиска узлов, а также полный код BST-алгоритма.
Как я создал расширение браузера и обучил ChatGPT обращаться к внешним сайтам за информацией...
Расскажем, как с помощью расширения Tampermonkey и прокси CORS Anywhere обучить ChatGPT получать доступ к внешним сайтам, анализировать извлекаемый с их страниц контент и искать в нем ответ на заданный вопрос.
Сначала графдизайн создать, потом код написать
Рассмотрим важность создания графического дизайна приложения до написания кода и нарисуем диаграмму последовательности с помощью пакета pgf-umlsd.
6 техник, которые помогут вам учиться лучше
Я осваивал машинное обучение каждый день в течение девяти месяцев, а затем нашёл работу. Узнайте, как всё было.
После ухода из Apple я основал интернет-стартап....
Секреты эффективного управления разработкой
Представляем вашему вниманию 50 советов о том, как добиться успеха на посту руководителя проектного отдела.
Как отладка поможет вам стать лучшим разработчиком
Если бы мне предложили подвести итог своей карьере программиста с помощью двух суровых истин, я бы сказал так:
Все, что может пойти не так,...
Фитнес-функции и их роль в эволюции архитектуры
Познакомимся с фитнес-функциями и посмотрим, как они проверяют ПО на соответствие стандартам архитектуры.
Трассировка стека и более точная отладка
Умение читать трассировки стека, в особенности сложные и длинные - незаменимо, если в коде возникает ошибка, и нужно как можно точнее разобраться в ее причинах. Посмотрим на некоторые подводные камни, о которых необходимо знать перед отладкой.
Что на самом деле важно для качества кода?
Хотя новички и джедаи могут озвучивать свои подходы к решению проблем одинаково, результаты разработки у них совершенно разные, как и способы достижения чистого кода. Чтобы понять специфику создания действительно качественного кода, предлагаем детально разобрать реальный пример с реальным кодом.
Sparrow: альтернатива ChatGPT от DeepMind
Представляем потенциального конкурента ChatGPT - диалогового агента Sparrow от DeepMind. По заверению разработчиков, он обеспечивает более безопасное общение за счет одновременного использования больших языковых моделей и обучения с подкреплением.
GitHub Actions и Vercel — быстрое развертывание проектов
На практическом примере научимся настраивать GitHub Actions для развертывания проекта на Vercel.
5 S-принципов в программировании
Хотите прокачать свой уровень разработки, но не знаете, с чего начать? Возьмите на вооружение 5 S-принципов из производственного опыта компании "Тойота".
Чему я научился за первые два года работы программистом
Университет и работа
Шел 2015 год, когда я был студентом Флоридского университета. Тогда я учился у профессора, который по самому сложному предмету задавал в...
Самый важный навык для программиста
Нет, нет и нет.
Скажем вместе. НЕТ!
Хорошее начало.
Но чему мы говорим НЕТ?
Это важный момент, который сбивает с толку даже опытных программистов.
Написание кода составляет большую часть...
В борьбу с коронавирусом вступил мощнейший в мире суперкомпьютер
В то время как Covid-19 продолжает заражать людей, учёные спешат найти лекарства, которые помогут пациентам выздоравливать, как можно быстрее. Невиданный доселе патоген вызывает симптомы,...
Тестируя нетестируемое — битва с легаси-кодом
Знакомимся со стратегией приведения легаси-системы в разумный вид, из которого с ней можно будет работать привычными средствами. Разбираемся, что происходит, и действуем, не боясь все сломать.
Ленивая загрузка, агрегирование и CQRS
Рассмотрим шаблоны, позволяющие справляться с приложениями, у которых повышается сложность, и поймем, в каких случаях пригодится каждый из них.
Лучшие JavaScript библиотеки за 2019 год для построения диаграмм
Вступление
По мере того, как увеличиваются объёмы и сбор данных, необходимость визуализации этих данных становится всё более актуальной. Разработчики ищут способы объединять миллионы записей баз...
Причины, по которым проект может потерпеть неудачу
Предвкушение успеха нередко оборачивается грандиозным провалом. Узнайте о том, как избегать неожиданных подвохов при разработке проектов и доводить их до победного конца.
Архитектура программного обеспечения — это совсем не просто
В апрельском отчете InfoQ архитектура ПО определяется как “командный вид спорта”. Какова роль инженеров-программистов в этом виде спорта? К каким вызовам им готовиться? И какие преимущества может дать им модель C4 в новых условиях? Присоединяйтесь к интересному и очень своевременному разговору.
Перенос сценариев CI в docker build
Распространенный сценарий: команда разработчиков поддерживает множество Jenkinsfile, каждый из которых соответствует требованиям проекта. Однако эти сценарии непрерывной интеграции (CI) непригодны для повторного использования в...
Как создать 3D-границу в Jetpack Compose
Воспользуйтесь руководством по созданию модификатора 3D-границ и панели поиска с использованием этого модификатора. Вы научитесь рисовать тени и блики для получения эффекта выпуклости, а также узнаете, как написать TextField с индивидуальным стилем.
Ключевые понятия JavaScript, которые должен знать каждый разработчик — часть 3
В этой заключительной части рассмотрим оставшиеся 10 из 32 ключевых понятий JavaScript. В их число входят коллекции, генераторы, промисы, синтаксис async/await, структуры данных, алгоритмы и другие не менее важные понятия.
10 программистов-самоучек, ставших преуспевающими разработчиками
Если вы читаете эту статью, потому что находитесь в начале пути самообучения программированию или уже достигли его середины и начинаете сомневаться, то воспользуйтесь приведёнными...
Как сделать интеллектуальное приложение вопросов и ответов базы знаний с GPT-3 и Ruby
Подготовим базу знаний с двумя скриптами для GPT-3 вопросов и обучим модель ответам по содержимому сайта. Поэтапно создадим ИИ вопросов и ответов, разберем отладку ответов и два способа доработки модели.
Google Test: интеграция модульных тестов в C/C++ проекты
Научимся легко и просто интегрировать модульные тесты в C/C++ проекты.