Pull to refresh

Comments 11

Вам не кажется, что было бы намного понятнее, если бы это выглядело так:

menu = MenuItem('Main menu', sub_items = [
MenuItem('Functions', style=...),
TwitterMenuItem(style=...)
]

render(menu)

Потому что сейчас ваш инит-метод — макароны.
P.S. Простите, не работают теги =(
Да, есть такое. Но это просто прототип. Подумав, я реорганизую работу с объектами, и скорее всего сделаю просто регистрации меню в главном приложении и последующем запуске последнего. Думаю, так будет лучше. Спасибо за вкусный комментарий. И да — Вы правы — макароны в коде это плохо:)
Посмотрите на то, как делали в Turbo Vision, если уж хочется объектной ориентированности. Ну или просто вложенные словари-списки типа вот этого. Там на тикле, правда, но на питоне даже проще будет, т.к. у вас типизация более явно выражена в языке.
Спасибо за предложение. Я обязательно ознакомлюсь! Это предложение рождено неконструктивностью кода? Или это просто как вариант того, как могло бы быть реализовано подобное приложение?
По-моему, у Вас слишком много кода, причём слабо структурированного, а потому не очень читаемого. В Turbo Vision сделали так, что код получается как раз соответствующим структуре создаваемых объектов (приблизительно). Но лучше, на мой взгляд, описывать меню структурой данных, по которой одним вызовом можно это меню сконструировать. Таки данные гораздо читаемее, ну да и динамичности прибавляют коду — их всегда легче заменить, чем собственно код.
Меню в консоли очень удобно в том случае, когда нужно постоянно выбирать что-то из имеющихся вариантов (списки файлов кастомных каких-то), либо когда нужно использовать данную тулзу человеку, не сведующему в деталях работы с каким либо механизмом. Живой пример — миграции баз данных. Ради чего этот фреймик и родился, Уважаемый. А порочить и поносить неконструктивно каждый может. Вам сюда — поболтать с братюней. Неудивительно, что у вас такой рэйтинг… и карма.
единcтвенный расово верный сбособ интерактивного взаимодейсвия в CLI это имеено автодополнение. отсюда и отсутствие «фреймворков для построения меню» (слово то какое! просто «библиотека» ща не в моде)
Всё это правильно и хорошо и согласен я. Но вот понадобилось меню и есть оно независимо от расс и вер. А фреймворком это не называется at all, поэтому это слово фреймворк и в кавычках.
Могу предложить вам посмотреть на интерфейс командной строки утилиты zenity — для простых случаев меню/диалогов в 1-2-3 уровня вложенности — самое оно! И можно прикрутить в текущую реализацию, например в качестве CLI при запуске библиотеки в роли скрипта.
Надо будет позаимствовать там что-нибудь;)
Sign up to leave a comment.

Articles