Результати пошуку за запитом: mvc 5
Паралакс для 2D гри без нервів та милиць
Автор: Дар'я Коновалова
Недавно в моей жизни начинающего разработчика игр появилась задача - сделать фон в игре, но не просто уныленький статичный бэкграунд, а параллакс. Да, эта чудо-красота применима не только в разработке сайтов, но и при создании игр. Попытка вдохновиться в гугле практически ничем не закончилась. Пришлось справляться с задачей собственными силами.
У меня получилось. Хочу поделиться с вами опытом.
Справедливо замечу, что параллакс — это не достояние веба. Еще в дремучие времена существования 8-битных игр параллакс успешно применялся для создания иллюзии объема в двухмерной игре. Коротко говоря, параллакс — это наслоение изображений, каждый слой движется со своей скоростью. Ближайший к игроку имеет самую высокую скорость, соответственно дальний (последний) — самую низкую.
Ну что, вроде, минимально в теории разобрались и даже нашли, откуда ноги растут, значит, мы готовы перейти непосредственно к практике и сотворить это чудо своими руками.
Что вам потребуется:
базовые знания Unity3D 5 (на уровне создания скриптов, добавления компонентов);
понимание С#;
3 или больше картинок в формате .png;
внимательность и желание.
Ладно, последнее не очень обязательно =)
По ссылке вы можете скачать необходимые изображения, а также уже готовый проект.
Подготовка
Запускаем Unity3D, создаем новый проект, называем его, например, Parallax2D.
Закидываем в папку Assets наши бэкграунды. Рекомендую сложить их в отдельную папку. В моем случае они лежат в Assets – StarSky.
Каждое изображение называем удобно и понятно. Я назвала их по порядку размещения (Background – задний фон, MiddleBackground – средний, TopBackground – верхний слой).
Для того, чтобы картинка перемещалась гладко, нам необходимо настроить ее в Inspector. Обратите внимание, этот этап очень важен, иначе все размажет, как звезды за иллюминатором Энтерпрайза на 3-й космической скорости.
В поле Texture Type выбираем тип Texture, во Wrap Mode отмечаем Repeat. И радостно тыкаем Apply. Без этого действия изменения не сохранятся, а потом можно долго недоумевать, почему же оно не работает. Совершаем эти телодвижения и для 2-х остальных текстур.
Подготовив картинки, переходим к этапу размещения их на сцене. Часто в этих ваших интерентах можно встретить совет - размещать их с помощью GameObject – Plane. Вы, конечно, можете потрудиться и заставить 3D объект нормально функционировать в 2D игре. Но, на самом деле, это все будет уныло, как последний эпизод «Звездных войн», а работать это чудовище будет чуть более быстро, чем аж никак. Поэтому я рекомендую долго не мучиться и использовать элемент UI – Canvas.
Canvas меняет размер фона автоматически, подстраивает его под размеры экрана гаджета, на котором запускают игру. Это избавляет нас от потребности писать скрипт, который будет отвечать за отслеживание размеров экрана и изменения размера фона.
В Hierarchy выбираем UI – Canvas. Собственно, если работать с Юнькой для вас не впервой, то вы явно знаете еще много других способов, как добавить в Hierarchy объект. Так что делайте это любым удобным способом.
Создав Canvas, добавляем чайлдами («внутрь» канвы) три Panel для 3-х наших фонов.
После добавления наша Hierarchy выглядит так:
Переименовываем Canvas и Panel, чтобы у всех были свои пароли и явки.
А теперь засучиваем рукава и беремся препарировать — подготавливать каждый компонент в Inspector.
Начнем с ParallaxBackground.
Изменяем Layer на Ignore Raycast, чтобы наш фон не реагировал на касания пальцами. Unity обязательно спросит, применить ли эти изменения ко всем «детям» — соглашаемся.
Далее переходим к компоненту Canvas.
Находим Render Mode, выбираем Screen Space – Camera. В Render Camera добавляем нашу текущую дефолтную камеру (Main Camera(Camera)).
Plane Distance ставим пока 110, но этот показатель проще отстроить во время теста. По факту — это расстояние от камеры до нашей канвы. То есть, изменяя его, мы будем получать разную глубину изображения.
Остальное не трогаем и переходим к Back.
В Rect Transform привязываем позицию к левому краю. Теперь наш фон будет всегда отстраиваться по одному краю, и мы избежим проблем с правильной позицией на разных устройствах.
Удаляем компонент Image (Script), вместо него добавляем Raw Image (Script) (напомню, Add Component – UI – Raw Image (Scriot)). В Texture добавляем картинку нашего самого последнего слоя.
Те же операции проделываем и для остальных слоев. Можно сделать немного проще, наколдовать изменения в первой Panel, дублировать (Ctrl + D), поставить в каждую свою текстуру, переименовать. Тут уже зависит от того, как вам будет удобнее.
Запускаем сцену — любуемся. Три картинки прекрасно легли друг на друга.
Немного черной магии
Теперь весь смак. Мы с вами напишем скрипт, который заставит наши картинки двигаться. Создаем новый скрипт, напомню, пишем на C#, назовем его BackgroundHelper. Он у нас будет один, поэтому нет смысла делать отдельную папку, кидаем его прямо в основную Assets. Открываем созданный скрипт и понеслась тяжкая работа на 5 строчек:
using UnityEngine;
using UnityEngine.UI; // обязательно добавляем библиотеку пользовательского интерфейса, без нее кино не будет
using System.Collections;
public class BackgroundHelper : MonoBehaviour {
public float speed = 0; //эта публичная переменная отобразится в инспекторе, там же мы ее можем и менять. Это очень удобно, чтобы настроить скорость разным слоям картинки
float pos = 0; //переменная для позиции картинки
private RawImage image; //создаем объект нашей картинки
void Start () {
image = GetComponent<RawImage>();//в старте получаем ссылку на картинку
}
void Update () {
//в апдейте прописываем как, с какой скоростью и куда мы будем двигать нашу картинку
pos += speed;
if (pos > 1.0F)
pos -= 1.0F;
image.uvRect = new Rect(pos, 0, 1, 1);
}
}
Сохраняем скрипт и добавляем его, как компонент к каждому слою.
Скорости у меня такие:
Back 0.0001
Middle 0.00015
Top 0.00024
Наслаждаемся успешной работой
Если все было сделано правильно, мы получим умопомрачительный эффект, от которого просто невозможно оторвать глаз.
У вас остались вопросы или возникли трудности? Пишите в комментариях.
Огляд елементів у HTML5
Автор: Редакция ITVDN
Введение
HTML5 – последняя версия языка разметки. У HTML5 есть семантическая структура. В пятой версии языка ввели определенные средства для управления – они дают возможность сэкономить Ваше время при разработке веб-сайтов. В этой статье мы рассмотрим упомянутые средства управления, а также функции в HTML5.
Прежде чем начать, необходимо установить Visual Studio.
Мы можем включить опцию HTML в целевом разделе:
Tools -> Options -> Text Editor -> HTML.
Разметка HTML5
Объявление DOCTYPE:
<!DOCTYPE html>
Объявление кодировки символов:
<meta charset="utf-8" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Sibeesh Passion wish you a happy new yeartitle>
head>
<body>
Welcome to Sibeesh Passion
body>
html>
Структура HTML5
Как уже говорилось, у HTML5 есть семантическая структура. Это уменьшает усилия UI-разработчика. На изображении объясняется эта структура.
До применения HTML5:
После:
Исходя из рисунка, понятно, что в HTML5 доступны такие элементы:
Header
Nav
Section
Aside
Article
Footer
Добавление собственных элементов
Вы можете создать собственный элемент, используя стили. Разметка должна выглядеть таким образом:
<!DOCTYPE html>
<html>
<head>
<title>Your own element title>
<script>document.createElement("yourelement")script>
<style>
yourelement {
display: block;
}
style>
head>
<body>
<div>
Normal element
div>
<yourelement>My elementyourelement>
body>
html>
Вы создали новый элемент «yourelement».
Новый синтаксис Атрибута
В HTML5 введен новый синтаксис атрибута:
Empty
Unquoted
Double Quoted
Single Quoted
Можно присвоить текстовое значение тега input type таким образом:
<input type="text" value="Sibeesh" disabled>
<input type="text" value=Sibeesh>
<input type="text" value="Sibeesh">
<input type="text" value=’Sibeesh’>
Примените CSS
Так же, как к обычным элементам HTML, так и к новым семантическим элементам можно применять стили.
footer{border:1px solid;}
Предыдущий стиль будет применен ко всем footer, доступным на странице. Не рекомендуется использовать верхний регистр (Footer, FOOTER) в названии элементов.
Обзор элемента Canvas
Если Вы хотите создать определённый графический контент, элемент Canvas, то Вам нужно:
Объявление Canvas
<canvas id="canvasExample" width="200" height="100"
style="border:1px solid #ccc;">
Bad Luck, It seems your browser won't support :(
canvas>
Реализация Canvas
var c = document.getElementById("canvasExample"); //Get the element
var ctx = c.getContext("2d"); // Get the context for the element
var grd = ctx.createLinearGradient(0, 0, 200, 0); //Create the line
grd.addColorStop(0, "blue"); // Apply the colors
grd.addColorStop(1, "white"); // Apply the colors
ctx.fillStyle = grd; //apply the style
ctx.fillRect(10, 10, 150, 80); // Fill
Здесь мы применили градиент к canvasExample.
Введение в SVG
Масштабируемая векторная графика (Scalable Vector Graphics) – графика для web типа canvas. Одно из различий между canvas и SVG то, что SVG поддерживает обработчик событий, а элементы canvas – нет.
Объявление SVG
<canvas id="canvasExample" width="200" height="100"
style="border:1px solid #ccc;">
Bad Luck, It seems your browser won't support :(
canvas>
Полный вариант HTML-документа:
<!DOCTYPE html>
<html>
<body>
<table style="border:1px solid #ccc;">
<tr style="border:1px solid #ccc;">
<td style="border:1px solid #ccc;">
<h2 style="text-align:center;">Canvash2>
<canvas id="canvasExample" width="200" height="100"
style="border:1px solid #ccc;">
Bad Luck, It seems your browser won't support :(
canvas>
td>
<td style="border:1px solid #ccc;">
<h2 style="text-align:center;">SVGh2>
<svg width="200" height="200">
<circle cx="100" cy="100" r="50"
stroke="green" stroke-width="4" fill="yellow" />
Bad Luck, It seems your browser won't support :(
svg>
td>
tr>
table>
<script>
var c = document.getElementById("canvasExample"); //Get the element
var cctx = c.getContext("2d"); // Get the context for the element
var grd = ctx.createLinearGradient(0, 0, 200, 0); //Create the line
grd.addColorStop(0, "blue"); // Apply the colors
grd.addColorStop(1, "white"); // Apply the colors
ctx.fillStyle = grd; //apply the style
ctx.fillRect(10, 10, 150, 80); // Fill
script>
body>
html>
Источник: http://www.c-sharpcorner.com/UploadFile/65794e/html-5-elements-in-a-look-part-1/
http://www.c-sharpcorner.com/UploadFile/65794e/html-5-elements-in-a-look-part-2/
Читабельність програмного коду
Автор: Редакция ITVDN
Введение
Вам приходилось возвращаться к фрагменту кода, написанному год или месяц назад? Каково это было? Это было просто, или приходилось вникать в код исходя из заметок? Если у Вас не получается быстро разобраться в коде и Вы задаете себе вопрос: «Что же я тогда имел ввиду?» – Вы определенно делаете что-то не так. Скорее всего, Ваш код работает правильно. И Вы знали его вдоль и поперек, когда над ним работали. Почему же Вы не можете его вспомнить сейчас? Быть может, он не был написан достаточно доступно и не соответствовал стандартам машинного кода? В этой статье Вы найдете полезную информацию о том, как научиться писать доступный не только для себя, но и для остальных разработчиков код.
Пример использования стандарта оформления кода
Рассмотрим это на следующем примере метода в C#:
public string Transform(List<DateTime> s)
{
string d = null;
foreach (DateTime kc in s)
{
if (kc > DateTime.Now)
{
d = d + kc + "\n";
}
else
{
d = d + "Delayed\n";
}
}
return d;
}
Скорее всего, Вы не можете понять, какую функцию он выполняет и как его можно использовать. Но после короткой реконструкции кода мы получим:
public string GetText(List<DateTime> arrivalTimes)
{
var stringBuilder = new StringBuilder();
foreach (DateTime arrivalTime in arrivalTimes)
{
if (arrivalTime > DateTime.Now)
{
stringBuilder.AppendLine(arrivalTime.ToString());
}
else
{
stringBuilder.AppendLine("Delayed");
}
}
return stringBuilder.ToString();
}
Или если мы обратимся к оператору “?:”, мы получим:
public string GetText(List<DateTime> arrivalTimes)
{
var stringBuilder = new StringBuilder();
foreach (DateTime arrivalTime in arrivalTimes)
{
string message = arrivalTime > DateTime.Now ? arrivalTime.ToString() : "Delayed";
stringBuilder.AppendLine(message);
}
return stringBuilder.ToString();
}
Что произошло с кодом? Некоторые изменения сделали наш код более читабельным:
1. Имя метода получило более понятное название.
2. Мы изменили названия переменных:
1. “kc” изменена на arrivalTime,
2. “s” изменена на arrivalTimes,
3. “d” изменена на stringBuilder,
Это облегчит понимание того, за что отвечает каждая переменная и как она используется.
3. Скобки были стандартизированы.
4. Добавлены вкладки для читаемости, размещения и разметки в скобках.
5. Оператор “?:” был введен для того, чтобы сократить наш код до четырех строчек.
6. Добавлен класс StringBuilder, чтобы избежать конкатенации (“string” + “string”). Кто-то может возразить, что создание экземпляра StringBuilder будет замедлять метод из-за его распределения памяти. Но стоит помнить, что конкатенация струн создает много мусора в памяти, который вынужден чистить Garbage Collector. Считается, что ~ 5 непрерывных строк равны созданию реализации StringBuilder, так что если список состоит из пяти или более элементов, то производительность этого метода будет увеличена. А для больших коллекций этот метод будет работать в несколько раз быстрее.
Правильный способ составления кода
Давайте перейдем к другому примеру. Рассмотрим класс пользователя:
public class User
{
public bool HasConfirmedEmail { get; set; }
public bool HasActiveAccount { get; set; }
public bool IsLoggedIn { get; set; }
public bool HasPremiumAccount { get; set; }
public bool StatusAutoGenerated { get; set; }
public DateTime LastStatusChange { get; set; }
public bool SetStatus(string status)
{
// write to Data Base
return true;
}
}
Метод, отвечающий за обновление статуса пользователя, который должен проверить, все ли свойства в правильном состоянии:
public string UpdateStatus(string status, User user)
{
if (user.HasActiveAccount)
{
if (user.HasConfirmedEmail)
{
if (user.IsLoggedIn)
{
if (user.HasPremiumAccount)
{
if (!user.StatusAutoGenerated)
{
if (user.LastStatusChange < DateTime.Now.AddDays(-1))
{
if (user.SetStatus(status))
{
return "Updated";
}
}
}
}
}
}
}
return "Fail";
}
Хотя этот код более понятный, чем первый, представленный в этой статье, он все еще не соответствует стандартам программного кода. Вот пример того, как этот код можно сделать немного лучше:
const string OK = "Updated";
const string FAIL = "Fail";
public string UpdateStatus(string status, User user)
{
if (!CanUpdateStatus(user)) return FAIL;
if (!user.SetStatus(status)) return FAIL;
return OK;
}
public static bool CanUpdateStatus(User user)
{
if (!user.IsLoggedIn) return false;
if (!user.HasActiveAccount) return false;
if (!user.HasConfirmedEmail) return false;
if (!user.HasPremiumAccount) return false;
if (user.StatusAutoGenerated) return false;
if (!(user.LastStatusChange < DateTime.Now.AddDays(-1))) return false;
return true;
}
Основные изменения, внесенные в этот код, чтобы улучшить его читабельность:
Static method был создан, чтобы проверить возможность обновления статуса пользователя. Это делает метод UpdateStatus более понятным с первого взгляда. Кроме того, логика метода CanUpdateStatus может быть повторно использована в других частях системы, если они являются public и static.
Все " if " были заменены, чтобы уменьшить вложения. Количество скобок значительно уменьшилось, и код гораздо легче читать и компилировать. Еще одним преимуществом данного условия является его масштабируемость. Представьте себе, что класс User имеет теперь еще три свойства, которые должны быть проверены перед обновлением статуса – будут необходимы еще три "if" выписки. Теперь Вы можете добавить только три (не более) линии в методе CanUpdatedStatus.
Строки, которые представляют сообщения, были удалены из тела методов и были введены в постоянные переменные. Это помогает поддерживать код, потому что независимо от числа использований кода есть только одно место, где Вы должны изменить содержание сообщения, если это необходимо. Но, на самом деле, все тексты должны быть помещены в проект внешних ресурсов.
Источник: http://blog.goyello.com/2014/12/11/clean-code/
Міжнародний фестиваль інноваційних проектів Pioneers Kyiv!
Автор: Редакция ITVDN
ITVDN выступает региональным спонсором фестиваля инновационных проектов Pioneers Kyiv!
Международный фестиваль инновационных проектов Pioneers в этом году впервые пройдет а Украине. Организатором мероприятия PioneersKyiv стала компания Eltrino.С 2012 года Pioneers Festival собирает вместе в Вене лучшие стартапы и инвесторов, которые хотят внести свой вклад в развитие будущих технологий и прорывных идей. Все это происходит при поддержке значительного количества медиа ресурсов, которые имеют прекрасную возможность первыми узнать и осветить в своих изданиях проекты новейших технологий или просто интересные стартапы, которые могут в корне изменить наш мир уже завтра. Ежегодно более 1600 стартапов с более чем 90 стран мира могут встретиться в Вене с 400 инвесторами. Количество посетителей ограничивается 2500 участниками, поэтому регистрация желающих происходит заблаговременно.
Сама компания Pioneers основана в 2010 году. В своем арсенале имеют ряд проектов, которые способствуют развитию и росту инновационных проектов, и созданию целостной функциональной экосистемы вокруг стартапов по всему миру, а именно:
Pioneers Festival.
Global Pioneers - это более 30 ивентов сообщества в разных уголках мира (Токио, Париж, Будапешт, Турин, Амстердам, Сингапур и др. В этом году к перечню присоединяется еще и Киев). Площадка, где предприниматели могут найти новые полезные знакомства, показать свои проекты широкой общественности, помочь росту своего бизнеса. Происходит дважды в год в каждом регионе. Global Pioneers объединяет местные предпринимательские организации в единое глобальное сообщество. PioneersKyiv является частью экосистемы для стартапов.
Pioneers Discover - консультационная поддержка стартапов и компаний.
Pioneers Ventures - инвестиционное подразделение, которое помогает привлечь инвестиции на этапах early stage и pre-seed.
Pioneers Challenge - соревнования стартап проектов.
Так что, теперь в украинских проектов появилась еще одна возможность для привлечения инвестиций, получения эффективных советов и рекомендаций, как сделать свой стартап действительно успешным, заявить о себе широкой общественности, найти потенциальных клиентов и новые полезные контакты.
Главная цель PioneersKyiv - найти новые инновационные проекты, помочь им привлечь инвесторов. В рамках ивента состоится конкурс для стартапов, победитель, которого получает билет на следующий фестиваль Pioneers в Вене.
Желающим принять участие в конкурсе необходимо:
подать заявку через регистрационную форму на сайте до 5 июня включительно,
с 5 по 12 июня среди представленных стартапов будет избран 8 лучших,
12 июня до 20.00 стартапы получают уведомления о результатах отбора,
отобранные стартапы готовятся к выступлению, финальная версия презентации должно быть подано до 26 июня,
27 июня с 10.00 до 13.30 - репетиция питчей в М17
27 июня отобранные стартапы выходят на питч (3 минутный доклад) на PioneersKyiv, их презентации оценивают судьи.
счастливый победитель получает билет на Pioneers Festival в Вене.
Судейская коллегия PioneersKyiv:
Наталья Березовская - председатель совета правления UAngel, генеральный директор и управляющий партнер Detonate Ventures.
Михаил Рябоконь - главный управляющий директор Noosphere Ventures
Андрей Колодюк - управляющий партнер AVentures Capital, автор и основатель Divan.tv
Вадим Т. Роговский - член совета правления UAngel, генеральный директор WannaBiz, соучредитель маркетингового агентства Face2Face Media
Игорь Шойфот - член совета правления Happy Farm, предприниматель, инвестор, основатель Fotki.com
Андрей Криворчук - управляющий партнер и исполнительный директор Chernovetskyi Investment Group
Наши спикеры вдохновляют.
27-го июня участники и гости PioneersKyiv имеют возможность услышать полезные практические доклады:
Марк Туррел - основатель и управляющий директор Orcasci, основатель “AIA” Conference, номинант Pioneer Technology на Всемирном экономическом форуме в 2008 году и Young Global Leader в 2010, автор “Scaling: Small Smart Moves For Outsized Results”. Тема доклада "50 Shades of Scaling: What tech companies can learn from the fastest selling book on the planet" (50 оттенков измерений: Какой опыт могут извлечь технологические компании из успеха самой продаваемой книги на планете).
Михаил Рябоконь - главный управляющий директор Noosphere Ventures. Расскажет об инвестиционной политике Noosphere и даст рекомендации как заручиться поддержкой Noosphere Ventures.
Наталья Березовская - председатель совета правления UAngel, генеральный директор и управляющий партнер Detonate Ventures. Расскажет об увеличении возможностей и снижения рисков для стартапов благодаря нетворку бизнес ангелов UAngel.
Дмитрий Гадомский - партнер адвокатского объединения "Юскутум" Юрист-ботан, партнер юридической фирмы Юскутум. Раскроет секрет как узнать, что вы нарушаете закон.
Кирилл Соляр - генеральный директор Sponge Digital & design, продакт менеджер в looks.fm. Эксперт по диджитал маркетингу, управления стартапами в ИТ.
Все проекты, которые не пройдут отбор, имеют возможность принять участие в двухчасовом шоукейсе, где могут рассказать о своем проекте инвесторам и другим стартапам, услышать советы, рекомендации.
С нетерпением ждем 27-го июня, чтобы показать замечательные проекты, услышать интересные доклады и получить море вдохновения. Начало регистрации в 14.00 в Центре современного искусства "M17" (ул. Антоновича, 102-104).
Спешите приобрести билеты со скидкой 10%!
P.S. Секретная информация - только у ITVDN есть специальные скидочные коды на билеты на PioneersKyiv, обращайтесь.
Виграй знижку 50% на онлайн навчання з ментором
Автор: Редакция ITVDN
Друзі, 1 лютого ми проведемо розіграш знижок 50% на онлайн навчання у групі з ментором за найпопулярнішими ІТ-спеціальностями!
Буде 6 переможців – по одному на кожен напрямок. Шестеро щасливчиків зможуть пройти повне навчання за обраною спеціальністю за половину вартості і заощадити від 261 до 483 USD в залежності від обраної спеціальності!
Ви можете виграти знижку на навчання:
Python Developer
FrontEnd Developer
C#/.NET Developer
Java Developer
FullStack Node.js Developer
Manual QA. Тестування ПЗ
Як проходить навчання
Онлайн заняття проводяться в Zoom тричі на тиждень у невеличкій групі (до 25 осіб) з сертифікованим ментором та його помічником, спілкування у телеграм чаті. Заняття триває 2 години. Є перевірка домашніх завдань і рекомендації ментора, курсові проєкти і допомога у працевлаштуванні.
Додаткові бонуси:
ключі на професійний софт для розробників від JetBrains;
всі уроки записуються і лишаються з вами назавжди;
безкоштовний доступ до всіх відео курсів ITVDN за обраною спеціальністю на весь термін навчання;
онлайн тестування, сертифікати по окремим технологіям та Диплом по спеціальності;
можливість стажування після закінчення навчання.
Це чудова можливість зробити старт в ІТ і отримати роботу в 2024 році з максимальною вигодою.
Щоб взяти участь у розіграші, треба:
Підписатися на наш Telegram-канал.
Підписатися на YouTube-канал CodeUA.
Заповнити форму учасника розіграшу.
Заявки приймаються до 12:00 1 лютого. Розіграш відбудеться 1 лютого о 16:00 на YouTube-каналі CodeUA.
Переможці будуть визначені за допомогою онлайн-сервісу Random.org. Посилання на онлайн трансляцію ми надішлемо вам на email, вказаний у реєстраційній формі. Знижка на навчання дійсна протягом 2 місяців – у лютому та березні.
Нижче – детальніше про кожну спеціальність.
Python Developer
Тривалість навчання – 5 місяців (110 годин із тренером).
Ви вивчите: мову Python з нуля до поглибленого рівня, систему управління версіями Git, СУБД PostgreSQL та фреймворк Django.
Додатково ви отримаєте доступ до 24 відео курсів за спеціальністю Python Developer на ITVDN на 6 місяців, а також ключі на професійний софт від JetBrains.
Курсові проєкти та допомога в працевлаштуванні.
Повна вартість навчання – 715 USD.
Акційна вартість для переможця – 358 USD (🔥 ви економите 357 USD)
Детальніше про курс
FrontEnd Developer
Тривалість навчання — 5.5 місяців (124 години з тренером).
Ви вивчите: мови HTML, CSS і JavaScript, систему управління версіями Git, один із фреймворків на вибір – Angular (+ мова TypeScript) або React.
Додатково ви отримаєте доступ до 51 відео курсу за спеціальністю FrontEnd Developer на ITVDN на 7 місяців, а також ключі на професійний софт від JetBrains.
Курсові проєкти та допомогу в працевлаштуванні.
Повна вартість навчання – 820 USD.
Акційна вартість для переможця – 410 USD (🔥 ви економите 410 USD)
Детальніше про курс
C#/.NET Developer
Тривалість навчання – 5.5 місяців (138 годин із тренером).
Ви вивчите: мову C# з нуля до поглибленого рівня, систему управління версіями Git, мову запитів SQL, Entity Framework Core, ASP.NET Core.
Ви отримаєте доступ до 57 відео курсів за спеціальністю C#/.NET Developer на ITVDN на 8 місяців.
Курсові проєкти та допомогу в працевлаштуванні.
Повна вартість навчання – 840 USD.
Акційна вартість для переможця – 420 USD (🔥 ви економите 420 USD)
Детальніше про курс
Java Developer
Тривалість навчання – 5 місяців (124 години з тренером).
Ви вивчите: мову Java з нуля до поглибленого рівня, систему управління версіями Git, СУБД MySQL, технології JDBC & Hibernate, Web-services, основи фреймворку Spring.
Додатково ви отримаєте доступ до 34 відео курсів за спеціальністю Java Developer на ITVDN на 7 місяців, а також ключі на професійний софт від JetBrains.
Курсові проєкти та допомогу в працевлаштуванні.
Повна вартість навчання – 781 USD.
Акційна вартість для переможця – 391 USD (🔥 ви економите 390 USD)
Детальніше про курс
FullStack Node.js Developer
Тривалість навчання – 7 місяців (146 годин із тренером).
Ви вивчите: мови верстання HTML & CSS, мову програмування JavaScript, систему управління версіями Git, фреймворк React, СУБД MySQL, фреймворк Node.js.
Додатково ви отримаєте доступ до 13 відео курсів від ITVDN, а також ключі на професійний софт від JetBrains.
Курсові проєкти та допомогу в працевлаштуванні.
Повна вартість навчання – 966 USD.
Акційна вартість для переможця – 483 USD (🔥 ви економите 483 USD)
Детальніше про курс
QA. Тестування ПЗ
Тривалість навчання – 3 місяці (78 годин із тренером).
Ви вивчите основи проєкту в ІТ, мануальне тестування, бази даних та SQL, а також отримаєте знання з HTML & CSS, Git, CI/CD/CD, mobile, веб та API тестування.
Ви отримаєте доступ до 33 відео курсів за спеціальністю Quality Assurance на ITVDN на 8 місяців.
Допомогу HR-фахівця у працевлаштуванні.
Повна вартість навчання – 523 USD.
Акційна вартість для переможця – 262 USD (🔥 ви економите 261 USD)
Детальніше про курс
UPD від 01.02.2024
Переможці:
Python Developer - Корчевний Петро
Frontend Developer - Кучер Анастасія
Java Developer - Степанов Артем
C#/.NET Developer - Тимощук Марина
FullStack Node.js Developer - Кирилаш Сергій
Manual QA. Тестування ПЗ - Клименко Ірина
Запис розіграшу: https://www.youtube.com/watch?v=fK6xxHcop1k
Нова IT спеціальність у Новому році. Круті знижки на навчання – Python, FrontEnd, Java, .NET.
Автор: Редакция ITVDN
Передноворічні свята наближаються!
Друзі, усі ми з вами покладаємо великі сподівання на наступний рік і віримо в те, що нас чекають зміни на краще. І ці зміни потрібно починати з себе. Тому ми, як освітня ІТ-платформа, зі свого боку готові вам допомогти з опануванням перспективної ІТ-професії, котра цінується у кожній розвиненій країні нашого світу і дає багато приємних бонусів.
А щоб ви могли зекономити ваші кошти і порадувати ваших близьких новорічними подарунками, ми підготували супер пропозицію: з 1 по 15 грудня на ITVDN максимально можливі знижки на онлайн навчання з ментором у групі.
Будемо раді бачити вас на наших онлайн курсах! Обирайте той напрямок, який вас цікавить і записуйтеся в групи. Не забувайте, що у нас є безкоштовні пробні уроки – це для тих, хто ще сумнівається.
Отже, відкритий набір на 4 напрямки:
Python Developer
C#/.NET Developer
FrontEnd Developer
Java Developer
Навчання проходить тричі на тиждень в форматі живих вебінарів в Zoom. З групою працює ментор та помічник, для спілкування створений спеціальний телеграм-чат.
Наші курси дозволяють пройти повну підготовку з нуля до рівня спеціаліста і відповідають актуальним вимогам IT-компаній до фахівців.
У кожній групі лише 25 місць! Але ви можете забронювати собі місце у одній із груп, які стартуватимуть у грудні чи січні. Купуйте зі знижкою під час акції і навчайтеся тоді, коли вам зручно.
Оплата частинами – отримайте максимальну вигоду
Рекомендуємо скористатися пропозиціями “Оплати частинами” від ПриватБанку чи Монобанку. Це дуже зручно і вигідно для вас.
Як це працює?
Наприклад, якщо ви обираєте навчання з ментором в групі за спеціальністю Python Developer та оплату частинами від ПриватБанку під час нашої акції, розбивайте платіж на 10 частин і сплачуйте всього 40 USD на місяць.
Не знаєте, яку спеціальність обрати?
Ми підготували корисні посилання в кінці даної новини, щоб допомогти вам зробити вибір – обов’язково ознайомтеся з ними.
ДЕТАЛЬНІШЕ ПРО КОЖНУ СПЕЦІАЛЬНІСТЬ
Курс FrontEnd Developer – 124 години, 62 заняття, 5 місяців навчання.
Програма курсу:
HTML5, CSS3 для початківців – 20 годин
JavaScript Стартовий – 14 годин
Основи Git – 6 годин
JavaScript Базовий – 36 годин
HTML5 і CSS3 Advanced – 18 годин
React Essential – 30 годин
Другий варіант (замість курсу React) -
6. TypeScript Fundamentals – 10 годин
7. Angular – 20 годин
Також ви матимете змогу проходити тестування після кожного курсу і отримаєте відповідний Сертифікат в разі успіху, виконаєте від 2 до 4 курсових проєктів та зможете отримати Диплом після успішної здачі фінального екзамену. І це не все! Детальний опис дивіться на сторінці спеціальності.
Акційна вартість: 574 USD. Придбати
Курс Python Developer – 88 годин, 44 заняття, 4 місяці навчання.
Програма курсу:
Python для початківців – 20 годин
Основи Git – 6 годин
Python Базовий – 20 годин
Python Advanced – 16 годин
Django – 18 годин
Курсовий проєкт за спеціальністю Python Developer – 8 годин
Також ви матимете змогу проходити тестування після кожного курсу і отримаєте відповідний Сертифікат в разі успіху та зможете отримати Диплом після успішної здачі фінального екзамену.
Акційна вартість: 400 USD. Придбати
Курс C#/.NET Developer – 138 годин, 69 занять, 5.5 місяців навчання.
Програма курсу:
C# Стартовий – 18 годин
Основи Git – 6 годин
C# Базовий – 36 годин
C# для професіоналів – 30 годин
SQL для початківців – 14 годин
Entity Framework Core – 10 годин
ASP.NET Core – 24 години
Також ви матимете змогу проходити тестування після кожного курсу і отримаєте відповідний Сертифікат в разі успіху, виконаєте від 2 до 4 курсових проєктів та зможете отримати Диплом після успішної здачі фінального екзамену.
Акційна вартість: 588 USD. Придбати
Курс Java Developer – 128 годин, 64 заняття, 5 місяців.
Програма курсу:
Java для початківців – 18 годин
Основи Git – 6 годин
Базовий курс Java – 20 годин
Java - Поглиблений курс – 20 годин
MySQL Essential – 16 годин
JDBC & Hibernate – 12 годин
Web-services – 8 годин
Основи Spring – 20 годин
Курсовий проєкт за спеціальністю Java Developer – 8 годин
Також ви матимете змогу проходити тестування після кожного курсу і отримаєте відповідний Сертифікат в разі успіху, виконаєте від 2 до 4 курсових проєктів та зможете отримати Диплом після успішної здачі фінального екзамену.
Акційна вартість: 547 USD. Придбати
КОРИСНІ ПОСИЛАННЯ
Визначитися зі спеціальністю вам допоможе свіжа стаття з нашого блогу «Яку ІТ-спеціальність обрати у 2023 році?». Також вам стануть у нагоді відео з ютуб-каналу CodeUA:
Яку мову програмування обрати у 2022 році? ➤ Рейтинг мов програмування
Як новачку обрати свою першу мову програмування ➤ Яку мову програмування вчити першою?
Чи варто вчити C# та .NET у 2022 році?
Як стати Java розробником у 2023 році
Як стати Python розробником. Покроковий план з нуля
Як швидко вивчити Python? ➤ Покроковий план з нуля. Python для новачків
Робіть свій вибір і займайте місце у групі!
Як вибрати свою першу мову програмування: інструкція від HR
Автор: Вікторія Чабан
Якщо ти плануєш увійти в ІТ і не знаєш, з чого почати — ця стаття для тебе. Вибір першої мови програмування схожий на вибір першого велосипеда: важливо, щоб підходив саме тобі, а не був «наймоднішим». У ролі кар'єрного консультанта та HR я спираюсь на реальні кейси студентів і запити компаній. Ось чіткий та короткий план, який допоможе обрати першу мову грамотно.
🎯 Крок 1. Визнач свою цільову сферу
Запитай себе: що саме я хочу створювати? Це головний орієнтир.
🧑💻 FrontEnd (веб-сайти, інтерфейси) → JavaScript, далі можна додати TypeScript, React
📱 Мобільні додатки → Kotlin (Android), Swift (iOS), або React Native
📊 Аналітика, машинне навчання, ШІ → Python
🏦 Корпоративні рішення, банківські системи → C# / .NET або Java
🧪 QA Automation (автотести) → Python, Java, JavaScript
💡 Порада: якщо не визначився — обирай універсальну мову для старту, наприклад, Python або JavaScript.
📊 Крок 2. Перевір актуальність на ринку
За даними DOU та Djinni (станом на 2025 рік), топ-5 мов за кількістю вакансій:
JavaScript / TypeScript
Python
C#
Java
PHP
JavaScript домінує завдяки своїй універсальності (веб, мобайл, backend).
Python — лідер у сфері ШІ, автоматизації та наукових обчислень.
C# / .NET — улюблене рішення для бізнесу в Україні та Східній Європі.
Java — база для багатьох міжнародних проєктів, особливо у банках та ентерпрайз-продуктах.
🔍 Працювати з мовою, яка має стабільний попит — логічний крок для першої роботи.
👶 Крок 3. Почни з доступної до навчання
Навіть найкрутіша мова нічого не дасть, якщо ти не зможеш її зрозуміти. Ось три мови, які найкраще підходять для старту:
Python — простий синтаксис, читається як англійська, популярний у всіх сферах.
JavaScript — швидкий результат (можна написати код і одразу побачити на екрані).
C# — добре структурований, допомагає швидко зрозуміти основи ООП.
🧠 Якщо тебе лякає синтаксис або ти сумніваєшся — подивись безкоштовний вступний курс. На ITVDN є 3 безкоштовних уроки, які допомагають обрати напрям без ризику.
🔮 Крок 4. Дивись на перспективу
Програміст не вчить лише одну мову на все життя. Але перша створює базу. Після неї буде легше вивчити інші.
Якщо мрієш стати FullStack-розробником — комбінуй JavaScript (FrontEnd) + Node.js або C# (BackEnd).
Хочеш піти в Data Science — починай з Python, а далі додай бібліотеки як Pandas, NumPy, TensorFlow.
💡 Висновок
Не існує «ідеальної» мови для всіх. Вибір має бути практичним:
✅ під твої задачі
✅ з урахуванням попиту
✅ з урахуванням складності на старті
🎓 Обирай шлях, який не лише приведе до першої роботи, а й зробить навчання цікавим. І пам’ятай: важлива не мова, а твоє бажання вчитися!
CSS vs JavaScript: руйнуємо міфи
Автор: Редакция ITVDN
Введение
Многие разработчики заблуждаются, считая, что CSS – единственный способ работы с анимацией в WEB. CSS становится все более и более популярным, он считается самым надежным и удобным инструментом создания анимаций. Но это не означает, что он лучше, чем JavaScript.
В этой статье мы расскажем, почему лучше использовать JavaScript, а не CSS, а также разоблачим мифы, связанные с CSS.
1. JQuery
JavaScript и JQuery ошибочно объединяют. Анимации, разработанные с JavaScript – быстрые и динамичные, тогда как анимации JQuery – медленные. Причина в том, что несмотря на его мощные инструменты, JQuery не был создан для анимации.
2. Отсутствие управления вращением и позиционированием
Для выполнения анимации необходимо использовать элементы управления вращением и определением позиции. В CSS все эти функции содержатся в свойстве «transform». Это создает проблемы для уникальной анимации чего-либо через один общий элемент. Например, анимирование «rotation» и «scale» отдельно, с разными таймингами, возможно только с JavaScript, потому что он позволяет использовать различные функции, не поддерживаемые CSS. CSS удобно использовать только для простой анимации.
3. Производительность с Velocity и GSAP
Velocity и GSAP – наиболее популярные библиотеки JavaScript. Они работают без JQuery. Нет уменьшения производительности, так как эти библиотеки работают за пределами основных анимаций JQuery.
Velocity и GSAP можно применять даже, когда jQuery не используется на странице.
* Работа без JQuery * /
Velocity(element, { opacity: 0.4 }, 900); // Velocity
TweenMax.to(element, 1, { opacity: 0.4 }); // GSAP
В приведенном выше примере Вы видете, что velocity использует тот же синтаксис, даже когда JQuery не применяется. Он просто смещает все элементы в правильном направлении, чтобы создать пространство для целевых элементов.
4. GPU-фактор
Полностью оптимизированный код с GPU отлично подходит для выполнения различных задач, включая преобразование матриц и изменение прозрачности, поэтому все ведущие браузеры сначала перенаправляют такие задачи от CPU к GPU. Нужно разделять все анимационные элементы на разные слои GPU. Таким образом мы избавимся от необходимости вычислять каждый пиксель в каждой минуте. Можно сэкономить много времени, просто перемещая один пиксель за другой.
Обратите внимание: нет необходимости делать собственный слой для каждого элемента из-за ограничения видеопамяти GPU.
5. Быстрые анимации JavaScript
JavaScript обходит CSS в производительности и скорости. JavaScript достаточно универсальный, чтобы создать впечатляющую 3D демо-анимацию, которую Вы можете увидеть через WebGL. Он достаточно быстрый, чтобы построить мультимедийный тизер, разработанный с использованием Flash, или After Effects. С JavaScript это легко сделать с помощью canvas.
Вывод
Данная статья доказывает, что анимация JavaScript более быстрая, по сравнению с анимацией CSS. Но это не означает, что CSS не стоит использовать. Он хорошо подходит для простой анимации, но если Вы хотите сделать анимацию более гибкой, Вам лучше использовать JavaScript.
Источник: http://www.script-tutorials.com/css-vs-javascript-myths-fall-to-pieces/
Угода при розробці AngularJS програми
Автор: Антон Гончаров
Введение
Давайте рассмотрим практику написания AngularJS приложения. Приведенные ниже примеры помогут вам писать приложение правильно, чисто и более обдуманно. С помощью применения данной практики вы разработаете приложение, которое будет разделено на блоки, что в конечном итоге поможет строить правильную архитектуру приложения.
Итак, начнем.
1) Создавая новое приложение, старайтесь разделять модуль, контроллер, фабрику, вынося их в отдельные файлы. Этот прием имеет ряд приимуществ:
улучшается читаемость приложения
улучшается рефакторинг приложения
легче производить дебаггинг приложения
//плохая практика
angular
.module('app', ['ngRoute'])
.controller('myController', myController)
.factory('myFactory', myFactory);
function myController() { };
function myFactory() { };
//рекомендуется
//myapp.module.js – файл модуля
angular
.module('app', ['ngRoute']);
//mycontroller.js – файл контроллера
angular
.module('app')
.controller('myController', myController);
function myController() { };
//myfactory.js – файл фабрики
angular
.module('app')
.factory('myFactory', myFactory);
function myFactory() { };
2) Старайтесь оборачивать код в самовызывающиеся функции.
Это позволяет :
сохранить переменные от глобального объекта scope
предотвратить перетирание глобальных переменных (т.к. они локальны)
при минификации кода помогает избежать путаницы переменных
//плохая практика
angular
.module('app')
.factory('myfactory', myfactory);
function myfactory() { };
//рекомендуется
(function () {
'use strict';
angular
.module('app')
.factory('myfactory', myfactory);
function myfactory() { };
})();
3) Старайтесь придерживаться иерархии именования. Это поможет правильно структурировать приложение, что в итоге приведет к правильной архитектуре программы.
Избегайте создания модуля через переменную и используйте цепочный синтаксис (в виде цепочки)
//плохая практика
var app = angular.module('app', [
'ngAnimate',
'ngCookies',
'firebase'
]);
//рекомендуется
angular
.module('app', [
'ngAnimate',
'ngCookies',
'firebase'
]);
4) Используйте именованные функции. Код становится более читабельным и куда лучше тестируется.
//плохая практика
angular
.module('app')
.controller('mycontroller', function () { });
//рекомендуется (обратите внимание на контроллер он вынесен в отдельный файл
//от модуля)
//myapp.module.js – файл модуля
angular
.module('app', ['ngRoute']);
//mycontroller.js – файл контроллера
angular
.module('app')
.controller('myController', myController);
function myController() { };
5) Используйте controller as нотацию вместо просто controller. Она более читабельна, помогает не запутаться в коде
//плохая практика
<div ng-controller=”myController”>{{title}}div>
//используем
<div ng-controller=”myController as mycontroller”>{{mycontroller.name}}div>
6) Используйте слово vm(ViewModel) внутри контроллера вместо ключевого слова this. Это поможет избежать подмены контекста внутри функции.
//антипаттерн
function mycontroller () {
this.name = {};
this.deleteSome = function () {};
};
//паттерн
function mycontroller () {
var vm = this;
vm.name = {};
vm.deleteSome = function () {};
};
Это лишь базовые приемы, которые вы можете использовать в своей практике. Они помогут вам избежать некоторых проблем в вашей роботе и сделать код вашего приложения чище и понятнее. Желаю вам хорошего кода и светлых идей.
6 основних тенденцій, які будуть популярні у веб-розробці у 2015 році
Автор: Редакция ITVDN
Введение
Подошел к концу 2014 год и самое время спросить себя: «Какие тенденции будут преобладать в сфере веб-разработки в 2015 году?». Представляем вашему вниманию подборку трендов, которые, по нашему мнению, будут популярны в следующем году.
1. Адаптивный дизайн
Вместе с ростом популярности на планшеты начал расти спрос на адаптивный дизайн, сегодня это - неотъемлемая часть любого сайта. С помощью “Responsive Design” пользователь сможет спокойно просматривать Ваш сайт на любом девайсе, будь то PC или мобильный телефон. Зачем Вам адаптивный дизайн? Ответ простой, сейчас все больше пользователей просматривают новости через разные устройства с разным расширением экрана, поэтому выбор ресурса напрямую зависит от удобства его использования на всех носителях. Главный критерий выбора – ширина контента не должна превышать ширину экрана, иначе пользователю будет неудобно воспринимать информацию и он к вам больше не вернется.
2. Плоский дизайн (Flat Design)
Плоский дизайн начал набирать свою популярность после релиза Windows 8, благодаря компании Microsoft и ее Metro-стилю. Концепция плоского дизайна заключается в том, что двухмерные изображения не перегружают восприятие пользователя и уменьшают загруженность ресурса. В плоском дизайне отсутствуют лишние эффекты: тени, блики и градиенты, в противовес им выдвигаются яркие цветовые решения.
3. Карточный дизайн
Карточный дизайн — это способ подачи контента на страницах сайта. Каждая карточка содержит в себе определенную информацию, это дает ресурсу возможность концентрировать внимание пользователя и легко группировать содержимое сайта. Главное преимущество данного типа дизайна — это легкость взаимодействия пользователя с Вашим сайтом, ведь карточки легко можно опубликовать на своей странице в социальных сетях, сохранить в избранное или прокомментировать. Первопроходцами карточного дизайна считаются Pinterest и Google+. Благодаря своей отзывчивости и адаптивности все больше сайтов переходит на карточный дизайн.
4. Фоновые изображения и видео
За последнее время все большую популярность набирают ресурсы с широкоформатным изображением или видео на фоне, с небольшой цитатой поверх него. Этот прием идеально подходит для сайта-портфолио или сайта-визитки.
5. Рисованные иллюстрации и шрифты
Сайты с рисованной типографикой или иллюстрациями подкупают своей неповторимостью. Все больше сайтов начали использовать в своем дизайне элементы, разработанные вручную, именно под определенный проект. Эти детали делают сайт уникальным и запоминающимся, пользователю приятней пользоваться таким сайтом, он захочет рассказать о нем другу и обязательно вернется сам.
6. SVG иконки и анимации
SVG — это специальный язык разметки векторной графики, который разрабатывается W3C с 1999 года. Возможность создавать SVG изображения доступна в большинстве векторных редакторов: Illustrator, Corel Draw или Sketch. SVG-графика часто используется для создания иконок, они выглядят качественней и легко адаптируются под разные расширения экрана. И напоследок, с помощью SVG можно создавать анимированные иконки.
Источник: http://www.sevensignature.com/blog/articles/top-10-sign-things-come-2015-web-design-trends/