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

Index

  • 0 — Language Agnostic
    • Архитектура приложений
    • Облачные Вычисления
    • Парадигмы Программирования
    • Работа c cетью
    • Управление конфигурациями
    • Экосистема открытого исходного кода
    • IDE and editors
  • Assembly
  • Bash
  • C
  • C#
  • C++
  • Clojure
  • CoffeeScript
  • Elasticsearch
  • Elixir
  • Erlang
  • Git
  • Go
  • Haskell
  • HTML and CSS
    • Bootstrap
  • Java
    • Android
    • EasyMock
    • Hibernate
    • JDBC
    • JUnit
    • Maven
    • Spring
    • Swing UI
  • JavaScript
    • AngularJS
    • jQuery
    • Node.js
    • nuxt.js
    • React
    • vue.js
  • Kotlin
  • LaTeX
  • Lisp
  • MetaPost
  • .NET
  • NoSQL
  • Objective-C
  • Perl
  • PHP
    • CakePHP
    • CodeIgniter
    • Laravel
    • Symfony
  • Python
    • Django
    • Jupyter Notebook
    • NumPy
    • Pycharm
  • R
  • Ruby
    • RSpec
    • Ruby on Rails
  • Rust
  • Scala
  • Scilab
  • Scratch
  • Smalltalk
  • SQL
    • FirebirdSQL
    • PostgreSQL
  • Swift
  • TypeScript
    • Angular
  • Unix

0 — Language Agnostic

  • Введение в методы машинной обработки данных — Курносов М.Г. (PDF)
  • Операционные системы — Всеволод Дёмкин (PDF)
  • Параллельные технологии
  • Программирование: введение в профессию — Столяров Андрей Викторович (PDF)
  • Руководство по HTTP — Евгений Сулейманов
  • Руководство по SOAP — Евгений Сулейманов
  • Структура и интерпретация компьютерных программ — Гарольд Абельсон, Джералд Джей Сассман (PDF)
  • Тестирование программного обеспечения. Базовый курс. — Святослав Куликов (PDF)
  • Эффективные алгоритмы и сложность вычислений — Кузюрин Н.Н., Фомин С.А.
  • E-maxx.ru: Сборник алгоритмов с примерами на C++ (PDF)
  • Scrum и XP: заметки с передовой (PDF)

Архитектура приложений

  • The API — Сергей Константинов (HTML, PDF, EPUB)

Облачные вычисления

  • Программирование Cloud Native. Микросервисы, Docker и Kubernetes — Иван Портянкин (PDF, EPUB, MOBI)
  • Разработка мультитенантных приложений для облака, издание 3-е

Парадигмы программирования

  • Введение в функциональное программирование — John Harrison
  • Практика функционального программирования — журнал
  • Рефакторинг на максималках — Александр Беспоясов

Работа с сетью

  • Наука о Сетях — Альберто Лазло-Барабаси (🚧 in process)
  • Разъяснение HTTP2 — Даниэль Штенберг (PDF)
  • IPv6 для знатоков IPv4 — Ярослав Тихий (PDF, HTML, EPUB)

Управление конфигурациями

  • Пособие по Ansible — Michel Blanc

Экосистема открытого исходного кода

  • Архитектура приложений с открытым исходным кодом

IDE and editors

  • Поваренная Книга Vim — Steve Oualline
  • Просто о Vim — Swaroop (PDF)

Assembly

  • Ассемблер в Linux для программистов C — Викиучебник
  • Ассемблер для чайников
  • Программирование на языке ассемблера NASM для ОС Unix — Андрей Столяров (PDF)

Bash

  • Advanced Bash-Scripting Guide

C

  • Заметки о языке программирования Си/Си++ — Денис Юричев (PDF)
  • Краткое руководство Beej к GDB — Brian «Beej Jorgensen» Hall (HTML)
  • Особенности языка C. Учебное пособие — C. Шапошникова (PDF)
  • Разработка сетевых приложений (PDF)
  • Руководство по языку программирования C — Евгений Попов
  • Сетевое программирование от Биджа — Использование Интернет Сокетов — Brian «Beej Jorgensen» Hall, Перевод Андрея Косенко (PDF)
  • Си/Си++. От дилетанта до профессионала — Романов Е.Л.
  • Язык Си в примерах — Викиучебник

C#

  • Паттерны проектирования в C# и .NET — Евгений Попов
  • Полное руководство по языку программирования С# 7.0 и платформе .NET 4.7 — Евгений Попов
  • Сетевое программирование в С# и .NET — Евгений Попов
  • Design Patterns via C# — Александр Шевчук, Дмитрий Охрименко, Андрей Касьянов (PDF) (Требуется аккаунт)

C++

  • Введение в язык программирования С++ — Бьерн Страуструп
  • Введение в язык Си++ — Андрей Столяров (PDF)
  • Вводный курс по объектно-ориентированному программированию на языке Си++ — Викиучебник
  • Руководство по языку программирования C++ — Евгений Попов
  • Справочное руководство по C++ — Бьерн Страуструп
  • Уроки по OpenGL 3 — Гуревич Артём

Clojure

  • Введение в Clojure — Алексей Отт

CoffeeScript

  • Документация CoffeeScript — Jeremy Ashkenas
  • The Little Book on CoffeeScript — перевод Андрея Романова

Elasticsearch

  • Уроки по Elasticsearch

Elixir

  • Уроки программирования на языке Elixir

Erlang

  • Программирование на Эрланге — Джо Армстронг

Git

  • Волшебство Git — Ben Lynn, trl.: Tikhon Tarnavsky, trl.: Mikhail Dymskov, et al. (HTML)
  • Простое руководство по работе с Git — Roger Dudler, trl.: Dmitry Wolf (HTML)
  • Руководство по Git — Евгений Сулейманов (HTML)
  • Pro Git — Scott Chacon, Ben Straub, et al. (HTML, PDF, EPUB, Kindle)

Go

  • Введение в программирование на Go — Калеб Докси
  • Руководство по языку Go — Евгений Попов
  • Эффективный Go
  • Go в примерах (🗃️ archived)
  • Go для PHP-разработчиков — Pavel Tetyaev (gitbook)
  • The Little Go Book (перевод) — Karl Seguin, trl.: Roman Dolgolopov, Evgeny Popov, Alexander Dunin (HTML, EPUB)

Haskell

  • О Haskell по-человечески — Денис Шевченко
  • Учебник по Haskell — Антон Холомьёв
  • Язык и библиотеки Haskell 98 — Simon Peyton Jones
  • Язык программирования Haskell: Учимся быть ленивыми — Г. Коваленко
  • Developing Web Applications with Haskell and Yesod — Майкл Сноймен
  • Haskell: введение в функциональное программирование — В.Н. Власов

HTML and CSS

  • Руководство по HTML5 и CSS3 — Евгений Попов
  • Справочник по HTML — Влад Мержевич
  • Справочник CSS — Влад Мержевич
  • CSS и CSS3 — Елена Назарова
  • HTML и HTML5 — Елена Назарова

Bootstrap

  • Bootstrap 4

Java

  • Руководство по языку программирования Java — Евгений Попов
  • Руководство по Java Core — Евгений Сулейманов
  • Руководство по Servlets — Евгений Сулейманов
  • Самоучитель по Java с нуля — Vertex Academy
  • Собеседование по Java Core
  • Собеседование по Java EE
  • Учебник по Java 8 — Vertex Academy
  • Учебник по Java 9 — Vertex Academy
  • Учебник Java 8 — Фёдор Урванов
  • Язык Java 8
  • Java Basics
  • Java Programming for Kids, Parents and Grandparents — Yakov Fain

Android

  • Программирование под Android — Евгений Попов
  • Уроки по Android

EasyMock

  • EasyMock 3

Hibernate

  • Руководство по Hibernate — Евгений Сулейманов
  • Hibernate

JDBC

  • Руководство по JDBC — Евгений Сулейманов
  • JDBC и Spring JDBC

JUnit

  • Руководство по JUnit — Евгений Сулейманов
  • JUnit 4

Maven

  • Руководство по Maven — Евгений Сулейманов
  • Apache Maven
  • Maven Tutorial — CoderLessons.com

Spring

  • Руководство по Spring — Евгений Сулейманов
  • Spring Framework
  • Spring MVC Tutorial — CoderLessons.com

Swing UI

  • Java Swing: Эффектные пользовательские интерфейсы — Издание второе — Иван Портянкин (PDF, EPUB)

JavaScript

  • Вы не знаете JS (серия книг) — Кайл Симпсон
  • Выразительный JavaScript — Marijn Haverbeke
  • Курс современного JavaScript — bxnotes
  • Онлайн-книга по WebGL — Евгений Попов
  • Паттерны для масштабируемых JavaScript-приложений — Эдди Османи
  • Руководство по JavaScript — Евгений Попов
  • Современный учебник JavaScript — Илья Кантор
  • Учебник по Javascript — CoderLessons.com
  • JavaScript и jQuery — Елена Назарова
  • JavaScript Garden — Иво Ветцель

AngularJS

ℹ️ See also … Angular

  • Онлайн-руководство по AngularJS — Евгений Попов
  • Перевод документации
  • AngularJS Tutorial — CoderLessons.com

jQuery

  • Онлайн-книга «Изучаем jQuery» — Евгений Попов
  • Русская документация по API jQuery
  • jQuery для начинающих — Антон Шевчук
  • JQuery Tutorial — CoderLessons.com

Node.js

  • Руководство по Node.js — Евгений Попов
  • Учебник Node.js — CoderLessons.com
  • Node.js для начинающих — Manuel Kiessling

Nuxt.js

  • Перевод документации

React

  • Перевод документации
  • Руководство по React — Евгений Попов
  • Уроки по React
  • Учебник по фреймворку React
  • Учебник ReactJS — CoderLessons.com

Vue.js

  • Перевод документации
  • Руководство по Vue.js — Евгений Попов
  • VueJS Учебник — CoderLessons.com

Kotlin

  • Руководство по языку Kotlin
  • Руководство по языку Kotlin — Евгений Попов
  • Учебник по Котлину — CoderLessons.com

LaTeX

  • LaTeX за три дня — Андрей Столяров (PDF)
  • LaTeX, GNU/Linux и русский стиль (сборник статей)

Lisp

  • Lisp In Small Pieces (translation)
  • Practical Common Lisp (перевод) (HTML) (🗃️ archived)

MetaPost

  • Создание иллюстраций в MetaPost

.NET

  • Руководство по ADO.NET и работе с базами данных — Евгений Попов
  • Руководство по ASP.NET Core 2.0 — Евгений Попов
  • Руководство по ASP.NET MVC 5 — Евгений Попов
  • Руководство по ASP.NET Web API 2 — Евгений Попов
  • Руководство по EF Core — Евгений Попов
  • Руководство по Entity Framework — Евгений Попов

NoSQL

  • Маленькая книга о MongoDB — Карл Сегуин (PDF)
  • Маленькая книга о Redis — Карл Сегуин
  • Руководство по MongoDB — Евгений Сулейманов

Objective-C

  • Хрестоматия iOS паттернов (PDF)
  • Цикл статей разработки под Apple iOS
  • Become an XCoder

Perl

  • Введение в Perl — Маслов Владимир Викторович
  • Краткий экскурс в Perl-программирование — Докучаев Дмитрий
  • Pragmatic Perl — журнал

PHP

  • Архитектура сложных веб-приложений. С примерами на Laravel — Adel Faizrakhmanov (PDF, EPUB, Kindle)
  • Руководство по PHP
  • Руководство по PHPUnit
  • Самоучитель (учебник) по PHP
  • Учебник по PHP
  • Учебник по PHP 7
  • PHP: Правильный Путь

CakePHP

  • Руководство
  • CakePHP Учебное пособие

CodeIgniter

  • CodeIgniter — Игорь Букша
  • CodeIgniter — Основные понятия
  • CodeIgniter фреймворк

Laravel

  • Документация 5.x
  • Перевод документации
  • Учебник Laravel

Symfony

  • Учебник по Symfony
  • Symfony 5. Быстрый старт

Python

  • Вглубь языка Python (🗃️ archived)
  • Основы программирования на Python — Дмитрий Фёдоров (PDF)
  • Пишем Telegram-ботов на Python (v2) — MasterGroosha
  • Руководство по языку программирования Python — Евгений Попов
  • Самоучитель Python (PDF)
  • Укус Питона — Swaroop C H
  • Учебник Python 2.6 — Викиучебник
  • Problem Solving with Algorithms and Data Structures
  • Python. Введение в объектно-ориентированное программирование — C. Шапошникова
  • Python. Введение в программирование — C. Шапошникова
  • Python. Уроки — Абдрахманов М.И.
  • Python. unittest — Абдрахманов М.И
  • Tkinter. Программирование графического интерфейса — C. Шапошникова

Django

  • Руководство по веб-фреймворку Django — Евгений Попов
  • Руководство Django Girls (1.11) (HTML) (🚧 в процессе написания)

Jupyter Notebook

  • Учебник по Jupyter — CoderLessons.com

NumPy

  • NumPy Tutorial — CoderLessons.com

Pycharm

  • Pycharm — Введение — CoderLessons.com

R

  • Анализ данных с R
  • Рандомизация и бутстреп: статистический анализ в биологии и экологии с использованием R. (PDF)

Ruby

  • Руководство пользователя — matz
  • Учись программировать — Крис Пайн
  • Ruby — Викиучебник
  • Ruby за двадцать минут
  • Ruby Book — Круглов А.

RSpec

  • Better Specs (RSpec Guidelines with Ruby)

Ruby on Rails

  • Ruby on Rails по-русски
  • Ruby on Rails Tutorial. Изучение Rails на Примерах — Майкл Хартл (🗃️ archived)

Rust

  • Растономикон
  • Язык программирования Rust
  • Rust на примерах
  • Rust Tutorial — CoderLessons.com

Scala

  • Путеводитель неофита по Scala (перевод серии статей Даниеля Вестсайда) — Антон Холомьёв
  • Руководство по Scala — Евгений Сулейманов
  • Effective Scala — Marius Eriksen
  • Scala Школа! — Twitter

Scilab

  • Введение в Scilab
  • Программирование в Scilab

Scratch

  • Креативное программирование (PDF)

Smalltalk

  • Смолток: Язык и его реализация — Адэль Голдберг, Дэвид Робсон

SQL

  • Работа с MySQL, MS SQL Server и Oracle в примерах — Святослав Куликов (PDF)
  • Руководство по MS SQL Server 2017 — Евгений Попов
  • Руководство по SQL — Евгений Сулейманов
  • Язык SQL. Базовый курс (PDF)

FirebirdSQL

  • Краткое руководство по миграции на Firebird 4.0 — Denis Simonov (PDF)
  • Руководство по аппаратному обеспечению для Firebird — IBSurgeon (PDF)
  • Руководство по написанию UDR на Pascal — Denis Simonov (PDF, 📦 code examples)
  • Руководство по языку Firebird 3.0 — Denis Simonov, Paul Vinkenug, Dmitry Filippov, Dmitry Emanov, Alexander Karpeikin, Dmitry Kuzmenko, Alexey Kovyazin (PDF)
  • Руководство по языку Firebird 4.0 — Dmitry Filippov, Alexander Karpeikin, Alexey Kovyazin, Dmitry Kuzmenko, Denis Simonov, Paul Vinkenoog, Dmitry Emanov, Mark Rotteveel (PDF)

PostgreSQL

  • Документация (PDF)
  • История о PostgreSQL — Linux Format
  • Работа с PostgreSQL — настройка и масштабирование — А. Ю. Васильев
  • PostgreSQL для начинающих — Luzanov Pavel Veniaminovich, Rogov Yegor Valerievich, Levshin Igor Viktorovich (PDF)

Swift

  • Документация и туториалы
  • Swift Tutorial — CoderLessons.com

TypeScript

  • Карманная книга по TypeScript — Igor Agapov
  • Руководство по TypeScript — Евгений Попов

Angular

ℹ️ See also … AngularJS

  • Руководство по Angular — Евгений Попов
  • Русская версия документация Angular 10 — Alexey Okhrimenko
  • Angular 5. Полное руководство — Maximilian Schwarzmüller

Unix

  • Архитектура операционной системы Unix — Maurice J. Bach, trl.: Крюкова А. В.
  • Введение в системное администрирование UNIX — Мошков Максим Евгеньевич
  • Внутреннее устройство Ядра Linux 2.4 — Tigran Aivazian
  • Перевод Linux kernel and C library.
  • Программирование в Linux с нуля — Nikolay N. Ivanov
  • Руководство программиста для Linux — Sven Goldt, Matt Welsh
  • Энциклопедия программиста Linux — Алексей Паутов
  • Энциклопедия разработчика модулей ядра Linux — Ori Pomerantz
  • Beyond Linux From Scratch (version 2011-12-30) — The BLFS Development Team, trl.: Н.Ромоданов, trl.: Сергея Каминского, trl.: Александра Андреева
  • Linux From Scratch (version 6.8)
  • The Linux Kernel Module Programming Guide — Peter Jay Salzman, Michael Burian, Ori Pomerantz

Стенли Б. Липпман   Жози Лажойе   (перевод: А. Слинкин)

C, C++, C#  

Язык программирования С++. Полное руководство (pdf) Добавлена: 27.01.2023 Версия: 1.017.
ISBN: 9785448801365 ББК: 32.973.26-018.1 УДК: 681.3.06
Издательство: Профобразование
Город: Саратов

Поделиться:

  (ссылка для форума)  
  (ссылка для блога)  
  (QR-код книги)  

Аннотация

Книга известного эксперта но языку C++ Стенли Липп май а написана в соавторстве с Жози Лажойе, принимавшей активное участие в разработке международного стандарта C++. Настоящее издание является исчерпывающим руководством для изучения современной версии языка C++.
Авторы рассматривают как основы языка (структуру программы па C++, использование команд препроцессора и заголовочных файлов), так и более сложные конструкции (исключения, классы, шаблоны функций и классов, перегрузку операторов, множественное наследование и т. и.). Книга содержит большое количество примеров, поясняющих излагаемый материал.
Издание предназначено для тех, кто начинает изучение языка C++, однако и более опытные программисты смогут найти в пей полезные сведения о функционировании сложных конструкций языка, а также описание последних нововведений в стандарт C++.

Рекомендации:

эту книгу рекомендовали 0 пользователей.
Прежде чем рекомендовать книгу, хорошо подумайте. Рекомендация — это высшая оценка, которую вы можете выставить книге. 10 по 5-балльной шкале.

 Вернуться

Автор: Герберт Шилдт
Дата выхода: 2023
Издательство: Компьютерное издательство «Диалектика»
Количество страниц: 1345

 Скачать

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

 Ключевая причина успеха языка Java кроется в его гибкости. С момента своего первоначального выпуска 1.0 он постоянно адаптировался к изменениям в среде программирования и к изменениям в способах написания кода программистами. Самое главное то, что язык Java не просто следовал тенденциям — он помогал их создавать. Способность языка Java приспосабливаться к быстрым изменениям в мире программирования является важной частью того, почему он был и остается настолько успешным.

 С момента первой публикации этой книги в 1996 году она выдержала множество переизданий, в каждом из которых отражалась непрерывная эволюция Java. Текущее двенадцатое издание книги обновлено с учетом Java SE 17 (JDK 17). В и тоге оно содержит значительный объем нового материала, обновлений и изменений. Особый интерес представляет обсуждение следующих ключевых возможностей, которые были добавлены в язык Java в сравнении с предыдущим изданием:

  • усовершенствования оператора switch;
  • записи;
  • сопоставление с образцом в instanceof;
  • запечатанные классы и интерфейсы;
  • текстовые блоки.

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

Исходный код:  Перейти

Если вам понравилась эта книга поделитесь ею с друзьями, тем самым вы помогаете нам
развиваться и добавлять всё больше интересных и нужным вам книг!

C# 4.0 Полное руководство (Герберт Шилдт)

C# 4.0 Полное руководство (Герберт Шилдт)

В книге «C# 4.0 Полное руководство» Г. Шилдта по C# 4.0 — языку программирования, разработанному специально для среды .NET, — детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в

C# Программирование на языке высокого уровня (Т.А. Павловская)

C# Программирование на языке высокого уровня (Т.А. Павловская)

Книга «C# Программирование на языке высокого уровня» представляет собой учебный курс по программированию на языке C#. Автор рассказывает в своей книге об основах и базовых принципах языка C# версии 2.0 (2005). Книга предназначена для тех, кто еще только начинает осваивать C#, независимо от того, новичок ли это, или профессиональный программист, решивший освоить новый язык. Скачать

C# 6.0. Справочник. Полное описание языка (Джозеф Албахари, Бен Албахари)

C# 6.0. Справочник. Полное описание языка (Джозеф Албахари, Бен Албахари)

Данное руководство, ставшее бестселлером, позволяет получить точные ответы практически на любые вопросы по C# 6.0, CLR и основным сборкам .NET Framework. После своего появления в 2000 году C# стал языком с выдающейся гибкостью и мощью, но его постоянный рост и совершенствование означают необходимость в дополнительном изучении. Организованное по концепциям и сценариям использования, существенно обновленное 6-е издание книги

LINQ. Карманный справочник (Джозеф Албахари, Бен Албахари)

LINQ. Карманный справочник (Джозеф Албахари, Бен Албахари)

Справочник посвящен технологии LINQ (Language Integrated Query) — новой функциональной возможности языка C# и платформы .NET Framework, которая позволяет писать безопасные структурированные запросы к локальным коллекциям объектов и удаленным источникам данных. Рассмотрены базовые понятия LINQ, такие как отложенное выполнение, цепочки итераторов и распознавание типов в лямбда-выражениях, различие между локальными и интерпретируемыми запросами, синтаксис запросов C#,

Самоучитель С#. Начала программирования (Элеонора Ишкова)

Самоучитель С#. Начала программирования (Элеонора Ишкова)

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

Герберт Шилдт

Полное руководство С#4.0

Об авторе

Герберт Шилдт (Herbert Schildt) является одним из самых известных специалистов по языкам программирования С#, C++, С и Java. Его книги по программированию изданы миллионными тиражами и переведены с английского на все основные иностранные языки. Его перу принадлежит целый ряд популярных книг, в том числе Полный справочник по Java, Полный справочник по C++, Полный справочник по С (все перечисленные книги вышли в издательстве «Вильямс» в 2007 и 2008 гг.). Несмотря на то что Герберт Шилдт интересуется всеми аспектами вычислительной техники, его основная специализация — языки программирования, в том числе компиляторы, интерпретаторы и языки программирования роботов. Он также проявляет живой интерес к стандартизации языков. Шилдт окончил Иллинойский университет и имеет степени магистра и бакалавра. Связаться с ним можно, посетив его веб-сайт по адресу www.HerbSchildt.com.

О научном редакторе

Майкл Ховард (Michael Howard) работает руководителем проекта программной защиты в группе техники информационной безопасности, входящей в подразделение разработки защищенных информационных систем (TwC) корпорации Microsoft, где он отвечает за внедрение надежных с точки зрения безопасности методов проектирования, программирования и тестирования информационных систем в масштабах всей корпорации. Ховард является автором методики безопасной разработки (Security Development Lifecycle — SDL) — процесса повышения безопасности программного обеспечения, выпускаемого корпорацией Microsoft.

Свою карьеру в корпорации Microsoft Ховард начал в 1992 году, проработав два первых года с ОС Windows и компиляторами в службе поддержки программных продуктов (Product Support Services) новозеландского отделения корпорации, а затем перейдя в консультационную службу (Microsoft Consulting Services), где он занимался клиентской поддержкой инфраструктуры безопасности и помогал в разработке заказных проектных решений и программного обеспечения. В 1997 году Ховард переехал в Соединенные Штаты и поступил на работу в отделение Windows веб-службы Internet Information Services, представлявшей собой веб-сервер следующего поколения в корпорации Microsoft, прежде чем перейти в 2000 году к своим текущим служебным обязанностям.

Ховард является редактором журнала IEEE Security & Privacy, часто выступает на конференциях, посвященных безопасности программных средств, и регулярно пишет статьи по вопросам безопасного программирования и проектирования программного обеспечения. Он является одним из авторов шести книг по безопасности информационных систем.

Благодарности

Особая благодарность выражается Майклу Ховарду за превосходное научное редактирование книги. Его знания, опыт, дельные советы и предложения оказались неоценимыми.

Предисловие

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

Язык C# был создан корпорацией Microsoft для поддержки среды .NET Framework и опирается на богатое наследие в области программирования. Его главным разработчиком был Андерс Хейльсберг (Anders Hejlsberg) — известнейший специалист по программированию. C# происходит напрямую от двух самых удачных в области программирования языков: С и C++. От языка С он унаследовал синтаксис, многие ключевые слова и операторы, а от C++ — усовершенствованную объектную модель. Кроме того, C# тесно связан с Java — другим не менее удачным языком.

Имея общее происхождение, но во многом отличаясь, C# и Java похожи друг на друга как близкие, но не кровные родственники. В обоих языках поддерживается распределенное программирование и применяется промежуточный код для обеспечения безопасности и переносимости, но отличия кроются в деталях реализации. Кроме того, в обоих языках предоставляется немало возможностей для проверки ошибок при выполнении, обеспечения безопасности и управляемого исполнения, хотя и в этом случае отличия кроются в деталях реализации. Но в отличие от Java, язык C# предоставляет доступ к указателям — средствам программирования, которые поддерживаются в C++. Следовательно, C# сочетает в себе эффективность, присущую C++, и типовую безопасность, характерную для Java. Более того, компромиссы между эффективностью и безопасностью в этом языке программирования тщательно уравновешены и совершенно прозрачны.

На протяжении всей истории вычислительной техники языки программирования развивались, приспосабливаясь к изменениям в вычислительной среде, новшествам в теории языков программирования и новым тенденциям в осмыслении и подходе к работе программистов. И в этом отношении C# не является исключением. В ходе непрерывного процесса уточнения, адаптации и нововведений C# продемонстрировал способность быстро реагировать на потребности программистов в переменах. Об этом явно свидетельствуют многие новые возможности, введенные в C# с момента выхода исходной версии 1.0 этого языка в 2000 году.

Рассмотрим для примера первое существенное исправление, внесенное в версии C# 2.0, где был введен ряд свойств, упрощавших написание более гибкого, надежного и быстро действующего кода. Без сомнения, самым важным новшеством в версии C# 2.0 явилось внедрение обобщений. Благодаря обобщениям стало возможным создание типизированного, повторно используемого кода на С#. Следовательно, внедрение обобщений позволило основательно расширить возможности и повысить эффективность этого языка.

А теперь рассмотрим второе существенное исправление, внесенное в версии C# 3.0. Не будет преувеличением сказать, что в этой версии введены свойства, переопределившие саму суть C# и поднявшие на новый уровень разработку языков программирования. Среди многих новых свойств особенно выделяются два следующих: LINQ и лябмда-выражения. Сокращение LINQ означает язык интегрированных запросов. Это языковое средство позволяет создавать запросы к базе данных, используя элементы С#. А лябмда-выражения — это синтаксис функционалов с помощью лямбда-оператора =>, причем лябмда-выражения часто применяются в LINQ-выражениях.

И наконец, третье существенное исправление было внесено в версии C# 4.0, описываемой в этой книге. Эта версия опирается на предыдущие и в то же время предоставляет целый ряд новых средств для рационального решения типичных задач программирования. В частности, в ней внедрены именованные и необязательные аргументы, что делает более удобным вызов некоторых видов методов; добавлено ключевое слово dynamic, упрощающее применение C# в тех случаях, когда тип данных создается во время выполнения, например, при сопряжении с моделью компонентных объектов (СОМ) или при использовании рефлексии; а средства ковариантности и контравариантности, уже поддерживавшиеся в С#, были расширены с тем, чтобы использовать параметры типа. Благодаря усовершенствованиям среды .NET Framework, представленной в виде библиотеки С#, в данной версии поддерживается параллельное программирование средствами TPL (Task Parallel Library — Библиотека распараллеливания задач) и PLINQ (Parallel LINQ — Параллельный язык интегрированных запросов). Эти подсистемы упрощают создание кода, который масштабируется автоматически для более эффективного использования компьютеров с многоядерными процессорами. Таким образом, с выпуском версии C# 4.0 появилась возможность воспользоваться преимуществами высокопроизводительных вычислительных платформ.

Благодаря своей способности быстро приспосабливаться к постоянно меняющимся потребностям в области программирования C# по-прежнему остается живым и новаторским языком. А следовательно, он представляет собой один из самых эффективных и богатых своими возможностями языков в современном программировании. Это язык, пренебречь которым не может позволить себе ни один программист. И эта книга призвана помочь вам овладеть им.

Структура книги

В этой книге описывается версия 4.0 языка С#. Она разделена на две части. В части I дается подробное пояснение языка С#, в том числе новых средств, внедренных в версии 4.0. Это самая большая часть книги, в которой описываются ключевые слова, синтаксис и средства данного языка, а также операции ввода-вывода и обработки файлов, рефлексия и препроцессор.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Понравилась статья? Поделить с друзьями:
  • Магнелек порошок инструкция по применению для детей как разводить
  • Панадол инструкция 250 свечи инструкция по применению
  • Электрокотел станлесс 6 инструкция по применению
  • Эуфиллин таблетки инструкция по применению цена отзывы аналоги таблетки цена
  • Что отражает информация руководству аудируемого лица по результатам проведения аудита