В 2016-му статично типізований JavaScript виявився дуже затребуваним. Тими або іншими засобами, що дозволяли усунути недоліки динамічної природи JS, скористалися багато компанії. Нас теж привернула перспектива задіяти величезний потенціал статичної типізації у своїх розробках.


Вибираючи інструменти, ми попередньо зупинилися на TypeScript і Flow. Хоча ці проекти і розрізняються, спрямовані вони на рішення однієї і тієї ж задачі. А саме, дозволяючи контролювати типи даних, вони забезпечують більш досконалий, у порівнянні з чистим JS, організацію коду, покращують можливості рефакторінгу, дозволяють програмістам працювати швидше і впевненіше.

Читати далі →

Привіт, мене звати Дмитро Карлівський і я… той ще гурман. Мені подобається готувати вишукані страви, які елегантно і просто вирішують звичні вже набили оскому проблеми. Можна довго розповідати про переваги тих чи інших підходів, здешевлення підтримки, прискорення розробки, спрощення налагодження, але все це залишається досить суб'єктивними оцінками, над якими потрібно розмірковувати. Тому рано чи пізно (але як правило передчасно), всі обговорення скочується до більш-менш вимірюваним величинам — швидкості роботи, швидкості завантаження та іншим швидкостей. І мало того, що потрібно зробити декілька реалізацій на різних технологіях, щоб було що порівнювати, так ще й не погано було б намалювати інтерфейс із зрозумілою людині видачею результатів. А все це — час, якого завжди не вистачає, особливо, якщо робити добре.
Щоб спростити розробку бенчмарків ми виділили загальну їх частина окремий додаток, який малює весь інтерфейс від вибору досліджуваних варіантів до наочного представлення результатів, а варіативна частина підключається ззовні і реалізує досить простий інтерфейс. Все "накликанное" стан зберігається у заслання, так що їм легко поділитися з іншими гурманами. Крім того, підтримується локалізація і сортування результатів за різними критеріями — справжній бенкет для всіх любителів швидкої їжі.
Швидше, а то все смачне з'їдять
Далі ви дізнаєтеся:
  • Як замутити свій бенчмарк, практично не докладаючи зусиль.
  • Як запив щось складніше, із завантаженням цілих додатків в окремих кадрах.
  • Як влаштований $mol_app_bench зсередини.
  • Як тепер жити з усім цим.

Читати далі →

CEF, ES6, Angular 2, WebPack 2 .Net Core декстопное додаток без серверної частини

Це продовження статей:

CEF, ES6, Angular 2, TypeScript використання класів .Net Core. Створення міжплатформового GUI .Net за допомогою CEF
CEF, Angular 2 використання подій класів .Net Core

Основна ідея цих статей — створення кроссплатформенних додатків на CEF з використанням Angular 2 і .Net Core. Щоб відв'язатися від сервера, використовуємо свіжий WebPack і налаштуємо на локальне використання файлів.

Читати далі →

Angular — налаштування середовища розробки і production складання з AOT-компіляцією і tree-shaking (Gulp, Rollup, SystemJS)

Одна з особливостей Angular, притаманна і першої і нової версії — високий поріг входження. Новий Angular, крім усього іншого, важко навіть запустити. А і запустивши, легко отримати 1-2 Мб скриптів і порядку декількох сотень запитів при завантаженні hello world сторінки. Можна, звичайно, використовувати всякі стартери, seed'и або Angular CLI, але для використання в серйозно проекті потрібно самому у всьому розбиратися.
У цій статті я спробую описати, як створити зручне середовище розробки з використанням SystemJS, і production збірку Angular додатки на основі Rollup, з виходом близько 100кб скриптів і декількох запитів при відкритті сторінки. Використовувати будемо TypeScript і SCSS.
Спробувати все в справі можна в моєму angular-gulp-starter проекті.

Читати далі →

CEF, Angular 2 використання подій класів .Net Core

Це продовження статті CEF, ES6, Angular 2, TypeScript використання класів .Net Core для розширення можливостей.

Як і очікувалося, вона не привернула особливої уваги. Але величезне спасибі тим, кого зацікавила моя творчість. Саме ви даєте мені стимул на продовження пошуків.

Хочу трохи зупинитися на CEF.

Це багатоплатформовий браузер (з ядром використовуваним Google Chrome), з неограаниченными розширенням за рахунок використання альтернатива на С++, що дозволяє писати повноцінне крооссплатформенное декстопное додаток з UI.

Сьогодні я покажу як використовувати події об'єктів .Net Core класів у Angular 2.
Багато прочитавши мою першу статтю наводили аргумент, що замість використання класів .Net можна використовувати HTTP сервіси.

Але ось з подіями ми можемо робити повноцінне декстопное додаток використовуючи торгове обладнання, обмін даними по різних протоколах, використання месенджерів ітд ітп.

Для прикладу візьмемо клас з подіями.

Читати далі →

CEF, ES6, Angular 2, TypeScript використання класів .Net Core для розширення можливостей

Мене всі питають — «Навіщо це потрібно?». На що я гордо відповідаю — «Я в 1С використовую для доступу до торговельного обладнання, до Веб-сервісів по ws-протоколах, готовим компонентів. 1С, Linux, Excel, Word, OpenXML,ADO і Net Core. Крім того, зроблю передачу JS об'єктів на бік .Net з використанням через DynamicObject.

Можна зробити певну конфігурацію CEF для всіх платформ і можна робити кросспалатформенные декстопні програми. Як аналог Electron. .Net Core розвивається і можна досить легко перевести програми під WPF і UWP на Angular 2» зробивши опис класів і використовувати IntelliSense при кодуванні на TS.

Але я прекрасно розумію, що це всього лише пишномовні слова, і мало кому це потрібно. Але мені дуже цікаво, особливо після програмування на 1С.

Читати далі →

Angular 2: чому на TypeScript?

Здрастуйте всі, хто не забуває заглядати у наш блог і традиційно неробочий час доби!

Давним-давно в нашій публікації від 13 листопада 2015 року ви переконали нас дочекатися допиливания Angular 2 і видати про нього книгу. Ми збираємося серйозно взятися за такий проект найближчим часом, а поки пропонуємо почитати розгорнуту відповідь на питання, винесене в заголовок цього поста.

Читати далі →

Angular vs Angular 2: ключові відмінності

Ми в команді Web Development компанії Itransition вже маємо гарний досвід розробки на Angular 2 і хочемо поділитися ним.

Ця стаття орієнтована на тих крутих хлопців, які розробляють на Angular і подумують перейти на іншу його версію.
Читати далі →

Як ми заново відкрили TFS

Нове відкриття TFS
Яка перша асоціація, що виникає, коли чуєш словосполучення Microsoft TFS? Щось велике, неповороткий і корпоративне. Саме так і було до появи Visual Studio Team Services і виходу MS TFS 2015. Перший — це хмарна версія Team Foundation Server, яка випереджає в розвитку приватну (private) версію приблизно на три місяці. Одним з головних нововведень оновленого TFS/VSTS стала нова система збірок. Ця система дозволяє досить просто писати свої кроки збірок, які можуть робити що завгодно — від власне складання проекту до автоматичного закладу дефектров і розсилки нотифікацій. Крім цього нова версія надає розвинений REST API для маніпулювання завданнями, дефектами і практично будь-якими сутностями в базі даних TFS.
Саме тому коли перед нами постав вибір нової системи управління життєвим циклом розробки, ми зупинилися саме на цій новій версії MS TFS. Ми використовуємо TFS для повного циклу — планування-розробка-тестування-розгортання, і, спочатку все йшло досить гладко. Із зростанням складності завдань, які ми ставили перед системою складання, з'являлися і проблеми. На щастя, REST API і власні кроки складання дозволили їх з успіхом вирішити. Далі я розповім про проблеми і про те, як ми їх вирішили.

Читати далі →

Модальні вікна і нотифікація в Angular

Angular (версії 2+) зіткнувся із завданням створення модальних вікон, але готові рішення мені не підходили або жорстко заданого функціонала (негнучкі), або вони не оновлені до останньої версії і з цієї причини не працюють. Але продираючись через нетрі офіційній документації вирішив розповісти про два способи роботи з модальними вікнами (або нотифікацій), які я вважаю найкращими.

У даній статті я хочу розповісти про двох способах роботи з модальними вікнами:

  1. «Звичайне» додавання компонентів
  2. Динамічне додавання компонентів

Читати далі →