Все, что вам нужно для создания программ для Windows
Программирование является одним из фундаментальных аспектов нашей повседневной жизни. Программирование может помочь нам автоматизировать и упростить использование компьютера, и даже сегодня это одна из самых интересных возможностей для работы. Конечно, даже если мы изучаем программирование, знание определенного языка не очень нам помогает. Помимо управления языком, мы также должны знать, какие программы нам следует использовать для программирования в соответствии с типом программного обеспечения, которое мы собираемся создать.
Запрограммировать приложение для Android (где у нас есть Android Studio и множество платформ для создания приложений, не зная, как программировать), как программировать видеоигру (где нам понадобится движок) или создать комплексную программу для Windows , Каждая платформа использует свой собственный язык, который должен быть представлен в определенных программах, которые помогают нам как при программировании, так и при его компиляции и формировании.
Если мы думаем начать программировать и создавать программы для Windows, это все, что нам нужно для достижения нашей цели.
Зачем нужно проектировать программу и соблюдать этапы разработки?
Вы можете спросить, зачем нужно соблюдать какие-то там этапы, ведь разработка программы — это просто сел и написал код. Однако это не так, с таким подходом создать нормальное приложение не получится.
В зависимости от размера программных проектов этапы разработки могут отличаться, в некоторых случаях это будут очень детализированные и бюрократичные этапы, а в некоторых — просто сформулированные в любом удобном для разработчиков виде.
Так, например, при строительстве сарая у себя на даче Вы не будете что-то там детально планировать, исследовать, инспектировать, но в случае, скажем, со строительством электростанции все будет очень детально спланировано, спроектировано, режим работы рабочих будет расписан поминутно, так как цена ошибки на любом этапе будет значительно выше, чем в случае со строительством простого сарая.
Точно так же происходит и при разработке ПО, если проект крупный и очень важный, который возможно будет влиять на жизни людей или связан с огромными финансовыми рисками, все этапы разработки ПО будут соблюдаться, т.е. детально проработаны и даже будут добавляться новые этапы, микроэтапы и так далее.
Все это делается для того, чтобы не допустить появления ошибок и реализовать тот продукт, который действительно нужен.
Чем раньше будут обнаружены ошибки или выявлен неправильных подход в реализации того или иного действия, тем цена этих ошибок будет меньше. Иными словами, в зависимости от этапа обнаружения ошибки ее цена может меняться от 10 до 100 раз. Например, если на самом начальном этапе цена исправления ошибки будет равняться 100 рублей, то на этапе тестирования она может вылиться в 10000. Поэтому этапы разработки ПО очень важны, и разработчик должен их соблюдать и попытаться донести это видение до менеджеров, которым всегда нужен только результат. Так как они или отводят на это слишком мало времени или и вовсе не считают это необходимым, например, зачем при программировании вырабатывать какие-то требования или что-то там проектировать.
Выбор языка программирования
В первую очередь решается, где можно написать программу. Языков огромное множество, и каждый из них индивидуален, отвечает разным запросам пользователей. Какой-то — полегче, другой — сложнее, третий — функциональнее. Среди профессиональных программистов уже давно гуляют разговоры о том, где лучше писать программы, перечисляя преимущества и недостатки каждого из возможных вариантов.
Си — это классика, которую должен знать каждый программист, но подходит он для написания далеко не каждой программы. Как правило, его используют, чтобы написать низкоуровневые программы. Если изучить Си, можно свободно начать писать на Си++.
Новым пользователям, которые хотят заняться написанием одной программы и бросить программирование, Си совсем не подойдёт. Его сложно изучить из-за того, как мало по нему материалов в сети и учебниках, а пользователей, которые пишут на нём — немного, поэтому знатоков в языке ещё нужно поискать. Но если мир программирования затянет пользователей — его изучение рекомендуется.
Один из популярных языков среди программистов. Написать на нём можно всё — от простой программки до сложного продукта со множеством функций. Материалов по изучению языка предостаточно в свободном доступе — в интернете, учебниках по программированию, на форумах многие обсуждают куски кода и рассказывают о том, что придумали. Несмотря на то, что сначала он может показаться сложным, в дальнейшем, когда пользователь научится полностью им управлять, это принесёт немало преимуществ.
Python
Классика, которая навсегда останется любимой среди программистов. Язык — основа, которую изучают как любители, так и профессионалы. Как и Си++, Python подойдёт для того, чтобы писать программы на простом уровне, отвечающие за базовые функции или для более сложных продуктов.
Python, сколько бы ни спорили пользователи интернета, остаётся первым в списке рекомендаций, когда спрашивают: «С какого языка начать программировать». Он — прост в использовании, а обучающих курсов, учебников, материалов — более, чем достаточно, чтобы каждый нашёл то, что поможет ему изучить язык лучше.
Такая же классика, как и Python, рекомендуемая к изучению. Это — улучшенная версия C++, с большим функционалом. С помощью Java происходит написание программ для игр, бизнеса, менее масштабных целей. Запускается на Операционных системах любого типа, что делает его любимым, помогает использовать и проверять везде.
Для каждого понадобится установить специальный текстовый редактор, желательно — вместе с компилятором. В отличие от написания в блокноте, специальные редакторы выделяют функции цветами и выделяют их по уровням, чтобы было удобнее ориентироваться.
Не ведитесь на рекламу
Используйте то, что является для вас наилучшим. Если ваша продуктивность высока на PHP, то и работайте с PHP. Конечно, иногда технологии на самом деле способны увеличить продуктивность или дать другие существенные преимущества, но я не преувеличу, если скажу о том, что это огромная редкость – такое встречается, пожалуй, раз или два в десятилетие.
Не попадитесь на крючок, поверив, что основная идея хороша только потому, что существует множество вариаций конкретной технологии. На самом деле это может указывать на то, что люди отчаянно ищут технологическое решение для неправильного подхода.
Для примера, MVC на стороне клиента для практически любого типа функциональности веб-приложения добавляет оверхэд (потому что при большем количестве слоев и необходимо больше интерфейсов между ними), уменьшает продуктивность (нужно писать больше кода, а слои усложняют процесс устранения ошибок) и на деле не улучшает пользовательский опыт.
Дизайн пользовательского интерфейса – это тяжелая работа, и использование MVC на стороне клиента не сотворит для вас магии.
Создание программы
Давайте создадим программу — калькулятор. Почему-бы и нет? Изобретать велосипед — это-же так весело! А если серъезно, то ничего зазорного в этом нет, ведь клепают-же хелловорлды во всех учебниках и не стесняются. Мы в этом плане даже чем-то лучше.
Как уже оговаривалось выше, язык программирования будет использован C#,
- Нажимаем кнопку Create a new project.
- Шаг Create new project:
- Язык программирования: C#
- Платформа: Windows
- Тип проекта: Desktop
Открылось главное окно Visual Studio,
Перетащите кнопку Button на форму главного окна, только что созданного проекта.
Эта кнопка не делает ничего связанного с вычислениями — при её нажатии будет закрываться программа. На примере этой кнопки вы увидите насколько просто наполнять окно программы необходимыми элементами пользовательского интерфейса.
Настройте только что добавленную кнопку в панели свойств:
- Свойство Text, меняем значение на Close
- Name меняем на bnClose
- Anchor: Bottom,Right
Добавьте обработчик события нажатия кнопки: делаем двойное нажатие на кнопке, программа автоматически создаст необходимый метод bnClose_Click. Внутри метода пишем: this.Close();
При нажатии кнопки Close, окно программы закроется, в след за этим завершит работу и сама программа.
Примечание
За всеми проделанными выше действиями с созданием конпки и редактирования ее свойств, лежит создание кода программы средой разработки VisualStudio.
Откойте файл Form1.Designer.cs. Как видите, все те действия, что вы делали в настройках, отображены здесь в виде кода программы:
То-есть для среды разработки, элементы управления окна выглядят в виде кода, но для удобства, настройки графического интерфейса создаваемой программы в VisualStudio можно делать в наглядном визуальном представлении.
Примечание
Если вы поставили Visual Studio и хотите изменить язык интерфейса на другой язык, то это можно сделать в настройках программы Tools — Options — Internetional Settings. Если языка, который вам нужен нет в списке, доустановите его через Microsoft Visual Studio Installer. После этого опять откройте Tools — Options — Internetional Settings, и измените язык интерфейса.
Сделаем что-нибудь посложнее, чем просто вывод текста на экран
В большинстве учебников для начинающих программистов первая программа выводит простое сообщение «Hello world!». Мне кажется это немного тупо, так как для того, чтоб заинтересовать начинающего программиста, нужно показать нечто большее и полезное, нежели просто окно с текстом.
Для того чтоб оценить возможности языка программирования C# и .Net Framework, давайте в нашей программе реализуем возможность выполнения простейших арифметических операций. Мне кажется это будет гораздо полезней.
Итак, давайте создадим следующие элементы интерфейса программы
- Text: «+»
- Name: bnPlus
- Text: «-«
- Name: bnMinus
- Text: «*»
- Name: bnMult
- Text: «/»
- Name: bnDiv
- Name: tbOperand1
- Name: tbOperand2
- Name: tbResult
- Name: lblOperand1
- Name: lblOperand2
Примечание: Очень удобно использовать копирование элементов пользовательского интерфейса. Для того, чтоб это сделать, нужно выделить элементы, которые нужно скопировать и при нажатой кнопке Ctrl, потянуть мышью выделенные элементы в сторону.
Как видите, добавлять элементы интерфейса программы весьма просто — перетягиваем их из панели инструментов (или создаем копии уже существующих) в то место окна, где должен находиться элемент, изменяем размер, свойства и положение.
Попробуйте закончить настройку внешнего вида программы, чтоб она стала выглядеть так:
Высота текстового поля tbResult регулируется за счет изменения размера шрифта.
Обратите внимание, что имя элементов назначаются автоматически и, если не давать им осмысленные имена, и при достаточно большом их количестве, очень легко потеряться в хаосе, состоящем из элементов с названиями button1, button2, button3, textBox1, textBox2, textBox3 и так далее. Сразу после создания элементов, не ленитесь, давайте им осмысленые имена — дальше, при создании обработчиков событий, имена методов будут генерироваться автоматически на основании имени элемента управления. Думаю никто не сомневается в том, что имя метода ButtonAdd_Click() гораздо более осмысленно, чем Button1Click()
Назначим обработчики событий нажатия кнопок
Выбираем по очереди каждую кнопку.Даблкликом создаем обработчик нажатия кнопки(Click). Если нужно добавить обработчик другого события, или выбрать уже существующий метод — следует открыть вкладку События (значок в виде молнии) и там уже выбрать необходимое событие.
Пишем код обработчика
Как видите, все методы-обработчики отличаются только одним символом. Это не есть красиво, но наведением порядка в коде мы займемся немножко позже. Сейчас для наглядности путь обработчики событий нажатия кнопки остаются как есть.
Давайте на примере операции сложения разберем как работает наша программа.
Из курса школьной программы математики мы знаем, что действия, заключенные в скобки выполняются в первую очередь. В программировании то-же самое:
- float.Parse(tbOperand1.Text) — Извлекается значение свойства Text переменной tbOperand1 и передается в качестве параметра статичскому методу Parse() типа System.Single результат записывается в промежуточную переменную A
- float.Parse(tbOperand2.Text) — то-же самое, результат записывается в промежуточную переменную B
- Производится сложение промежуточных переменных (A + B) в промежуточную переменную C
- C.ToString() — Преобразовуется переменная C в строку. Так как любая переменная в C# это объект, то путем обращения к методу ToString() этого объекта мы можем получить его строковое представление.
Более сложные типы, такие как DateTime, могут иметь несколько мeтодов ToString().
Проверяем работу программы
Нажмите кнопку Пуск на панели инструментов, или нажмите клавишу F5
Программа работает и делает то, что от нее требовалось:
Обратите внимание, что я пока не реализовал проверку вводимого значения в текстовое поле. Если ввести в него некорректное значение — программа выдаст сообщение об ошибке, в которой сообщается, что вы пытаетесь преобразовать в числовое значение неправильную строку:
Давайте теперь перепишем программу, чтоб она могла выводить предупреждение, в случае, если было введено некорректное значение одного из операторов. Скопируйте следующий метод к себе в файл Form1.cs, там где находятся остальные обработчики *_Click:
Этот метод принимает параметр object sender, который используется для определения того, какая кнопка была нажата. Здесь использован основополагающий принцип ООП — Полиморфизм. Объект типа Button можно абстрагировать до типа object, но при этом информация, специфичная для типа Button никуда не пропала — для того, чтоб к ней обратиться, нужно sender привести к типу Button. Например:
Теперь перейдите в конструктор формы (Shift + F7) и для каждой кнопки, в качестве обработчика события Click выберите метод bnMathAction_Click.
Если перейти к коду, то можно увидеть, что ссылок на этот метод стало четыре, а на остальные методы обработчики теперь никто не ссылается — ссылок ноль. Их можно спокойно удалить.
В итоге вы должны получить файл Form1.cs следующего вида:
Языки программирования
В курсе «Основы программирования» от Geekbrains используется язык программирования JavaScript. Во-первых, у него широкая область применения: JavaScript используют в веб-разработке, в разработке офисных и серверных приложений. Во-вторых, он универсален. Для работы с JavaScript не нужно устанавливать среду разработки, то есть систему для написания программного обеспечения — все операции проводятся в браузере.
Начать писать на JavaScript довольно просто. Нужно создать файл с расширением HTML (подойдет любой текстовый редактор, даже «Блокнот») и прописать в нем несколько строчек кода.
На Windows лучше всего использовать программу Notepad++. На OS X ее нет, но есть неплохие аналоги, например Sublime Text или TextMate. Чтобы вывести на экран всем знакомую надпись ‘Hello, World!’, нужно прописать в редакторе следующие строчки:
После этого сохранить файл в формате HTML и открыть. Он откроется в браузере — если все сделано верно, то появится окно с введенным текстом.
Компиляторы
Компиляторы работают по-разному. Они полностью конвертируют исходный код с помощью компиляции в двоичный файл. Затем выполняется двоичный код. Если в исходном варианте были ошибки, они обнаруживаются и помечаются во время компиляции. Это прерывает процесс генерации двоичного кода.
Интерпретаторы работают построчно и выполняют одну линию перед тем, как перейти к следующей. Компилятор же переводит все строки программы в файл (двоичный) и выполняет его целиком.
Помните определение компьютерной программы? Это последовательность инструкций для компьютера. Выполнение программы обычно называется процессом. Такие ПО используют определенные ресурсы в компьютерной системе или любом другом девайсе. К ресурсам относятся память, дисковое пространство и файловая система.
Мы используем слово «run» при выполнении компьютерной программы. Время, затрачиваемое на запуск, называется временем выполнения программы.
Обычно рассматриваются продукты, известные как приложения. Еще мы ассоциируем программы с платформами или средами, в которых они работают или для которых предназначены. Существуют веб-приложения, запускаемые в браузерах, есть мобильные ПО, работающие на смартфонах, а также настольные, такие как Evernote.
Интерпретируемый исходный код выполняется из исходного файла, скомпилированный – преобразовывается в двоичный файл. Затем этот файл выполняется. Скомпилированный код может завершиться неудачно во время выполнения даже после успешной компиляции.
Вместо итога
Как видим, вопрос того, что такое компьютерная программа, имеет достаточно много ответов. С одной стороны, это вроде бы и набор команд, однако, если посмотреть на вопрос несколько шире, можно сделать вывод, что это совокупность кодов или компонентов, определяющих поведение операционной системы в целом и операций, производимых «железом».
Таким образом, нетрудно сделать и вывод о том, что любая программа или приложение сами по себе ничего не стоят, если нет программной среды (ОС), в которой они смогут работать, или устройств, установленных на материнской плате, функции которых потребуются для исполнения определенных задач на текущий момент.
Остается добавить, что здесь были приведены только самые простые трактовки компьютерных программ, принципов их создания и применения. На самом деле все гораздо сложнее, рассмотрение всех аспектов может занять достаточно много времени. Тем не менее, если хорошенько порыться в соответствующей литературе, найти подробные инструкции по какому-то отдельно взятому программному продукту не так уж и сложно (как правило, такие описания присутствуют даже на сайтах загрузки в виде предварительной информации о возможностях скачиваемых приложений).