• Для чего нужна Java, что можно на ней конкретно написать и стоит ли вообще ее учить?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Согласно рейтингам tiobe и renmonk Java стабильно кувыркается где-то на 4 месте в рейтинге популярных языков разработки. Рейтинг Редмонка собирается из двух рейтов популярности (кажется количество вопросов в стековер и количество проектов на гитхабе. Ну или может как-то сложнее ХЗ).

    Первым трем местам в этом анализе я-бы не сильно доверял. Там постоянно идет ротация то JavaScript выскакиевает то C то Swift но ситуация каждый год - новая. Вот сейчас там висит Python... Наверное девопсы подсуетились. И сайентисты.

    В чем сила Java сегодня? Ну во первых в большом объеме легаси кода который уже написан и работает. Java сегодня занимает нишу COBOL в банках и финансовых организациях. И если вы хотите средний достаток, (машина дом, vacation) - то идите спокойно в java и будет кусок хлеба.

    Во вторых в толстом репозитарии бесплатных библиотек на все случаи жизни.
    Например я уже 2 года не пишу на Java ничего ради денег. Но в некоторых скриптах на Scala/Databricks я спокойно подключаю Java-библиотекие (всякие sftp клиенты, json/xml парсеры) и все это нормально интегрируется и работает. И слоган про wrote-once - это не шутка. Это правда работает и в доказательство - целый репозитарий таких либ на mvnrepository.com. Они будут совместимы c Kotlin/Groovy/Scala короче со всеми JVM-based языками.

    Лично я считаю Java как язык слишком многословным. Многие вещи можно короче запрограммировать. Но это просто моё ИМХО. При игры - ничего не скажу. Не знаю. Но вот на Kotlin что-то пишут под Андроид.

    И вообще программист должен больше выбирать род деятельности (фронт или back или железо и микро-контроллеры) а языки учить всю жизнь. Вот так. Вы всю жизнь - студент.
    Ответ написан
    4 комментария
  • Безопасно ли пользоваться кастомными прошивками?

    @rPman
    конечно не безопасно.

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

    Просто шансы этого уменьшаются и они тем меньше чем меньше используешь проприетарных утилит. Зачастую люди, выкладывающие исходники (и тем более сами мейнтейнеры) не заинтересованы в том чтобы делать гадости другим людям, они обычно публичные личности и факт помещения трояна в исходных текстах утаить очень сложно (в общем случае даже невозможно, вопрос цены проведения поиска). Т.е. фактически все упирается не в саму возможность это сделать а в принципиальное желание. Обычно все упирается в монетизацию, а она пока ограниченадля массового потребителя рекламой (но скоро будут массово криптовалюты красть, вот где страшно станет).

    Смотри внимательно, чтобы персонально для тебя не был подготовлен загружаемый архив (в этом случае даже площадка посредник может подсунуть тебе зараженный модуль но при этом всему остальному миру показывать чистый файл. Хорошей практикой считается дополнительно проверка хэш суммы, хотя по факту, без наличия истории выкладываемых файлов с гарантиями хотя бы стороннего независимого, эти хэши бессмысленны.
    Ответ написан
    Комментировать
  • Что делает "..." в Python?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    В общем случае - значит что это "заглушка" и позже код нужно будет дописать.
    Ответ написан
    6 комментариев
  • Что еще можно добавить?

    Vindicar
    @Vindicar
    RTFM!
    Мой совет: сделай каждую команду отдельной функцей вида:
    # ': str' - это type hint. На выполнение не влияет, оно в первую очередь для читаемости. Можешь пока пропустить.
    def command_plus(args: str):  # функция получает аргумент как строку, вместо вызова input().
            "Складывает указанные числа."  # doc-string содержит человекочитаемое описание функции
            print("Калькулятор на сложение")
            parts = [int(part) for part in args.split()]  # операции со строками, list comprehensions
            if not parts:  # какие значения в питоне истинные (truey), какие ложные (falsy)?
                    parts.append(int(input("1-е число: ")))
                    parts.append(int(input("2-е число: ")))
            res = sum(parts)
            print(f"Результат: {res}")  # f-строки

    Далее, научись работать со словарями:
    # словарь, содержащий имя команды и её функцию
    commands = {
            'calc +': command_plus,
            # тут будут другие команды
    }

    Тогда рабочий цикл будет примерно таким:
    while True:
            cmd = input('Введите команду: ')  # например, "calc + 2 3 5"
            for cmd_name, cmd_func in commands.items():  # цикл for, операции со словарями
                    if cmd.startswith(cmd_name):  # операции со строками
                            cmd = cmd[len(cmd_name):]  # срезы (slice)
                            try:  # обработка исключений
                                    cmd_func(cmd)
                            except Exception as err:
                                    print(f"Произошла ошибка: {err}")
                            break  # операторы передачи управления
            else:  # Как работает оператор else: совместно с циклами?
                    if cmd == 'exit':
                            print('До свиданья')
                            break # прерываем while
                    else:
                            print(f"Неизвестная команда: {cmd}")

    Будет куда проще читать код и расширять функциональность.
    Ну и почитай по темам, которые я упомянул в комментариях.
    Ответ написан
    Комментировать
  • Как достать превью видео с youtube автоматически?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Не знаю, может ли дискорд автоматом такое получить, но в любом случае, превью можно получить через ID видео:
    https://img.youtube.com/vi/VIDEO_ID/hqdefault.jpg, где VIDEO_ID - id видео,

    Как пример:
    from urllib import parse
    
    url = 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
    
    video_id = parse.parse_qs(parse.urlparse(url).query)['v'][0]
    
    thumbnail_url = f'https://img.youtube.com/vi/{video_id}/hqdefault.jpg'
    Ответ написан
    1 комментарий
  • Как правильно работать с git?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Какие пути есть кроме написания actions на гите

    Можно еще webhook использовать.
    На клиенте при этом можно что-то вроде этого установить:
    https://github.com/adnanh/webhook чтобы выполнять деплой по событию.
    Ответ написан
    Комментировать