• Зачем нужны DTO, когда есть типы и интерфейсы в языках программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    DTO объекты часто пересекают границы Языков (Java/JavaScript/GWT) и сетевых протоколов (Rest/Graphql/SOAP/Avro).

    И эти объекты могут нести на себе семантику только чистых данных. Вы не сможете через сеть
    из Java в C# например передать интерфейс или объект с методами.

    И многие фреймворки искусственно ограничивают DTO как раз для того чтобы эти объекты однозначно
    декодировались всеми сторонами-участниками протокола взаимодействия. А фреймворки - обычно
    предоставляют средства кросс-компилляции этих DTO.
    Ответ написан
    Комментировать
  • Зачем нужны DTO, когда есть типы и интерфейсы в языках программирования?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Потому что компоненты приложения не должны иметь жёстких связей между собой и должны опираться на максимально узкий скоуп используемых данных. Незачем какому-нибудь там адаптеру, шлющему в очередь уведомления об изменения статуса модели, иметь доступ ко всем полям этой модели и иметь зависимость от прикладного ядра или слоя доступа к данным.
    Ответ написан
    Комментировать
  • Нынешние реалии стандарта Java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Каковы нынешние реалии стандарта языка? Используются ли в каких-то моментах фишки новых версий (если это вообще возможно)? Ибо судя по всем статьям, практически большинство до сих пор сидит на восьмёрке.

    Да. Это отчасти правда. Основные заказчики Java разработки - это банки. А они не любят миграции версий
    без какой-то особой причины. Я работал с тремя банками и я могу сказать что большая часть кода - это
    легаси. И совершенно нет никакой надежды что будет bump версии языка. Product owner-ы в таком случае
    задают вопрос - "а что мы с этого будем иметь". И обычно для банка - ничего особенного. В некоторых
    случаях (использование CORBA или JAXb, com.sun.*) повышение версии чревато проблемами. Что-то
    может резко отвалиться в новой версии.

    Самые интересные новшества после JDK8 с моей точки зрения были не в языке а в других слоях JRE/JDK (GC, FFI, vectorization, unmanaged memory). Но вы еще попробуйте эти новшества продать бизнесу. Успехов вобщем.
    На какой версии лучше всего практиковаться в написании кода, да и обучаться в целом?

    Да. Ты можешь брать самую последнюю LTS-версию. Брать preview нет никакого смысла. Очень
    сомнительно что для учебы тебе кто-то даст в туториалах экспериментальные фичи. Скорее наоборот.

    Есть ли вообще предпосылки на переход большей части энтерпрайза в ближайшем будущем (ближе к 2030) на более современную версию? Почему тезис о дорогом переходе не нивелируется тем, что за 10 лет со времён восьмёрки завезли достаточно "контента", например, новый синт.сахар и обновленный GC?

    Никакого глобального перехода на самом деле нет. Потому что нет такой проблемы.
    По сути проблемой например для Java 21 может стать "end of extended support" а он условно отмечен
    например на 2031 год. Вы еще попробуйте доживите до этого года и попробуйте сидеть на одном проекте
    столько лет.

    Java может стать COBOL-ом XXI столетия. Но у нее будет даже меньше проблем чем у Кобола, потому что
    байткод и стек-машина имеет больший потенциал. Тоесть пока жива концепция байт-кода и пока существуют
    процессоры Фон-Нейман архитектуры, можно сказать что Java неубиваема.

    Вообще не стоит вам сильно циклиться только на языке. Параллельно существуют Scala, Kotlin, Groovy, Clojure
    и их само существование делает много альтернатив. Одна JVM - бесконечное число языков.
    Ответ написан
    3 комментария
  • Флешки на 128гб работают везде?

    GavriKos
    @GavriKos
    из-за чего вообще они не читались

    Из за разрядности. Думаете зря 64-битные процы и прочее появились?
    Ответ написан
    Комментировать
  • Почему отказались от оператора GoTo в высокоуровневых языках?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Поскольку goto позволяет писать очень запутанный и непонятный код. Слишком легко написать плохой код.
    Ну не могут люди в голове удерживать спагетти из кучи возможных путей исполнения. if/else, да циклы - это людям понятно. Появилась инструкция goto изначально, потому что в машинных кодах, а значит и в асемблере эта инструкция есть. Оттуда она перекочевала в языки более высокого уровня. Процессоры, наоборот, if/else вообще не умеют. Вместо это там всякие условные goto.
    В новых языках программирования goto вообще нет, а в старых его обычно запрещают использовать в правилах кодовой базы. Если кто злоупотребляет - ему дают по рукам.
    Ответ написан
  • Почему отказались от оператора GoTo в высокоуровневых языках?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Никакие комьютеры не отказались от goto.
    Кроме того, это не функция, а оператор.

    Но если писать длинный код активно используя goto, в нем будет крайне сложно разобраться.
    Поэтому в некоторых языках программирования его может и не быть. Но на архитектурном уровне и низкоуровневом ассемблере, он естественно есть.
    Ответ написан
    Комментировать
  • Возможна ли декомпиляция Vue проекта?

    @Everything_is_bad
    я так понимаю обратится за исходниками к разработчику возможности нет.
    нужно эту возможность создать, иначе переписывайте фронт с нуля, декомпиляция, точнее деобфускация, выдаст код, которые очень сложно поддерживать.
    Ответ написан
    Комментировать
  • С чего начать создание сервиса бронирования на java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    99% успеха зависит от того имеешь ли ты вообще опыт разработки веб-приложений во взаимодействии с БД
    например. Какой-либо методички по бронированию не существует. Потому-что все подобные задачи
    по своему уникальны и бизнес как раз хочет иметь всегда решение не похожее на конкурента.
    Поэтому и шаблоны таких решений не очень полезны.
    Ответ написан
    Комментировать
  • Как избежать дублирования post при отправке формы через ajax?

    @MrColdCoffee
    web
    У вас при каждом открытии модалки на myForm вешается обработчик(допом к имеющемуся)...
    Ответ написан
    3 комментария
  • Шифрование VeraCrypt и BitLocker одновременно, возможно ли такое?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    в VeraCrypt в свое время были выявлены критические уязвимости, что говорит о соответствующем уровне разработчиков.

    И какой же?
    Вы как бы должны понимать, что софт непростой, и написать его вообще без уязвимостей, надо быть боженькой, что невозможно.
    Veracrypt - форк от Truecrypt, в котором уже точно были найдены определенные уязвимости, и в веракрипт они были исправлены.

    Соответствующие аудити выявляли возможные уязвимости, которые были исправлены. Последний публичный аудит был еще в 2020 году.
    Хотите провести аудит - исходники открыты, аудитируйте.

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

    То есть найти уязвимость или даже если есть открытые issue, это далеко не тоже самое, что иметь возможность легко расшифровать зашифрованный том. Уязвимость может лежать в других моментах. Например драйвер веракрипт, который как и все драйвера, внедряются на уровень ядра ОС, может позволить выполнить несанкционированные действия. Но к шифрованию это никакого отношения не имеет.
    Например https://www.cvedetails.com/cve/CVE-2015-7358/
    Ответ написан
    1 комментарий
  • Стоит ли работать в тех поддержке?

    xez
    @xez
    TL Junior Roo
    Существует такое деление: разработка и эксплуатация.
    Разработка - это разработка, собственно, а так же системная аналитика, тестирование, продуктовая разработка.
    Эксплуатация - это системное администрирование, поддержка, хелп-деск и т.д.
    И в эксплуатации и в разработке есть развитие.
    Например, в эксплуатации можно устроиться «поднимать трубку», за тем на вторую-третью линии, оттуда в сисадмины/дба/сети/безопасность/девопс куда уж занесет ну и менеджмент конечно.
    В разработке растут по грейдам, а там либо в менеджеры, либо в архитекторы/евангелисты.

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

    На ваш вопрос ответ такой: вам нужно самостоятельно определиться что вам интереснее, чем вам хочется заниматься. Если душа лежит в разработку - нужно как можно раньше именно ей и заниматься. Рост экспертизы в эксплуатации даст вам минимальное преимущество в дальнейшем трудоустройстве.
    Если же нравится «в эксплуатацию» - тоже классно; продолжайте карьерный путь, наращивайте экспертизу.
    Ответ написан
    3 комментария
  • Почему IDEA выдает ошибку об отсутствие jdbc драйвера?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Очевидно, Oracle JDBC драйвер для подключения к Oracle, а не MySQL.
    Ответ написан
    Комментировать
  • Что выбрать для CI/CD проектов на .net?

    Jenkins:
    - Бесплатный
    - Можно развернуть на Windows, что тебе нужно для net framework

    Ещё бы порекомендовал Teamcity - вроде первые несколько раннеров у него тоже бесплатные и он достаточно хорошо с .net интегрирован
    Ответ написан
    Комментировать
  • Стоит ли использовать lodash сейчас?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Я так понимаю все что предлагает лодаш уже реализовано нативно

    Не понимаете.
    Ответ написан
    Комментировать
  • Всегда ли нужно использовать последнюю версию JDK?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Последнюю "не LTS" вообще не понятно зачем использовать. Новые фичи плохо поддерживают и IDE и фреймворки.
    Для новых проектов имеет смысл использовать последнюю LTS (на сегодняшний день это - Java 21).
    Стартовать новый проект на java 8, я лично, не вижу смысла.
    Ответ написан
    1 комментарий
  • Всегда ли нужно использовать последнюю версию JDK?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я бы рекомендовал не использовать последние версии явы, а использовать так называемые LTS (8/11/17/21/25) релизы. 25-го еще нет, но будет.
    И да, я один из тех, кто до сих пор пишет и под JDK8. и не горю желаением переползать на все свеженькое. Ибо есть у меня проекты с JNI, которые не стыкуются с новомодными загрузчиками классов...
    Ответ написан
    Комментировать
  • Нужен ли первичный ключ в таблицах PostgreSQL?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Почему работает в Access - потому что это другая БД. Поведение может различаться.

    Что касается обязательности ключевого поля - странно. Таблицу можно создать и без него.

    Предполагаю, что эта таблица ссылается через references на столбец другой таблицы. В таком случае, на последнее должно стоять ограничение уникальности - иначе как понять на какую строку ссылаться.
    Ответ написан
  • После установки обновления phpstorm перестал запускаться. Как исправить?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Гугл подсказывает, что нужно прописать переменные среды. Вроде прописала, но все равно не запускается.
    Не подскажете, в чем может быть проблема?

    Это неважно, быстрее удалить ide, почистить все директории, где она хранит данные, перезагрузиться и поставить ide обратно.

    Перед удаление, не забудьте экспортировать конфиг со всеми настройками, чтобы потом его импортировать в свежую ide.
    Ответ написан
    7 комментариев
  • На чём писать клиентское приложение с GUI?

    @froggyMan
    Все хаят электрон.
    Но не пишут почему конкретно он плох.
    Тогда я напишу его достоинства на свой личный взгляд:
    1. Ты выучил typescript - и считай (грубо округляя) стал фулл стэк разработчиком: пишешь бэкенд на ноде, клиента на условном реакте, и совмещая все это можешь создавать кроссплатформенные desctop приложения на электроне. И все это используя один язык: современный ООП ориентированный TypeScript

    2. Возможности создания красивого качественного интерфейса с помощью css поистине безграничны.

    3. Огромная бесплатная npm библиотека различных пакетов под любые задачи и требования.

    4. Кроссплатформенность.

    Жрет ресурсы - ну так по факту - одно электрон окно = один хром. У каждого из здесь сидящего прямо сейчас открыто 15 вкладок хрома.

    P.S. хотелось бы услышать аргументы "против" от тех, кто имеет опыт, а не от тех кто что то где то видел и слышал и на основании этого сформировал свое мнение.
    Ответ написан