1
0
Pārlūkot izejas kodu

Merge branch 'master' of http://213.155.192.79:3001/ypv/ISRPO

ypv 2 gadi atpakaļ
vecāks
revīzija
133d79cd73
2 mainītis faili ar 198 papildinājumiem un 0 dzēšanām
  1. 165 0
      Лекции/Delphi/Delphi.md
  2. 33 0
      Лекции/Linter/Linter.md

+ 165 - 0
Лекции/Delphi/Delphi.md

@@ -0,0 +1,165 @@
+История языков программирования: Delphi — больше, чем просто язык
+
+Delphi
+
+С Delphi обычно ассоциируется среда разработки приложений на основе языка Object Pascal, разработанного фирмой Borland. Этот язык является наследником Turbo Pascal с
+объектно-ориентированными расширениями, который в свою очередь ведет свою историю от «чистого» Pascal, созданного Никлаусом Виртом в 1970 году.
+
+Впоследствии, в 2002 году, разработчики из компании Borland официально поставили знак равенства между языками Delphi и Object Pascal.
+
+Предыстория
+
+Изначальный Pascal, по мнению его разработчиков, имел самый быстрый компилятор в мире. Более того, вместе с ним была впервые разработана технология 
+создания платформенно-независимых программ, которая нашла широкое применение в таком языке, как Java.
+
+Однако его IDE, если это понятие можно применить к среде разработки того времени, функционировала только на базе операционной системы DOS.
+
+С появлением Windows возникла необходимость в создании среды разработки ПО для этой платформы. Наиболее популярным решением для персональных Windows-компьютеров 
+в 80-е — начале 90 годов стал компилятор и IDE Turbo Pascal фирмы Borland. Встроенный компилятор обеспечивал высокую скорость компиляции и высокое качество кода 
+(отсюда приставка Turbo). Среда Turbo Pascal обеспечивала также отладку кода, содержала богатый набор примеров. Все эти качества на какое-то время позволили Turbo Pascal 
+стать стандартом языка Pascal.
+
+Вызов времени
+
+В Windows довольно быстро начал развиваться графический интерфейс, а в IDE Turbo Pascal по-прежнему использовался DOS-подобный интерфейс. Постепенно в Microsoft поняли, что 
+нужно двигаться в сторону «визуализации» программирования.
+
+Чтобы создать простую программу, разработчикам приходилось писать по несколько страниц кода: прописывать объемные блоки кода для меню и окон, шрифтов, очищать память, 
+«рисовать» кнопки и т.д. Однако преимущества графического интерфейса Windows были довольно сильны, поэтому нужно было поддержать развитие операционной системы. В Microsoft
+понимали, что необходимо как-то облегчить жизнь разработчиков. Поэтому в 90-х годах компания запустила несколько параллельных проектов по созданию нового языка 
+программирования и среды разработки для Windows. Первой ласточкой стал Visual Basic.
+
+Перспективы языка Pascal в этом отношении оказались далеко не радужными. К середине 90-х годов он уже находился в довольно запущенном состоянии. Компания Borland начала 
+дорабатывать его, но вскоре стало понятно: изменения и добавления будут настолько серьезными, что результат этой работы можно считать новым языком программирования. Для 
+нового языка была разработана IDE с графическим интерфейсом. Новая среда программирования и язык получили общее название Delphi.
+
+Своё имя новая система (Delphi) получила в честь древнегреческого города Дельфы. Название было выбрано неспроста: город Дельфы связан с именем бога мудрости и 
+покровителем искусств Аполлона. Согласно легенде главное святилище Аполлона находилось именно в этом городе. Его жрицы-сивиллы изрекали пророчества желающим узнать 
+свою судьбу.
+
+«Имя Delphi было предложено Денни Торпом во время мозгового штурма. Мы хотели, чтобы в имени системы отразились уникальные способности продукта к работе с 
+базами данных, и Delphi как нельзя лучше перекликается с таким заслуженным именем в этой области, как Oracle, по крайней мере для тех, кому сочетание «Дельфийский Оракул»
+о чем-то говорит», рассказывал руководитель исследовательской группы по разработке системы Delphi Чак Язджевски.
+
+В России Borland Delphi появился в конце 1993 года и сразу же завоевал большую популярность.
+
+Основные версии
+
+Версия 1 была предназначена для разработки под 16-разрядную платформу Win16. Начиная со второй версии, была реализована возможность компиляции программы под 32-разрядную 
+платформу Win32.
+
+В версии 3 появилась поддержка многозвенной технологии (multi-tiered) доступа к данным, что позволило создавать масштабируемые приложения (относительно слабо зависящие от 
+сервера БД) за счет перенесения методов обработки информации (бизнес-правил) на среднее звено.
+
+Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему Linux.
+
+Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET). 
+Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) позволили создавать как приложения Win32, так и .NET-приложения.
+
+В Delphi 2006, появилась возможность писать приложения для .NET используя стандартную библиотеку классов .NET, VCL для .NET. Среда также позволила писать .NET-приложения на 
+C# и Win32-приложения на C++. В Delphi 2006 также была реализована технология MDA (Model Driven Architecture) с помощью ECO (Enterprise Core Objects) версии 3.0.
+
+За что боролись
+
+Процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Достаточно просто 
+перетащить нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). 
+С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки.
+
+Разработчик получил в распоряжение мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную контекстную справочную систему (в том числе и по 
+Microsoft API), средства коллективной работы над проектом.
+
+Стало возможным создавать компоненты ActiveX без использования Microsoft IDL, расширять возможности web-сервера (скрипты на стороне сервера), практически ничего не зная об 
+HTML, XML или ASP.
+
+Появилась возможность создавать распределенные приложения на базе СОМ и CORBA, Интернет- и intranet-приложения, используя для доступа к данным Borland DataBase Engine, 
+ODBC-драйверы или Microsoft ADO.
+
+В Delphi разработчикам дали возможность создавать свои собственные компоненты, импортировать ОСХ-компоненты, создавать шаблоны проектов и мастеров, генерирующих заготовки 
+проектов. Более того, авторы предоставили разработчику интерфейс для связи других приложений (или внешних программ) с Delphi IDE.
+
+Перемены
+
+Новая версия Delphi выходила каждый год, но после пятой как будто что-то произошло… Позже выяснилось, что параллельно с работой над новой версией Delphi велась разработка 
+Delphi-подобного языка программирования для Linux. Новый продукт получил название Kylix. Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. 
+Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Delphi, из компании 
+Borland Ltd. в Microsoft Corp.
+
+В марте 2006 года компания Borland приняла решение о прекращении дальнейшего развития интегрированных сред разработки JBuilder, Delphi и C++Builder по причине убыточности 
+этого направления. Была запланирована продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland 
+прав на среду разработки и компилятор. Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса.
+
+После этого разработкой IDE-продуктов стала заниматься новая компания — CodeGear, которая была финансово полностью подконтрольна Borland.
+
+В марте 2007 года CodeGear порадовала пользователей обновлённой линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.
+
+25 августа 2008 года компания Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for Win32 2009. В этой версии появилось множество нововведений на 
+уровне языка:
+
+• По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL;
+• Замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA).
+• Обобщённые типы, они же generics.
+• Анонимные методы.
+• Новая директива компилятора $POINTERMATH [ON|OFF].
+• Функция Exit теперь может принимать параметры в соответствии с типом функции.
+
+В версии Delphi XE2 (2011 год) был добавлен компилятор Win64 и кросс-компиляция для операционных систем фирмы Apple (MacOS X, iOS).
+
+Про следующую версию в своем интервью рассказывал Всеволод Леонов, российский евангелист Delphi из компании Embarcadero Technologies:
+
+Продукт Delphi XE3 является продолжением нового поколения средств быстрой разработки семейства Delphi. Напомню, в 2011 году вышла Delphi XE2 с платформой FireMonkey, 
+которая является альтернативой библиотеки визуальных компонентов VCL.
+
+Она очень похожа на VCL по методам использования и составу компонентов (кнопки, метки, поля ввода, меню и т.д.), но обладает способностью быть перенесенной на другую 
+операционную систему. FireMonkey — кроссплатформенная. Приложения, созданные с помощью FireMonkey, могут компилироваться и под Windows, и под Mac OS. Практически в один-два 
+«клика» мы можем пересобрать проект под принципиально другую операционную систему. Практически все демонстрационные проекты, поставляемые с Delphi на платформе FireMonkey, 
+имеют две версии: одну под Windows, другую — под Mac OS. И для этого не нужно вносить изменения в исходный код приложения
+Вышедшая в 2013 году версия Delphi XE5 обеспечила кросс-компиляцию приложений для устройств на платформе ARM/Android.
+
+В апреле 2016 года появилась Delphi 10.1 berlin. Нововведения:
+
+Компилятор и набор инструментов Object Pascal для 64-разрядной iOS;
+Поддержка универсальных приложений iOS (включение 32- и 64-разрядных двоичных файлов в пакет приложения);
+Предпросмотр FireUI на мобильных платформах;
+Предпросмотр на разных устройствах;
+Расширенные возможности работы со стилями в дизайнере единого интерфейса, в том числе универсальные стили и настройка стилей Windows;
+Диспетчер устройств FireUI позволяет изменять спецификации доступных устройств и добавлять новые устройства;
+Элементы управления Memo, ListView, Calendar, Switch для платформы iOS;
+Компонент MapView для мобильных платформ (iOS и Android), поддерживающий специализированные библиотеки интерактивных карт для каждой платформы (разработанные соответственно 
+Apple и Google).
+
+Ни жив, ни мертв
+
+Известно, что Delphi перманентно «хоронят» или заявляют, что так жить нельзя. Они аргументируют тем, что система стала монструозной, неактуальной, неподдерживаемой, 
+неудобной, какой-то еще…
+
+Но можно вспомнить, что такое мнение чаще встречается в США и Западной Европе, где этот язык бешеной популярности и не имел никогда. Там эти соображения могут быть вполне 
+резонными во многих случаях. Но есть и другие страны, где ситуация может отличаться — страны СНГ и остальные страны Восточной Европы.
+
+С этим согласен Всеволод Леонов:
+Небольшой исторический экскурс по поводу стран Восточной Европы. Система образования бывшего СССР была очень сильна во многих аспектах, но не по части прикладного 
+программирования. В начале 90-х как получить доступ к компьютеру, так и научиться что-то делать в современных средах разработки могли лишь те, кто имел определенную 
+специальность.
+
+Целые факультеты «пролетали мимо» фундаментальных курсов по программированию. И наличие Turbo Pascal с низким порогом вхождения, а затем среды Delphi, позволяющей заняться 
+самообразованием в хорошем смысле этого слова, смогли насытить ИТ-отрасль достаточно грамотными разработчиками, а также повысить общенациональный инженерный уровень создания 
+прикладного ПО.
+
+Таким образом, для стран бывшего соцлагеря связка Pascal/Delphi резко выдернула экономику из ИТ-небытия за счет очень простого языка программирования и среды визуальной
+разработки на основе готовых компонентов.
+
+Новый герой из open source
+
+Наиболее известной свободной реализаций языка Pascal является Free Pascal. Помимо открытости исходного кода, его основным преимуществом является мультиплатформенность, 
+а также поддержка различных диалектов.
+
+На основе FreePascal создана свободная мультиплатформенная IDE Lazarus, позволяющая работать с проектами Delphi. Она основана на библиотеке визуальных компонентов Lazarus 
+Component Library (LCL).
+
+Список заявленных поддерживаемых платформ:
+
+• Windows: 98, 2k, XP, Vista, 7, 32 и 64bit;
+• FreeBSD/Linux: gtk 2.8 и qt4.5, 32 и 64bit;
+• Mac OS X: 10.4, LCL только 32bit, не-LCL могут быть 64bit.
+
+С другой стороны, среда Delphi по мере развития действительно становилась все более громоздкой и малопригодной для обучения программированию. Кроме того, отсутствует 
+бесплатная версия Delphi даже для академического использования. Данные факторы привели к практически полному исчезновению Delphi из сферы образования.

+ 33 - 0
Лекции/Linter/Linter.md

@@ -0,0 +1,33 @@
+Что такое линтер: зачем, когда и кем используется
+
+Что такое линтер
+Линтер (от англ. слова lint) – статический анализатор кода, который указывает на “подозрительные” участки программы и тем самым помогает программисту писать
+ более качественный код. Подозрительными участками может быть любой код, в котором есть ошибка (по мнению линтера). Обычно, линтер устанавливается на компьютер 
+программиста, а точнее в IDE.
+
+IDE – это среда разработки, например, Xcode, Android Studio, Visual Code Studio.
+
+Зачем нужен линтер
+Когда несколько программистов работают на одном большом проекте, возникают проблемы – у каждого программиста свой стиль написания кода, свое понимание того как нужно 
+реализовывать различные участки программы. Из-за того что все пишут так как они этого хотят, другим разработчикам сложно быстро вовлечься в процесс работы в новом для них 
+проекте.
+
+В линтер можно “установить” определенный набор правил, которым должен будет соответствовать написанный программистом код. Например, можно ограничить длину строки до 100 
+символов, запретить вложенные тернарные операторы и лишние пробелы. Это может помочь привести код проекта к более единому стилю.
+
+Также, когда программист пишет код, он может забывать убирать лишние переменные и пробелы в коде. Линтер же будет “подсвечивать” весь мусор, поэтому программист сможет на 
+это вовремя обратить внимание.
+
+Какие бывают линтеры?
+
+Самые простые проверяют только стиль, например, Flake8. В какой-то степени ещё и Black, но скорее это автоформатор-линтер. Линтеры сложнее проверяют семантику, а не только 
+стилистику: что вы делаете, зачем, и бьют вас по рукам, если пишете с ошибками. Хороший пример — Pylint, который мы все знаем, пользуемся и любим. Я называю такие линтеры — 
+Best practices. Третий тип — Type checking, эти линтеры немного в стороне. Type checking в Python — новинка, её сейчас делают две конкурирующие платформы: Mypy и Pyre.
+
+Как работает линтер
+Обычно линтер работает в реальном времени и анализирует файлы и написанный код на ходу. Хотя, все зависит и от самого инструмента (ага, он не один): есть линтеры работающие 
+в реальном времени, а есть линтеры, которые необходимо запустить, например, перед отправкой кода в GitHub.
+
+Стоит отметить, что для каждого языка программирования существует свой анализатор кода, и даже не один. Например, у языка программирования JavaScript есть ESlint, JSLint, 
+JSHint. У PHP есть PHP_CodeSniffer, NoVerify. А у Python есть Flake8 и Pylint. Они плюс-минус похожи, но некоторые аспекты в них могут отличаться. Одни ищут больше ошибки, 
+другие следят за “красотой” кода. Одни работают в реальном времени, другие срабатывают перед компиляцией программы.