Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   LiquidLava MVC Framework (https://javascript.ru/forum/project/52320-liquidlava-mvc-framework.html)

kogarashisan 13.12.2014 18:41

LiquidLava MVC Framework
 
Здравствуйте!

Когда-то я уже представлял свой фреймворк на этом форуме. Не совсем удачно, так как в то время он был еще сыроват, и не было документации. С тех пор документация была написана, исправлено много багов, и добавлены новые фичи.

lava-framework.com

Что это?

MVC фреймворк, по возможностям сравнимый с такими гигантами как Angular и Ember (не клон!).

Чем этот фреймворк отличается от остальных?

Прозрачной архитектурой. Это значит, что в любой момент времени вы понимаете, что вы делаете, и что при этом происходит.

Подробнее об этом:
Я встретил непонимание некоторых людей - в чем преимущество прозрачной архитектуры?
Вопрос настолько элементарный, что тогда я не нашелся, что ответить.
Фактически, вы спрашиваете: какая разница, понимаете ли вы что делаете, или нет?
Понимаете ли вы, что при этом происходит, как это работает, или нет?
Если для вас нет разницы - то и продукт не для вас, проходите мимо.

Сравнивая себя с аналогами, приведу такой пример. На хабре есть несколько статей с примерно такими заголовками:
  1. "Знаете ли вы как работает if в Angular?"
  2. "А вы точно знаете, как работает ng-if?"
  3. "То, чего вы не знали о работе ng-if"...
А если ваша программа не работает как надо, то процесс поиска багов в таких фреймворках получается долгий и мучительный. Пример такого бага я описал здесь, кто хочет - посмотрите.

В Lava такого нет. Здесь вы знаете, как работает If. И если в вашей программе что-то работает не так, как вам хотелось бы - то вы знаете место в коде, где искать причину.

Еще немного о фреймворке

С современными фреймворками ситуация такая: часто бывает проще написать что-то на JQuery, чем использовать фреймворк. А если вам нужно изменить какой-то виджет, который идет с этим фреймворком - то проще написать новый. На Хабре есть статья, в которой это хорошо описывается: "Такое ощущение, что каждый разработчик, что использует один из этих модных фреймворков борется с ними и мы тратим кучу времени отлаживая проблемы или перекапывая StackOverflow в поисках решений элементарных (казалось бы) задач"

LiquidLava создавался для решения вот этой самой проблемы. Элементарные задачи здесь решаются элементарно, здесь нет "фабрик контроллеров", есть только яваскриптовые классы и конфиги для них. Если вам нужна кнопка на странице - то здесь вам не придется делать ее через роутер! (*) Вы можете плавно переходить от небольших виджетов к сложным приложениям, при этом сохраняя целостность архитектуры (здесь каждый виджет - это часть фреймворка, а не сам по себе). И еще: мои анимации не моргают! (**)

Дальше рассказывать нет смысла, предлагаю вам почитать учебники на сайте.

Статус

Скоро бэта, активно развивается. Для комфортной работы нужно сделать еще некоторое количество задач и бэклога, и в документации пока не хватает некоторых статей, но скоро будут.

Ну и...

Здесь я хочу найти заинтересованных людей и услышать их отзывы. В чем именно ваш интерес: я рассчитываю, что Lava уменьшит ваши затраты на разработку крупных проектов (меньше время обучения, меньше багов, выше скорость разработки...). Про крупные проекты реально можно будет говорить после бэты, но $интерес$ понятен.

P.S. Меня просили учебники на русском, но я один такое не потяну, простите.
Сейчас я рассчитываю, что Lava начнет набирать популярность и кто-то создаст сайт с русскими учебниками и сообществом.

(*) и (**) - привет двум известным фреймворкам.

UPD
Кому понравился фреймворк - буду благодарен за звезду на GitHub.

Safort 13.12.2014 18:53

Сам фреймворк не пробовал, однако на гитхабе не увидел тестов, что очень расстроило.

nerv_ 13.12.2014 19:11

Цитата:

Сообщение от kogarashisan
Сейчас я рассчитываю, что Lava начнет набирать популярность и кто-то создаст сайт с русскими учебниками и сообществом.

Не хочу тебя расстраивать, но этого скорее всего не будет.

kogarashisan 13.12.2014 19:32

Цитата:

Сообщение от Safort
Сам фреймворк не пробовал, однако на гитхабе не увидел тестов, что очень расстроило.

Мне самому очень хотелось бы их иметь, на них есть планы, но скорее всего до них еще далеко. Просто сама разработка очень трудозатратна.

Цитата:

Сообщение от nerv_
Не хочу тебя расстраивать, но этого скорее всего не будет.

Вы случайно не Павел Глоба? Вы не расстроили, честно. Просто я оптимист, поэтому охотно вам верю. Но все же... по моему вы немного меня недооценили.

melky 13.12.2014 20:46

амбициозно.

но вот пример кода TodoAPP на главной меня отпугнул)

kogarashisan 13.12.2014 21:59

Синтаксис очень непривычный, согласен.
В других фреймворках ты думаешь "ой как все красиво!", а потом пугаешься.
А тут сперва пугаешься, а потом "ой как все красиво!" :)

Пока я создавал Lava - у меня были документы с сотнями требований (больше тысячи), и десятками сценариев, которые должны быть на нем реализованы. И такой синтаксис получился из требований, как и сам фреймворк. Вообщем, ничего лучше пока не придумал, но там все проще чем кажется.

bes 13.12.2014 22:54

пару вопросов:
чё те влом было русскую версию документации подготовить, раз так пропагандируешь свою поделку?
чё те без mootools никак не обойтись было?

kogarashisan 14.12.2014 01:11

Цитата:

Сообщение от bes
чё те влом было русскую версию документации подготовить, раз так пропагандируешь свою поделку?

По уровню и объему работы это не "поделка". Простите, но вы не правы.

Русская документация на этапе альфы - это слишком трудозатратно, так как ее потом нужно еще и поддерживать. По моим соображениям, большинство программистов должно знать английский. Если на этом форуме меня завалят просьбами о переводе - то скорее всего, придется.

Цитата:

Сообщение от bes
чё те без mootools никак не обойтись было?

Низкоуровневый фреймворк нужен, без него никак. Из низкоуровневых фреймворков - MooTools единственный из актуальных на сегодня с более-менее реюзабельным исходником (попробуйте разобраться с исходником, скажем, JQuery - внутри там настоящая мусорка и сборник плохих практик). Для работы над Lava мне приходится очень хорошо разбираться в его исходнике. Вообщем, остальные не прошли по требованиям.

Сам по себе MooTools - это хороший фреймворк, основанный на хороших практиках программирования (классы, типизация...), и движок селекторов у него ничем не уступает Sizzle. Так что, я сделал правильный выбор.

В будущем я откажусь от MT: весь его функционал перейдет в мой собственный низкоуровневый фреймворк Firestorm, который идет вместе с Lava, но это будет еще не скоро.

bes 14.12.2014 08:20

http://www.lava-framework.com/www/do...#tab=tutorials

Цитата:

Сообщение от kogarashisan
Русская документация на этапе альфы - это слишком трудозатратно, так как ее потом нужно еще и поддерживать. По моим соображениям, большинство программистов должно знать английский. Если на этом форуме меня завалят просьбами о переводе - то скорее всего, придется.

может сразу альфа версии ОС начнём для бесперебойной работы корпорации юзать, а ;)
на каждой из этих 12 маленьких английских страничек всего по 10 маленьких английских строчек английского описания на английском, остальное - код
другими словами, тебе просто влом, к тому же не факт, что ты всё правильно перевёл :D
знание английского языка тут не причём, просто ты таким образом говоришь: "ребята, не юзайте мою поделку, она - для буржуев и я их больше уважаю"


Цитата:

Сообщение от kogarashisan
В будущем я откажусь от MT: весь его функционал перейдет в мой собственный низкоуровневый фреймворк Firestorm, который идет вместе с Lava, но это будет еще не скоро.

до светлого будущего ещё дожить надо, так что не теряй время и займись переводом своего английского на русский :victory:

kogarashisan 14.12.2014 10:16

Мужик, учил бы ты английский, вместо того чтоб командовать.

И ты опять ошибаешься. И насчет "для буржуев уважаю" и насчет "влом".


Часовой пояс GMT +3, время: 07:20.