Russian Qt Forum
Ноябрь 23, 2024, 23:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Программа для сценаристов (Обсуждение программы и кода)  (Прочитано 41610 раз)
Dimka Novikov
Гость
« : Октябрь 29, 2014, 16:49 »

Всем привет.

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

А мне было бы интересно ваше мнение - как код? Не претендую на полномасштабный ревью, но может всё-таки взглянете хотя бы на способ взаимодействия слоя бизнес логики со слоем хранения данных? или может быть вас заинтересует постраничный редактор а-ля ворд на основе QTextEdit'а?Подмигивающий

Вобщем, кому не лень, или наоборот нечего делать - милости просим! Вот ссылка на гитхаб - https://github.com/dimkanovikov/Scenarist, там в ридми есть ссылка на сайт самого проекта, если вдруг понадобится более подробная информация о нём. Или пишите прямо сюда, я с удовольствием готов обсудить любые вопросы!
Записан
Dimka Novikov
Гость
« Ответ #1 : Январь 26, 2015, 13:13 »

Как бы тему-то развеселить? Может быть вам было бы интересно узнать какие-то технические моменты?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Январь 26, 2015, 13:21 »

Расскажите что вас сподвигло на ее создание Улыбающийся да и про предметную область интересно узнать Улыбающийся
Записан

Dimka Novikov
Гость
« Ответ #3 : Январь 27, 2015, 15:17 »

gil9red, спасибо за вопросы Улыбающийся

Идея создать программу для сценаристов возникла довольно спонтанно. Хоть я немного и связан с кинематографом (моя жена актриса), но задуматься о создании программы меня подтолкнула одна деловая встреча с режиссером в Москве. От него я вкратце узнал об индустрии, о существовании некоего формата сценария и о программе под названием Final Draft. Тема меня заинтересовала, а небольшое знакомство с ней показало, как программы, призванные упростить процесс создания сценария, усложняют жизнь сценаристов пишущих на русском (да и любом другом, отличном от латиницы) языке (используются шрифты не поддерживающие кириллицу, некоторые просто не работают с utf-8, в третьих через раз работает сохранение документов в пдф и т.п.). А мне давно уже хотелось поучаствовать или запустить свой опен сорс проект, вот я и решил, что пришло время его запустить. Улыбающийся

Что же касается предметной области в целом, то сценарии - это самостоятельные художественные произведения, вот только имеющие одну особенность - формат оформления. В них используется стандартизированный формат, который позволяет более менее точно определить длительность (т.е. сколько времени будет длиться снятое по этому сценарию видео).

На данный момент программа представляет собой некоего помощника, который делает всю черновую работу за писателя (а-ля расстановка отступов в ide, всплывающие подсказки и т.п.). Но в будущем, я планирую и уже работаю над тем, чтобы она так же помогала создавать сами истории, сюжет, персонажей, их характеры и судьбы.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Январь 27, 2015, 15:24 »

Добавь, чтобы программа сама вычисляла ляпы и плагиат. Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #5 : Январь 27, 2015, 16:33 »

Dimka Novikov, спасибо, интересная тема Улыбающийся
Записан

Dimka Novikov
Гость
« Ответ #6 : Январь 30, 2015, 10:11 »

Пантер, Улыбающийся

На самом деле, в больших проектах за ляпами следит специально обученный человек, которого зовут скриптсупервайзером Улыбающийся
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #7 : Февраль 10, 2015, 13:02 »

и тем не менее ляпы везде сплошь и рядом )
Записан
Dimka Novikov
Гость
« Ответ #8 : Март 18, 2015, 14:22 »

Всем привет.

Сегодня хочу рассказать об архитектуре проекта в общих чертах.

Итак, вся система разбита на шесть слоёв:


Вверху на картинке показаны два общедоступных слоя (т.е. знать о них разрешено любой функции/классу из любого другого слоя):
1. Модель предметной области
Фактически представляет собой отображение схемы базы данных в объекты.
2. Вспомогательные элементы
Здесь находятся все универсальные решения, а так же все сторонние решения, обнаруженные в интернете. В основном это виджеты и делегаты, но так же есть несколько вспомогательных классов, которые используются повсеместно в проекте.

Далее идут слои, являющиеся пожалуй, основными составляющими программы. Слева идут три слоя, которые замыкаются на себе, т.е. им разрешено знать о сущностях находящихся в собственном слое, а так же о сущностях общедоступных слоёв. Управленческий же слой берёт на себя обязанность по координации взаимодействия между всеми слоями приложения. Это моя своеобразная интерпретация паттерна модель-представление-контроллер. Т.к. слои независимы, они легко разносятся, что облегчает создание новых систем на основе имеющейся.

Дальше чуть более подробно о каждом из них:
3. Слой хранения и обработки данных
Скрывает в себе три подслоя, которые в свою очередь предоставляют: а) интерфейс доступа к базе данных; б) загрузку данных из базы и преобразование их в модель предметной области; в) собственно доступ к загруженным объектам.
4. Слой бизнес логики
Сосредотачивает в себе все тонкости работы с киносценарием: подсчёт хронометража, построение структуры сценария, импорт/экспорт сценария из/в документы различных форматов и т.д.
5. Слой пользовательского интерфейса
Мне нравится, когда интерфейс тупой, просто отправляет сигналы в нужный момент и загружает предоставляемые ему данные в заданные поля. Но в данном проекте есть одно большое исключение - это собственно сам редактор сценария (ScenarioTextEdit). Он вместе с группой зависимых классов является, как представителем слоя пользовательского интерфейса, так и входит в управленческий слой. Сделано это потому, что сам редактор довольно специфичный и разделение его на два независимых класса принесло бы больше проблем/сложностей/трудозатрат, чем их объединение.
6. Управленческий слой
Как и говорилось раньше, этот слой берёт на себя ответственность за координацию взаимодействия между всеми слоями приложения, от первого пункта меню, до вопроса о сохранении редактируемого проекта при закрытии программы.

Вот так выглядит самый верхний срез устройства программы.

Постепенно я буду выкладывать всё более детальные подробности, если вас что-то заинтересовало, вы хотите что-нибудь покритиковать, или уточнить - УРА! Улыбающийся Пишите, мне очень интересно ваше мнение.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #9 : Март 18, 2015, 14:37 »

Есть ли какие-то возможности вносить вклад в ваш проект? )
Ну например, исправление багов, добавление нового функционала, улучшение текущего )
Записан

Dimka Novikov
Гость
« Ответ #10 : Март 19, 2015, 10:06 »

Есть ли какие-то возможности вносить вклад в ваш проект? )
Ну например, исправление багов, добавление нового функционала, улучшение текущего )

Здравствуйте, gil9red. Конечно такая возможность есть, у нас огромный список идей к реализации, а так же есть и над чем поработать в плане исправления и улучшения уже реализованного функционала. Тут вопрос скорее в вас - что именно вы хотите делать и захотите ли это делать под моей опекой. Если да, то мы можем обсудить ваше участие лично, я предложу варианты взаимодействия и мы их рассмотрим.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #11 : Март 19, 2015, 10:54 »

Есть ли какие-то возможности вносить вклад в ваш проект? )
Ну например, исправление багов, добавление нового функционала, улучшение текущего )

Здравствуйте, gil9red. Конечно такая возможность есть, у нас огромный список идей к реализации, а так же есть и над чем поработать в плане исправления и улучшения уже реализованного функционала. Тут вопрос скорее в вас - что именно вы хотите делать и захотите ли это делать под моей опекой. Если да, то мы можем обсудить ваше участие лично, я предложу варианты взаимодействия и мы их рассмотрим.

Если у вас есть список проблем или todo было бы круто: когда накатит по программировать, можно было сделать форк проекта, исправить в нем баг или доработать, и после коммита сделать pull request ^^
На постоянной основе я бы не стал заниматься -- и так на работе с утра до вечера программирую, и придя затемно домой хочется заняться чем-нибудь другим ))
Поэтому, на меня накатывает желание по программировать свое в праздники или в выходные (и то редко) Улыбающийся

// После учебы начинаешь понимать как много было свободного времени, которое можно было потратить на программирование ^^
Записан

Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #12 : Март 19, 2015, 11:40 »

Вот как только я читаю что-то типа "слой бизнес-логики", сразу думается "ну это не от жизни/практики, а так, теорехтически" Улыбающийся

Итак, стукнуло мне в голову написать сценарий (вряд ли, но допустим). И вот беру я Вашу могучую софтину и.... и.... А что она делает Непонимающий Никакой инфы нет. Ну может и есть, но так закопано в общих фразах что я ничего не понял. Ф-ционал-то где?
Записан
Dimka Novikov
Гость
« Ответ #13 : Март 19, 2015, 12:48 »

gil9red, вот списки идей: 1, 2, 3, 4. Они конечно не отфильтрованы, потому что я из разгребаю по мере реализации повестки дня. Сейчас на повестке дня у меня реализация возможности совместной работы над сценарием, а-ля гугл докс. Так что если будет желание дайте мне знать, что вы хотите сделать, чтобы я посмотрел имеет ли данный функционал смысл, и как эту идею можно подать в контексте нашего проекта.

Igors, как видите нет, в мае стартует разработка родственного проекта, для режиссёров и продюсеров, он как раз будет использовать уже все готовые наработки и главным образом бизнес логику Подмигивающий И это не фантазии, это опыт предыдущих проектов.

Что касается функционала, то можете глянуть на сайте программы kitscenarist.ru, там же есть видео для сценаристов, кто хочет начать работать с программой, а так же подробная-приподробная справка, где описан весь функционал.
« Последнее редактирование: Март 19, 2015, 14:50 от Dimka Novikov » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #14 : Март 19, 2015, 13:03 »

gil9red, вот списки идей: 1, 2, 3, 4. Они конечно не отфильтрованы, потому что я из разгребаю по мере реализации повестки дня. Сейчас на повестке дня у меня реализация возможности совместной работы над сценарием, а-ля гугл докс. Так что если будет желание дайте мне знать, что вы хотите сделать, чтобы я посмотрел имеет ли данный функционал смысл, и как эту идею можно подать в контексте нашего проекта.

Ссылка 3 и 4 особенно много располагают Улыбающийся Я их до конца не прочел -- реально много )
Проще было бы вам с вашими товарищими определиться, что вы хотите сделать и составить файл TODO и в нем внести все, что хотите сделать, а этот файл хранить в проекте на гитхабе

А так, идей много, и они интересные, но их нужно разбить на более мелкие задачи Улыбающийся
Записан

Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.07 секунд. Запросов: 23.