Результати пошуку
ITVDN: курси програмування
Відеокурси з
програмування
Підписка

300+ курсів за популярними IT-напрямками

Вибери свою IT спеціальність

Підписка
Підписка

300+ курсів за популярними IT-напрямками

Результати пошуку за запитом: курс - практикум по frontend разработке*
Як не здатися і все ж таки стати програмістом?

Автор: Дмитро Хорошилов

Вы день и ночь в поте лица изучаете синтаксис, фреймворки, решаете задачи, посещаете курсы, смотрите видеоуроки, читаете книги, но все никак не можете сдвинуться с мертвой точки — наконец-то начать программировать самостоятельно или найти первую работу. Вы раз за разом открывает IDE, чтобы начать писать код, но потом откладываете это занятие. Потому что в данный момент вам меньше всего хочется писать код. И вы по пятому кругу читаете посты на фейсбуке, смотрите видео с котиками и глупые гифки. Вам начинает казаться, что изучать программирование - это не ваше. Вы в очередной раз открываете важную и сложную книгу по программированию, но, как бы вы не пытались сосредоточиться, информация не откладывается в памяти. Более того, постоянно приходится по несколько раз перечитывать предложение за предложением, чтобы хоть немного понять, о чем речь. Знакомо? Иногда, особенно в процессе изучения чего-то нового и сложного, ваш мозг начинает играть с вами в каверзные игры. Он всеми силами пытается сопротивляться обучению, вгоняя вас в состояние прокрастинации и ступора. Самым неверным в сложившейся ситуации будет сдаться и отдаться во власть отчаяния. В этом материале мы поговорим с вами, как справиться с прокрастинацией, как заставить мозг учиться и как в конечном итоге получить желаемую работу, влиться в среду профессиональных разработчиков. Что такое прокрастинация? На самом деле, прокрастинация — это привычка. Вы шаблонно реагируете на какой-то раздражитель, когда вам следует заниматься тем, чем вы не хотите. Как следствие, вы пытаетесь отложить «нелюбимое» дело в долгий ящик и придумываете какие угодно дела взамен, лишь бы не делать что-то важное. Но то, что приносит удовольствие на короткое время, не всегда полезно в долгосрочной перспективе. Благо, с прокрастинацией можно бороться, как и с любой другой плохой привычкой. Как бороться с прокрастинацией? Вот несколько советов, что стоит делать и на что необходимо обращаться внимание: - Не тратьте силу воли на борьбу с прокрастинацией. Потому что это настолько же безрезультатно, как и бороться с пятиголовым драконом без специального оружия. Вы будете отрезать голову и усилием воли заставлять себя учиться, то есть тратить много сил, а голова будет опять вырастать. В итоге, вы в какой-то момент просто бросите эту затею и уйдете с поля битвы. - Не оставляйте все на последнюю минуту. Представьте спортстмена, который начинает тренироваться за два дня до забега. Как думаете, как он будет себя чувствовать и  в каком состоянии будут его мышцы, если он будет заниматься два дня по 10 часов каждый, вместо 2-х месяцев по часу? Как думаете, после такого у него будут шансы пробежать марафон? Очевидно, что нет. Как и с мышцами, мозг необходимо тренировать постепенно, понемногу, но постоянно. Лучше учитесь по 20 минут, но на протяжении 10 дней, чем по 10 часов, но на протяжении двух дней. - Делайте перерывы во время учебы. Да, позволяйте себе отдыхать и хорошо высыпаться. Не зубрите дни и ночи на пролет. Подолгу сидя над учебой, вы не усвоите больше. Благодаря небольшим передышкам, наш мозг получает возможность «переварить» полученную информацию. - Не откладывайте на потом. Чем на дольше откладываем, тем больше всего нам надо изучить. А значит, тем страшнее и больнее нам этим заняться. Парадоксально, но факт, чем лучше вы овладеваете каким-то навыком, тем больше вам нравится им заниматься. - «Коллективная мудрость». Не бойтесь обращаться за советом к коллегам, другим студентам. Если вы занимаетесь в одиночку, найдите обязательно себе ментора, к которому сможете обращаться за советом в моменты ступора. Если у вас нет возможности найти наставника, сходите на курсы. Старайтесь больше задавать вопросов, даже если они вам кажутся чрезвычайно глупыми. - Ориентируйтесь на процесс, а не на результат. Очень часто мы зацикливаемся на результате. И если он не достигнут, нас посещают мысли, отзывающиеся болью в мозгу, провоцируя нас прокрастинировать. Например, мы думаем: чтобы найти свою первую работу, так много еще надо всего выучить. Отпустите эти мысли, лучше сосредоточьтесь на процессе: я учу, я пишу, я делаю. И вы не заметите, как в скором времени скажете: я работаю. В этой части мы поговорили с вами о том, как лучше учиться, как бороться с ужасной и неукротимой прокрастинацией. Когда прокрастинация побеждена Теперь я бы хотел дать несколько рекомендаций о том, что делать, когда вы победите своего змея. Как только вы научитесь держать себя под контролем, ваши дела заметно пойдут вверх. Вы будете все больше получать удовольствия от процесса получения и практического применения новых знаний. В какой-то момент вам покажется, что вы готовы начать работать. Чтобы опять не попасться в капкан прокрастинации, поставьте себе цель и придумайте мотивацию. Например, цель: я найду первую работу за 3 месяца. Обязательно спланируйте, какие шаги вы будете предпринимать для того, чтобы найти работу: - напишу хорошее резюме на двух языках, - буду отслеживать вакансии и реагировать на них, - составлю список компаний, которые подходят мне по профилю — разошлю им резюме с мотивационным письмом, - начну готовиться к собеседованиям: подтягивать теоретические знания, подготовлю свое первое программистское «портфолио». А вот мотивация — это очень индивидуально, но обязательно важно. Найдите что-то свое: деньги, отдых, друзья, любимые, покупки и т.д. Надеюсь, теперь, когда вы знаете, что такое прокрастинация и как с ней бороться, вам станет намного проще двигаться по намеченному вами пути и не сбиваться с него. Главное, помните, что отдых тоже полезен. Борясь со своими чертиками, не забывайте хорошо высыпаться (это самое главное условие для хорошего усваивания знаний), отвлекаться, например, заниматься спортом, хорошо и вкусно питаться. Я уверен, что следуя этим полезным советам, вы очень скоро добьетесь успеха!
5 міфів про програмування, які стримують новачків

Автор: Редакція ITVDN

Світ ІТ приваблює багатьох: висока зарплата, віддалена робота, цікаві завдання. Але перед тим як почати навчання, чимало людей зупиняються… через страх. І часто причина — у міфах, які давно не мають нічого спільного з реальністю. У цій статті ми розвінчуємо п’ять найпоширеніших міфів, що заважають новачкам почати шлях у програмуванні. Міф 1  «Щоб стати програмістом, треба бути математичним генієм» Цей стереотип і досі лякає багатьох. Насправді ж для старту в ІТ потрібне логічне мислення, а не знання вищої математики. Так, у деяких напрямках (наприклад, Data Science або GameDev) математика важлива. Але у Web-розробці, QA, DevOps, Backend-проєктах ти можеш працювати, навіть якщо в школі не любив алгебру. Факт: згідно з дослідженням IBM, 72% ІТ-фахівців мають гуманітарну освіту, а не технічну. Міф 2 «Навчання триває роками» Традиційна вища освіта — це 4-5 років, але в ІТ усе інакше. Онлайн-курси, буткемпи, інтенсиви — дозволяють отримати базу за 6–12 місяців. На платформі ITVDN студенти вивчають HTML, CSS, JavaScript, Python або C# у своєму темпі та отримують практичні навички, які потрібні роботодавцям.Навіть після кількох місяців навчання можна знайти стажування або пройти тестове завдання. Міф 3  «Програмування — це тільки для “ботаніків”» Є уявлення, що програміст — це замкнена людина, яка говорить лише з комп’ютером. Насправді це творча і командна професія. В ІТ цінують комунікацію, ініціативу, вміння шукати рішення. Багато розробників починали як фітнес-тренери, вчителі, маркетологи або менеджери. Програмування — це навичка, яку може опанувати кожен. Міф 4 «Без університету тебе ніхто не візьме» Сучасні компанії цінують скили, а не дипломи. Якщо у тебе є GitHub, виконані проєкти, сертифікати, знання англійської — це вже дає перевагу на старті. Більшість студентів ITVDN не мають ІТ-диплому, але після навчання успішно проходять співбесіди та отримують першу роботу. Під час рекрутингу найважливіше — практика, мислення і портфоліо, а не формальна освіта. Міф 5 «Щоб стати програмістом, треба одразу знати всі мови» Це один із найбільш шкідливих міфів. Насправді достатньо обрати одну мову для старту — і з неї побудувати фундамент. Наприклад: Python — чудовий для аналітики, автоматизації, бекенду JavaScript — ідеальний для веб-розробки C# / .NET — популярний для корпоративних застосунків Потім ти зможеш додати інші мови, але спочатку важливо навчитися думати, як програміст. Міфи — це психологічні бар’єри. Вони народжуються з незнання, чужого досвіду або застарілих уявлень. А правда така:  ✅ У програмування можна прийти з нуля  ✅ Навіть якщо тобі далеко не 20  ✅ Без технічної освіти  ✅ І без “геніального” рівня IQ Головне — мотивація, правильна програма та підтримка, які допоможуть пройти шлях від першого коду до першого оферу.
Основні етапи тестування мобільних додатків

Автор: Lauren Gilmore

Етап 1: Планування Етап 2. Визначення необхідних типів тестування мобільних додатків Етап 3: Тестові випадки та розробка сценаріїв тестування додатку Етап 4: Ручне та автоматичне тестування Етап 5: Тестування юзабіліті та бета-тестування Етап 6: Тестування продуктивності Етап 7: Атестаційне тестування та тестування безпеки програми Етап 8: Тестування пристрою Етап 9: Контрольний етап та резюме Висновок Ваш покроковий алгоритм тестування мобільних додатків Забезпечення якості (QA, від англійської – Quality Assurance) є невід'ємною частиною життєвого циклу розробки будь-яких додатків, включаючи мобільні. На жаль, багато хто випускає з уваги критичні особливості тестування мобільних додатків, які часто призводять до збоїв, помилок у роботі додатку та поганої якості обслуговування клієнтів. Щоб забезпечити успішну розробку будь-якого додатку, фахівець-тестувальник повинен брати участь у всіх етапах розробки: від створення концепції та аналізу вимог до створення специфікацій тестування та випуску готового продукту. Забезпечення якості також є ключовим елементом у наступних оглядах програмного продукту, які йдуть після проходження етапів розробки. Однак часто буває складно визначити, з чого розпочати організацію процесу тестування мобільного додатку. Для безпроблемного тестування ми рекомендуємо просто виконати дев'ять наведених нижче кроків. Давайте розглянемо особливості тестування мобільних додатків. Цикл життя спринтів Етап 1: Планування Коли етап розробки додатку майже завершений, ви повинні знову поставити перед собою питання – чого ви намагаєтеся досягти розробкою цього додатку та які у вас є обмеження. Ви повинні визначити наступне: Чи взаємодіє ваш додаток з іншими додатками? Наскільки функціональні всі можливості додатку? Чи є тестований мобільний додаток нативним, Mobile-web або гібридним? Чи обмежена задача тестування додатку тестуванням лише зовнішнього інтерфейсу? Чи стоїть завдання на тестування бекенду? Яка має бути сумісність із різними бездротовими мережами? Як сильно дані додатку та вільний простір, який він займає, залежать від особливостей використання додатку? Наскільки швидко завантажується ваш додаток, наскільки швидко відбувається серфінг по меню додатку та його функціям? Як оброблятиметься можливе збільшення навантаження на додаток? Чи впливають різні зміни у статусі та стані телефону на роботу мобільного додатку? Переконайтеся, що ви домовилися з командою тестувальників про роль кожного з них та про ваші очікування від процесу тестування. Зрештою, спілкування є ключем до підтримки правильного робочого середовища в команді. Правильне розуміння ролей і завдань також стосується і моменту прописування списку тест-кейсів. Уся команда QA повинна підтримувати та оновлювати цей документ зі звітами з тестування всіх функцій, реалізованих протягом усього процесу розробки.   Етап 2. Визначення необхідних типів тестування мобільних додатків Перед тестуванням будь-яких мобільних додатків визначте, що саме в даному мобільному додатку ви хочете протестувати: набір функціональності, зручність використання, сумісність, продуктивність, безпека тощо. На цьому етапі має сенс обрати методи тестування мобільного додатку. Визначте, на які цільові пристрої спрямовано цей додаток, та які вимоги до функціоналу слід перевірити. Ви також маєте визначити, які цільові пристрої потрібно включити до списку тестування. Ви можете зробити це наступним чином: З'ясувати, які пристрої підтримуватиме додаток; Визначити, яка версія операційної системи буде найбільш ранньою з тих, що підтримуються додатком; Виявити найпопулярніші моделі мобільних пристроїв у цільової аудиторії; Визначити набір неосновних (додаткових) пристроїв з екранами різних розмірів, які потенційно підтримуються додатком; Вирішити, чи використовуватимете для тестування фізичні пристрої або їх емулятори. Джерело: https://gs.statcounter.com/screen-resolution-stats/mobile/worldwide/#monthly-201804-201904-bar   Етап 3: Тестові випадки і розробка сценаріїв тестування додатку Підготуйте документ, який описує тестові випадки (test cases) для кожної функції та функціональності, що тестується. Крім функціональних тестових випадків, також повинні бути охоплені деякі окремі моменти (кейси): Особливість використання батареї. Швидкість роботи додатку. Вимоги до даних. Об'єм пам'яті, що використовується. Також перед початком тестування важливо визначитися, яке поєднання ручного та автоматичного тестування ви будете застосовувати. При необхідності підготуйте окремі набори ручних тестових випадків та сценаріїв для автоматичного тестування і адаптуйте їх відповідно до вимог проєкту.   Етап 4: Ручне та автоматичне тестування Тепер настав час для виконання ручних та автоматизованих тестів. Раніше, на попередніх етапах, ви вже визначили, які тести та скрипти використовувати та підготували їх. Тепер на поточному етапі ви виконуєте запуск тестів для перевірки механізмів основної функціональності, щоб переконатися у відсутності поломок. Автоматизоване тестування мобільних додатків добре економить час та інші ресурси тестувальників.   Етап 5: Тестування юзабіліті та бета-тестування Після того, як базовий функціонал протестований, настав час переконатися, що мобільний додаток є досить простим у використанні і забезпечує задовільний користувацький досвід. На цьому етапі необхідно підтримувати відповідність матриці кросплатформності, щоб забезпечити охоплення користувачів різних платформ, досягнуте бета-тестерами. Приклад матриці підтримки різних версій платформи iOs Після того, як додаток буде протестований всередині компанії, ви зможете випустити бета-версію додатку на ринок. Тестування сумісності Мобільні пристрої різняться залежно від платформи, моделі та версії їхньої операційної системи. Важливо обрати таку підмножину пристроїв, яка відповідатиме вашому додатку. Тестування інтерфейсу користувача Користувацький досвід є ключовим елементом при тестуванні додатку. Адже наша програма розробляється саме для кінцевих користувачів. Вам слід якісно перевірити зручність використання програми, навігацію її елементами та контент. Тестуйте меню, опції, кнопки, закладки, історію, налаштування та навігацію додатку. Тестування інтерфейсу Тестування пунктів меню, кнопок, закладок, історії, налаштувань та навігації додатком. Тестування зовнішніх факторів Додатки для мобільних пристроїв не будуть єдиними додатками на пристрої користувача. Разом із вашим додатком будуть встановлені програми від сторонніх розробників. Можливо, десятки таких програм. Отже вашому додатку доведеться взаємодіяти з цими сторонніми додатками і переривати роботу різних функцій пристрою, таких, як різні типи мережевих підключень, звернення до SD-картки, телефонні дзвінки та інші функції пристрою. Тестування доступності Мобільними пристроями можуть користуватися різні люди з обмеженими можливостями. З цієї причини важливо протестувати можливість роботи з додатком людей із дальтонізмом, порушеннями слуху, проблемами похилого віку та іншими можливими проблемами. Таке тестування є важливим складником загального тестування юзабіліті.   Етап 6: Тестування продуктивності Мобільні пристрої надають для додатків менший об'єм пам'яті та меншу доступну потужність процесора, ніж стаціонарні комп'ютери та ноутбуки. З цієї причини в роботі мобільних додатків дуже важлива ефективність використання ресурсів, що надаються. Вам слід перевірити працездатність додатку, що тестується, змінивши з'єднання з 2G, 3G на WiFi, перевірити швидкість відгуку, споживання заряду батареї, стабільність роботи і т. д. Рекомендується перевіряти додаток на предмет масштабованості застосування та наявності можливих проблем із продуктивністю. В рамках цього етапу важливо пройти і тестування навантаження мобільного додатку. Функціональне тестування Функціональність додатку має бути повністю протестоване. Особливу увагу слід приділити встановленню, оновленням, реєстрації та входу в систему, забезпеченню, роботі зі специфічними функціями пристрою та повідомленням про помилки. Функціональне тестування мобільного додатку, здебільшого, може бути виконане так само, як ви виконали його для будь-якого іншого типу додатку. З цієї причини ми не будемо вдаватися в подробиці цього типу тестування. Однак слід вказати області, які мають особливе значення для мобільних додатків. Майте на увазі, що функціональне тестування повинно включати тестування всіх функцій додатку і не повинно бути надмірно зосереджено на якійсь одній функції. В рамках функціонального тестування вам слід виконати наступні тести: Тестування процесу встановлення. Тестування можливості оновлень. Експлуатаційне тестування. Тестування процесу реєстрації та авторизації. Тестування функцій, специфічних для пристрою. Тестування надсилання та отримання повідомлень про помилки. Низькорівневе тестування ресурсів: використання пам'яті, автоматичне звільнення ресурсів тощо. Тестування сервісів: функціонування як в режимі онлайн, так і в автономному режимі.   Етап 7: Атестаційне тестування і тестування безпеки додатку Безпека та конфіденційність даних мають величезне значення у наш час. Користувачі вимагають, щоб вся їхня інформація зберігалася безпечно та конфіденційно. Переконайтеся, щоб програма, яка тестується, була надійно захищена. Виконайте перевірку на можливість впровадження SQL ін'єкцій, на можливість перехоплення сеансів, аналізу дампів даних, аналізу пакетів і SSL трафіку. Дуже важливо перевірити безпеку сховища конфіденційних даних вашого мобільного додатку та його поведінку відповідно до різних схем дозволів для пристроїв. Окрім перевірки безумовного шифрування імен користувачів та паролів, задайте собі наступні питання: Чи має додаток сертифікати безпеки? Чи використовує додаток безпечні мережеві протоколи? Чи існують які-небудь обмеження, наприклад кількість спроб входу до системи блокування користувачів?   Этап 8: Тестування пристрою Виконайте тести за тими алгоритмами, які ви раніше прописали у тестових випадках та сценаріях тестування, на всіх визначених для тестування пристроях, у хмарі та/або на фізичних пристроях.   Этап 9: Контрольний етап та резюме Цей етап включає в себе детальне і повне тестування – від ранніх ітеративних етапів тестування до регресійних тестів, які все ще можуть знадобитися для стабілізації роботи додатку та виявлення незначних дефектів. На цьому етапі тестування ви можете додати для перевірки нові функції та змінити налаштування на ті, яких не буде у фінальній версії. Після завершення тестування додатку додаткові параметри та функції, додані для перевірки на цьому етапі, видаляються, і остаточна версія стає готовою до представлення громадськості. Підсумковий звіт про тестування Весь процес тестування мобільних додатків має бути ретельно задокументований. Перевірте двічі, чи зроблені необхідні записи, і після цього сформуйте свій остаточний звіт про тестування (test summary report). Цей звіт повинен включати: Важливу інформацію, виявлену в результаті проведених випробувань. Інформацію про якість тестування, яке проводиться. Зведену інформацію про якість тестованого мобільного додатку. Статистику, отриману зі звітів про різні інциденти. Інформацію про види тестування та час, витрачений на кожен із них. Слід також зазначити у звіті, що: цей мобільний додаток придатний для використання в тій якості, в якій заявлено; відповідає всім критеріям прийнятності функціоналу та якості роботи. Озброївшись зведенням, керівництво проєкту тепер може вирішити, чи готовий мобільний додаток до випуску на ринок. Тестування мобільних додатків – складне завдання. Пристосовуючи ці етапи тестування до кожного розроблюваного додатку і ретельно виконуючи кожен крок, ви гарантовано отримаєте повнофункціональний якісний продукт. Висновок У цій статті ми розглянули особливості тестування мобільних додатків. Розглянуті етапи тестування важливі і для тестування андроїд додатків, і як відповідь на питання “як тестувати додатки для iPhone?”. Важливо пам'ятати, що тестування додатків перед представленням на ринку – важливий етап розробки будь-яких додатків. І, звичайно ж, тестування мобільних додатків має свої особливості та важливі моменти. Відповідально підходьте до питання розробки та тестування мобільних додатків, своєчасно вивчаючи та застосовуючи актуальні методики та технології. З нашого боку ми рекомендуємо для вивчення курс на ITVDN – Unit тестування для Android розробників. За матеріалами статті. Також Вам можуть бути цікаві: Відео курси за спеціальністю Quality Assurance Відео курси за спеціальністю Android Developer Відео курси за спеціальністю iOS Developer
Декілька порад при навчанні з відеокурсів

Автор: Infopulse

Введение В последнее время было много сказано о будущем электронного образования (eLearning), но многие ли понимают, как использовать наиболее популярный формат обучения – видео-обучение? Сегодня постараемся определить несколько подсказок для более эффективного использования видео-обучения. В первую очередь вам стоит помнить, что просмотр видео курсов ставит вас в пассивную роль, тем не менее у вас остается возможность участвовать в дискуссии с вашими коллегами на форумах, чатах и т.д. Если у вас нет возможности вести обсуждение нового материала с ментором или с учащимся, приучитесь фиксировать свои достижения и затем возвращаться к ним для пересмотра ошибок. Чередуйте просмотр видео и практические занятия, даже если вы смотрите продолжительный по времени урок, сделайте паузу и выполните часть домашнего задания. Это позволит в лучшей мере освоить пройденный материал и, как говорится, «закрепить» его на практике. Проецируйте новый материал через призму вопроса «как сделать …?» или «как не делать …?». Это позволит вам быстрее приучиться к мысли, что все новые возможности нужно использовать для решения определенного рода задач. Также помните, что для решения любой задачи может существовать минимум два решения. Тщательно сохраняйте все выполненные промежуточные практические задания, это поможет вам проводить работу над ошибками, и вы сможете воочию наблюдать ваш рост. Имея историю ваших работ, вы сможете анализировать возможность применения разных технологий для решения одной и той же задачи. Только так, на практике вы оцените, какую технологию лучше использовать в том или ином случае. Проводите оценку ваших знаний путем сдачи экзаменов и получения сертификатов. Подтверждение ваших знаний в виде сертификатов – это первый шаг к построению успешной карьеры и планового повышения вашего уровня заработной платы. В ходе обучения работайте над вашим портфолио, неважно в какой сфере вы специализируетесь, уже давно прошли те времена, когда портфолио было только у графических дизайнеров, сегодня каждый уважающий себя разработчик имеет открытый репозиторий на GitHub c личным проектом. Можете даже постить на вашей ленте в Facebook очередные достижения и фрагменты красиво написанного кода. Это будет стимулировать вас и вызовет положительные отзывы у ваших друзей. Участвуйте в онлайн обсуждениях (интернет-конференции и вебинары). Подобные события позволят вам обзавестись новыми знакомствами и обсудить ваши вопросы с более опытными коллегами. Как видите, можно легко выработать правила, которые будут полезны и приятны именно вам. В любом случае, помните - обучение должно строиться на сбалансированном распределении внимания между теорией, практикой и публичном заявлении, что вы что-то знаете и умеете. 
Роль сертифікації для компанії та співробітника

Автор: Олександр Марченко

Введение  Продолжаем с Вами знакомиться с понятием профессиональной сертификации, и в этой части поговорим о роли сертификации для компании и для сотрудника. Большинство наших знакомых ИТ-специалистов предлагают следующие варианты обоснования целесообразности сертификации: Требуется для компании в рамках программы развития сотрудников. (Нечто подобное в Британии сделали обязательным, ознакомьтесь с понятием Chartered IT Professional); Рассчитываю на бонусы или повод для повышение заработной платы; Рассчитываю на способствование карьерному росту; Хочу подтвердить свои знания и навыки. Каждый из нас когда-то приходил к подобным умозаключениям, но кто из нас хоть однажды задумывался о том, чего ожидает компания от сертификации? Попробуем себе представить… Партнерские программы с вендором. Каждый вендор имеет программы Gold/Silver partner и подобные им. Так, когда заказчик видит подобное свидетельство качества, у него повышается уровень доверия и лояльности. Зачастую такие программы партнерства подразумевают не только финансовые взносы и соответствие многим параметрам оценки, но и присутствие в штате компании нужного числа сертифицированных специалистов. «Необходимое и достаточное условие» для участия в конкурсах и тендерах, торгах и т.д. Зачастую для того, чтобы заполучить желаемого заказчика, нужно «помочь» ему составить требования к «ожидаемому» подрядчику. А что может быть еще более непредвзятым, как мнение третьей стороны, как сертификация, выданная независимым провайдером или вендором? К тому же, если у конкурента нет такого преимуществе – победа, считайте, у Вас в кармане. Честолюбие или тщеславие. Если Вы часто бываете в крупных компаниях, особенно ИТ интеграторах, Вы видели у них стену или целый зал славы, стены в котором сплошь увешаны табличками с разными золотыми партнерскими статусами за последние N лет, наградами и почетными грамотами. А в коридорах Вы можете изучать историю сертификации доброй половины ведущих специалистов. Отбор кандидатов. Точно также, как Вы выбираете врача для своего ребенка, сервисный центр для обслуживания автомобиля, юриста с его дипломами и наградами – также и компания в лице рекрутера выбирает себе сотрудника. Вспомните, как часто у Вас просили ссылку на Ваш профиль на GitHub, кто-то спрашивал у Вас, как часто Вы даете советы или ответы на вопросы на StackOverflow или кто-то похвалил Вашу статью на популярной блоговой платформе для ИТ-шников? А как часто Вы заявляли об этом в своем резюме? И как часто Вы включаете номера своих сертификатов и обновляете их на своем профиле в LinkedIn? Думаю, Вам понятно, что сертификация — это какая-никакая гарантия качества знаний сотрудника.  В то же время, могу Вас заверить, что при активной «социальной» деятельности, которая подтверждает Ваши знания и опыт, такой как выступления на тематических конференциях, модерирование хакатонов, ведение интересных блогов, разработка курсов для начинающих разработчиков и т.д., Вам не понадобится сертификация для уверения рекрутера в Вашей надежности и соответствии требованиям проекта. Но, если Вы начинающий специалист, которому нужно оказаться лучше, чем толпы конкурентов, задумайтесь над тем, что заставит рекрутера смотреть именно в Вашу сторону, задумайтесь сможете ли Вы дать компании то, что дорого для нее.
З чого розпочати вивчення JavaScript?

Автор: Дмитро Охріменко

JavaScript – прототипно-ориентированный язык программирования, который используется для написания сценариев, выполняемых специальным программным обеспечением. JavaScript часто используется при написании сценариев для веб приложений, но в последнее время язык начал активно применяться и в других областях разработки – в серверных приложениях (node.js), на мобильных платформах (PhoneGap) и даже для разработки приложений для Windows (Windows Store with JS). Как вы видите, язык достаточно активно используется и входит в 10 популярных языков программирования, поэтому многие начинающие разработчики и уже опытные изучают этот язык программирования. В сети можно найти самоучители, книги с примерами кода и видео уроки по JavaScript в достаточном количестве. Но проблема в том, что уроков для начинающих и других учебных материалов очень много, и у большинства возникает проблема - «что и в какой последовательности учить?». Задача данной статьи помочь вам найти правильный путь в изучении JavaScript. Каждый для себя выбирает наиболее удобную и эффективную форму обучения – это могут быть книги по JavaScript и самоучители для самостоятельного обучения, очные курсы программирования, где тренер может ответить на вопросы, или видео уроки по JavaScript и примеры JavaScript кода. Какой бы из подходов вы ни выбрали – главное, последовательно и планомерно следовать программе обучения и максимально много практиковаться, так как без практики запомнить и научится применять большое количество разнообразных языковых конструкций достаточно тяжело. Если вы выберите самостоятельное изучение, обязательно приобретите следующие книги по JavaScript. Настольная книга любого JavaScript разработчика – Дэвид Флэнаган «JavaScript Подробное руководство». Вторая книга, которая позволит вам правильно организовывать свой код - Стоян Стефанов «JavaScript Шаблоны», но она пригодится вам позже, когда вы разберете примеры JavaScript кода из предыдущей книги. В изучении JavaScript можно выделить несколько этапов: Изучение языковых конструкций: переменные, циклы, условные конструкции, функции. Освоение объектов и массивов. Изучив основы работы с языковыми конструкциями и основными типами данных, можно перейти к освоению главной задачи JavaScript – манипулированию DOM дерева. Вы должны научится работать с элементами, которые находятся на странице, динамически создавать новые узлы и изменять существующие. Изучение шаблонов проектирования и кодирования, которые позволят разрабатывать понятный и сопровождаемый код. Изучение дополнительных библиотек и фреймворков, например, jQuery. Изучая материалы книги Дэвида Флэнагана, вы сможете пройти первые 3 этапа, а книга Стояна Стефанова поможет научиться правильно организовывать JavaScript код. В дополнение к книгам вам могут помочь видео уроки по JavaScript для начинающих и JavaScript для профессионалов.
Початок кар'єри в ІТ

Автор: Олександр Марченко

Введение Пожалуй, все давно знают, что эра технологий уже наступила, и произошло это уже давно. На сегодняшний день невозможно создать производство чего-либо без использования информационных технологий. Насколько целесообразным является выбор именно Информационных технологий в качестве своей профессиональной сферы, решать каждому из Вас. Но Вам будет очень трудно найти что-то более динамичное и захватывающее. Также стоит помнить, что и уровень зарплат по-прежнему сохраняет статус наиболее привлекательных, практически во всех современных экономиках развитых государств. Что нужно знать о построении своей карьеры? Все решают Ваши знания и отношения с другими людьми. Причем, влияние этих двух аспектов абсолютно равноправное. Если Вы отдадите должное внимание построению нужных связей и знакомств, будете постоянно пополнять свой круг общения новыми приятными и полезными знакомствами, и, главное, не забудете поддерживать старые отношения, то всегда будете оставаться в более выгодных условиях. И наоборот, тот, кто будет разбрасываться знакомствами, ставить свои приоритеты выше других, вести себя неподобающе в современном обществе, в итоге приобретет дурную славу, которая очень быстро распространиться по локальному ИТ-сообществу и за его пределами. Первым шагом в построении карьеры, скорее всего будет трудоустройство на первую работу. И тут придется ответить на самый страшный вопрос: «Где взять 2 года опыта?» Порой этот вопрос звучит следующим образом: «Где я обзаведусь опытом работы в реальных проектах, если я только учусь/только что выпустился/работаю в другой сфере/не имел опыта с этой платформой?». И это абсолютно правильный вопрос, поскольку работодатель хочет нанять надежного профессионала, а не дилетанта. Попробуем найти ответы на этот вопрос, и вот несколько вариантов: Принимайте участие в хакатонах и OpenSource проектах Данного рода активности позволят Вам обзавестись своими личными проектами. Их Вы сможете развивать, при этом, без сомнений, улучшите свои профессиональные навыки и обзаведетесь полезными знакомствами. Ведь они могут сыграть ключевую роль в Вашем будущем. Анализируйте чужой код Доступ к которому все также легко получить на OpenSource проектах. Вы не сможете стать профессионалом и создавать свои решения до тех пор, пока не сможете полностью понимать чужие. Это все равно как учиться писать, не имея навыков чтения. Участвуйте в стажировках Большинство крупных компаний с огромным удовольствием берут на стажировки студентов, которые проявляют потенциал. Вам никто не даст участвовать в крупных и критически важных проектах, но зато Вы сможете проявить себя в реальных условиях, да еще и сделать это под чутким руководством более опытных коллег. Дополнительным бонусом стажировок является пусть и незначительная, но возможность получения приглашения на работу. Для этого нужно постараться, но никто и не говорил, что будет легко. Кроме всего прочего не забывайте о постоянной работе над собой. Если Вы хотите оставаться востребованным на рынке труда специалистом, Вам необходимо оставаться в курсе последних событий ИТ-мира и непрерывно совершенствоваться. Для Вас не должно быть открытием то, что работа - это рутина, а вот обучение зачастую приносит больше удовольствия. Так превратите свою работу в непрерывное развитие, и Вы не пожалеете!
Що таке нативні та кросплатформні програми? Плюси і мінуси.

Автор: Армен Маїлян

Что такое нативные приложения? Что из себя представляют кроссплатформенные приложения? Какие инструменты для разработки кроссплатформенных приложений применяют чаще всего? Преимущества и недостатки нативного подхода Преимущества и недостатки кроссплатформенных приложений Вывод Мировая статистика использования смартфонов показывает абсолютное преобладание всего двух мобильных операционных систем. Так, по данным портала statista.com, во втором квартале 2018 OS  Android была установлена на 88% всех используемых смартфонов, а iOs – на 11.9%. Данные портала netmarketshare.com, в свою очередь, показывают на апрель 2019 для OS  Android – 69.63%, а для iOs - 28.50%. По состоянию на март 2019 в Google Play Store находилось более 2 600 000 приложений. В Apple App Store, по данным на июль 2018 – 2 450 220 приложений. В течение последних лет количество доступных приложений растет на сотни тысяч в год. По прогнозам statista – к 2020 году объем рынка мобильных приложений приблизится к 190 млрд $. При таком, постоянно растущем количестве конкурентов, перед разработчиками мобильных приложений встает вопрос - какой подход использовать в разработке, чтобы новые, конкурентоспособные приложения: разрабатывались быстро; получались качественными и надежными; легко обновлялись и поддерживались; легко задействовали все необходимые возможности платформы. Фактически, рынок заставляет разработчика делать выбор между разработкой кроссплатформенных приложений и разработкой нативных приложений. Рассмотрим детальнее, что представляет из себя каждый из указанных подходов.   Что такое нативные приложения? Нативные приложения (от англ. native - родной) разрабатываются под конкретную аппаратно-программную платформу и пишутся на языках, созданных для данной платформы. И iOs, и Android имеют свои SDK (от англ. software development kit — набор средств разработки) и свой стек технологий, завязанные на определенный язык программирования. Например, родными языками для Android являются Java и Kotlin, для iOS, соответственно - Swift и Objective-C. Нативные приложения создаются специально для запуска на целевой платформе - с поддержкой всех нативных технологий и аппаратных возможностей конкретной платформы.   Что из себя представляют кроссплатформенные приложения? Как следует из названия, кроссплатформенность подразумевает создание приложений, которые могут работать в различных операционных системах. После написания кода приложения его можно развернуть на разных устройствах и платформах, не беспокоясь о проблемах несовместимости. Это универсальный подход, который широко используется для экономии времени и денег на разработку. Часто для этого используются специализированные кроссплатформенные фреймворки. Примером такой разработки является применение фреймворка Xamarin для создания приложений, работающих не только на Windows. Благодаря использованию Mono (опенсорс реализации платформы .Net), проекты, написанные на C#, успешно запускаются на Unix-like системах – iOs, Android, Linux. Какие инструменты для разработки кроссплатформенных приложений применяют чаще всего? Ссылаясь на статистику appfigures.com можно выделить такие инструменты: Как мы видим наиболее часто применяемым инструментом разработки кроссплатформенных мобильных приложений на конец 2017 года был Cordova – 39.89%. Вторым по частоте применения инструментом является Unity – 30.93%. Третьим – Adobe Flash с 10.39%. Следом идут Cocos2D – 9.37%, Xamarin – 4.5%, Appcelerator – 3.79%, Corona – 2.68%, React Native – 1.85%. Итак, стоит ли вам инвестировать в разработку отдельных нативных приложений на несколько платформ сразу, или убивать двух зайцев одним выстрелом, разрабатывая кроссплатформенные приложения? Или может стоит вообще сосредоточиться только на одной платформе и не обращать внимание на другую, пока не достигнут успех среди приложений первой? По данным портала appfigures.com на начало 2018 года количество приложений, присутствующих на обеих популярных платформах, было вполне ощутимым: 450 тысяч приложений на обеих платформах. Это более 28% приложений в Apple App store и 14% в Google Play Store. Это выглядит достаточно весомой частью, чтобы задуматься об присутствии на обеих платформах и попытке экономии используя кроссплатформенную разработку. По данным того же портала, многие уже существующие приложения расширяют свой рынок, выходя, со временем, на другой платформе. При че чаще приложения выходят дополнительно на Android, выпускаясь изначально под iOs. Можно также наблюдать тенденцию к снижению процента кроссплатформенных приложений за 2016 – 2017 годы. Так стоит ли потратить деньги на разработку двух нативных приложений, идеально соответствующих каждой платформе, или есть смысл сэкономить ресурсы и получить одно – кроссплатформенное? Давайте рассмотрим плюсы и минусы каждого из указанных подходов.   Преимущества и недостатки нативного подхода Плюсы нативных приложений Высокая производительность Поскольку технологии, используемые при разработке платформозависимых приложений, напрямую связаны с этой платформой, собственный нативный код имеет прямой доступ ко всем функциям операционной системы. Это, более простое взаимодействие приложения с собственными функциями мобильных устройств, повышает общую производительность приложения, особенно при представлении графического или мультимедийного контента. Следовательно, создание нагруженных приложений с использованием нативного кода может снизить время отклика,  вероятность сбоев и зависаний. Максимальное использование возможностей платформы Нативные приложения задумываются и разрабатываются, чтобы решать конкретные задачи на конкретной платформе. Это приводит к лучшему соответствию возможностей приложений аппаратным возможностям устройств, включая Bluetooth, NFC, камеру, GPS и т. д. Эта соответствие необходимо, когда приложение должно использовать такие данные, как физическое и географическое местоположение и др. Лучший пользовательский интерфейс Поскольку нативные приложения напрямую интегрируются с мобильной операционной системой, воспринимая и используя все доступные возможности «железа», пользователи могут перемещаться по привычному интерфейсу без особых хлопот, что приводит к положительному пользовательскому опыту (UX) и стабильному повторному использованию. К примеру сейчас, при большом количестве разнообразных вариантов разрешений экранов смартфонов очень важно иметь приложение, оптимизированное под такой экран, чтобы пользователю было удобно этим приложением пользоваться. Лучшее позиционирование в магазинах приложений Качество пользовательского опыта является важным рейтинговым показателем в магазинах приложений. Если приложение имеет высокую оценку пользовательского опыта, оно будет более высоко оценено магазином приложений, что ведет к большему числу рекомендаций для разной аудитории и увеличению доходов от приложения, соответственно. Есть предположение, что в магазинах приложений сами механизмы ранжирования будут лучше представлять приложения именно нативные для платформы, из-за их заведомо более высокой производительности и простоты использования. Минусы разработки нативных приложений Дороговизна и затраты времени на разработку Без сомнения, создание отдельных приложений сразу под каждую из нескольких операционных систем может значительно продлить процесс разработки. Один и тот же программный код не может быть развернут на разных платформах, и программистам потребуется больше времени для преобразования и перезаписи кода, что увеличивает затраты и время разработки. Если компания хочет для каждой из платформ создавать отдельные приложения, она может оказаться вынуждена нанять дополнительных программистов-специалистов. Например, один разработчик будет сосредоточен на разработке приложений для iOS, а другой - на разработке приложений для Android, что еще больше увеличивает расходы.   Несовместимость с другой мобильной операционной системой Вам придется заранее согласиться с несовместимостью вашего приложения с другими ОС. Когда разрабатывается приложение под конкретную ОС, его разработчики используют язык, специфичный только для этой операционной системы: например, Objective-C или Swift - для iOS, для различных мобильных устройств на базе Android - Kotlin и Java. В этом контексте нативное приложение, которое изначально написано для iOs, не будет совместимо с устройствами на базе Android и наоборот.   Упущенные возможности Разработка приложений, ориентированных только на одну платформу, может привести к упущенным возможностям. Особенно если другие платформы заранее не принимаются во внимание. Заведомое сокращение целевого рынка может привести к потере дохода. Плюсы и минусы кроссплатформенных приложений Как следует из названия, кроссплатформенность влечет за собой создание приложений, которые могут работать в различных операционных системах. После написания кода приложения его можно развернуть на разных устройствах и платформах, не беспокоясь о проблемах несовместимости. Это универсальный подход, который широко используется для экономии времени и денег. Вот некоторые преимущества и недостатки использования кроссплатформенного подхода в разработке мобильных приложений. Плюсы кроссплатформенных приложений   Один код доступен для повторного использования на других платформах Основным преимуществом кроссплатформенной разработки мобильных приложений является тот факт, что один и тот же код может использоваться на разных мобильных платформах. В отличие от разработки нативного приложения, для кроссплатформенного приложения не требуется  использование отдельного технического стека для каждой операционной системы. Повторное использование кода позволяет легко развертывать приложение на другой платформе, так как возможности приложения, реализованные на одной платформе, будут работать и на других платформах.    Разработка кроссплатформенных приложений экономически эффективна Одна команда может реализовать нужную идею сразу на всех платформах, используя единый технологический стек. Это приводит к меньшим затратам ресурсов.   Простое и быстрое развертывание Разработчикам кроссплатформенных приложений не нужно изучать несколько технологических стеков различных платформ перед созданием своих приложений, им нужно хорошо освоить один стек разработки и особенности его применения. Поскольку нет необходимости создавать разные кодовые базы, начальное развертывание на целевых платформах происходит намного быстрее. Кроме того, будущие изменения в приложении могут выполняться одновременно, без внесения индивидуальных изменений на каждой платформе.   Кроссплатформенные приложения покрывают более широкую аудиторию Кроссплатформенные приложения предлагают разработчикам больше возможностей для охвата более широкой аудитории, поскольку такие приложения достигают пользователей всех типов и мобильных устройств, независимо от их операционной системы. Это значительно рентабельнее для бизнеса, чем присутствие только на одной платформе.   Кроссплатформенные приложения допускают одинаковый интерфейс и UX Тогда как производительность важна для любого мобильного приложения, его внешний вид (UI) и ощущения (UX) так же важны. Использование единой общей команды разработчиков и единого кода позволяет компаниям использовать одинаковый внешний вид приложения на всех платформах. То есть один и тот же пользовательский интерфейс и UX будет одинаково выглядеть на всех платформах. Недостатки кроссплатформенной разработки приложений   Кроссплатформенные приложения не являются такими гибкими, как нативные приложения Хотя задачи приложения будут реализовываться на всех платформах, скорее всего вы не сможете адаптировать готовое приложение для использования максимальных возможностей каждой из платформ.Работа с унифицированным стеком технологий не обеспечит такой же гибкости настройки и оптимизации, как применение стека технологий, индивидуального для каждой ОС.   Кроссплатформенные приложения не работают так же хорошо, как нативные приложения Использование одного универсального стека технологий приносит в жертву гибкость. Однако потеря гибкости в разработке будет означать потерю возможности улучшить производительность. Поскольку кроссплатформенные приложения отказываются от некоторой гибкости, эти приложения не будут работать так же хорошо, как нативные приложения.   Возможное несоответствие UI в различных платформах Внешний вид интерфейса приложения и правильная настройка UI для соответствия функционала в обеих системах может доставить проблем. К примеру, у каждой системы имеются свои требования к дизайну элементов UI. В определенных случаях эти требования могут оказаться взаимоисключающими.   Отправка кроссплатформенных приложений в соответствующие Магазины приложений может иметь сложности. Механизм добавления вашего приложения, являющегося кроссплатформенным, в Apple App Store и в Google Play Store будет отличаться. Требования этих магазинов приложений к представленным у них продуктам различны.  Прохождение всех проверок и выполнение всех правил для соответствия обоим магазинам будут вызывать определенные сложности.   Вывод Подведем краткие итоги. Попробуем сузить наш достаточно сложный выбор между нативной разработкой и кроссплатформенной. Обратите внимание на стратегию продвижения приложения и на его предполагаемый функционал. Если вам сразу нужен будет охват большей аудитории и у приложения функционал не является сложным - проще и дешевле воспользоваться кроссплатформенным подходом. Если вашему приложению необходимо использовать специфические особенности платформы, при этом нет необходимости в одновременном присутствии сразу и в Apple App Store, и в Google Play Store – разрабатывайте под выбранную платформу нативное приложение. И если ваши успехи покажут вам, что можно захватывать новый рынок – у вас уже будут средства на разработку под вторую платформу. Другие промежуточные варианты будут компромиссами и могут склонять чашу весов как к нативным, так и к мультиплатформенным решениям.   Используйте выбранный вами подход для построения качественных и полезных приложений.  С нашей стороны можем порекомендовать ряд видеокурсов. Для создания кроссплатформенных игр очень удобным инструментом является Unity и на ITVDN вы найдете серию видео курсов по разработке игр на Unity. Если вы хотите попробовать себя в разработке кроссплатформенных приложений с использованием такого инструмента, как Xamarin, вам могут оказаться полезными такие уроки на портале ITVDN.com, как Xamarin. Легкий старт и Разработка пользовательского графического интерфейса (GUI) на C# под Android (Xamarin). Если вы планируете в дальнейшем разработку нативных приложений под Android, мы рекомендуем начать с таких курсов - Java Starter и Java Essential. Также смотрите на ITVDN видео курсы по специальности Android Developer и iOS Developer.
Правила застосування основних тегів HTML5

Автор: Антон Гончаров

Введение Все мы уже знаем (ну или что-то слышали об) основных правила применения элементов разметки HTML5. Появилось много "плюшек" и “вкусностей” в новой спецификации HTML. Вместе с тем, появились новые элементы разметки. Но не все помнят/знают, как их использовать правильно. Коротко остановлюсь на главных нововведениях HTML5: Новые элементы: header, footer, section, article, video, audio, progress, nav, meter, time, aside, canvas; Новые значения для атрибута type тега ; Новые атрибуты HTML5 для элементов, такие как: dragable, contenteditable, hidden, contextmenu, data-*, dropzone, role, spellcheck[8] и т.д.; Атрибуты class, dir, id, lang, style, tabindex, title, существовавшие в HTML4, теперь можно применять ко всем елементам HTML разметки; Устаревшие элементы HTML страницы, которые частично поддерживаются и не рекомендуются к ипользованию: acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, strike, tt, u. Итак,  более детально рассмотрим, как же правильно использовать основные новые теги. Элемент Элемент <main>содержит главную информацию вашего сайта. Такие повторяющиеся элементы как логотип, окно поиска, меню навигации не рекомендуется вкладывать в <main>. Также не стоит помещать сам элемент <main> внутрь элементов <article>, <aside>, <header>, <footer> или <nav>. Элемент В элемент <article> следует помещать тот контент, который может быть удален без ущерба для всего сайта. К примеру, краткое описание новостей, рекламный баннер, статья, комментарии. Можно вкладывать <article> в <article>, что будет связывать вложенные элементы <article> с родительским. Элемент Элемент <header>, как  понятно из названия, используется для оглавления отдельного контента или всей страницы. Должен содержать  заглавие, дату статьи и т.д. Элемент Элемент <footer> служит для предоставления информации об авторе статьи/страницы, ссылки на авторские права и т.д. Обычно является прямым потоком тега <body> (помещается сразу за элемент <body>). Элемент Этот элемент содержит информацию об окружающем контенте, дополнительную информацию пользователю. Может содержать такой элемент, как <nav>, сноски, ссылки и т.д. Элемент   Предназначен для предоставления контактной информации о статье или всей странице. Стоит отметить, что этот элемент часто помещают в , для размещения ссылок для связи с авторами страницы. Элемент Элемент <nsfw> (англ. - Not Safe For Work – небезопасно для отработки) используется для размещения на странице контента сомнительного характера. Часто этот тег используют для размещения порнографии. Чтобы браузер не отображал такой контент, используют CSS код  nsfw {display: none ;} Элемент Элемент предназначен для размещения видео контента на странице. Для корректного отображения контента стоит прописать дополнительно атрибуты width, height, src, controls. Ваш код будет выглядеть примерно так:   <video width="840" height="480" src="../video/myVideo.mp4" controls> video>   Если же Вы хотите разместить у себя на странице видео, которое расположено на сайте youtube.com. Вам стоит зайти на страницу c видео, правой кнопкой мыши нажать на видео, и из выпадающего меню выбрать “Получить код для встраивания”. Копировать код из “попап” окошка. В разметке вашего сайта, в нужном вам месте, кликнуть правой кнопкой мыши и выбрать “Вставить”. У вас получится примерно такой код:   <iframe width="854" height="510" src="https://www.youtube.com/embed/_giinWWrNlQ" frameborder="0" allowfullscreen>iframe>   В свою очередь, элемент > создает область, которая позволяет загружать любой документ в себя. Элемент Элемент <audio> позволяет добавить на страницу аудио дорожки. Также в HTML5: Реализована возможность добавления на станицу геолокационных карт, а также определения местоположения пользователя в данный момент. Теперь мы можем рисовать с помощью технологии canvas. А также использовать 3D графику. Стало возможным просто перетягивать документы и прикреплять к письму. И еще много новых "плюшек", которые вы можете узнать и научиться их использовать, пройдя наши курсы в учебном центре CyberBionic Systematics. Всем удачи и хорошего кода)
Прості події

Автор: Костянтин Чорний

Введение При разработке компьютерных систем и программ, в том числе таких, в которых функционирует множество оригинальных сущностей и их дублей – экземпляров, возникает проблема отслеживания связей взаимодействия между этими объектами. И чем больше появляется этих объектов , тем сложнее вписать их в структуру приложения. Да, можно сказать что здесь явные проблемы с архитектурой и так не должно быть, но все равно мы наталкиваемся на проблему создания крупной многообъектной системы с гибкими динамическими связями и адаптивным поведением. Лучшее решение – событийно-ориентированное программирование! Итак, событие – это внезапное происшествие, появление которого нельзя предугадать, а можно только к нему готовиться. В подобном русле работает и человеческих мозг. Он ожидает появления события и, когда оно происходит, как-то на него реагирует. Давайте рассмотрим небольшой мысленный эксперимент. Представьте дорогу, пешеходный переход и светофор, который регулирует переход в данном месте. Светофор – это объект, который порождает событие. Он по воле своего внутреннего устройства будет включать или отключать зеленый свет, который будет разрешать пешеходам переход через улицу. В это время на тротуаре начинают собираться люди. Каждый человек – это объект, содержащий специфическое поведение, которое называется обработчиком события. В данном случае этот обработчик будет отвечать за пересечение улицы и будет вызываться во время возникновения события. У каждого человека обработчик разный, ведь все люди переходят через улицу по-разному. Один будет идти быстро, другой медленно, третий - смотреть на машины, которые стоят на перекрестке, а четвертый - следить за таймером, который будет отсчитывать секунды. Но каждый из них не предполагает, когда конкретно произойдет это событие, потому все они ждут на тротуаре. Когда человек подходит к переходу, он подписывает свой обработчик события перехода дороги на конкретное событие этого светофора. Если человек передумает переходить или, например, отойдет поговорить по телефону, то он не будет выполнять свой обработчик, если событие возникнет. И, наконец, когда светофор включается на зеленый, все люди начинают переходить дорогу. Возникло событие – выполнился обработчик. Что-же нам позволяет сделать событийную модель? Она разрешает динамически изменять связи между объектами и не только расторгать или устанавливать их, но и менять характер самого действия. Давайте рассмотрим пример создания события на языке C#. namespace TrafficLight {     // Светофор     public class Light     {         // Событие появления зеленого света         public event EventHandler Green;         // Метод который вызывает событие         public void SwichToGreen()         {             Green.Invoke(this, new EventArgs());         }     }     // Человек     public class Human     {         public string Name { get; private set; }         public Human(string name)         {             Name = name;         }         // Метод обработчик события перехода через дорогу         public void CrossingTheRoad(object sender, EventArgs e)         {             Console.WriteLine(this.Name + " crossing!");         }     }     class Program     {         static void Main(string[] args)         {             // Создание светофора             Light light = new Light();             // Создание людей             Human human1 = new Human("Alex");             Human human2 = new Human("Bob");             Human human3 = new Human("Alice");             // Подписка на событие             light.Green += human1.CrossingTheRoad;             light.Green += human2.CrossingTheRoad;             light.Green += human3.CrossingTheRoad;             // Вызов события             light.SwichToGreen();             Console.ReadKey();         }     } } Таким образом, язык C# позволяет быстро и легко создавать приложения, которые используют событийную модель. Более подробно узнать о событиях Вы можете в двенадцатом уроке курса C# Базовый. Для практики можете создать небольшую игру с игровыми объектами, взаимодействующими посредством событий.
Notification success