Точка входа в программирование
21.4K subscribers
909 photos
163 videos
1 file
2.45K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Давайте разберём понятие TDD (Test Driven Development) простыми словами

Наверняка вам попадалась эта аббревиатура. TDD — это методология разработки, когда тесты пишутся перед написанием самого кода. Это помогает создать более качественное, надёжное и хорошо протестированное программное обеспечение.

Основная идея TDD в трёх шагах:

1. Сначала пишем тест: прежде чем писать любой код, мы сначала пишем тест, который будет проверять функциональность, которую мы собираемся реализовать. Этот тест, разумеется, на первом этапе не проходит, потому что нужная функциональность ещё не написана.
  
Представьте, что вам нужно реализовать калькулятор, который умеет складывать числа. Для начала мы напишем тест, который проверит, что функция сложения работает правильно.

2. Пишем минимально необходимый код: затем пишем минимально необходимый код, чтобы пройти этот тест. Тут главное — не стараться сразу сделать всё идеально, а только удовлетворить условия теста.

ПрТеперь мы пишем саму функцию сложения, которая берет два числа и возвращает их сумму.

3. Рефакторинг: после того как тест прошел и функциональность реализована, мы приступаем к рефакторингу кода. Рефакторинг — это процесс улучшения кода без изменения его внешнего поведения. Здесь мы можем сделать свой код более понятным, оптимизированным или избавить его от повторений.

Если наш код сначала выглядел просто, мы можем переписать его, чтобы сделать более читаемым и поддерживаемым.

Преимущества TDD:

— повышенная надежность кода: поскольку при TDD сначала пишутся тесты, это помогает ловить ошибки на ранних стадиях разработки;
— уверенность при изменениях: если нужно внести изменения в код, вы можете быть уверены, что всей функциональности, покрытой тестами, изменения не повредят;
— чёткая спецификация: тесты действуют как живая документация, описывающая, что ваш код должен делать.

Недостатки TDD:

— начальная медленность: может показаться, что работа идет медленнее, потому что вам нужно сначала писать тесты. Однако в долгосрочной перспективе это может сэкономить время на отладку и исправление ошибок;
— зависимость от качества тестов: если тесты написаны некачественно, это может привести к ложному чувству уверенности в правильности кода.

#советы #методология
Что такое регулярные выражения и зачем они нужны

Регулярные выражения, или regex — это специальный синтаксис для поиска и обработки текста. Они позволяют описать шаблон (pattern), с помощью которого можно находить нужные куски текста, проверять, соответствует ли строка этому шаблону, или заменять части строки.

Где и как их можно использовать?

— чтобы найти все номера телефонов в документе;
— проверить, соответствует ли введённый пользователем e-mail правильному формату;
— заменить все вхождения ошибочно написанного слова в тексте.

Пример использования регулярного выражения:

Допустим, у нас есть строка: «Сегодняшняя дата: 2023-10-10», и нам нужно найти дату в формате «YYYY-MM-DD».

Вот как это можно сделать с помощью регулярного выражения:

\d{4}-\d{2}-\d{2}


Давайте рассмотрим пример:

1. \d{4}: Соответствует четырём цифрам. В нашем примере — это «2023».
2. -: Соответствует дефису.
3. \d{2}: Соответствует двум цифрам. В нашем примере — это «10».
4. -: Соответствует дефису.
5. \d{2}: Соответствует двум цифрам. В нашем примере — это снова «10».

Итак, регулярное выражение \d{4}-\d{2}-\d{2} точно находит даты в формате «YYYY-MM-DD» из строки.

#regex #советы
Что нужно знать новичку в IT

Первый шаг самый трудный. Но поздравляем, вы его уже сделали, когда зашли в наш канал. Дальше мы будем помогать осваиваться в мире IT.

Давайте начнём с того, что пригодится независимо от языка программирования или направления разработки. Забирайте эти 9 советов и не забывайте их.

#советы
Моё кунг-фу лучше твоего кунг-фу: ключевые парадигмы программирования

Парадигмы программирования — это различные стили или подходы к написанию программного кода. Каждая из них предлагает свой взгляд на структуру и способ взаимодействия компонентов программы. Давайте рассмотрим основные парадигмы и поймем, чем они отличаются.

Императивное программирование

Это один из самых старых и интуитивно понятных подходов. В императивном программировании акцент делается на последовательные шаги, которые компьютер должен выполнить. Программист пишет детальные инструкции о том, как выполняются операции.

Основные элементы: переменные, циклы, условия.
Примеры: for циклы, if-else конструкции.

Декларативное программирование

Здесь основной упор делается на то, что нужно сделать, а не на то, как это сделать. Программист описывает результат, который хочет получить, и система сама решает, как это сделать.

Основные элементы: выражения, правила.
Примеры: SQL, регулярные выражения.

Функциональное программирование

Этот подход основывается на математических функциях. Программы состоят из функций, которые не имеют состояния и побочных эффектов. Это делает программы предсказуемыми и легко тестируемыми.

Основные элементы: функции, неизменяемость данных.
Примеры: рекурсия, чистые функции (без побочных эффектов).

Объектно-ориентированное программирование (ООП)

В этом подходе всё строится вокруг объектов. Объекты — это сущности, которые объединяют данные и методы для работы с этими данными. ООП помогает моделировать реальный мир и способствует повторному использованию кода.

Основные элементы: классы, объекты, наследование, инкапсуляция, полиморфизм.
Примеры: создание класса Car, экземпляры my_car, your_car.

Логическое программирование


В логическом программировании программы определяются через логические утверждения и правила. Компьютер использует эти правила для вывода заключений и решения задач.

Основные элементы: факты, правила, запросы.
Примеры: базовые логические операции и запросы в Prolog.

Реактивное программирование

Эта парадигма акцентирует внимание на потоках данных и пропагандирует асинхронное вычисление. Реактивное программирование позволяет обрабатывать события по мере их возникновения.

Основные элементы: абстракции потоков данных, операторы трансформации.
Примеры: обработка событий пользовательского интерфейса, стриминг данных.

Компонентно-ориентированное программирование

Это подход, который строится вокруг создания программ из небольших и независимых компонентов, которые могут взаимодействовать друг с другом. В компонентно-ориентированном программировании акцент делается на повторном использовании и модульности.

Основные элементы: компоненты, интерфейсы.
Примеры: создание виджетов для пользовательского интерфейса.

Заключение
Каждая парадигма программирования имеет свои сильные стороны и подходящие случаи использования. Зачастую в реальных проектах используются сразу несколько парадигм, чтобы использовать их преимущества в разных частях программы. Понимание различных парадигм помогает разработчикам выбирать наиболее подходящие инструменты и методы для решения конкретных задач. Ещё более подробно можно почитать в статье: https://doka.guide/tools/programming-paradigms/

#советы #основы
8 советов работы с JavaScript, которые повысят ценность вашего кода

В разных компаниях могут быть разные правила оформления кода, работы с ним. В начале вашего пути в качестве программиста это совсем неважно. Другое дело, что есть моменты, которые следует соблюдать хотя бы для того, чтобы вы могли быстрее осваивать новый язык, лучше разбираться в написанном и проще возвращаться к ранее созданным проектам.

Об этих моментах в статье:

https://nuancesprog.ru/p/15712/

#советы #javascript
Forwarded from Метод утёнка
Не существует не решаемых задач. Нужно только подобрать правильный способ решения. Ведь иногда нужно просто перевести дух и позволить себе отдохнуть, чтобы всё разрешилось как будто само собой.

Мы собрали несколько рабочих способов, которые наверняка вам помогут.

#советы
Как учить языки программирования и создавать базу знаний с помощью метода из прошлого века

Нашли для вас очень полезный метод обучение, как говорится, old but gold. Называется он Цеттелькастен и придумал его социолог ХХ века Никлас Луман. Суть его в правильной организации заметок.

Всё, больше ничего не расскажем. Чтобы лучше понять, как этим пользоваться, нужно прочитать эту статью:

https://habr.com/ru/companies/yadro/articles/835664/

#советы
Техническое собеседование: как пройти и подготовиться к нему

Что делать на техническом собеседовании? Главное — не паниковать, вы уже молодец, что нашли в себе смелость прийти и заявить о своих навыках. А остальные советы о том, как к нему готовиться, читайте в статье:

https://tproger.ru/articles/tehnicheskoe-sobesedovanie-kak-projti-i-podgotovitsya-k-nemu-erid-ljn8kkxme

#советы #собеседование
Как читать код

Статья пригодится не только разработчикам, но и тем, кто хоть иногда сталкивается с кодом и вынужден разбираться в том, как он работает.

Вы узнаете, как упростить себе задачу, с чего начать и что делать с неизвестным синтаксисом:

https://habr.com/ru/articles/840178/

❤️ — так и делаю
🤔 — ерунда какая-то. Просто садишься и построчно изучаешь


#советы
5 признаков неопытного разработчика: как избежать типичных ошибок и ускорить профессиональный рост

Начинающие разработчики часто сталкиваются с рядом типичных проблем, которые мешают им быстро расти профессионально.

В этой статье вы узнаете о 5 ключевых признаках неопытного разработчика и получите рекомендации, как их избежать.

#советы