LINUX.ORG.RU

Проектирование приложения Python


0

1

Добрый день! Появилась необходимость переписать приложение с явы на питон. Однако в процессе транслирования кода «напрямую» выявилась убогая структура приложения.

Рефакторинг проводить - надо сначала определиться, что хочу видеть. В каких программах можно по-быстрому спроектировать приложение?

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

Желательны не «тяжелые» приложения, потому как у меня не очень быстрая рабочая машинка.

★★★★★

>В каких программах можно по-быстрому спроектировать приложение?

В голове. Dia или Umbrello в помощь

elverion
()

Появилась необходимость переписать приложение с явы на питон

Что на вас всех нашло? Все бегут с явы?

Мне трудно поверить, что эту задачу можно по нормальному решить как-то иначе, кроме как руками. Не покидает ощущение, что сама идея подобного преобразования - дурацкая. Чего в яве не хватает? Батареек? Динамизма? Скорости исполнения?

pathfinder ★★★★
()

позволю себе пару методологических советов

проектируя архитектуру думайте в первую очередь о наборе инструментов - кубиков, из которых будете собирать конечное приложение

также помогает мнемоническое правило: 1 фича (например - фильтр, или загрузка из файла, или парсер конфигов) = 1 класс; данная фича может, естественно, использовать другие фичи (классы), но тут главное сильно не макаронить - в этом Вам поможет построение object diagram Вашего приложения

не старайтесь пихать «искаропки» всякие адские штуки, типа metaclass, лучще написать изначально попроще, в дальнейшем же, если Вы увидите что в данном конкретном месте хорошо можно использовать тот или иной приём, - делайте рефакторинг

старайтесь применять TDD - модульное тестирование и мокинг, питон довольно таки гибкий язык и сравнительно легко можно придти к состоянию, когда данную «змеюку» придётся ловить за очень скользкий хвост, TDD реально помогает на питоньем бездорожье

как то так

да, насчёт uml, не старайтесь расписать всё и вся в диаграммах - это потерянное вникуда время, описывайте только общие взаимосвязи и сложные для понимания места

shty ★★★★★
()
Ответ на: комментарий от pathfinder

>> Появилась необходимость переписать приложение с явы на питон

Что на вас всех нашло? Все бегут с явы?

Наверно потому, что например интерфейс для связи ВебПриложения и Сервера в питоне описывается интерфейсами функции высшего порядка и функции в неё передаваемой. И ВСЕ!

anonymous
()
Ответ на: комментарий от anonymous

>Наверно потому, что например интерфейс для связи ВебПриложения и Сервера в питоне описывается интерфейсами функции высшего порядка и функции в неё передаваемой. И ВСЕ!
ЛПП


mastermind
()
Ответ на: комментарий от mastermind

>> Наверно потому, что например интерфейс для связи ВебПриложения и Сервера в питоне описывается интерфейсами функции высшего порядка и функции в неё передаваемой. И ВСЕ!

ЛПП

А обосновать мозгов хватит?

anonymous
()

Десятистрочные скрипты не надо проектировать. Все остальное не надо писать на пистоне.

Удачи.

anonymous
()
Ответ на: комментарий от anonymous

что например интерфейс для связи ВебПриложения и Сервера в питоне описывается интерфейсами функции высшего порядка и функции в неё передаваемой

А можно простенький примерчик для тупых? А то я не въехал.

pathfinder ★★★★
()
Ответ на: комментарий от yoghurt

Спасибо! Очень полезная штука для анализа приложения, особенно при возможности импорта ява-кода

XVilka ★★★★★
() автор топика
Ответ на: комментарий от pathfinder

>> что например интерфейс для связи ВебПриложения и Сервера в питоне описывается интерфейсами функции высшего порядка и функции в неё передаваемой

А можно простенький примерчик для тупых? А то я не въехал.

Не вопрос!))) http://ru.wikipedia.org/wiki/WSGI

anonymous
()
Ответ на: комментарий от anonymous

Десятистрочные скрипты не надо проектировать. Все остальное не надо писать на пистоне.

расскажешь об этом на докладе в google толстячок

shty ★★★★★
()
Ответ на: комментарий от pathfinder

>> Не вопрос!))) http://ru.wikipedia.org/wiki/WSGI

Ну и какая польза? Чем оно лучше других интерфейсов взаимодействия?

Практическое большинство сайтов на питоне используют эту незамысловатую фичу.

anonymous
()
Ответ на: комментарий от shty

> расскажешь об этом на докладе в google толстячок

Ты бы еще к микрософту апеллировал, дурачок.

anonymous
()

Я проектирую у себя в голове или на бумажке, иногда рисую в Диа.

Моё личное мнение: не стоит под каждую подзадачу делать по классу, в Питоне часто можно обойтись просто функциями, тем более, что передача функций в качестве параметров тривиальна.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

О! Так ты используешь функциональное программирование?

anonymous
()
Ответ на: комментарий от Vudod

А я вообще часто ленюсь и вместо классов юзаю кортежи, списки или словари + набор ф-й. Такой С-стиль получается, если данные не оч сложные (в кортеже не больше 10 элементов:-) довольно лаконично. Только надо обязательно комменты писать.

PS хокку:
бурно троллит
анонимус злобный.
Наверное лиспер.

AIv ★★★★★
()
Ответ на: комментарий от anonymous

> расскажешь об этом на докладе в google толстячок

Ты бы еще к микрософту апеллировал, дурачок.

да, я дурачок, и лучше, как дурачок, буду аппелировать к таким дурачкам как в микрософт-дурачок, нежели к таким дурачкам как ты дурачок

shty ★★★★★
()
Ответ на: комментарий от AIv

троллем угрюмо смотрит
анонимус злобный на лоре
наверное лиспер

//fixed

shty ★★★★★
()

Питон тем хорош в сравнении с С++, что он как пластилин. В любой момент любую часть кода можно перелепить и ничего за это не будет. В С++ за это сразу эцих с гвоздями.

thesame ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.