• Можно ли иметь "лишний" ID в URL REST API?

    @luna3956
    Даже если пользователи привязаны к магазинам, то раз Вы допускаете возможность использования /users/:userId, предполагаю, идентификаторы пользователей уникальны не только в пределах магазина, но и всей системы. В таком случае, уровень /shops/:shopId будет лишним в задаче изменения информации о пользователе, даже если у пользователя есть привязка к магазину в плоскости бизнес-логики. Поэтому, используйте /users/:userId.
    Ответ написан
    Комментировать
  • Можно ли в классе-потомке переопределить метод с новыми параметрами?

    Это противоречит LSP.

    Вот представьте, вам дали такую возможность и вы переопределили метод с новыми параметрами. Теперь у нас есть метод, который принимает Layer или даже ICreatable. Допустим так:

    void DoSomething (ICreatable layer) {
      layer.Create();
    }


    Но мы ведь можем передать потомка в этот метод! Делаем следующее и ломаем наш код:
    DoSomething(new PerlinNoiseLayer())

    Потому именно в таком виде - нет, нельзя.

    Для генерации каждого слоя нужен разный набор параметров и генерируются они, соответственно, по-разному
    Ну вот у вас есть разница - вот и отобразите её в своем коде.

    Это слой? - Да. - Ок, тогда посмотрим его высоты.
    Если есть такая необходимость - почему бы не ввести отдельный интерфейс для высот?

    void DoSomething (IHasHeights layer) {
      layer.Heights; // <== тут есть высоты
    }


    Почему бы не воспользоваться фабрикой или билдером? Или даже заставить передавать все эти параметры в конструктор?

    public abstract class Layer: ICreatable
    {
        float[,] Heights { get; set; }
        public abstract void Create();
    }
    
    public class PerlinNoiseLayer : Layer
    {
        private float[,] _heights;
        readonly int _resolution ;
    
        public PerlinNoiseLayer (int resolution) {
            _resolution = resolution;
        }
    
        public override void Create()
        {
            // тут расширение уже есть
        }
    }
    Ответ написан
    6 комментариев
  • Почему при парсинге сайта, не могу достать некоторые текстовые данные?

    @marxxt
    понравился ответ - поставь ✔
    Интересная задачка

    Смотрите,

    вас интересует блок

    <span data-rim="nI41sNGXnsbfvdqY"></span>

    Информация уже здесь, но сначала закодирована в base64, а потом замаскирована

    Снимаем маскировку:
    nI41sNGXnsbfvdqY -> Ni41SngxNSBFVDQy==

    Декодируем:
    base64_decode("Ni41SngxNSBFVDQy==");

    Получаем:
    6.5Jx15 ET42䀀

    Ну вот и все :)
    Ответ написан
    7 комментариев
  • Можно ли писать код на php и использовать встроенный в него шаблонизатор?

    @dimoff66
    Кратко о себе: Я есть
    Придумайте какой-нибудь проект. Напишите как-нибудь - неважно как - правильно неправильно, лишь бы работало. Сделайте свой шаблонизатор в конце концов. Потом почитайте что говорят одни и другие, примерьте на свой проект и поймете, как легче проще и удобнее. Пока весь ваш текст одна сплошная размытая абстракция.
    Ответ написан
    1 комментарий
  • Как правильно организовать работу склада?

    Jump
    @Jump
    Системный администратор со стажем.
    Хотелось бы автоматизировать весь процесс (допустим как в экзисте/емех)
    Есть очень простой базовый принцип - Если автоматизировать бардак, получиться автоматизированный бардак.

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

    И делать это должно руководство
    В смысле инициатива должна исходить именно от руководства, и под их контролем.
    Если руководству это нужно - оно это сделает.
    Если не нужно - вы ничего не сделаете.
    Просто никто ничего не будет маркировать и будет продавать без всяких штрихкодов, потому что так удобнее.
    Без учета можно без проблем себе на авто запчастями затариваться, а будет учет - уже не прокатит.
    Ответ написан
    3 комментария
  • Chart js кэширует сайт - что делать?

    lamer350
    @lamer350
    กำลังสูงสุด
    Проблема у явно в чем то другом, Chart JS тут точно ни при чем. Ищите проблему на сервере.
    Ответ написан
    Комментировать
  • Nginx+PHP: сколько одновременных запросов?

    vman
    @vman
    Уверен, что это по большей части зависит от настроек php-fpm (php.net/manual/ru/install.fpm.configuration.php) чем от nginx

    основное на что стоит обратить вниманием

    pm                              = dynamic
    pm.max_children                 = 100
    pm.start_servers                = 3
    pm.min_spare_servers            = 3
    pm.max_spare_servers            = 15
    pm.max_requests                 = 100


    max_children:
    Этот параметр устанавливает ограничение на число одновременных запросов, которые будут обслуживаться
    Ответ написан
    Комментировать
  • Выгода по времени и по памяти в реальной работе?

    Max-GopheR
    @Max-GopheR
    Web разработчик
    В реальности всегда приходится совмещать красоту и плотность кода и потребляемый ресурсы. Иначе оно работает но не поддерживается или оно поддерживается но не всегда работает))) а для совмещения нужно хорошо понимать обе стороны!) На основании этого можно сказать что вам дают полезные навыки.
    Ответ написан
    Комментировать
  • Как на стороне клиента принять данные по частям при GET запросе?

    Lumore
    @Lumore
    Front-end developer
    Делали примерно такое же, но кол-во объектов было немного меньше.
    1) Кэшируйте данные на стороне backend
    2) Используйте кластеры
    3) Грузите и рендерите метки в зависимости от зума и перемещений на карте
    Ответ написан
    1 комментарий
  • Как оптимизировать массив и вывод данных?

    @dimoff66
    Кратко о себе: Я есть
    Без разницы абсолютно.

    По настоящему правильно было бы сделать кэш для страницы, если много много раз там выводятся одни и те же данные.
    Ответ написан
    4 комментария
  • Оцените сборку ПК?

    fdroid
    @fdroid
    press any key
    Palit GeForce RTX 2080

    я правильно понимаю, что очень хочется именно 2080, но денег на нормальную не хватает?
    CPU Intel Core i7-8700 (4.6Ghz, Socket 1151v2)

    ок, но...
    MSI MAG Z390 TOMAHAWK

    нафига для процессора без индекса К покупать материнку на на Z-чипсете?!
    PCI-E Creative SB Z (SB1500)

    не в теме звуковых, без комментариев.
    Corsair CMK16GX4M2B3000C15

    надеюсь, память была выбрана исходя из списка совместимости (QVL) на сайте производителя материнской платы, а не по "игровому дерзкому" дизайну?
    Thermalright Macho 120 SBM

    дорохо-бохато, ну ладно, ок.
    M.2 Samsung 970 evo 500Gb

    Seagate ST2000DM006

    лучше более ёмкий SSD взять вместо этой парочки. Зачем в современном системном блоке гудящие, шумные, тормозные HDD?
    AeroCool Aero-500

    и тут деньги на фантазии кончились, потому что вместо нормального корпуса выбрана жестянка. Наверное, дизайн понравился.
    AOC G2460PF

    монитор с TN-матрицей для фотошопа? о_О
    Deepcool DA700 700W

    вы готовы вбухать кучу денег в железо и готовы всем этим рискнуть запитав от стрёмного блока питания? Ах да, 700W же.

    Итого - сборка "на все деньги беру", но бестолковая и несбалансированная.
    Ответ написан
    5 комментариев
  • Как вернуть HTML в ReactJS?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Вам следует понять три вещи:
    1. Как работает асинхронный код.
    2. Почему нельзя делать асинхронные вызовы в методе render.
    3. Что JSX(React.createElement) не возвращает html.

    В вашем случае загрузка данных должна происходить за пределами кода компонента и инициироваться например в componentDidMount или по клику. А компонент должен получать данные из state.
    Ответ написан
    1 комментарий
  • Почему Mail в Laravel отправляет почту всегда на один и тот же адрес?

    @vism
    Очень глубоко хитрец закэшировался, в самые самые недра документации.
    https://laravel.com/docs/5.6/mail#mail-and-local-d...

    Там к слову еще много чего закэшированно, кэш обновляется посредством чтения документации :)
    Ответ написан
    2 комментария
  • Как достать PromiseStatus из fetch?

    lavezzi1
    @lavezzi1
    Вам не нужны статусы. Единственное что вам нужно, это узнать что промис разрезолвился. Просто дождитесь этого через await.

    Вариант с async/await.
    export default {
        data(){
            return {
                blockBtn: false
            }
        },
        methods: {
            async isWait(url) {
                this.blockBtn = true;
                let dosomething = await fetch(url)
                
                this.blockBtn = false;
            }
        }
    }


    Вариант с then
    export default {
        data(){
            return {
                blockBtn: false
            }
        },
        methods: {
            isWait(url) {
                this.blockBtn = true;
                let dosomething = fetch(url).then(() => {
                     this.blockBtn = false;
                });
            }
        }
    }


    Живой пример: https://jsfiddle.net/ujnpzqgf/

    Ответ написан
    1 комментарий
  • Как правильно делать fetch в react?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. data.goals[0].gs_id
    Использование подобных, небезопасных конструкций считается плохим тоном.
    2. Используйте в state ключ состояния загрузки.
    export default class Forma extends React.Component {
        constructor(props) {
            super(props);
    
            this.state ={ data: {}, isFetching: true, error: null };
        }
    
        componentDidMount() {
            fetch('http://localhost:3001')
                .then(response => response.json())
                .then(result => this.setState({data: result, isFetching: false }));
                .catch(e => {
                  console.log(e);
                  this.setState({data: result, isFetching: false, error: e }));
                });
        }
    
        render() {
            const { data, isFetching, error } = this.state;
            
            if (isFetching) return <div>...Loading</div>;
    
            if (error) return <div>{`Error: ${e.message}`}</div>;
    
            return <h1>{data.goals[0].gs_id}</h1>;
        }
    
    
    }
    Ответ написан
    9 комментариев
  • Big прайсы, обновлять или удалять и заново записывать?

    Melkij
    @Melkij
    PostgreSQL DBA
    Суть такова, что есть прайс(ы) ~5млн и его нужно быстро обновлять (раз в 2 часа).

    Это НЕ много и совсем НЕ часто.

    обновлять или удалять и заново записывать

    Ложный выбор, это одна и та же операция. MVCC update = delete + insert
    Но что важно - не делать update который вам действительно не нужен. Postgresql не анализирует данные в поиске пустых обновлений, update table set id = id; вам честно удвоит таблицу, хотя ничего на логическом уровне не изменится.

    Профилируйте, на что реально тратите время - pg_stat_statements ответит хорошо на этот вопрос со стороны базы. Пальцем в небо - вы работаете в автокоммите и естественно 5млн пишущих операций для любой честной ACID базы - это порядком медленного IO (даже для SSD)
    Ответ написан
    4 комментария
  • Как заставить iframe повторять mp3 внутри себя?

    NeiroNx
    @NeiroNx
    Программист
    зачем iframe если сейчас везде поддерживается audio
    Ответ написан
    Комментировать
  • Доступны ли на текущий момент платные "спонсорские" подписки на youtube?

    TataI0804
    @TataI0804
    Интернет - фриланс, IT консультации
    Все ответы - в Справке Ютуба : эта опция доступна только по приглашению команды Ютуба, при монетном канале, хорошей активной аудитории, регулярном постинге, может быть грамотном посеве, и так далее — главное, это выполнение правил Партнерской программы.
    Страна как таковая - значения не имеет, главное - соблюдение условий.

    Саппорт Ют
    https://support.google.com/youtube/answer/6304294?...

    https://support.google.com/youtube/answer/9050176

    Академия для авторов
    https://creatoracademy.youtube.com/page/lesson/mem...

    Форум Ют
    https://productforums.google.com/forum/#!forum/you...
    Ответ написан
    Комментировать
  • How to marge after join?

    @TelepnevDmitriy
    Senior Web Developer
    Select coalesce(o.Email, u.email)...
    Ответ написан
    Комментировать