На этапе прототипирования говнокод — единственный выход, особенно если решаешь задачу, с которой раньше не встречался. Если у вас заказчик здорового человека — он прекрасно понимает, что первые несколько написанных версий кода — говнокод в любом случае. Обычно в новой итерации я использую около 20-30% ранее написанного кода (покрытого тестами, естественно), что позволяет, с одной стороны, свежим взглядом посмотреть на архитектуру, а с другой — не переписывать код, который уже работает
Для нормализации можно использовать один из существующих стеммеров
Проще всего установить стеммер от Яндекса (yandex mystem), который достаточно хорошо работает с русскими словами и работает как сервис (все вычисления происходят на сервере)
Я в таких случаях сначала пишу так, чтобы работало, очень грязно и очень тупо :)
Если и это не помогает, то нужно переключиться на задачу с другой стороны — например, уйти от попытки выстраивать нижний слой абстракции и перейти сразу к верхнему, начать писать систему с другой стороны.
Как вариант — просто создать новый репозиторий и потихоньку подглядывать в старый (из говнокод-проектов примерно 10% кода оказались полезными, +понимание ограничений, с которыми можно столкнуться)
А планируете ли что-нибудь подобное для Python?
Настоящий такой, статический анализ?
Если нет, то какие сейчас сложности основные есть?
Если да, то когда ждать эту прелесть?
// естественно, будет максимально круто написать его на питоне :)
Сводят. Все современные интерпретируемым языки типа Python, Java — сводят, и ещё как! Есть лексер-парсер-транслятор в байт-код, и есть собственно какой-нибудь CPython, который этот байт-код выполняет.
У функций в питоне можно в runtime посмотреть (а на самом деле даже и создать функцию из байт-кода) байт-код функции через объект func.code
Разве обезличенная? Они же таргетированную рекламу, вроде как, предлагают.
Просто это как-то… Лицемерно, не знаю?
Спасибо!
На этапе прототипирования говнокод — единственный выход, особенно если решаешь задачу, с которой раньше не встречался. Если у вас заказчик здорового человека — он прекрасно понимает, что первые несколько написанных версий кода — говнокод в любом случае. Обычно в новой итерации я использую около 20-30% ранее написанного кода (покрытого тестами, естественно), что позволяет, с одной стороны, свежим взглядом посмотреть на архитектуру, а с другой — не переписывать код, который уже работает
И в то же время они слушают разговоры в WhatsApp (как минимум) и продают эти данные в агрегаторы рекламы. Очень странно это слышать от них
Если лень передлывать руками есть утилита 2to3 которая решает 90% проблем перехода со второй версии на третью
А почему вы использовали 2.7, а не какой-нибудь свежий 3.7, в которых все строки юникодные по умолчанию?
Не быстро, но дадут)
Для нормализации можно использовать один из существующих стеммеров
Проще всего установить стеммер от Яндекса (yandex mystem), который достаточно хорошо работает с русскими словами и работает как сервис (все вычисления происходят на сервере)
Я в таких случаях сначала пишу так, чтобы работало, очень грязно и очень тупо :)
Если и это не помогает, то нужно переключиться на задачу с другой стороны — например, уйти от попытки выстраивать нижний слой абстракции и перейти сразу к верхнему, начать писать систему с другой стороны.
Как вариант — просто создать новый репозиторий и потихоньку подглядывать в старый (из говнокод-проектов примерно 10% кода оказались полезными, +понимание ограничений, с которыми можно столкнуться)
Напишите потом на своем языке компилятор мвоего же языка и раскрутите его, будет интересно :)
А можно покрутить сцену? Интересно, что наверху и с другой стороны :)
Поддерживаются ли классы?
Какое-то количество мы можем найти, но гарантировать, что нашла все не можем
Настоящий такой, статический анализ?
Если нет, то какие сейчас сложности основные есть?
Если да, то когда ждать эту прелесть?
// естественно, будет максимально круто написать его на питоне :)
Там дело в том, что земля сферическая (с натяжкой).
Простой ответ — почему земля круглая, а карта прямоугольная?)
Есть ещё такая интересная штука, как специализация языков, и с помощью нее из интерпретатора и специализированные можно комплилятор получить)
p-код, кстати, как раз таки и является байт-кодом. Непонятно, чем так не угодили вм товарищу rpiontik )
Забрала съел разметку, конечно же
func.__code__
Сводят. Все современные интерпретируемым языки типа Python, Java — сводят, и ещё как! Есть лексер-парсер-транслятор в байт-код, и есть собственно какой-нибудь CPython, который этот байт-код выполняет.
У функций в питоне можно в runtime посмотреть (а на самом деле даже и создать функцию из байт-кода) байт-код функции через объект func.code