Malloc под капотом
Мы создаем функции malloc () и free () с нуля, видя, как на самом деле работает распределение памяти. Этот скринкаст сделан полностью на C, но все в порядке, если вы не знаете C; мы представим необходимые идеи по мере продвижения.
Мы создаем функции malloc () и free () с нуля, видя, как на самом деле работает распределение памяти. Этот скринкаст сделан полностью на C, но все в порядке, если вы не знаете C; мы представим необходимые идеи по мере продвижения.
Мы создаем HTTP-сервер, который может обслуживать статические файлы с диска, а также динамические приложения в стиле cgi-bin. Компонент сетевого сервера создается с использованием системных вызовов сокетов (socket, setsockopt, bind, listen и accept), а не с использованием предварительно созданных TCP-серверов, доступных в стандартной библиотеке Ruby.
Мы создаем Shell в стиле оболочки Bourne, Bash, zsh и тд. Она поддерживает (1) выполнение команд с произвольным числом аргументов, (2) цитирование этих аргументов и (3) объединение команд в произвольно длинные конвейеры, вывод одной команды становится входом следующей. Для этого требуется написать парсер, который мы делаем с Parslet, библиотекой парсеров PEG.
Мы создаем текстовый редактор с нуля. Он включает в себя базовое текстовое редактирование: перемещение курсора, ввод текста, backspacing а также крок назад.
Мы создаем автономный компрессор данных и декомпрессор с нуля. Схема сжатия основана на Huffman coding, который используется в gzip, zip и многих других форматах сжатия. Не требуется предварительного знания Huffman coding или сжатия данных. Исходный код, включая вспомогательные файлы, не показанные в скринкасте, доступен в GitHub.
Мы строим небольшой компилятор из стандартных компонентов: токенизатор, анализатор и генератор кода. К концу мы успешно скомпилируем некоторый код на нашем языке, создавая вывод JavaScript, который мы можем выполнить. Большинство компиляторов сильно оптимизированы для скорости, но наши оптимизированы для удобства чтения и понимания.
Мы делаем веб-фреймвор «с нуля». Он будет выполнять маршрутизацию HTTP-запросов, рендеринг шаблонов, доступ к базе данных, проверку форм и многое другое. Каждая часть дизайна будет определяться потребностями примерного приложения.
В этом курсе мы узнаем как обрабатывать запросы от пользователей, как использовать middleware, обрабатывать маршруты GET / POST, построим чистую структуру маршрутизации в приложении Node. Также мы поговорим о масштабируемой маршрутизации в Node.js.
Форум обманчиво сложный. Конечно он составлен из потоков и ответов, но что еще может существовать как часть форума? Как насчет профилей или подписки на потоки, или фильтрации, или уведомлений в режиме реального времени? Как оказалось, форум - идеальный проект для растягивания мышц программирования. В этой серии мы будем работать вместе, чтобы построить форум вместе с тестами от А до Я.