• Какие отличия между dto, entity, interface?

    notiv-nt
    @notiv-nt
    Как ваше ничего? Да, моё тоже
    ну DTO это формат данных которые передаются по сети
    https://docs.nestjs.com/controllers#request-payloads

    class UserDto {
      name: string;
      password: string;
    }
    
    @Post()
    createUser(user: UserDto) {}


    entity это typeorm'ная схема для бд
    https://typeorm.io/#/entities

    interface это схема объекта для typescript
    Ответ написан
    6 комментариев
  • Как научиться объяснять?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    надежнее всего, конечно, как Барри Креститель,
    но можно и полуакадемически подойти

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

    и всегда, если хочешь чтобы дело было сделано, подчиненного нужно переспрашивать, как он понял,
    а еще лучше - мнение по сказанному/описанному, тогда точно будет ясно понял ли и слушал ли вообще
    терминологию желательно использовать употребимую собеседником ("таски" а не "задачи" и т.п.)
    Ответ написан
    4 комментария
  • Как научиться объяснять?

    @dmshar
    Есть волшебный метод, который называется "декомпозиция". Мои наблюдения говорят, что 80% людей им просто не владеют. От слова - вообще. Ни в профессиональной, ни в обыдиной жизни. Но вот те, кто объясняют доходчиво - владеют им виртуозно.
    Заключается он в следующем. Если надо что-то объяснить, и это что-то чуть сложнее таблицы умножения (но и ее кстати тоже), задачу можно всегда разбить на части, из которых компонуется готовое решение. Вы должны на первой "итерации" объяснить ответ "с птичьего полета", как последовательностей этих самых подзадач, без углубления в детали, без подробных выкладок, что называется - "на пальцах". Причем, конечно, на языке понятном и воспринимаемом партнером. Когда (и если) он поймет вашу идею, поймет шаги - начинаете углубляться в объяснение конкретных подзадач. Вот тут уже начинаете использовать меньше "его" терминов, больше "своих". В какой-то момент он начинает сам понимать и самостоятельно додумывать решения. Тогда переходите к следующей подзадаче. Конечно, каждую подзадачу часто можно (а иногда - для очень сложных задач - и нужно) декомпозировать дальше. И так до того момента, когда вы можете объяснить полностью.
    Тогда вы и сами понимаете "roadmap" вашего объяснения, не теряете нить рассуждений и не сбиваетесь, и партнеру легче выстраивать "цепочку понимания", следя за ходом объяснения и сразу понимая, где именно он перестал улавливать мысль. Разумеется, при этом очень важно, что-бы собеседник был заинтересован в том, что-бы получить от вас объяснение, а не просто спросил чтобы "а поговорить".
    Ответ написан
    3 комментария
  • Как приукрасить правду так, чтобы твоё резюме заметили и предложили собеседование?

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нужно понимать принципиальную разницу подхода:

    apt - установка из маленьких пакетов, вместе образующих большую и сложную систему, при этом софт может массово совместно использовать одни и те же файлы и библиотеки, благодаря чему экономится место на диске, оперативная память итд итп. Надо понимать, что apt - это пакетный менеджер для определённого вида пакетов (deb), хотя в своё время существовал вариант для rpm (может и сейчас существует, просто смысла в нём мало после появления yum).

    snap - установка большого приложения со всеми зависимостями, которые никак не использует остальной софт на этом же компьютере. Отсюда тратится лишнее место на диске и в оперативной памяти. Зато никаких проблем с зависимостями, плюс snap работает в любых системах и не завязан на конкретный менеджер пакетов и собственно пакетный формат.

    snap по большому счёту часто используют для установки тяжёлых приложений, которые может бысть сложно опакетить, особенно учитывая разнообразие присутствующих в мире дистрибутивов (debian/ubuntu и их клоны) разных версий. В то время как большинство штатного общеиспользуемого софта чаще распространяют в виде пакетов, идущих в составе дистрибутива или отдельно (в том числе в виде разных собранных под разные варианты систем пакетов).
    Ответ написан
    7 комментариев
  • Чтение электрических схем?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Уровень физики - Заняться физикой - основы школьной хватит для начала. Закон Ома, основные формулы параллельного/последовательного соединений, правила Кирхгофа, полупроводники, p-n переход
    2) Уровень детальки - Понять как работают отдельные компоненты, зачем нужны, типовые и нетипичные варианты использования
    3) Уровень куска схемы - Читать и попытаться вникнуть в описание схем - зачем в ней тот или иной элемент, понимать как действуют несколько элементов сообща, понимать типичные узлы.
    4) Уровень практики и синтеза - Пытаться проектировать/собирать свои схемы на основе опыта. Собирать или моделировать, проверять варианты.
    Читать статьи/Смотреть видео для начинающих, в .т.ч. из категории "для чайников" - это для быстрого старта, там часто объясняется "на пальцах"
    Ответ написан
    Комментировать
  • Куда движется индустрия?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    1) Индустрия электроники огромна. Сказать, что вот прямо сразу весь мир прыгнул на 32 битные армы - это солгать. Более правильно сказать, что популярные блоггеры с производительностью пулемета штампуют статьи об stm32, при этом уровня "мигаем ледом".

    2) С точки зрения разработчика, микроконтроллер - это инструмент. Каждый инструмент должен соответствовать задаче и быть до конца понятен тому, кто его использует. Я никому не пожелаю начинать обучения с STM32 - путанная документация и библиотека, которая состоит из макросов, вызывающих макросы, кроме укачивания при многочасовом скроллинге в попытках докопаться до истины, никаких эмоций не вызывает.

    2.a) 32битный монстр с линуксом в стиралке - (и управление стиралкой, написанное на питоне, в тренде времени) - это сумасшествие. Потому что вместе с линуксом и питоном он притащит за собой кучу багов на всех уровнях, необходимость обновлений и прочее админство. Если на телефоне это еще покатит (семь бед - один резет, а через пару лет аппарат в помойку), то в стиралке, один неверно записанный бит может устроить потоп или даже легкий дестрой. Следовательно, когда речь идет об управлении какими-то технологическими процессорами (и о материальной ответственности), индустрия будет консервативна.

    Основные принципы электроники сейчас - максимально запихивание перифирии в один чип. Этот тренд можно проследить с 1970х - начинали с огромных плат, где процессор - отдельно, память - отдельно, АЦП - снова отдельно, куча корпусов для развязки устройств на шине и так далее. Постепенно все эти запчасти стали помещаться в один корпус. Например - ESP8266 - это процессор, память, wi-fi и куча другой периферии, засунутые в один корпус.

    Это дает снижение энергопотребления, повышение производительности, удешевляет платы.
    Ответ написан
    8 комментариев
  • Название алгоритма для генерации не похожих смиволов?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    При генерации кодов используют алфавит, лишённый похожих символов.
    Исключены и буквы, похожие на цифры, и цифры, похожие на буквы.

    Например: 3479BDFGHJKLMNPRSTWXZ

    См. также: Homoglyph
    Ответ написан
    Комментировать
  • Насколько Golang подходит для больших проектов?

    Насколько Golang подходит для больших проектов?
    У него это на генетическом уровне. Один из его создателей уже имел опыт создания крайне успешного языка программирования, который пошёл довольно хорошо в крупные проекты. И ещё в создании операционной системы поучаствовал. Как раз на это языке. Очень успешная ОСь получилась.

    насколько уместно использовать Go в большом кровавом энтерпрайзе-монолите на миллион строк кода со всякими REST, кэшами, работой с базой и так далее?
    У него изначально архитектурно заложено быть в лютом кровавом энтерпрайзе и даже в монолите на туеву гору строк кода. Любая СУБД по сути монолит. И на Go наверное с десяток наберётся довольно успешных баз, которые применяются в энтерпрайзе.

    Понятное дело, что для микросервисов язык подходит как нельзя кстати
    Микросервисы это методология разработки для больших, часто разрозненных проектов. И по большому счёту индиффирентно на каком ЯП будет сверстан микросервис. Хоть на ассемблере, если это оправдано. Обычно микросервисы это про несколько ЯП на проект.

    однако интересен практический опыт стартапного плана, возможные подводные камни и недостатки.
    Как бы для стартапа не рекомендуется микросервисы прям сразу. Его бы хотя бы оживить и заставить как задумывалось работать. А потом уже переходить к микросервисам. Но это отступление. Беда может выползти из прошлых навыком и знаний. Golang реализует свою модель ООП, которая не совсем понятная для тех кто писал на ООП ориентированных языках (Java, Python. PHP). Очень туго приходится после языков с динамической типизацией. Модель параллельного программирования тоже многим не сразу даётся.
    Ответ написан
    4 комментария
  • Насколько Golang подходит для больших проектов?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    У go одно применение - highly network intensive applications. GRPC, protobuf, триллионы rpc вызовов в секнду. Применяется он когда есть или сразу подобные требования или бизнес вырос до этого уровня.

    Для стартапов чаще всего требуются Rapid Applcation Development фреймворки. Язык при этом скорее вторичен. Можешь быстро слепить - молодец. Но чаще выбирать приходится из того что знаешь.

    В кровавом Энтерпрайзе в основном правит старичок Java (за редким исключением) по тому что есть требования к заменяемости сотрудников и большой легаси ландшафт проектов, которые переписывать никто не будет
    Ответ написан
    1 комментарий
  • Можно ли как то получить текущий seed в random?

    ScriptKiddo
    @ScriptKiddo
    Сид получить навряд-ли можно. Зато можно сохранить текущее состояние генератора и восстанавливать его когда потребуется

    import random
    
    old_state = random.getstate()
    print(random.random())
    
    random.setstate(old_state)
    print(random.random())
    
    # You can also restore the state into your own instance of the PRNG, to avoid
    # thread-safety issues from using the default, global instance.
    prng = random.Random()
    prng.setstate(old_state)
    print(prng.random())

    OUT

    0.845561713648235
    0.845561713648235
    0.845561713648235


    Source: https://stackoverflow.com/a/5012724
    Ответ написан
    Комментировать
  • Есть какая-нибудь книга как продвигать it project или статья?

    @Lobanov
    Самая первая книга, которую просто для ознакомления стоит прочитать - Lean StartUp, там конечно воды дохрена, но ключевая мысль - надо все тестить.

    По факту, перед написанием кода надо было задаться вопросом - для кого этот продукт? Кто целевая аудитория?

    Если вы не знаете и не понимаете целевую аудиторию - у вас большие проблемы. Вы пишите код, фишки, прибаутки - которые по итогу могут быть никому не нужны, т.к. в голове у вас одна картина мира, а в реальности совсем другая.

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

    Все.

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

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

    Кстати, вот недавно курс попадался https://simulator.gopractice.ru/ хз конечно норм он или нет, но просто для информации, может что-то вам зайдет с этого сайта.
    Ответ написан
    1 комментарий
  • Как решить данную задачу на SQL: найти максимальное окно между событиями?

    @Fallenyasha
    Посмотрите в сторону оконных функций LEAD и LAG

    SELECT max(datediff(date_value, (lead(date_value) over (order by date_value))))
    Ответ написан
    Комментировать
  • Я новичок в Python. Как можно заполнить матрицу по определенному общему условию,когда заполняется только 1 и 3 строка нулями. Размер 5*5?

    Wispik
    @Wispik
    В цикле проверку сделай
    if i in (0, 2):
    # заполняешь нулями
    else:
    #заполняешь как обычно
    Ответ написан
    Комментировать
  • Как достать комментарии из под поста Instagram?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Комментарии лежат в скрипте в коде страницы

    import requests
    import json
    import re
    
    
    headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'}
    
    r = requests.get('https://www.instagram.com/p/CKJ4986gdbW/', headers=headers)
    
    script = re.search(r'window._sharedData = (.+?);</script>', r.text).group(1)
    data = json.loads(script)
    
    edges = data['entry_data']['PostPage'][0]['graphql']['shortcode_media']['edge_media_to_parent_comment']['edges']
    for edge in edges:
    
        text = edge['node']['text']
        author = edge['node']['owner']['username']
    
        print(author, text)
    Ответ написан
    1 комментарий
  • Какими способами можно удалить значения из словаря до определенного?

    adugin
    @adugin Куратор тега Python
    Универсальный подход, который годится для любых типов ключей:
    from itertools import dropwhile
    
    key = '5'
    state = {1: 'a', 'abc': 'b', 3.14:'c', None: 'v', '5': 'b', '6': 'n', '7': 'm'}
    
    new_state = dict(dropwhile(lambda item: item[0] != key, state.items()))

    Или так:
    for k in state.copy():
        if k != key:
            del state[k]
        else:
            break
    Ответ написан
    Комментировать
  • Как исправить ошибку при открытие txt с помощью json?

    @dmshar
    1. Внимательно прочитать документацию. Обратить внимание на две ключевые фразы:
    - json.load - ....Deserialize fp (a .read()-supporting text file or binary file containing a JSON document) to a Python object
    - json.loads- ... Deserialize s (a str, bytes or bytearray instance containing a JSON document) to a Python object
    2. Соответственно, для чтения из файлов надо использовать первую из приведенных функций, примерно в таком виде:
    with open("data_file.json", "r") as read_file:
        data = json.load(read_file)


    И конечно, данные записаные в файл должны туда ранее быть сериализованы и записаны корректно.
    Если же - например - при выводе файла что-бы было сделано не так, то и прочитать вы ничего не сможете. Поэтому - внимательно проверяйте всю цепочку.
    Ответ написан
    1 комментарий
  • Почему не могу встроить изображение в base64?

    @o5a
    Не надо туда вставлять служебную информацию типа "data:image/jpeg;base64", только сам код base64
    Ответ написан
    5 комментариев
  • У Rusakova нормальные курсы?

    Adamos
    @Adamos
    По javascript есть прекрасный сайт javascript.ru и прекрасный учебник от Флэнагана.
    Никакие курсы не заменят чтения учебника.
    Никакие курсы не требуются после правильного прочтения учебника.
    Ответ написан
  • Postgresql не работает с Django? Нельзя установить psycopg2?

    alternativshik
    @alternativshik
    pip install psycopg2-binary и все работает из коробки. То, что не найдено изменений при миграции - это к делу не относится. Ты либо свое приложение не добавил в settings, либо надо было прямо указать, в каком приложении искать изменения.
    Ответ написан
    Комментировать