Заметки программиста
Мои конспекты обо всём, что связано с программированием и смежными ему областями.
Общая теория
Дискретная математика
«Дискретная математика занимается изучением дискретных (конечных) математических структур - таких структур, количество элементов которых конечно, а значит эти элементы можно пересчитать, перечислить. Из-за ограниченности ресурсов компьютера на нём можно реализовывать (рассматривать) только дискретные структуры. Именно эти структуры легли в основу компьютера, стали фундаментом при его создании».
Информация и данные
«Всё, что мы видим и слышим каждый день, несёт в себе какую-то информацию. По сути говоря, вся наша жизнь связана с получением, обработкой и передачей информации. Данные - это цифровая оболочка информации, последовательность нулей и единиц. Представить информацию как данные означает дать возможность компьютеру обрабатывать её. Данные могут быть представлены текстом, изображением, видео, аудио и другими способами».
Типы данных
«Типом данных называют множество допустимых значений и совокупность операций над этими значениями. Типы данных позволяют разбить разнородную информацию на несколько заданных типов (строковый, числовой, логический, дата и другие типы). К каждому типу может применяться лишь ограниченное множество операций (например, разность чисел, конкатенация строк)».
- О типе данных
- Классификация типов данных
- Логический тип
- Строковый тип
- Символьный тип
- Целочисленный тип
- Число с плавающей точкой
- Ссылка
- Указатель
Структуры данных и алгоритмы
Модели данных и базы данных
Программирование
Характеристики языков программирования
«Не было бы смысла в таком количестве языков программирования, если бы они хотя бы немного не отличались друг от друга. И дело не только в синтаксисе - критериев сравнения (характеристик) выработано очень много. Не существует идеального языка программирования под любой проект. Наоборот, язык выбирается в соответствии с техническими требованиями проекта. В данном разделе мы детально рассмотрим каждый из критериев сравнения, чтобы вы могли сами решить, какой язык подходит больше под ваш проект, или хотя бы смогли описать тот язык, на котором вы уже пишете».
- О характеристиках языков программирования
- Типизация
- Компилируемость и интерпретируемость
- Потоки, однопоточность и многопоточность
- Синхронность и асинхронность
- Кроссплатформенность и кроссбраузерность
- Поддержка парадигм программирования
Тестирование
«Тестированием называют процесс испытания некоторого продукта с целью проверки соответствия готовой реализации продукта первоначальным требованиям заказчика. Качественное тестирование очень важно для приложения. Хороший тестировщик продумывает все возможные и невозможные исходы и проверяет каждый из них. Без такого тестирования невозможно гарантировать корректность работы прилолжения, а значит оно может сломаться в любом месте и в любой момент времени».
- Зачем тестировать приложение
- Тестирование и его разновидности
- Подходы к написанию тестов
- Тестовые объекты
- Паттерны тестирования