Теоретический минимум по Computer Science. Все что нужно программисту и разработчику

Book Cover: Теоретический минимум по Computer Science. Все что нужно программисту и разработчику

Купить:

Хватит тратить время на скучные академические фолианты! Изучение Computer Science может быть веселым и увлекательным занятием.
Владстон Феррейра Фило знакомит нас с вычислительным мышлением, позволяющим решать любые сложные задачи. Научиться писать код просто - пара недель на курсах, и вы "программист", но чтобы стать профи, который будет востребован всегда и везде, нужны фундаментальные знания. Здесь вы найдете только самую важную информацию, которая необходима каждому разработчику и программисту каждый день.
"Эта книга пригодится и для решения повседневных задач. Упреждающая выборка и кэширование помогут сложить рюкзак, параллелизм облегчит готовку на кухне. Ну и, разумеется, ваш программный код будет просто потрясающим".

Excerpt:

Vue.js в действии

Book Cover: Vue.js в действии

Купить:

Vue.js - это популярная библиотека для создания пользовательских интерфейсов. В ней значительно переосмыслены реактивные идеи, впервые появившиеся в React.js.
Книга "Vue.js в действии" рассказывает о создании быстрых и эластичных пользовательских интерфейсов для Интернета. Освоив ее, вы напишете полноценное приложение для интернет-магазина, где будут присутствовать списки товаров, админка, а также организован полноценный процесс онлайнового заказа.

Excerpt:

Для чего нам Vuex

Библиотека Vuex управляет состоянием. Она хранит его централизовано, что облегчает обращение к нему любых компонентов. Состояние — это информация или данные, которые поддерживают приложение. Это важно, поскольку нам необходим надежный и понятный механизм для работы с этой информацией.

Читать далее

Если у вас уже есть опыт работы с другими фреймворками для создания одностраничных приложений, некоторые из этих концепций могут показаться знакомыми. Например, React использует похожую систему управления состоянием под названием Redux. Vuex и Redux созданы под влиянием проекта Flux. Это архитектура, предложенная компанией Facebook, которая призвана упростить построение клиентских веб-приложений. Она способствует движению данных в одном направлении: от действий к диспетчеру, затем к хранилищу и в конце — к представлению. Такой подход позволяет отделить состояние от остальной части приложения и поощряет синхронные обновления. Больше о Flux можно узнать из официальной документации на странице facebook.github.io/flux/docs/overview.html.

Vuex работает по тому же принципу, помогая изменять состояние предсказуемо и синхронно. Разработчикам не нужно беспокоиться о последствиях обновления состояния синхронными и асинхронными функциями. Представьте, что мы взаимодействуем с серверным API, который возвращает данные в формате JSON. Что произойдет, если в тот же момент эти данные будут модифицированы сторонней библиотекой? Мы не хотим получить непредсказуемый результат. Vuex помогает избежать подобных ситуаций, исключая любые асинхронные изменения.
Вам, наверное, интересно, зачем нам вообще нужна библиотека Vuex. В конце концов, Vue.js позволяет передавать информацию в компоненты. Как вы знаете из предыдущих глав, для этого предназначены входные параметры и пользовательские события. Мы даже могли бы создать собственную шину событий для передачи данных и межкомпонентного взаимодействия. Пример такого механизма представлен на рис. 10.1.

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

Как раз для таких ситуаций и создана библиотека Vuex. Она позволяет организовать работу с состоянием в виде централизованного хранилища. Представьте сценарий, в котором стоит задуматься о применении Vuex. Например, мы работаем над блогом со статьями и комментариями, которые можно создавать, редактировать и удалять. При этом у нас есть панель администрирования, позволяющая блокировать и добавлять пользователей.

Посмотрим, как это реализуется с помощью Vuex. На рис. 10.2 видно, что компонент EditBio является дочерним по отношению к панели администратора. Ему нужен доступ к информации о пользователе, чтобы он мог ее обновить. Работая с Vuex, мы можем обратиться к центральному хранилищу, изменить данные и сохранить изменения непосредственно из компонента EditBio. Это намного лучше, чем передавать информацию из корневого экземпляра Vue.js в компонент Admin, а затем в EditBio с помощью входных параметров. Нам было бы сложно уследить за данными, размещенными в разных местах.

Свернуть

Купить:

Путь PYTON. Черный пояс по разработке, масштабированию, тестированию и развертыванию

Book Cover: Путь PYTON. Черный пояс по разработке, масштабированию, тестированию и развертыванию

Купить:

"Путь Python" позволяет отточить ваши профессиональные навыки и узнать как можно больше о возможностях самого популярного языка программирования. Эта книга написана для разработчиков и опытных программистов. Вы научитесь писать эффективный код, создавать лучшие программы за минимальное время и избегать распространенных ошибок. Пора познакомиться с многопоточными вычислениями и мемоизацией, получить советы экспертов в области дизайна API и баз данных, а также заглянуть внутрь Python, чтобы расширит понимание языка.
Вам предстоит начать проект, поработать с версиями, организовать автоматическое тестирование и выбрать стиль программирования для конкретной задачи. Потом вы перейдете к изучению эффективного объявления функции, выбору подходящих структур данных и библиотек, созданию безотказных программ, пакетам и оптимизации программ на уровне байт-кода.
Из этой книги вы узнаете как:
- Создавать и использовать эффективные декораторы и методы
- Работать в функциональном стиле
- Расширять flake8 для работы с абстрактным синтаксическим деревом
- Использовать динамический анализ производительности для определения узких мест
Работать с реляционными базами данных и эффективно управлять потоковыми данными с помощью PostgreSQL.
Поднимите навыки владения Python с базового на высокий уровень. Получите советы экспертов и станьте профи!

Excerpt:

Параллельный запуск тестов

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

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

Читать далее

Для этого в pytest есть плагин pytest-xdist, который можно установить с помощью pip. Этот плагин расширяет командную строку pytest аргументом ––numprocesses (сокращенно –n), принимающим в качестве аргумента количество используемых ядер. Запуск pytest –n 4 запустит тестовый набор в четырех параллельных процессах, сохраняя баланс между загруженностью доступных ядер.

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

Создание объектов, используемых в тестах, с помощью фикстур

В модульном тестировании часто придется выполнять набор стандартных операций до и после запуска теста, и эти инструкции задействуют определенные компоненты. Например, может понадобиться объект, который будет выражать состояние конфигурации приложения, и он должен инициализироваться перед каждым тестированием, а потом сбрасываться до начальных значений после выполнения. Аналогично, если тест зависит от временного файла, этот файл должен создаваться перед тестом и удаляться после. Такие компоненты называются фикстурами. Они устанавливаются перед тестированием и пропадают после его выполнения.

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

Свернуть

Купить:

Изучаем SQL (Алан Бьюли)

Book Cover: Изучаем SQL (Алан Бьюли)

Описание

Книга Алана Бьюли, эксперта по языку SQL, - прекрасный учебник для тех, кто еще не знает, но хочет освоить этот язык. Книга не только позволит приобрести начальные знания, но и расскажет о наиболее часто употребляемых мощных средствах языка SQL, используемых опытными программистами. Многие книги, посвященные SQL, грешат скучным изложением основ. Здесь же автор в стиле живого рассказа обсуждает SQL-выражения и блоки, различные типы условий, показывает, как посредством соединения таблиц создавать запросы к нескольким таблицам, рассматривает наборы данных и как они могут взаимодействовать в запросах, демонстрирует встроенные и агрегатные функции, показывает, как и где используются подзапросы. Подробно описаны различные типы соединений таблиц, применение условной логики, работа с транзакциями, индексы и ограничения.
Поскольку лучший способ изучения SQL - это практика, автор создает учебную базу данных MySQL и приводит множество вариантов реальных запросов, охватывающих весь теоретический материал. При таком подходе не научиться просто невозможно. Примеры кода можно использовать в своих программах и документации.

Книга предназначена разработчикам приложений БД, администраторам БД и тем, кто создает отчеты.

Секреты CSS. Идеальные решения ежедневных задач (Леа Веру)

Book Cover: Секреты CSS. Идеальные решения ежедневных задач (Леа Веру)

Руководство знакомит читателя с недокументированными способами, позволяющими найти элегантные решения для самых тривиальных задач веб-дизайна. В основу её положены лекции автора на многих специализированных конференциях веб-разработчиков. В книге приводится обзор самых актуальных тем, начиная от взаимодействия с пользователем до типографики и методики создания визуальных эффектов. Основная задача книги «Секреты CSS» — рассмотреть возможности мало исследованные в распространенных справочных материалах и задать направление в использовании всех полезных свойств CSS для их повседневных решений. Представленная книга не учебник для начинающих и адресована читателям знакомым с CSS, препроцессорами, понимающих простейший код JavaScript и не «плавающих» в математике уровня средней школы.

Оглавление

I. Введение 25
Веб-стандарты: свои или чужие? 26
Советы по написанию CSS-кода 34

II. Фон и рамки 49
1. Полупрозрачные рамки 50
2. Несколько рамок 53
3. Гибкое позиционирование фона 57
4. Внутреннее скругление 61
5. Фон в полоску 64
6. Сложные фоновые узоры 73
7. (Псевдо)случайные фоны 85
8. Сплошные рамки для изображений 90

III. Фигуры 97
9. Гибкие эллипсы 98
10. Параллелограммы 105
11. Изображения в форме ромба 109
12. Срезанные углы 114
13. Вкладки в форме трапеций 125
14. Простые секторные диаграммы 131

IV. Визуальные эффекты 145
15. Односторонние тени 146
16. Падающие тени неправильной формы 150
17. Создание цветового тона 154
18. Эффект матированного стекла 160
19. Эффект загнутого уголка 169

V. Оформление текста 179
20. Расстановка переносов 180
21. Вставка разрыва строки 183
22. Полосатая заливка строк текста 188
23. Корректировка величины табуляции 192
24. Лигатуры 194
25. Причудливые амперсанды 197
26. Настройки подчеркивания 203
27. Реалистичные текстовые эффекты 207
28. Текст по кругу 216

VI. Взаимодействие с пользователем 223
29. Выбор правильного указателя мыши 224
30. Расширение области, реагирующей на щелчок мыши 229
31. Уникальные флажки 233
32. Ослабление значимости путем затемнения 238
33. Ослабление значимости путем размытия 243
34. Подсказки о прокрутке 247
35. Интерактивное сравнение изображений 253

VII. Структура и макет 263
36. Определение размера изнутри 264
37. Укрощение ширины столбцов таблиц 267
38. Стилизация путем подсчета смежных элементов 271
39. Текучий фон, фиксированное содержимое 277
40. Центрирование по вертикали 281
41. Липкие нижние колонтитулы 288

VIII. Переходы и анимация 293
42. Эластичные переходы 294
43. Покадровая анимация 306
44. Мерцание 311
45. Имитация ввода текста 315
46. Плавная анимация состояния 321
47. Анимация вдоль окружности 326

Основы логики (Вячеслав Бочаров, Владимир Маркин)

Book Cover: Основы логики (Вячеслав Бочаров, Владимир Маркин)

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

СОДЕРЖАНИЕ

От авторов
Глава I. Предмет и основные понятия логики
Глава II. Классическая логика высказываний
Глава III. Классическая логика предикатов
Глава IV. Теория дедуктивных рассуждений
Глава V. Силлогистика
Глава VI. Понятие
Глава VII. Определение
Глава VIII. Правдоподобные рассуждения
Предметный указатель

Алгоритмы: построение и анализ (Томас Кормен, Чарльз Лейзерсон)

3-е издание

Book Cover: Алгоритмы: построение и анализ (Томас Кормен, Чарльз Лейзерсон)

Книга Алгоритмы: построение и анализ удачно объединяет в себе полноту охвата и строгость изложения материала. Много книг, посвященных алгоритмам, отличается строгостью изложения материала, но страдает определенной неполнотой; другие книги охватывают огромный объем материала, но недостаточно строго излагают его. В книге Алгоритмы: построение и анализ описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения. Алгоритмы в книге Алгоритмы: построение и анализ описаны простым человеческим языком и с применением псевдокода, который понятен любому, кто хоть в небольшой степени знаком с программированием, а пояснения принципов их работы даны без излишней математической строгости и требуют лишь элементарных знаний.

Первое издание книги Алгоритмы: построение и анализ давно стало стандартным справочным руководством для профессионалов и учебным пособием для университетов. Второе издание было дополнено новыми главами, раскрывающими такие темы, как вероятностный анализ и рандомизированные алгоритмы, линейное программирование. Третье издание также существенно дополнено и пересмотрено. В него вошли две совершенно новые главы, посвященные деревьям ван Эмде Боаса и многопоточным алгоритмам, а глава, посвященная рекуррентности, существенно расширена.

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

Фундаментальный труд Алгоритмы: построение и анализ известных специалистов в области информатики достоин занять место на полке любого человека, чья деятельность так или иначе связана с вычислительной техникой и алгоритмами:

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

Каждый может найти в ней именно тот материал, который касается интересующей его темы и представлен именно с тем уровнем сложности и строгости, который требуется читателю.

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

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

Данная книга будет не лишней как на столе студента и аспиранта, так и на рабочей полке практикующего программиста.

Об авторах

Томас Кормен - профессор информатики в колледже Дартмута и бывший директор Института литературы и риторики Дартмутского колледжа.

Чарльз Лейзерсон - профессор информатики и электротехники в Массачуссетском технологическом институте, где также работает и профессор Рональд Ривест.

Клиффорд Штайн - профессор организации производства и исследования операций в Колумбийском университете.

Командная строка Linux. Полное руководство (Уильям Шоттс)

Book Cover: Командная строка Linux. Полное руководство (Уильям Шоттс)

Купить:

Уильям Шоттс знакомит вас с истинной философией Linux. Вы уже знакомы с Linux и настала пора нырнуть поглубже и познакомиться с возможностями командной строки. Командная строка - всегда с вами, от первого знакомства до написания полноценных программ в Bash - самой популярной оболочке Linux . Познакомьтесь с основами навигации по файловой системе, настройки среды, последовательностями команд, поиском по шаблону и многим другим. Прочитав эту книгу вы легко научитесь создавать и удалять файлы, каталоги и символьные ссылки; администрировать систему, включая сетевое оборудование, установку пакетов и управление процессами; редактировать файлы; писать скрипты для автоматизации общих или рутинных задач; выполнять любые работы с текстовыми файлами.
Преодолев начальный страх перед оболочкой Linux, вы поймете, что командная строка - это естественный, логичный и простой способ общения с компьютером. И не забывайте протирать пыль с мышки.

Excerpt:

Я хочу поведать вам историю. Нет, не о том, как в 1991-м Линус Торвальдс создал первую версию ядра Linux. Эту историю вы прочитаете в других книгах о Linux. Я не стану рассказывать вам, как несколькими годами ранее Ричард Столлман начал проект GNU по созданию свободной Unix-подобной операционной системы. И эту апокрифическую историю можно узнать из других книг о Linux. Но я хочу рассказать, как можно вернуть управление своим компьютером.
В конце 1970-х, когда я, будучи студентом колледжа, только начинал заниматься компьютерами, еще продолжалась IT-р

Читать далее

еволюция. Появление микропроцессора сделало возможным приобретение компьютеров простыми людьми, такими как вы или я. Сегодня многим трудно представить себе мир, в котором компьютеры (огромные вычислительные машины) принадлежали только крупным компаниям и правительствам, а обычным людям они были недоступны. Современный мир сильно изменился. Компьютеры повсюду, от крошечных на-
ручных часов до гигантских вычислительных центров, разбросанных по всему миру. Вдобавок к вездесущим компьютерам у нас появились и сети, связывающие их друг с другом, и, благодаря всему этому, для нас начался новый век небывалых личных возможностей и творческой свободы. Но обратили ли вы внимание, что за последние два десятилетия стало происходить кое-что еще? Одна гигантская корпорация захватила контроль над большинством компьютеров в мире и стала
решать за вас, что можно и что нельзя делать с ним. Множество людей по всему миру противостоят этому. Они борются за сохранение контроля над своими компьютерами, создавая собственное программное обеспечение. Они строят Linux. Сейчас принято употреблять термин «свобода» в отношении Linux, но я не думаю, что большинство знает, что в действительности подразумевается под свободой. Свобода — это возможность самому решать, что будет делать ваш компьютер, и единственный путь к достижению этой свободы — знание того, что он делает.
Свобода — это компьютер без секретов, в котором все можно узнать, если только не лениться.

Свернуть

Купить:

Git для профессионального программиста (Скотт Чакон, Бен Штрауб)

Book Cover: Git для профессионального программиста (Скотт Чакон, Бен Штрауб)

Купить:

Эта книга представляет собой обновленное руководство по использованию Git в современных условиях. С тех пор как проект Git - распределенная система управления версиями - был создан Линусом Торвальдсом, прошло много лет, и система Git превратилась в доминирующую систему контроля версий, как для коммерческих целей, так и для проектов с открытым исходным кодом. Эффективный и хорошо реализованный контроль версий необходим для любого успешного веб-проекта. Постепенно эту систему приняли на вооружение практически все сообщества разработчиков ПО с открытым исходным кодом. Появление огромного числа графических интерфейсов для всех платформ и поддержка IDE позволили внедрить Git в операционные системы семейства Windows. Второе издание книги было обновлено для Git-версии 2.0 и уделяет большое внимание GitHub.

Excerpt:

Если ваша цель — приступить к работе с Git, прочитав всего одну главу, то эта глава перед вами. Именно здесь вы найдете описания базовых команд, необходимых для решения подавляющего большинства возникающих в процессе использования Git задач. Прочитав эту главу, вы научитесь настраивать и инициализировать репозитории, начинать и прекращать слежение за файлами, индексировать и фиксировать изменения. Заодно мы покажем вам, как заставить Git игнорировать отдельные файлы и их группы, как быстро и просто отменить ошибочные изменения, как посмотр

Читать далее

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

Свернуть

Паттерны проектирования (Эрик Фримен, Элизабет Фримен)

Book Cover: Паттерны проектирования (Эрик Фримен, Элизабет Фримен)

В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга. Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.