Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj
Test Driven Development (TDD) в Java
Контент специально для Java-разработчиков. Здесь вы можете посмотреть небольшую подборку скринкастов, демонстрирующих различные инструменты и методы использования Test Drive Development (TDD) на Java.
#java #tdd
Чистый код: Хороший, Плохой и Уродливый
«Чистый код» Роберта С. Мартина — основополагающая книга по программированию. Благодаря советам дяди Боба целое поколение разработчиков стало лучше программировать.
Но спустя почти двадцать лет соответствует ли книга своим высоким стандартам? Были ли какие-то советы из «Чистого кода» сомнительными или даже ошибочными? Есть ли в наши дни более подходящие альтернативы? В этой статье разбираются хорошие, плохие и уродливые части «Чистого кода».
#простымисловами: Паттерн Observer (Наблюдатель)
Observer отлично подходит для систем, где есть необходимость в автоматическом уведомлении об изменениях. Однако его следует использовать вдумчиво, чтобы избежать излишнего усложнения логики. Паттерн помогает создать динамичные и масштабируемые приложения, такие как системы уведомлений, финансовые инструменты или игровые события.
Подробнее в карточках.
Кто узнал себя к концу года — ставьте ❤️
Читать полностью…Стартап или корпорация? Где вас ждёт больше денег и опыта
Программисты часто сталкиваются с выбором между работой в стартапе или крупном проекте, но и стартап, и корпорация по-своему хороши. Конечно, и имеют разные недостатки.
Сегодня рассмотрим преимущества и недостатки обоих вариантов и попробуем всё-таки расставить все точки над «i» — что лучше: амбициозный стартап или стабильная корпорация?
А куда бы пошли вы?
Малинка в деле: пять креативных проектов на базе Raspberry Pi
Одноплатные компьютеры стали незаменимым инструментом как для любительских экспериментов, так и для профессиональной разработки и промышленного использования.
В этой статье собрали 5 необычных проектов, которые вы сможете повторить самостоятельно, имя одну из «малинок».
#raspberrypi #diy
Горящие таски — в сторону. Мы нашли вам занятие поинтереснее!
Tproger вместе с друзьями приготовил для вас Виммельбух. Первые две главы уже на сайте — переходите по ссылке и узнавайте, чем живёт технологичный город в новогоднюю пору: https://tprg.ru/6ABa
А ещё на улицах города мы спрятали предметы… Сможете найти все?
#простымисловами: Различия между MVC, MVP, MVVM, MVVM-C, и VIPER
Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android.
MVC (Model-View-Controller) — один из самых широко используемых архитектурных шаблонов. Он разделяет приложение на три основных компонента: модель (представляет данные и бизнес-логику), представление (отвечает за отображение интерфейса) и контроллер (действует как посредник между моделью и представлением).
MVP (Model-View-Presenter) отчасти похож на MVC, но имеет немного другой подход. В MVP посредником между моделью и представлением является презентер , а не контроллер. Презентер отвечает за обновление представления данными из модели и обработку пользовательского ввода и событий.
MVVM (Model-View-ViewModel) — архитектурный шаблон, набирающий популярность и используемый в приложениях со сложными пользовательскими интерфейсами. Он похож на MVP, но с добавлением модели представления (view model), которая отвечает за управление состоянием представления и за предоставление данных из модели в представление.
MVVM-C (Model-View-ViewModel-Coordinator) — это вариация MVVM, с добавлением координатора, который отвечает за управление навигацией между различными экранами или представлениями в приложении. Этот шаблон полезен для приложений, в которых есть несколько управляемых экранов или представлений.
VIPER (View-Interactor-Presenter-Entity-Router) — относительно новая архитектурный шаблон, который похож на MVC, но с добавлением нескольких новых компонентов, включая интерактор (отвечает за обработку бизнес-логики), сущность (представляет данные) и маршрутизатор (обрабатывает навигацию между различными экранами и представлениями).
#паттерны
Просто хотели поздравить вас с наступающим Новым годом и пожелать хорошего дня.
Но если поставите ❤️, нам будет приятно
Быстрые советы и рекомендации по фронтенду
Сразу два небольших видео, в которых разбираются различные хитрости, ускоряющие разработку и упрощающие жизнь веб-разработчика. Никакой воды, только суть.
Здесь вы научитесь деплоить react-приложение на GitHub Pages, а также создавать портфолио разработчика буквально за одну минуту.
А у вас уже есть своё портфолио? Поделитесь им в комментариях.
#видео #фронтенд
Змейка весом 57 байтов? Легко
Ну, ладно, не так уж и легко, но вполне возможно. Это доказал пользователь Reddit, который написал известную игру на ассемблере.
Помимо размера, она примечательна тем, что запустить её можно практически на чём угодно, что имеет экран — операционка или BIOS не требуются.
Узнать, как ему это удалось и вдохновиться, можно почитать на Reddit, а посмотреть код и попробовать онлайн-демо в репозитории на GitHub.
#asm #gamedev
Даже у душевой активность на GitHub выше. Давайте поднажмём к концу года!
Читать полностью…Энтузиаст создал сортировку имени Сталина
Нет, правда! Она так и называется «Милосердная сортировка имени Сталина». И это доработанная версия обычной сортировки имени Сталина, которая отбрасывает элементы, расположенные не по порядку.
В новой сортировке применён рекурсивный метод. Здесь элементы, расположенные по-порядку, сохраняются, а остальные рекурсивно перебираются, пока не будет отсортировано всё.
После всех измерений оказалось, что такой метод быстрее, чем быстрая сортировка и сортировка слиянием.
Более подробно о своём проекте и исследовании рассказал автор на GitHub. Там и про различные бенчмарки, и про сложности с реализацией, и возможные улучшения. Материал интересный и полезный, так что не поленитесь перейти по ссылке и почитать.
#ненормальноепрограммирование #сортировка
Студент взломал топовую нейронку
Всё началось с того, что ему нужно было написать научную статью по теме ИБ. И в ходе работы над ней так увлёкся, что взломал известную Claude 3.5 Sonnet.
К его сожалению и нашему счастью весь материал в научную статью поместить не удалось. Поэтому он написал отдельную статью, где поделился всеми подробностями. А мы её принесли вам, так что скорее читайте — там много интересного.
#иб #ml
Создание веб-сервера на Go
У Go есть однозначные преимущества в веб-разработке: высокая производительность, удобство масштабируемости, простота кода, работа с параллельным выполнением, надежность и безопасность.
В этом ролике вы узнаете, как за 15 минут создать свой певрвый веб-сервер на Go и познакомитесь с наиболее популярными библиотеками для бэкенд-разработки.
#видео #бэкенд #golang
GitHub Copilot стал полностью бесплатным внутри VSCode
Теперь любой пользователь может получить доступ к ИИ-помощнику для программирования прямо в VSCode, без необходимости оформления подписки или указания банковской карты.
Бесплатная версия GitHub Copilot предоставляет 2000 автодополнений кода в месяц, 50 запросов в чате Copilot и доступ к моделям GPT-4o и Claude 3.5 Sonnet.
Подробнее у нас на сайте.
#новости #vscode #copilot #github
Кто такие devOps и что такое Docker на самом деле
Что такое облачные технологии, системная архитектура, cloud native и всё с этим связанное? Современные приложения либо сразу затачиваться под работу в облачных сервисах, либо переезжают туда в конечном счёте. В видео показаны core-технологии DevOps и то, что стоит знать каждому разработчику об облаках и что это такое.
Теория, локальные примеры, и развёртывание в реальном облаке просто и на знакомых примерах.
#devops #видео
BigDevSoon — полезный тренажёр для фронтендеров с большой коллекцией челленджей и проектов
На платформе собрано 100 челленеджей на каждый день. Каждый отличается по сложности и по тому, какие скиллы помогает прокачать. А ещё здесь готовые идеи проектов. Каждый проект разбит на отдельные карточки, которые позволяют разделить проект на отдельные части для последовательной разработки.
Начать можно бесплатно, есть и платные тарифы, дающие больше возможностей. Если хотите отточить навыки и в комфортной среде изучить веб-разработку, то переходите по ссылке.
#тренажёры
Векторные базы данных: простым языком про устройство и принцип работы
Векторные базы данных — будущее работы с большими объёмами данных. Этот инструмент позволяет искать, анализировать и обрабатывать информацию гораздо быстрее благодаря работе с векторами.
В статье просто и понятно рассказано:
— что такое вектор и как он используется в данных;
— почему расчёты по расстояниям между векторами стали основой современных решений;
— какие задачи помогают решать такие базы данных.
Если вы хотите глубже понять принципы работы с данными и улучшить свои навыки — это отличный материал для изучения.
#бд
Основы SQL за час
В этом уроке вы познакомитесь с базами данных, научитесь их создавать и настраивать а также работать с основными командами.
Для вашего удобства ниже собрали таймкоды:
00:00 - подготавливаем базу
04:36 - выбираем данные SELECT
08:30 - указываем текущую базу данных
09:58 - чувствительность к регистру
12:14 - выбор определенных колонок
15:28 - фильтрация с помощью WHERE
20:59 - фильтрация с И и ИЛИ
26:38 - поиск строки по шаблону
29:18 - свой среди чужих
31:26 - NULL когда данные отсутствуют
34:27 - сортировка данных в SQL
38:37 - добавление записей с помощью SQL запроса
45:36 - обновление данных с помощью SQL
52:32 - удаляем данные из базы с помощью SQL
Оригинальное видео и ссылка на скрипт для генерации данных доступны по ссылке.
#видео #sql
Две идеи проектов для начинающих iOS-разработчиков
Если думаете, что создать, то вот вам сразу две готовые идеи, которые в можете повторить и улучшить:
Flappy Fly Bird — проект с открытым исходным кодом по мотивам классики аркадного жанра на Swift 5.5, GameplayKit, SpriteKit и iOS 12.
Coffee-Ratio — приложение создано для любителей кофе и помогает пользователю рассчитать соотношение воды и кофе для каждой порции.
#ios #петпроект
Как построить карьеру в области искусственного интеллекта. Советы от Эндрю Ына
Эндрю Ын — известный учёный в области информатики, доцент Стэнфордского университета, исследователь робототехники, машинного обучения и искусственного интеллекта. На протяжении многих лет он смог наблюдать, как тысячи его студентов начинают свою карьеру в этой области.
На основе своих наблюдений он предложил практическую схему, по которой можно проложить собственный карьерный трек. Подробнее о схеме и каждом её пункте можно прочитать в этой статье.
#ml #советы #карьера
Платформер в жанре rogue-like размеров в 13KB
Продолжаем тему ультралёгких игр. На этот раз возьмём игру потяжелее (если так можно сказать про 13KB), но зато гораздо сложнее, чем змейка.
Space Huggers — это проект, созданный в рамках популярного соревнования JS13K Games, где люди соревнуются в создании игр, чей размер не превышает 13 килобайт. Эта игра представляет собой платформер, объединяющий сразу два жанра — roguelike и run and gun. В этой статье рассказана история создания игры, движка для неё и который стал самостоятельной библиотекой.
Рекомендуем к прочтению, если хотите вдохновиться или просто интересно провести время.
#gamdev #javascript
Rust без прикрас. Продолжаем избавляться от ошибок
Это продолжение статьи, про которую мы уже рассказали недавно. В этой части разбирается проблема злоупотребления unwrap() и expect(), игнорирование ошибок с помощью let _ =, клонирование всего и вся, использование &str вместо String (или наоборот), бесконечные рекурсии без хвостовой оптимизации, отсутствие ограничений в обобщениях и многое другое.
#rust #советы
Чем заменить Google Docs? Обзор лучших альтернатив
Google Docs — отличный инструмент, когда дело касается базовых документов. Но если вам требуется сложная структура, таск-менеджмент, создание Wiki или базы данных, то его функций будет недостаточно даже в связке с таблицами.
Вместо этого предлагаем посмотреть на другие продукты, которые закроют большую часть ваших задач, при этом дадут ту гибкость, о которой Google Docs пока может только мечтать: https://tproger.ru/articles/chem-zamenit-google-docs--obzor-luchwih-alternativ
Синдром самозванца или горькая правда?
Читать полностью…Rust без прикрас: где мы продолжаем ошибаться
Только начинаете работать с Rust? Отлично! Эта статья объяснит, какие ошибки чаще всего совершают и новички, и опытные разрабы, а также расскажет как их избежать. Вы узнаете, как защитить код от багов, утечек памяти и других неприятностей.
https://habr.com/ru/companies/beget/articles/861496/
#rust
Supervision — библиотека компьютерного зрения для Python
С помощью этой библиотеки вы сможете с лёгкостью отслеживать объекты на фото или видео.
Supervision не зависит от модели. Вы можете сами выбрать какую модель классификации, обнаружения или сегментации вам использовать. Чтобы это было проще, в библиотеке есть коннекторы для самых популярных библиотек, таких как Ultralytics, Transformers или MMDetection.
Инструкция по установке и использованию по ссылке.
#инструменты #python #cv #библиотека
И мерч отправляется...
Наконец-то подводим итоги конкурса. Борьба была жаркая, но с небольшим отрывом побеждает статья «Как пополнить кошелек Steam в 2024 году», и ее автор Виктор получает мерч от Tproger!
В декабре вы тоже можете выиграть наш приз — к мерчу добавим кое-что интересное!
Выбирайте тему из Флудильни и пишите статью месяца!
#tproger #конкурс
Держите готовый план учёбы для собеседования в ИТ
В интернете есть множество ресурсов по подготовке к интервью, а ещё больше тем для изучения. А в этой статье автор рассказывает про свой 3-х месячный учебный план, который он лично использовал для подготовки к собеседованиям.
Почему 3 месяца? Именно столько времени, по его мнению, нужно для подготовки, если уделять 11 часов в неделю учёбе.
#интервью