За да стартирате слайдовете трябва да имате инсталиран node.js, npm и grunt. За да инсталирате grunt използвайте:
npm install -g grunt-cli
npm install -g grunt
За да стартирате презентация:
cd slides_folder
# Required only once
npm install
grunt server
Изпълнението на последната команда трябва да отвори браузър с url localhost:\d+
(например localhost:9000).
- Добро владеене на HTML и CSS.
- Добро владеене на JavaScript.
- Познаване на HTTP протокола.
- Опит с използване на back-end API.
- Основни познания по git.
- Опит с MVW framework (не задължително, но ще бъде полезно).
- По възможност компютър с Linux или Mac OS X.
- Познаване на особеностите на Single-Page Applications.
- Ще научите основните компоненти на едно AngularJS приложение:
- Модули
- Контролери
- Директиви
- Услуги
- Филтри
- Ще научите как да организирате вашето AngularJS приложение.
- Ще научите архитектурните шаблони използвани в AngularJS.
- Ще се научите да използвате Bower, Yeoman.
- Ще знаете как да използвате RESTful API с AngularJS.
- Ще знаете как да използвате Jasmine и Karma за unit testing.
- Ще научите различни стратегии за оптимизиране на вашето AngularJS приложение, като например:
- Lazy pre-fetching на темплейти.
- Използване на аспектно-ориентирано програмиране с AngularJS.
По време на целия курс ще създаваме практически проекти, чрез които да илюстрираме концепциите за учене.
Минко е завършил бакалавърска степен във ФМИ, в момента преборва магистратурата по Софтуерни Технологии.
Занимава се с консултантска дейност и разработка на софтуер за различни клиенти - в момента LearnCapital.
Използвал е различни езици за програмиране, сред които Haskell, AspectJ, JavaScript, PHP, Ruby, C и други. С уеб се занимава от ученическите си години, а през свободното си време се стреми да:
- Move the web forward
- Пише блог постове свързани с проектите, над които работи
- Помага във ФМИ, като:
- води лекции в курса "JavaScript за напреднали"
- "критикува" в курса по "Анализ и Проектиране на Информационни Системи"
- Спортува
- Да намира време за сън.
Социални контакти на Минко:
- Основни концепции и Bower
- Видимост на променливите
-
- Създаване на обекти в JavaScript
-
- Bower - the package manager of the web
-
- Observer и Publish/subscribe
- AngularJS - какво представлява и защо ни е да го използваме?
- Хоризонтални и вертикални Single-Page Applications
-
- Bootstrap на AngularJS приложение и модулите в AngularJS
-
- Създаване на просто Todo приложение с AngularJS темплейти
- Контекст, контролери и dirty-checking
- Какво представлява контекстът в едно AngularJS приложение?
-
- Chain of Responsibilities и Publish/subscribe
-
- Създаване на приложение с dirty-checking data-binding
-
-
- Dependency Injection в AngularJS
- Шаблонът page controller и контролерите в AngularJS
-
- AngularJS $parse
-
- Рефакториране на Todo приложението, използвайки AngularJS контролери
- Услуги, типове услуги, вградени услуги. $provide, декоратори.
- Дефиниране на услуги в AngularJS
-
- Рефакториране на приложението с цел добавяне на модели и persistance
-
- Шаблонът декоратор
-
- Декориране на добавените услуги
-
- Дъздаване на конфигурируем provider за persistance
- Филтри, $q, $http, $resource и използване на RESTful API
-
- Какво представляват promises?
-
- Създаване на custom филтри
- $http vs $resource и АctiveRecord шалонът
-
- Рефакториране на Todo приложението, използвайки RESTful API
-
- Real-time с WebSockets
- Директиви и routing
-
- Рефакториране на приложението, добавяне на валидация на формата за добавяне на todos
-
- "Hello, world!" директива
-
- mg-repeat директива (link vs render)
-
- $location
-
- Transclusion
-
- $sce и $compile
-
- Вградени директиви
- Директиви, routing, nested views
-
- Добавяне на маршрути в Todo приложението
-
- Рефакториране на Todo приложението, използвайки директиви
-
- Вложени маршрути с ui-view
-
- ng-animate
- Yeoman, тестване и "теми за напреднали"
-
- Yeoman, Grunt/Gulp
- Unit тестване с Jasmine и Karma
-
- Test all the things!
-
- Наследяване
-
- Контролери
-
- Услуги
-
- Добри практики
- AOP, lazy-prefetching и други
-
- Какво е aspect-oriented programming, защо да го използваме?
-
- Lazy-prefetching на темплейти
-
- Създаване на VNC клиент
Към всички точки с (*) има предвидена практическа задача.