Вы готовы сделать шаг вперед в веб-программировании и перейти от верстки в HTML и CSS к созданию полноценных динамических страниц? Тогда пришло время познакомиться с самым "горячим" языком программирования - JavaScript!![]()
Изучаем программирование на JavaScript
С помощью этой книги вы узнаете все о языке JavaScript - от переменных до циклов.
Вы поймете, почему разные браузеры по-разному реагируют на код и как написать универсальный код, поддерживаемый всеми браузерами.
ам станет ясно, почему с кодом JavaScript никогда не придется беспокоиться о перегруженности страниц и ошибках передачи данных.
Не пугайтесь, даже если ранее вы не написали ни одной строчки кода, - благодаря уникальному формату подачи материала эта книга с легкостью проведет вас по всему пути обучения: от написания простейшего скрипта до создания сложных веб-проектов, которые будут работать во всех современных браузерах.
Особенностью этого издания является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных книг, посвященных программированию.
Формат: PDF
Вы используете мобильную версию
перейти на Полную версию сайта
Новые складчины | страница 34
Страница 34 из 34
-
- Хобби и рукоделие
- Кулинария
- Нейросети и искусственный интеллект
- Дети и родители
- Курсы по психологии и личностному развитию
- Курсы дизайна
- Похудение, фитнес и спорт
- Здоровье
- Пикап, секс, отношения
- Раскрутка, SEO и SMM
- Курсы по фото и их обработке
- Курсы по эзотерике
- Бизнес
- Маркетплейсы (Wildberries, Ozon и другие)
- Имидж и стиль
- Курсы по программированию
- Курсы по администрированию
- Съемка и монтаж видео
- Курсы по музыке
- Строительство и ремонт
- Книги
- Школа и репетиторство
- Культура, история и искусство
- Иностранные языки
- Переводы курсов
- Копирайтинг и писательское мастерство
- Отдых и путешествия
- Инфобизнес
- Бухгалтерия и финансы
- Сад и огород
- Криптовалюта обучение
- Форекс, инвестиции, биржевая торговля
- Шаблоны и темы
- Программы, скрипты
- Базы и каталоги
- Авто-мото
- Схемы заработка
- Складчина на спортивные прогнозы
- Авторские складчины
- Доступ к платным ресурсам
- Другие тематики
-
Изучаем программирование на JavaScript (Эрик Фримен, Элизабет Робсон)
1 сен 2022
Ответов: 1 -
Современное Проектирование на C++ (Андрей Александреску)
1 сен 2022
Стратегии и классы стратегий позволяют реализовать безопасные, эффективные и легко настраиваемые элементы проектных решений.![[IMG]](proxy14p.php?image=https%3A%2F%2Fimg4.labirint.ru%2Frc%2Fd84437e2becfbec6bd5666da84ed9e69%2F363x561q80%2Fbooks52%2F512944%2Fcover.jpg%3F1563865421&hash=09c192d274cb4efa0c969963f0e94c33&v=4)
Современное Проектирование на C++
Стратегия (policy) определяет интерфейс обычного или шаблонного класса.
Этот интерфейс состоит из определения внутренних типов, функций-членов и переменных-членов.
Понятие стратегии имеет много общего с характеристиками (traits) (Alexandrescu, 2000а), но отличается тем, что в них меньше внимания уделяется типам и больше - поведению.
Кроме того, понятие стратегии, предложенное нами, напоминает стратегии проектирования (Gamma et al., 1995), но в отличие от них классы стратегий связываются на этапе компиляции.
Например, определим стратегию для создания объектов. Стратегия creator описывает шаблонный класс типа т.
Этот шаблонный класс должен предоставить функцию-член с именем create, не имеющую аргументов и возвращающую указатель на объект класса т. Это означает, что каждый вызов функции Create должен возвращать указатель на новый объект класса т. Точный режим создания объекта определяется во время реализации стратегии.
Предисловие Скотта Мейерса 11
Предисловие Джона Влиссидеса 15
Предисловие 17
Аудитория 18
Библиотека Loki 19
Структура книги 20
Благодарности 21
Часть I. Методы 23
Глава 1. Разработка классов на основе стратегий 25
1.1. Разнообразие методов разработки программного обеспечения 25
1.2. Недостатки универсального интерфейса 26
1.3. Опасно ли множественное наследование? 28
1.4. Преимущества шаблонов 29
1.5. Стратегии и классы стратегий 30
1.5.1. Реализация классов стратегий с помощью шаблонных параметров 32
1.5.2. Реализация классов стратегий с помощью шаблонных функций-членов 34
1.6. Расширенные стратегии 34
1.7. Деструкторы классов стратегий 35
1.8. Факультативные возможности, предоставляемые неполной конкретизацией 36
1.9. Комбинирование классов стратегий 37
1.10. Настройка структур с помощью классов стратегий 39
1.11. Совместимые и несовместимые стратегии 39
1.12. Разложение классов на стратегии 41
1.13. Резюме 43 Глава 2. Приемы программирования 45
Глава 2.
2.1. Статическая проверка диагностических утверждений 46
2.2. Частичная специализация шаблонов 48
2.3. Локальные классы 50
2.4. Отображение целочисленных констант в типы 51
2.5. Отображение одного типа в другой 53
2.6. Выбор типа 54
2.7. Распознавание конвертируемости и наследования на этапе компиляции 56
2.8. Оболочка вокруг класса type_info 59
2.9. Классы NullType и EmptyType 61
2.10. Характеристики типов 61
2.10.1. Реализация характеристик указателей 62
2.10.2. Распознавание основных типов 63
2.10.3. Оптимальные типы параметров 64
2.10.4. Удаление квалификаторов 65
2.10.5. Применение класса TypeTraits 66
2.10.6. Заключение 67
2.11. Резюме
Глава 3. Списки типов
3.1. Зачем нужны списки типов
3.2. Определение списков типов
3.3. Линеаризация создания списков типов
3.4. Вычисление длины списка
3.5. Интермеццо
3.6. Индексированный доступ
3.7. Поиск элемента
3.8. Добавление элемента
3.9. Удаление элемента
3.10. Удаление дубликатов
3.11. Замена элемента
3.12. Частично упорядоченные списки типов
3.13. Генерация класса на основе списка типов
3.13.1. Генерация распределенных иерархий
3.13.2. Генерация кортежей
3.13.3. Генерация линейных иерархий
3.14. Резюме
3.15. Краткое описание класса Typelist
Глава 4. Размещение в памяти небольших объектов
4.1. Стандартный механизм распределения динамической памяти
4.2. Как работает стандартный механизм распределения динамической
4.3. Распределитель памяти для небольших объектов
4.4. Класс Chunk
4.5. Класс FixedAllocator
4.6. Класс SmallObjAllocator
4.7. Трюк
4.8. Просто, сложно и снова просто
4.9. Применение
4.10. Резюме
4.11. Краткое описание механизма распределения памяти для небольших объектов
Часть II. Компоненты
Глава 5. Обобщенные функторы
5.1. Шаблон Command
5.2. Шаблон Command в реальном мире
5.3. Вызываемые сущности в языке C++
5.4. Скелет шаблонного класса Functor
5.5. Реализация оператора пересылки Functor:
perator()
5.6. Работа с функторами
5.7. Один пишем, два в уме
5.8. Преобразование типов аргументов и возвращаемого значения
5.9. Указатели на функции-члены
5.10. Связывание
5.11. Сцепление 143
5.12. Первая практическая проблема: стоимость функций пересылки 144
5.13. Вторая практическая проблема: распределение динамической памяти 146
5.14. Реализация операций Undo и Redo с помощью класса Functor 147
5.15. Резюме 148
5.16. Краткое описание класса Functor 148
Глава 6. Реализация шаблона Singleton 151
6.1. Статические данные + статические функции != синглтон 152
6.2. Основные идиомы языка C++ для поддержки синглтонов 153
6.3. Обеспечение уникальности синглтонов 154
6.4. Разрушение объектов класса Singleton 155
6.5. Проблема висячей ссылки 157
6.6. Проблема адресации висячей ссылки (I): феникс 159
6.6.1. Проблемы, связанные с функцией atexit 161
6.7. Проблема адрерации висячей ссылки (II): синглтон с заданной продолжительностью жизни 162
6.8. Реализация синглтонов, имеющих заданную продолжительность жизни 164
6.9. Продолжительность жизни объектов в многопоточной среде 167
6.9.1. Шаблон блокировки с двойной проверкой 168
6.10. Сборка 170
6.10.1. Разложение класса SingletonHolder на стратегии 171
6.10.2. Требования, предъявляемые к стратегиям класса SingletonHolder 171
6.10.3. Сборка класса SingletonHolder 172
6.10.4. Реализации стратегий 174
6.11. Работа с классом SingletonHodler 175
6.12. Резюме 176
6.13. Краткое описание шаблонного класса SingletonHolder 177
Глава 7. Интеллектуальные указатели 179
7.1. Сто первое описание интеллектуальных указателей 179
7.2. Особенности интеллектуальных указателей 180
7.3. Хранение интеллектуальных указателей 182
7.4. Функции-члены интеллектуальных указателей 183
7.5. Стратегии владения 185
7.5.1. Глубокое копирование 185
7.5.2. Копирование при записи 186
7.5.3. Подсчет ссылок 187
7.5.4. Связывание ссылок 189
7.5.5. Разрушающее копирование 190
7.6. Оператор взятия адреса 192
7.7. Неявное приведение к типам обычных указателей 193
7.8. Равенство и неравенство 195
7.9. Отношения порядка 200
7.10. Обнаружение и регистрация ошибок 202
7.10.1. Проверка во время инициализации 202
7.10.2. Проверка перед разыменованием 203
7.10.3. Сообщения об ошибках 203
7.11. Интеллектуальные указатели на константные объекты и константные интеллектуальные указатели 204
7.12. Массивы 205
7.13. Интеллектуальные указатели и многопоточность 205
7.13.1. Многопоточность на уровне объектов 205
7.13.2. Многопоточность на уровне регистрации данных 207
7.14. Сборка 209
7.14.1. Многопоточность на уровне объектов 210
7.14.2. Стратегия Ownership 212
7.14.3. Стратегия Conversion 214
7.14.4. Стратегия Checking 214
7.15. Резюме 215
7.16. Краткий обзор класса SmartPtr 216 Глава 8. Фабрики объектов 217
Глава 8.
8.1. Для чего нужны фабрики объектов 218
8.2. Фабрики объектов в языке C++: классы и объекты 220
8.3. Реализация фабрики объектов 221
8.4. Идентификаторы типов 225
8.5. Обобщение 227
8.6. Мелкие детали 230
8.7. Фабрика клонирования 231
8.8. Использование фабрики объектов в сочетании с другими обобщенными компонентами 234
8.9. Резюме 235
8.10. Краткий обзор шаблонного класса Factory 235
8.11. Краткий обзор шаблонного класса CloneFactory 236
Глава 9. Шаблон Abstract Factory 239
9.1. Архитектурная роль шаблона Abstract Factory 239
9.2. Обобщенный интерфейс шаблона Abstract Factory 242
9.3. Реализация класса AbstractFactory 245
9.4. Реализация шаблона Abstract Factory на основе прототипов 249
9.5. Резюме 252
9.6. Краткий обзор классов AbstractFactory и ConcreteFactory 253
Глава 10. Шаблон Visitor. 255
10.1. Основы шаблона Visitor 255
10.2. Перегрузка и функция-ловушка 261
10.3. Уточнение реализации: шаблон Acyclic Visitor 262
10.4. Обобщенная реализация шаблона Visitor 268
10.5. Назад - к "простому" шаблону Visitor 274
10.6. Отладка вариантов 277
10.6.1. Функция-ловушка 277
10.6.2. Нестрогое инспектирование 279
10.7. Резюме 279
10.8. Краткий обзор обобщенных компонентов шаблона Visitor 280
Глава 11. Мультиметоды 281
11.1. Что такое мультиметоды? 282
11.2. Когда нужны мультиметоды 282
11.3. Двойное переключение по типу: грубый подход 284
11.4. Автоматизированный грубый подход 286
11.5. Симметричность грубого подхода 290
11.6. Логарифмический двойной диспетчер 294
11.6.1. Логарифмический диспетчер и наследование 296
11.6.2. Логарифмический диспетчер и приведение типов 297
11.7. Класс FnDispatcher и симметрия 299
11.8. Двойная диспетчеризация функторов 300
11.9. Преобразование аргументов: static_cast или dynamic_cast? 302
11.10. Мультиметоды с постоянным временем выполнения 307
11.11. Классы BasicDispatcher и Basic FastDispatcher как стратегии 310
11.12. Перспективы 311
11.13. Резюме 312
11.14. Краткий обзор двойных диспетчеров 314
Приложение. Многопоточная библиотека в стиле минимализма 319
П.1. Критика многопоточности 320
П.2. Подход, реализованный в библиотеке Loki 321
П.З. Атомарные операции с целочисленными типами 321
П.4. Мьютексы 323
П.5. Семантика блокировки в объектно-ориентированном программировании 325
П.6. Модификатор volatile 327
П.7. Семафоры, события и другие полезные вещи 327
П.8. Резюме 327
Библиография 329
Предметный указатель.
Год издания: 2002, 2008
Формат: PDF
Ссылка на тему: Современное Проектирование на C++ (Андрей Александреску)Ответов: 1 -
Рефакторинг кода на JavaScript: улучшение проекта существующего кода (Мартин Фаулер)
1 сен 2022
Рефакторинг уже давно и прочно занимает достойное место среди технологий программирования, и не в последнюю очередь благодаря Мартину Фаулеру - автору одной из тех книг, которые написаны "на все времена".![[IMG]](proxy14p.php?image=https%3A%2F%2Fi.postimg.cc%2FGpF5f8Zp%2Fimage.jpg&hash=7df15e4ffe38e9bd1cc197cc1cd47811&v=4)
Рефакторинг кода на JavaScript: улучшение проекта существующего кода
Сам принцип рефакторинга прост: это последовательность небольших шагов, таких как перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и его превращение в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый такой шаг выглядит настолько просто и естественно, что кажется удивительным - о чем здесь можно писать?
Однако кумулятивный эффект от таких малых изменений состоит в существенном улучшении архитектуры существующего кода.
Мартин Фаулер и другие высококлассные специалисты в области объектно-ориентированного программирования, принявшие участие в написании этой книги, изложили принципы и наиболее эффективные методики выполнения различных рефакторингов и показали, когда и как следует изучать код с целью его улучшения. В книге подробно описано более 60 методов рефакторинга, причем с практическими примерами на языке программирования JavaScript.
Применение JavaScript и описание "рефакторинга без классов" является одним из отличий нового издания книги от старого. Если первое издание книги можно было сравнить с хорошим вином, которое со временем становится только ценнее, то второе издание можно сравнить с шампанским - идеи в книге опьяняют, а их изложение искрится и играет…
Это издание классической книги достойно того, чтобы занять свое место на книжной полке каждого серьезного программиста - вне зависимости от используемого языка программирования. Более двадцати лет опытные программисты во всем мире использовали книгу Мартина Фаулера Рефакторинг, когда им нужно было улучшить проект существующего кода, повысить удобство сопровождения программного обеспечения или облегчить понимание существующего кода. Это - такое долгожданное - новое издание было полностью обновлено, чтобы отразить важные изменения в области программирования.
Второе издание книги содержит обновленный каталог рефакторингов и включает примеры кода на JavaScript, а также новые функциональные примеры, демонстрирующие рефакторинг без классов. Как и в первом издании, здесь объясняется, что такое рефакторинг, почему вы должны прибегать к рефакторингу, как распознать код, который нуждается в рефакторинге, и как успешно его провести независимо от того, какой язык программирования вы используете.
Основные темы книги:
- Понимание процесса и общих принципов рефакторинга;
- Быстрое применение полезных рефакторингов для облегчения понимания и изменения программ;
- Распознавание запаха в коде, который сигнализирует о возможном применении рефакторинга;
- Каталог рефакторингов с объяснениями, мотивацией, техникой применения и простыми примерами;
- Создание надежных тестов для рефакторингов;
- Компромиссы и препятствия на пути рефакторинга.
Формат: PDF
Ссылка на тему: Рефакторинг кода на JavaScript: улучшение проекта существующего кода (Мартин Фаулер)Ответов: 1 -
JavaScript. Сильные стороны (Дуглас Крокфорд)
1 сен 2022
Любой язык программирования имеет свои сильные и слабые стороны, однако язык JavaScript в большей степени состоит из последних, так как был разработан в спешке и практически не отлаживался.
JavaScript. Сильные стороны
В этой книге среди множества самых ужасных JavaScript-конструкций выделены наиболее надежные, понятные и удобные в сопровождении – то подмножество языка, которое позволяет создавать по-настоящему расширяемый и эффективный код.
Автор – уважаемый среди разработчиков эксперт в области JavaScript – выделяет массу интересных идей, которые делают JavaScript прекрасным объектно-ориентированным языком программирования.
Эта книга откроет вам красивый, элегантный, простой и выразительный язык программирования, позволяющий создавать эффективный код независимо от того, управляете вы библиотеками объектов или просто пытаетесь заставить Ajax работать быстрее.
Если вы разрабатываете сайты или приложения для Интернета, эта книга вам просто необходима.
Формат: PDF
Ссылка на тему: JavaScript. Сильные стороны (Дуглас Крокфорд)Ответов: 1 -
Head First. Паттерны проектирования. Обновленное юбилейное издание (Эрик Фримен, Элизабет Фримен)
1 сен 2022
Больше 12 лет прошло с момента выхода первого издания книги, но она продолжает оставаться актуальной. Основные идеи не изменились, но изменился язык Java, например, появились лямбда-выражения. Поэтому авторы приняли решение обновить легендарную книгу и выпустить юбилейное издание.![[IMG]](proxy14p.php?image=https%3A%2F%2Fi.postimg.cc%2FcLLvbJsW%2FHead-First.jpg&hash=f369bae769e5b11e8ce22fe648d23496&v=4)
Head First. Паттерны проектирования. Обновленное юбилейное издание. 2018
В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга.
Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме.
Особенностью данного издания является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.
Формат: PDF
Ссылка на тему: Head First. Паттерны проектирования. Обновленное юбилейное издание (Эрик Фримен, Элизабет Фримен)Ответов: 1
Страница 34 из 34