Шесть принципов, которые помогут лучше писать модули для iOS-приложений
Зачастую приходится разрабатывать не целые приложения с нуля, а дополнения, надстройки, библиотеки. Предлагаем несколько советов, благодаря которым результат такой работы окажется полезнее для конечных пользователей.
Три нашумевших диаграммы. Исследование JavaScript в 2018
Вы думали статистика и графики — это скука? Подумайте ещё раз…
Нашумевший — это буквально самое заезженное слово в интернете, если не считать слово «буквально». Но в этот раз — это...
8 главных качеств технического менеджера
Один мой близкий друг, получив повышение и возглавив команду инженеров ПО, обратился ко мне за советом. И я призадумался, а что, собственно, порекомендовать? Книги?...
20 продвинутых проектов для освоения сложных концепций программирования
Теория не заменит практики. Попробуйте свои силы в выполнении интересных проектов.
Плюсы и минусы парного программирования
Многие программисты скептически относятся к парному программированию: технике разработки программного обеспечения, при которой за одним рабочим местом работают два программиста.
Я часто слышу:
«Звучит как пустая...
Вычислительные затраты на написание чистого кода
Почему иногда люди пишут подобный код?
var = float(str(alist).split())/3+float(alist)
Ответ прост: чтобы сэкономить вычислительное время. Стоит только написать это в четыре строки…
var = alist[::-1][0]
var = str(var).split()[1:4]
var...
Легко и быстро: автоматизация развертывания AWS EC2 с GitHub Actions и Docker Hub
Пошагово настроим экземпляр AWS EC2, создадим и добавим в DockerHub образ Docker и настроим рабочий поток Github Actions. В итоге научимся автоматизировать и оптимизировать рабочий процесс развертывания, уменьшая риск человеческой ошибки.
SQL или NoSQL: как правильно выбрать базу данных?
Вертикальное масштабирование, журнал опережающей записи WAL, надежность индексов - рассмотрим плюсы и минусы реляционных баз данных.
Программирование- это искусство и никак иначе!
Программирование, на первый взгляд, носит маску науки и служит тому, чтобы приложения, с которыми мы работаем ежедневно, функционировали как следует. Но в действительности оно — нечто...
Почему вы должны обратить внимание на Docker?
Когда я гуглил информацию о фреймворках глубокого обучения (deep learning), я заметил, что почти каждый из этих фреймворков поддерживался Docker. В итоге у меня...
Как мой 10-летний сын выучил Javascript
“Папа . . . А чем ты зарабатываешь на жизнь?”
Этот неожиданный вопрос заставляет нас, родителей, испытать чувство гордости. Так как он означает, что ребенок наконец-то видит в...
Как удалять локальные ветки с помощью псевдонимов Git
Мы не из тех, кто упускает отличные возможности улучшить рабочие процессы Git! В данном руководстве учимся создавать псевдонимы Git и с их помощью удалять локальные ветки.
Новая большая речевая модель Watson от IBM предоставит голос генеративному ИИ
Приготовьтесь к выпуску Watson LSM - новых больших речевых моделей, способных преобразовывать длинные аудиозаписи в готовые тексты. Пока они доступны только в закрытой бета-версии, но, войдя в массовое производство, смогут обеспечить бесперебойную работу с клиентами.
8 умных способов сохранять цифровую приватность
Неважно, как вы пользуетесь Интернетом: вполне вероятно, вашу Интернет-активность отслеживают. Недавно Натали Тридман рассказала, как люди неосознанно делятся своим местоположением. Нет, не нужно отказываться...
Flutter и SonarQube для статического анализа кода
За 8 шагов настроим SonarQube с Flutter на Apple Silicon Mac, используя Docker. Погнали!
.NET Aspire — стремление к рациональному подходу в сфере облачной разработки
.NET Aspire - новая платформа, упрощающая создание нативных приложений. Предлагаем ознакомиться с ее особенностями и преимуществами, а также вариантами использования и ограничениями. Практические примеры, приведенные опытным веб-разработчиком, облегчат начало работы с .NET Aspire.
Результаты ежегодного опроса программистов «New Coder Survey 2018»
Более 31.000 человек приняли участие в ежегодном опросе программистов со всего света, под названием New Coder Survey, предоставив исследователям беспрецедентные сведения о том, как...
5 S-принципов в программировании
Хотите прокачать свой уровень разработки, но не знаете, с чего начать? Возьмите на вооружение 5 S-принципов из производственного опыта компании "Тойота".
Хватит использовать Pandas, пора переходить на Spark + Scala!
Переход с Pandas на Spark и Scala не настолько труден, насколько вы можете предположить, при этом в итоге ваш код будет выполняться быстрее, и,...
О чём не говорят инженеры ПО
Здесь, на Medium, на YouTube и во всем интернете люди говорят о том, как они стали программистами без степени в компьютерных науках. Некоторые переходят...
Реализация захвата изменения данных с Docker, PostgreSQL, MongoDB, Kafka и Debezium: подробное руководство
Опишем все службы, настроим и сконфигурируем каждый компонент, обозначив их роли и особенности. Конфигурации снабдим пояснениями, выделив преимущества и недостатки.
В борьбу с коронавирусом вступил мощнейший в мире суперкомпьютер
В то время как Covid-19 продолжает заражать людей, учёные спешат найти лекарства, которые помогут пациентам выздоравливать, как можно быстрее. Невиданный доселе патоген вызывает симптомы,...
Как стать разработчиком проектов с открытым исходным кодом
Разработчики пишут код большую часть времени, внося таким образом вклад в проекты, которые входят жизненный цикл разработки ПО. Как правило, чтобы стать известным разработчиком,...
Как бороться с одиночеством в цифровом мире: 10 простых решений
Очень важно соблюдать баланс между работой и личной жизнью. Этот баланс важен и для фрилансеров, и для тех, кто работает в офисе с 9...
Мои заметки по программной инженерии
О процессе разработки
Код предназначен не только для его непосредственного выполнения, но он также является средством общения в команде и способом описать другим решение...
Тенденции в области программного обеспечения в 2022 году: 22 прогноза
Прогнозирование - задача непростая. И все же попробуем заглянуть в будущее и предсказать наиболее важные тенденции в индустрии разработки ПО в 2022 году.
Как добавить в проект тестирование скриншотов с Cypress
Разработчиков, как правило, заботит качество кода. Есть различные виды тестов, которые помогают избежать ситуаций, когда код ломается после добавления в проект новой функции. Но...
Top 100 наиболее популярных репозиториев на GitHub
GitHub стал не просто хостингом для хранения кодов, а огромным сообществом разработчиков.
Масштабы GitHub колоссальны: более 30 миллионов аккаунтов, более 2 миллионов организаций и более...
8 строгих правил Илона Маска для сотрудников
На чем стоит столь успешная деятельность всемирно известного научного революционера? Знакомьтесь с цитатами из внутренних обращений Маска к своим сотрудникам, утверждающими регламент работы в компании.
Практическое предметно-ориентированное проектирование
Ознакомьтесь с бизнес-ориентированной архитектурой - удачно подобранной комбинацией шаблонов, правил и стилей предметно-ориентированного проектирования. Она упростит разработку и высвободит много времени, чтобы сосредоточиться на вопросах бизнес-логики.
Битва трендов: React vs Angular vs Vue
Подождите, по-моему, я уже писал на эту тему… Да, но слишком многие жаловались, что я так и не сказал, что же лучше. Поэтому в...
Признаки настоящего сеньора
Сеньор. Кто он? Можно называть разработчика сеньором, исходя из опыта работы, но спектр навыков программистов настолько широк, что это не всегда отражает истинный профессионализм.
Наличие...
Как программирование избавляет от стресса
В течение последнего года я вернулась к различным проектам по программированию. По большей части это были исправления и изменения, начиная от обновления небольших приложений...
Какую СУБД начать изучать в первую очередь?
Какую систему баз данных стоит изучить в первую очередь? И стоит ли вообще изучать какие-либо СУБД, ведь для этой работы есть специально обученные люди?
Да,...
Как сделать чистый код еще чище
Предлагаем практический пример улучшения, казалось бы, чистого кода на сетевом и UI-уровне. Посмотрите, как в процессе продуманного рефакторинга - путем удаления всего лишнего (вложений, типов), уменьшения отступов, выполнения модульной разбивки - можно повысить уровень читаемости и производительности проекта.
Стоит ли разработчику изучать VIM в 2020 году?
Введение
Небольшая предыстория для понимания контекста. В конце 2018 года я всерьез занялся программированием, решив развивать карьеру. До этого я создавал (довольно плохие) сценарии для...
Как получить работу в крутой компании
Пару лет назад я разговаривал со своей подругой, Бернадетт Лангман, которая на данный момент занимает должность старшего технического рекрутера в американской технологической компании Qualtrics....
Как вернуть былой энтузиазм к программированию
Недавно я наткнулся на тему в сообществе Reddit, где люди заявляли о своей утрате интереса к программированию. Прочитав эту тему, можно сделать вывод, что...
Как выбрать правильного партнера при разработке программной платформы
Давайте признаем, ко всем однажды приходила гениальная идея крутого нового приложения, которое должно захватить рынок. К сожалению, в такой ситуации мы не учитываем, насколько...
Как делать заметки как программист
Когда я был мал — писал ужасные конспекты: они представляли из себя тетради с грязным текстом и плохой структурой. Практически бесполезные.
Потом, когда я открыл...
3 основных закона разработки ПО
Чтобы стать инженером-программистом, требуются годы обучения. Однако основные принципы, на которых базируется подход к разработке программного обеспечения, можно свести к 3 фундаментальным законам.
Руководство по Git для новичков
Это руководство поможет вам быстрее освоить логику сервиса. Вы узнаете, что такое ветви и коммиты; ознакомитесь с популярными рабочими процессами и базовыми командами; научитесь разрешать конфликты и сотрудничать в Git. А в качестве бонуса получите набор инструментов, которые облегчат вам первые шаги в Git.
5 ключевых правил успешного ревью кода
Учитывая важность ревью кода в процессе разработки, сформулируем 5 правил, способствующих повышению его эффективности.
Сильные и слабые стороны метавселенной
Последнее время вокруг метавселенной царит нешуточный ажиотаж. Цифровой мир открывает массу возможностей для пользователей, но вместе с тем несет в себе определенные риски.
С нуля до разработчика игр: как начать создавать видеоигры, если у вас нет опыта
Два года назад я была простой семнадцатилетней ученицей средней школы и я ничего не знала о программировании. Но я все равно достигла своей цели...
Форматы .tar .zip .gz: Различия и эффективность
Вы наверняка встречали файлы с расширением .tar, .zip или .gz . А знаете ли вы, чем они отличаются, почему мы их используем, и какой формат наиболее эффективен?
Различия между...
Путешествие c LLM: от PoC к производству
Мощь больших языковых моделей (LLM) очевидна. Но так ли легко обеспечить их всем необходимым? Сегодня мы пройдем путь работы над LLM - от доказательства концепции до производства - и поговорим о том, какие меры предпринять и каких подводных камней избегать.
Как написать хороший проектный документ
Будучи разработчиком ПО, я трачу много времени на чтение и написание проектных документов. Прочитав и написав сотни таких документов, я заметила сильную зависимость между...
Какие вопросы задавать HR-менеджеру во время собеседования
Последние 6 недель я только и делала, что проходила собеседования на роль middle-разработчика программного обеспечения в Амстердаме. Амстердам — это очень большой город, и собеседований я...
Генерирование синтетических обучающих данных с поддержкой масштабирования для задач NLP с помощью T0PP
Проблемы с производством тренировочных данных для моделей МО? На помощь приходит мощный инструмент T0PP!
Как организовать код в Python
Если вы занимаетесь вычислительными исследованиями или наукой о данных, но у вас нет опыта в области компьютерных наук, то вы, вероятно, создали удивительные научные...
16 полезных расширений для SwiftUI
Предлагаем несколько примеров полезных сниппетов кода, которые можно неоднократно использовать в проектах.
Дизайн для искусственного интеллекта
Чем дизайн для ИИ отличается от традиционного дизайна? Расскажем про преимущества и недостатки использования ИИ в UX-дизайне, а также рассмотрим перспективы развития данного вида дизайна.
Мой опыт работы с Data Scientist, будучи программным инженером
Предыстория
В конце 2017 года я начал проявлять интерес к такой области, как машинное обучение. По специальности я Android Engineer, и в этой статье я...
Remote First: программисты не должны работать в офисе
Open-space, излишний контроль, метро и пробки убивают вдохновение. Приводим аргументы в пользу того, что разработчиком лучше работать удаленно.
Портрет плохого программиста
Первым шагом на пути к становлению профессионального программиста может стать выявление плохих привычек в процессе написания кода. Рассмотрим их подробнее.
Как правильно учиться Java-программированию: история одного тьютора
Моя история
Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык.
В Java я...
Разрабатываем приложения для распознавания речи с помощью Python
Хотите создать своего голосового помощника и превзойти Siri и Яндекс Алису, но не знаете, с чего начать? Рассказываем и показываем, как работает распознавание речи на примере двух простых приложений, и советуем, как применить эти знания на практике.
9 полезных расширений для 2020 года
Refined GitHub
Refined Github упрощает интерфейс Github и добавляет полезные функции.
«Мы надеемся, что Github заметит и реализует некоторые из этих необходимых улучшений. Поэтому, если вам...
Простой способ решить алгоритм Apriori с нуля
Как в розничных сетях увеличивают продажи и при чем здесь ассоциативные связи? Пошагово реализуем алгоритм, построим модель Apriori и поможем директору супермаркета выполнить анализ рыночной корзины.
Технология составления промптов для модели ИИ на примере одного чат-бота
Научимся составлять инструкции для моделей ИИ на примере конкретного чат-бота. Рассмотрим такие этапы процесса, как определение концепции мышления модели, установка контекста и формата вывода ответа, построение вопроса и проверка вывода.
Падение разработчиков ПО, рост специалистов по программированию
История
Заглянув в истоки информатики, можно обнаружить, что изначально она не только не имела такого названия, но и не преподавалась ни в одном университете. Информатика...
Несколько советов, которые помогут вам на собеседовании и не только
Зачастую, получить первую должность в качестве разработчика крайне трудно.
Как убедить человека принять вас на работу, если опыта как такового и нет? Какие вещи знать...
Учим ИИ отвечать на сообщения
Введение
Глубокое обучение применяется во многих задачах NLP вроде перевода, добавления титров к изображениям и систем поддержки диалога. В машинном переводе оно используется для преобразования...
Комментарий в коде написать - всё равно, что проиграть
Могу себе представить, какое бурное негодование вызвал у вас лишь заголовок данной статьи, но не спешите бросать в меня камни и просто выслушайте. Уместные...
Топ-7 онлайн-редакторов кода и IDE
Какие онлайн-редакторы кода и полноценные IDE позволяют повысить производительность? Обзор лучших инструментов, похожих на VSCode, поможет вам сделать правильный выбор.
Создание модели Mixture of Experts (MoE) с помощью MergeKit
Объедините с помощью MergeKit несколько моделей в один коллектив экспертов (MoE). Предлагаем подробное описание процесса создания многозадачной и высокопроизводительной модели frankenMoE, не требующей предварительного обучения.
Возможности Docker, о которых вы не знали. Часть 1
Ознакомьтесь с расширенными возможностями, используемыми продвинутыми Docker-пользователями. В 1-й части вы узнаете о таких практиках, как многоэтапные сборки, сжатие слоев образов, управление секретами BuildKit, ускорение сборки с помощью файла .dockerignore, проверка “здоровья” в Docker-файлах и форматирование вывода Docker CLI.
Искусство упрощения для программистов
Недавно я наткнулся на очень интересную книгу авторства Nagisa Tatsumi. Называется она “Искусство упрощения: как избавиться от беспорядка и найти радость” (“The Art of...
Как оставаться в тренде dev-индустрии
Вряд ли кто-либо станет отрицать актуальность этого вопроса для большинства разработчиков: “Как оставаться в курсе последних новостей в области разработки, ее трендов и технологий?”
Этот...
Различные модели машинного обучения
Что же такое машинное обучение? И почему оно так плотно связано с нашей повседневной жизнью? Отвечаем на эти и сопутствующие вопросы.
10 тенденций в разработке программного обеспечения в 2019 году
Тенденции меняются каждый день во всех сферах деятельности: в моде, в образовании, в разработке программного обеспечения. В эпоху цифровизации сфера программирования меняется чрезвычайно быстрыми...
10 способов повысить эффективность RAG-системы
Хотите создать эффективную RAG-систему для генерации ответов, дополненной результатами поиска? Предлагаем 10 стратегий повышения качества RAG, которые обеспечат успешный переход от прототипа к производству.
Программирование на квантовых компьютерах: какой язык учить?
Прямо сейчас в компьютерном мире происходит что-то удивительное. Если судить по последним разработкам, становится ясно, что мы уже находимся на пороге новой эры квантовых...
Этические аспекты клонирования голоса и возможности его применения
Если вы до сих пор считаете, что понятия “клонирование голоса” и “дипфейк” новы, то ошибаетесь. Первые опыты по имитации человеческого голоса проводились уже в...
#03TheNotSoToughML | Регрессия: Ошибки → Спуск с вершины горы
По меткому высказыванию Педро Домингоса, машинное обучение - это результат слияния необъяснимой эффективности математики с такой же необъяснимой эффективностью данных. Некоторые склонны впадать в панику при беглом знакомстве с МО, полагая, что оно требует сложнейших математических вычислений. В специальной серии статей мы поставили перед собой задачу развеять этот миф.
Механизм повторных попыток в Spring Boot: @Retryable и @Recover
Реализуем обработку временных сбоев в Spring Boot, рассмотрим аннотации для соответственных поведений. Проверим механизм в действии, отправив HTTP-запрос.
5 настроек рабочего стола Linux для разработчиков
Linux: программируйте удобнее
Как только я начал работать из дома, я решил, что пришло время капитального ремонта рабочего стола. В офисе я обычно использую MacBook...
Всё, что вы хотели знать об отладке в IntelliJ IDEA
Отладка — это один из самых важных этапов процесса разработки. И дело не только в том, что устранение ошибок занимает, вероятно, большую часть времени: она также...
Как мне не удалось совладать с устаревшим кодом
Я очень хорошо помню свой первый опыт работы с устаревшим кодом. Я была младшим разработчиком и совершенно не представляла, что делаю.
Само приложение было чем-то...
Чистая архитектура: руководство для начинающих
Разбираемся в том, что такое чистая архитектура, какие преимущества она дает и как ей следовать на практике. Рассмотрим все примеры с иллюстрациями.
Собеседование Java разработчика. Наиболее Часто Задаваемые Вопросы
В этом посте, я с удовольствием раскрою, вероятно, большинство возможных вопросов на Java-собеседовании, от простых до самых сложных.
Чем отличаются статические методы и переменные...
3 ошибки на собеседованиях по программированию, из-за которых можно получить отказ
После неудачного технического собеседования соискатели часто не могут понять, что пошло не так. Поговорим о распространенных ошибках и о том, как их избежать.
4 ключевых аспекта проектирования распределенных систем
Что конкретно подразумевают надежность, доступность, масштабируемость и обслуживаемость? В чем заключается важность этих характеристик распределенных систем?
Что мы ожидаем от разработчиков на каждом уровне
Работа в офисе, а особенно дистанционно требует постоянной коммуникации между всеми сотрудниками, поэтому каждому сотруднику следует иметь представление о том, какие задачи, помимо, конечно же, программирования ему предстоит выполнять.
Повышение эффективности промпт-инжиниринга путем поиска по программам в символьной записи
Хотите быстро находить лучшие промпты в большом наборе их вариантов? У вас есть уникальная возможность делать это автоматически с помощью Python-библиотеки SAMMO, следуя пошаговому руководству от ее автора и достигая значительной производительности
5 Команд Linux, заставляющих ахнуть от удивления
Быть программистом нелегко. Порой приходится проводить за монитором много часов, устраняя возникшую из-за пропущенной точки с запятой ошибку. Или напрягать глаза при написании 1000-строчного...
Разработчики, которые постоянно что-то изучают — вот вам совет!
Я видел много людей, среди разработчиков, которые постоянно находились в состоянии разочарованности и неуверенности в себе. Это происходило из-за того, что они постоянно пытались...
Менеджеры пакетов NPM, PNPM и YARN
Не знаете, какой из менеджеров пакетов — NPM, YARN или PNPM — больше подойдет для вашего JS-проекта? Прежде чем принять решение, рассмотрите сильные и слабые стороны каждого варианта.
Почему западные приложения более минималистичны, чем азиатские?
Узнаем, чем отличаются культуры коллективизма и индивидуализма. Изучим влияние этих культур на онлайн-коммуникацию, а также UI/UX дизайн. Выделим основные различия двух культур и узнаем, как улучшить локализацию продукта.
Создание языковой модели для чатов
Хотите создать чат-бота, способного имитировать непринужденный стиль переписки с друзьями? Предлагаем наглядное руководство по интеграции GPT с приложением.
Сначала графдизайн создать, потом код написать
Рассмотрим важность создания графического дизайна приложения до написания кода и нарисуем диаграмму последовательности с помощью пакета pgf-umlsd.
Расширяем возможности собственного мозга на базе ИИ, Python и ChatGPT
Многие жалуются на провалы в памяти или с трудом пытаются вспомнить важную информацию, когда она необходима. Уследить за всем в нашем мире непросто, запоминание...
Худшие способы нанять хороших программистов
Хорошее собеседование — это просто неформальная беседа двух увлеченных программистов
Чарльз Баркли поразительно точно отметил:
Я не считаю себя тем, кто дает интервью. Я просто веду...
Scrum: 5–3–5–3–3
В начале работы с Agile и Scrum, оказывая помощь коллегам, я обычно использовал комбинацию 3–5–3, где:
первые “3” — три роли Scrum;“5” — пять событий...
Как обеспечить обмен данными между микросервисами
Разберемся в особенностях организации обмена данными между микросервисами, а также рассмотрим способы решения возникающих проблем с помощью RabbitMQ.
NeuralHash от Apple: принцип работы и слабые места
NeuralHash от Apple - технология сканирования изображений на наличие детской порнографии. Предлагаем пользователям устройств iOS и iPadOS познакомиться с ее особенностями и степенью уязвимости, а также с возможными мерами безопасности.
Перестаньте фокусироваться на синтаксисе, если хотите стать senior-разработчиком
Вы переезжаете в новый город и не знаете, где находится ближайший продуктовый магазин.
Вы не станете волноваться, а просто воспользуетесь Google Maps.
После того, как вы...
4 частые ошибки в рефакторинге
Некоторые программисты испытывают проблемы с рефакторингом. Одни процессы проходят у них довольно гладко, а другие не очень. Во втором случае есть ряд общих закономерностей. Рассказываем, как действовать, чтобы по максимуму использовать преимущества рефакторинга.
Локальная ретушь фотографий при помощи ИИ
Наиболее трудоемким процессом в редактировании фотографий является ретушь отдельных участков. Новая нейросеть ABPN значительно ускоряет этот процесс, выполняя локальное редактирование HQ-изображений в реальном времени.
Моделирование связей графа в DynamoDB
В основе Koan лежат его цели и то, как эти цели взаимосвязывают людей и команды внутри компании. Эти связи зачастую оказываются сложными, потому что...
Самый важный навык для программиста
Нет, нет и нет.
Скажем вместе. НЕТ!
Хорошее начало.
Но чему мы говорим НЕТ?
Это важный момент, который сбивает с толку даже опытных программистов.
Написание кода составляет большую часть...
Как развернуть пакет Cython в PyPI
Для меня это оказалось довольно трудно, и я подумал, что неплохо было бы поделиться своим опытом в статье.
Структура проекта
Вот файловая структура, которую мы будем...
Дизайн системы Netflix
Балансирование между удивительными возможностями и соответствием строгим требованиям - отличительная черта дизайна системы Netflix. Изучение ее "умных" компонентов наверняка обогатит ваш инженерный опыт.
Узнать и забыть: 4 антипрактики обработки ошибок в Python
Внимание! Обнаружены 4 практики обработки ошибок в Python, резко снижающие скорость разработки. Предупрежден - значит вооружен!