imageRevit — програмний комплекс, що реалізує принцип інформаційного моделювання будівель — BIM. Призначений для архітекторів, конструкторів і інженерів.

Перш ніж розбиратися, як же ми будемо застосовувати шаблон програмування при створенні моделі та оформленні документації в Ревіт, потрібно розібратися, що таке шаблон програмування MVC. Вікіпедія говорить нам, що:

Model-View-Controller («Модель-Представлення-Контролер») — схема поділу даних програми, інтерфейсу та логіки на три окремих елемента: модель, подання та контролер. Модифікація кожного компонента здійснюється незалежно.

  • Модель (Model) надає дані і реагує на команди контролера, змінюючи свій стан.
  • Уявлення (View) відповідає за відображення даних моделі користувача, реагуючи на зміни моделі.
  • Контролер (Controller) інтерпретує дії користувача, сповіщаючи модель про необхідність змін.
До речі цей шаблон вперше був описаний в 1978 році.

Тепер розберемося, що є що в Ревіт, згідно з моєю реалізації роботи за цим шаблоном.

Читати далі →

Детектив за матеріалами IT. Частина друга
У цій частині я спробую показати, як же спочатку виглядало поділ Користувальницького Інтерфейсу на Вигляд і Контролер і які цікаві рішення можна знайти в цій області на сьогоднішній день. Посилання на першоджерела наведені на початку першої частини.
Отже, не дивлячись на те, що Вигляд визначається як модуль, що відображає Модель – "view is a (visual) representation of its model", практиці до Виду, як правило, просто відносять всі графічні елементи GUI, тобто Видом вважається все те, що ми бачимо на екрані ЕОМ.
Зрозуміло, що тут міститься певне протиріччя, оскільки такі графічні компоненти, меню, кнопки, тулбари служать для відображення інформації про систему, а насамперед для управління системою. Клавіатура і миша завжди були засобом управління програмою та перебували в «ведомости» Контролера (як би його не трактували). Тому здається нелогічним і дивним, що кнопки, зроблені з пластмаси, вважаються елементами управління і відносяться до Контролера, а кнопки, намальовані на екрані, і по суті виконують ті ж самі функції (виробляти вхідні події), чомусь відносять до Виду.
Читати далі →

Помер MVC для фронтенда?


В цій статті хочу поділитися перекладом цікавих роздумів на тему минулого і сьогодення в архітектурі фронтенда.

У той час як все більше і більше фронтенд-розробників переймають підходи до односпрямованої архітектурою, виникає питання — чи є майбутнє у класичного MVC? Щоб зрозуміти, як ми дійшли до такого питання, давайте трохи проаналізуємо еволюцію архітектури фронтенда.

Читати далі →

Полювання на міфічний MVC. Огляд, повернення до першоджерел і про те як аналізувати і виводити шаблони самому

— Не розумію, чому люди так захоплюються цим Карузо? Недорікуватий, гугнив, співає — нічого не розбереш!
— А ви чули, як співає Карузо?
— Так, мені тут дещо з його репертуару Рабинович наспівав по телефону.
Детектив за матеріалами IT. Частина перша
Я усвідомлюю, що писати чергову статтю на тему Модель-Вид-Контролер це безглуздо і шкідливо для «карми». Проте з цим «паттерном» у мене надто особисті відносини – провалений проект, півроку життя і важкої роботи «в кошик».
Проект ми переписали, вже без MVC, просто керуючись принципами – код перестав бути схожий на клубок спагеті і скоротився наполовину (про це пізніше, в обіцяної статті про те, як ми застосовували «принципи» у своєму проекті). Але хотілося зрозуміти, що ж ми зробили не так, у чому була помилка? І протягом довгого часу вивчалося все, що містило абревіатуру MVC. До тих пір поки не зустрілися початкові роботи від творця – Трюгве Реенскауга…
І тоді все стало на свої місця. Виявилося, що фактично на основі принципів ми пере-винаходили «original MVC». А те, що часто підноситься як MVC, не має до нього ніякого відношення… втім також як і до гарної архітектури. І судячи з того скільки людей пише про неспроможності «класичного MVC», сперечається про нього і винаходить його різноманітні модифікації, не одні ми зіткнулися з цією проблемою.
Більше 30 років зібрані у MVC ідеї та рішення залишаються найбільш значущими для розробки користувальницьких інтерфейсів. Але як не дивно, незважаючи на існуючу плутанину і велика кількість суперечливих трактувань, розробники продовжують задовольнятися інформацією «з других рук», черпаючи знання про MVC з вікіпедії, невеликих статей в інтернеті і фреймворків для розробки веб-додатків. Найбільш «просунуті» читають Мартіна Фаулера. І чомусь майже ніхто не звертається до першоджерел. Ось цей пробіл і хотілося б заповнити. І заодно розвіяти деякі міфи.

Читати далі →

Просто Angular


Введення
8-9-го грудня 2016 року була проведена перша конференція Angular в Бельгії. Ігор Мінар (провідний розробник Angular) виступив в якості основного доповідача з декількома цікавими оголошеннями щодо того, за яким графіком буде випускатися Angular. І уявіть собі, в березні 2017 року нас чекає реліз Angular 4. При цьому, на даний момент вже опублікована бета-версія.
Від перекладачів
Всім привіт, з вами Максим Іванов і Дмитро Сергієнков, і сьогодні ми з'ясуємо куди поділася третя версія, і чому ми як і раніше можемо бути вірні Angular. Зараз починаючому фронтенд-розробнику, що вивчає JavaScript, досить важко визначитися: який же фреймворк або бібліотеку їм взяти і вивчити, залишаючись в тренді? Звичайно, без слова React, зараз не обходиться жодна розмова на тему фронтенда, проте, в свій час я почав з першої версії Angular, начитався багато посібники з написання фронтенда на ES6 (з класами та іншим добром) і досі не шкодую. Так, ви можете писати корпоративні програми з використанням тільки jQuery, але по мірі розвитку і складності проекту ви почнете закопувати себе в спагетті-коді, змішуючи логіку і уявлення, MV*-фреймворки ж цього зробити не дадуть.
Читати далі →

Робимо проект на Node.js з використанням Mongoose, Express, Cluster. Частина 2.1

Введення
Здраствуйте, дорогі хабровчане! Сьогодні у нас в основному будуть маленькі зміни, але багато змін. У цій частині ми будемо:
  • Створювати свій логгер
  • Записувати в лог запити і час їх обробки
  • Виправляти помилки, які ми допустили в першій частині.
  • Розбиратися з авторизациеей
  • Розбиратися з деякими класами
  • Конфіги!

Читати далі →

Єгор Бугаєнко про MVC на jug.msk.ru

Гостем чергової зустрічі jug.msk.ru, яка відбулася 14 листопада 2016 року, став Єгор Бугаєнко. Темою його виступу стала критика популярного шаблону проектування MVC (Model-View-Controller).



Читати далі →

Робимо проект на Node.js з використанням Mongoose, Express, Cluster. Частина 1

Введення
Добрий день, дорогий %username%! Сьогодні ми будемо описувати створення каркаса додаток за типом MVC на Node.js з використанням кластерів, Express.js і mongoose.
Завдання — підняти сервер який має кілька особливостей.
  • Працює в кілька асинхронних потоків.
  • Сесійний інформація буде загальною для всіх потоків.
  • Підтримка HTTPS.
  • Авторизація.
  • Легко масштабується.
Стаття написана новачком для новачків. Буду радий будь-яким зауважень!
Читати далі →

Побудова MVC програми на Node.js з кластертзацией і виконанням коду в пісочниці

Добрий день, шановні читачі Хабра! Дана стаття розрахована на новачків, які тільки відкривають світ JS, яким є і я. У процесі вивчення і проектування сервера на Node.js розробник постійно стикається з необхідністю перезавантаження програми. А в разі, якщо над проектом працює кілька людей, отримуємо задоволену складну задачу.

Завдання — підняти сервер і обробляти декілька адрес, наприклад http://127.0.0.1/habr і http://127.0.0.1/habrahabr. Сервер повинен обробляти винятки, а також проект розрахований на високе навантаження.

Мета статті – розібратися, як створити высоконагруженное додаток, зручне для командної роботи і зрозуміле для новачків.

Читати далі →

Відмінності між MVVM та іншими MV*-патернами


Від перекладача:
Вже опубліковано багато матеріалів по MVC і його похідних паттернам, але кожен розуміє їх по-своєму. На цьому грунті виникають розбіжності і холивары. Навіть досвідчені розробники сперечаються про те, у чому відмінність між MVP, MVVM і Presentation Model і що повинен робити той чи інший компонент у кожному паттерне. Ситуація ускладнюється ще й тим, що багато хто не знають справжню роль контроллера в класичному варіанті MVC. Пропоную вашій увазі переклад хорошою оглядової статті, яка багато прояснює і розставляє все по своїх місцях.

Читати далі →