Задать вопрос
  • Как сделать вот такой slider?

    delphinpro
    @delphinpro
    frontend developer
    Пишем кастомный слайдер. Нафиг не нужен здесь готовый.

    Все слайды размещаем "стопкой" с помощью грид-раскладки (можно абсолютом, но это хуже)
    Внутри слайда располагаемдва блока - текст и картинка. Текст невидимый, картинка за пределами слайда, в том сотоянии, из которого она будет выходит в состояние маленького размера справа. Блокам с текстом и картинкой задаем свойства плавного перехода (transition).
    Наверху "бутерброда" слой с кнопками управления.

    Дальше определяем три состояния картинки.

    Первое уже определено - это невидимый слайд, текст скрыт (opacity:0), картинка за пределами не видна.

    Второе состояние - "следующий слайд". Здесь текст все еще не виден, а картинка маленькая.

    Третье состояние - "активный слайд". Здесь текст виден и и картинка большая в центре.

    А дальше самое простое – по кликам на кнопки управления нужно просто менять состояния слайдов с помощью навешивания и убирания у них css классов.
    Ответ написан
    Комментировать
  • Как попасть в IT школьнику?

    @res2001
    Developer, ex-admin
    Если в твоем городе есть нормальный ВУЗ, то иди учись. Если нет, то стоит поискать куда ты можешь поехать учиться. У тебя сейчас единственная возможность в жизни получить бесплатное образование. Скорее всего такого подарка судьбы больше не будет никогда. Бывают, конечно, исключения.
    Обучение это не столько "новые технологии" программирования. Это еще и математика и прочие предметы, которые хорошо ставят мозги на место. Это то же нужно, если и не для программирования, то для собственного развития.
    Но самое главное, чему ты должен научиться в ВУЗе - учиться самостоятельно. Впрочем, похоже, это у тебя не плохо получается. Значит будешь оттачивать навык :-)
    Желаю удачи!
    Ответ написан
    5 комментариев
  • Как попасть в IT школьнику?

    xez
    @xez
    TL Junior Roo
    1. До 18ти лет, скорее всего, никуда не возьмут.
    2. В вашем возрасте обучение максимально быстрое и эффективное.

    Отсюда план:
    1. Учитесь, читайте книги, набивайте руку на пет-проектах. Читать и учиться придется на протяжении всей карьеры (спойлер, т.к. пенсии у вас не будет - всей жизни).
    2. Заканчивайте 11й класс.
    3. Постарайтесь поступить в ВУЗ (опционально).
    4. После первой сессии начинайте искать работу. К этому времени у вас должно скопиться небольшое портфолио проектов и опыт достаточный для трудоустройства на младшие позиции.
    5. Спокойно доучивайтесь в ВУЗ-е (опционально), паралельно работая.
    Ответ написан
    7 комментариев
  • Переходы на многостраничном сайте?

    Fragster
    @Fragster
    помогло? отметь решением!
    помимо варианта с бэкэндом есть еще генераторы статических сайтов, которые на основе шаблонов сгенерят папку для размещения на хостинге, и там можно в виде json положить "товары" и сгенерируется необходимое количество страниц. Например https://nuxtjs.org/docs/concepts/static-site-generation или https://vuepress.vuejs.org/
    Ответ написан
    Комментировать
  • Переходы на многостраничном сайте?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    Ох, я постараюсь тезисно

    Вам нужен чуть более умный бэкенд (можно на любом языке, включая Node.js)
    Вместо html-файлов вы пишите шаблоны. Если у вас нода+Express.js, у него вроде был встроенный шаблонизатор ejs, есть ещё pug и много других (гуглить по Node шаблонизаторы). Если у вас на фронте React/Angular/View - лучше погуглить "название-библиотеки server side rendering", шаблонизация в них встроена

    Абстрактно, ваш бэкенд получает запрос, идёт в базу данных или какой-нибудь JSON-файл за данными, а потом передаёт эти данные в шаблонизатор

    В шаблонах можно использовать циклы, условия и разные другие плюшки из программирования. Вам не нужно писать 10 тэгов "a" для вывода списка, ваш список - стандартный массив, вы проходитесь по нему циклом и выводите данные в тэг "a". Условно:

    myItems.map(item => (
    <a href={item.link}>{item.text}</a>
    ))


    Нужно поменять что-то в ссылках - меняете в одном месте
    Нужно добавить товар или другие сущности - добавляете их данные в базу или JSON
    Ответ написан
    Комментировать
  • Генерация имени переменной из строки в пропсах?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    const images = {
      red: smoke1Red,
      blue: smoke1Blue,
      brown: smoke1Brown,
    }
    
    ...
    
    <img src={images[color] || smoke1Gray} />
    Ответ написан
    1 комментарий
  • Как правильно структурировать проект в Go?

    yellow79
    @yellow79
    Senior Software Engineer
    вызов "лишних" функций и странный уровень абстракции - service

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

    Как бы сделал я, если бы мне нужно было реализовать пример с уроками и студентами. 3 основных пакета, main, student, lesson. Так же, наверняка появился бы какой-нибудь пакет specs, в котором бы лежали структуры данных, которые API-шка принимает на вход и возвращает на выходе, у принимаемых структур так же были описаны методы для валидации.

    Пакеты student и lesson это скорее всего были приватные пакеты для данного проекта, то есть они бы лежали в internal. Суть каждого пакета сводится к тому, что в нём описаны публичные функции для получения/создания данных в/из базы. Каждая функция принимает на вход указатель на коннект к базе. В эти же пакеты можно положить структуры, которые будут приниматься/возвращаться функциями пакета, так называемые DTO. Функции пакетов удобно тестировать, просто передав на вход замоканую базу.

    В пакете main 2 структуры studentGroup и lessonGroup в которых был бы указатель на коннект к базе, а так же все http методы для работы с данной сущностью. Каждый метод вычитывает данные из запроса, валидирует их, вызывает нужные функции из пакетов, описанных выше и после пишет результат. Причём никто не мешает использовать функции обоих пакетов при необходимости. Так же в пакете main идёт создание подключения к базе, создание http.Handler, в котором идёт создание studentGroup, lessonGroup а так же привязка их методов к нужным http методам и url-ам. Функции структур удобно тестировать, просто передав при создании замоканую базу, или, если угодно, то можно передать настоящую базу в рамках более серьёзного тестирования.

    Всё банально просто и прямолинейно, без лишних абстракций и интерфейсов, как завещал дядюшка Дэйв =)
    Ответ написан
    5 комментариев
  • Как тестировать сетевые запросы в Go?

    @falconandy
    Я исользую Docker для запуска сервера. Я запускаю сервер на порте 8081, но Docker перенаправляет запросы на 8081 с порта 8000, куда я могу "дотянуться" из браузера или Postman. Тесты я тоже запускаю в Docker. И сервер и тесты запущены в едином Docker-compose.


    Из контейнера тестов вы должны обращаться к контейнеру сервера не по localhost, а по имени контейнера сервера и по оригинальному порту, на котором висит сервер. Т.е. что-то типа http://server:8081
    Ответ написан
    Комментировать
  • Как правильно настроить pgbouncer и postregsql?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    max_client_conn в конфиге баунсера - это максимальное число возможных подключений от клиентов к самому баунсеру.
    Если у вас max_client_conn стоит, например, 100, а каждый из 20 бекендов попробует открыть по 10 соединений с баунсером - то первая сотня подключений будет успешна, остальные получат ошибку "no more connections allowed (max_client_conn)"
    max_client_conn ставится в 10000 и про него надолго забываем. Штука фактически бесплатная, libevent хорошо умеет с таким работать. Но требуется выставить корректный open file limit. Каждый коннект - это файловый дескриптор, если не скорректировать настройки ОС - то будет неприятный сюрприз.

    Далее, max_connections базы оставить как есть. Максимум в 100 процессов базы на всего 8 ядер - это и так довольно-таки много, но и урезать смысла нет.
    max_user_connections не трогать если нет причин для этого.

    pool size 20 на всего лишь 8 ядер CPU может быть чрезмерно. Но далее нужно смотреть уже мониторинг. Сколько реальных процессов базы в работе, очередь ожиданий на баунсере, хватает ли баунсеру процессорного времени (тут скользкий момент, баунсер строго однопоточный и может упираться в производительность одного ядра CPU)
    Ответ написан
    2 комментария
  • Есть ли смысл учить Golang если уже хорошо знаешь .NET?

    1. Из коробки компилируется в единственный, сравнительно компактный, бинарь без зависимостей от рантайма и окружения.
    (и без подводных, в отличие от full aot и assembly trimming)

    2. Сможешь рассматривать вакансии, где требуется Golang, если собираешься искать работу.
    3. Сможешь нанимать go-шников со всеми вытекающими, если будешь искать разрабов в свой проект.
    4. Если твой проект должен будет активно взаимодействовать, например, с kubernetes и прочими devops-штуками, то Go может быть чуть удобнее, тк практически все эти инструменты написаны на Go и для работы с ними имеются готовые библиотеки, которые, вероятно, будут лучше, чем их альтернативы для .NET.
    Ответ написан
    3 комментария