• Как изменить значения Array?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    array_combine(array_keys($array), range(1, 7));
    Ответ написан
    1 комментарий
  • Почему не перерисовывается компонент?

    @curious-101
    Frontend developer
    Дмитрий всё верно написал. Добавлю лишь, что если по какой-то причине вам нужно держать text в state компонента Message, то для того, что бы он ререндерился после изменения пропсов изменяйте state в componentWillRecieveProps или можете добавить ключ этому компоненту:
    <Message 
    key={text}
    text={ text }
     />
    Ответ написан
    1 комментарий
  • Вернуть клиенту деньги, за проделанную работу?

    lukoie
    @lukoie
    Судя по рассказу, а это очень знакомая ситуация, клиент мельтешит в почте, потому точно так же в почту(не ссылкой на гуглодокс) напишите ему список всей проделанной работы с проставленной суммой напротив каждого пункта, и спросите по какому конкретно пункту у него претензии по качеству и/или срокам. Выразите готовность вернуть сумму за вычетом оплаты за уже проделанную работу. Тем более если не было договоренности по срокам по каждому из пунктов.
    Ответ написан
    Комментировать
  • Правильно ли изучать все и сразу?

    bingo347
    @bingo347
    Crazy on performance...
    учить что-то бесполезно, нужна практика а не зубрежка.
    выкиньте вообще все учебники пылится на полку, они не эффективны, придумайте себе проект и начните его делать, а там где уже попали в ступор - идите в справочники и учебники, так профит будет в разы больше

    ну и насчет распылятся сразу на несколько ЯП, тоже не стоит, в голове каша будет. лучше натренироваться досконально в чем то одном, а остальное уже после смотреть для общего развития
    иначе в голове возникнет каша, Вы ведь не изучаете в раз английский, немецкий и французкий? ну и с языками программирования так же
    Ответ написан
    Комментировать
  • Как найти ссылку содержащую определенный текст в href и кликнуть по ней с помощью JS?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const text = 'определённый текст';
    const link = document.querySelector(`a[href*="${text}"]`);
    if (link) {
      link.click();
    }
    Ответ написан
    1 комментарий
  • К вопросу о навыках веб-дизайна для веб-разработчика?

    @McBernar
    1. Нет, дизайн — это отдельная профессия.
    2. В книгах, статьях, чужих работах.
    3. Этот небольшой этап приносит миллиарды долларов компаниям.
    Ответ написан
    Комментировать
  • ООП в моём тестовом задании, code review?

    rockon404
    @rockon404
    Frontend Developer
    1. Вы инкапсулируете модуль Form, но при этом он зависит от глобальных переменных, а не получает нужные параметры при создании экземпляра.
    2. Сам объект Form это ни что иное, как наглядная демонстрация антипаттерна God Object . Почему, не имеющий никакого отношения к форме, список является ее частью остается загадкой. Как и то почему в модуле инкапсулировано состояние приложения.
    3. Насчет аргумента "e" уже не раз написали. Насколько я понимаю, вы видели на просторах интернета, что так часто называют аргумент функции, но, видимо, не поняли почему. Один аргумент имеет говорящее название user, но и оно вводит в заблуждение, так как на вход ожидается массив пользователей.
    4. Почему не использованы возможности ES6 остается загадкой.
    5. Попробуйте сами догадаться, что не так с этим отрывком кода.
    users.push(this.user);
    
    let lastUser = users[users.length - 1];

    6. У вас почти все переменные в методах объявлены свойствами объекта, при том, что в этом нет никакой необходимости и это может стать причиной ошибок в дальнейшем. Почему не использованы локальные переменные остается загадкой.
    Ответ написан
    Комментировать
  • Что такое {this.props.children} и когда вы должны его использовать?

    kshshe
    @kshshe
    Frontend developer
    В children попадает массив элементов, находящихся "внутри" компонента. Например, в таком случае:
    <SomeComponent>
        <ChildComponent />
        <ChildComponent />
        <ChildComponent />
    </SomeComponent>

    SomeComponent получит props, где в children будут все ChildComponent.
    Ответ написан
    Комментировать
  • Правильно ли использовать готовые библиотеки в проектах?

    Vlatqa
    @Vlatqa Куратор тега CSS
    правильно, но что бы ты понимал:
    1. JQuery это библиотека
    2. slick slider это плагин
    с их помощью ты сделал слайдер слайдер изображений как хотел заказчик за 3мин и доволен
    ...
    шли секунды... минуты... часы
    ...
    заказчик тебя попросил за доп. плату сделать превью изображений к слайдеру

    вот, что бы не сесть в лужу нужно знать как это работает

    и это 1см айсберга, дальше - глубже
    Ответ написан
    Комментировать
  • Как правильно сгененрировать номер фактуры?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Запись не будет завершена — ничего страшного, номера фактур должны быть последовательны и только.
    Уточнение: хронологически последовательны, но это неявно выполняется, если дату документа присваивать вместе с номером.

    оптимистичной блокировкой
    Нет. Нужна пессимистическая.
    Пессимистическая блокировка схожа с принципом Мерфи. Она предполагает, что если что-то плохое может случится, это обязательно случится. В отличии от пессимистической, оптимистическая блокировка предполагает что во время обновления записи в БД мы будем единственными кто ее меняет. В большинстве случаев, так и есть, так что оптимизм оправдан. Тем не менее, во время UPDATE’а мы проверяем наверняка изменилась ли запись с момента ее чтения. И если изменилась, то мы обязаны прочитать последнюю версию записи из БД и повторить нашу операцию с ней.
    Ответ написан
    3 комментария
  • Тестовое задание (Junior Frontend), приемлемое ли?

    @uroot
    Дали 3 дня и после можно скинуть даже не полностью готовое.
    В этом вся соль. Делаете что умеете, а после пытаетесь сделать все остальное. От этого, видимо, будет зависеть ваша ЗП. Вам же не сказали, что нужно заверстать весь макет + анимация + API карты, иначе вы бездарь. Они дали типичный макет для их студии и хотят по максимуму проверить ваши навыки, понять что вы умеете. Но и вправду, не сильно понятно, зачем столько страниц верстать, можно было одну + карта.
    Ответ написан
    Комментировать
  • Как составить SQL запрос с переменной?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Переменные пользователя.
    Примечание: в команде SELECT каждое выражение оценивается только при отправлении клиенту. Это означает, что в условиях HAVING, GROUP BY, or ORDER BY не следует ссылаться на выражение, содержащее переменные, которые введены в части SELECT этой команды.
    Ответ написан
    Комментировать
  • Составной индекс и запрос по одному полю?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Составной индекс можно использовать начиная с первых входящих в него колонок и строго по порядку.
    key(`a`, `b`, `c`) можно использовать при поиске по `a`, по `a` и `b`, по `a`, `b`, и `c`, но нельзя при поиске по `b`, по `c` или по `b` и `c`.
    Ответ написан
    Комментировать
  • Как добавить нули к строке / числу на php?

    SerJook
    @SerJook
    кодер
    str_pad($num, 10, '0');
    Ответ написан
    Комментировать
  • Чем конкретно занимается Frontender сейчас?

    orlov0562
    @orlov0562
    I'm cool!
    Да, фронты занимаются всем тем, что видит пользователь. И если раньше, это была только верстка под 1-2 браузера, то сейчас это верстка под разные разрешения, анимация, попапы, реактивные компоненты и много чего еще. Не думаю, что обычный бэк пишущий парсеры и API, вот так может взять psd-шный макет по слоям и сделать из него за разумное время адаптивное SPA приложение, например на Vue. Вот отсюда и выросла отрасль - фронт усложнился и нужны узкие специалисты. При этом бэк в свою очередь становится все проще и проще, тк в 90% случаев бэк это лишь набор инструкций для вывода данных из базы.
    Ответ написан
  • Какая разница между предком/родителем и потомком/дочерним?

    amorphis
    @amorphis
    Технолог в Студии Артемия Лебедева
    дедушка (ancestor) <-- папа (parent) <-- ты (element) --> твой сын (child) --> сын твоего сына (descendant)
    Ответ написан
    1 комментарий
  • Проверка на корректность и "Как измененить методы на ООП"?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Yusif Zourab, Всё есть здесь php.net/manual/ru/book.mysqli.php

    Вам нужно всё переделывать в ооп стиль mysqli, либо ничего.

    Примерно так (я показал общий принцип, разгребать код не стал, он ужасен, если вообще работает):
    spoiler
    <?php
    
    class Hook
    {
    	private $mysqli;
    	
    	public function MySQLi()
    	{
    		$this->mysqli = new \mysqli('127.0.0.1', 'root', '', 'products'); # Подключение к бд
    
    		if ($this->connect_error) {
    			die('Ошибка подключения ('.$mysqli->connect_errno.') '.$mysqli->connect_error);
    		}
    	}
    
    	public function MySQLiQuery()
    	{
    		$tables = array(
    			'hook_on_the_grid',
    			'hook_perforation',
    			'hook_on_chipboard',
    			'hook_on_the_economy_panel',
    			'hook_systems',
    			'trade accessories'
    		);
    		$count_tables = count($tables); 
    		$queries = [];
    
    		# Перебирает массив $tables и создает новый с готовыми запросами
    		for ($i=0; $i < $count_tables; $i++) {
    			foreach ($tables as $value) {
    				$queries[]  = "SELECT * FROM `$value`";
    			}
    		}
    
    		return $queries;
    	}
    
    	public function MySQLiResult()
    	{
    		# Устанавливает кодировку для выходных данных бд
    		$this->mysqli->query("SET NAMES utf8");
    
    		$query = $this->MySQLiQuery();
    
    		$count_query = count($query);
    
    		foreach ($query as $value) { # Перебор массива и отправка запросов
    			$result[] = $this->mysqli->query($mysqli, $value);
            }
    
    		foreach ($result as $value) { # Перебирает первые элементы из каждой категории
    			$count_nums[] = $value->num_rows($value);
            }
    
    		foreach ($result as $value) {
    			$rows[] = $value->fetch_assoc($value); # ПЕРЕДЕЛАТЬ В ООП
    			for ($i=0; $i < $count_nums[0]; $i++) { 
    				$rows[] = $value->fetch_assoc($value); # Перебирает и сохраняет все данные из бд # ПЕРЕДЕЛАТЬ В ООП
    			}
    			$rows = array_filter($rows, function($element) { #Остортировывает пустые элементы в массиве
    				return !empty($element);
    			});
            }
    
            return $rows;
        }
      }
    
        $hook = new Hook;
    Ответ написан
    1 комментарий
  • Merge двух массивов, как быстрее?

    const object = {};
    const newArray = []
    arr1.forEach(item => object[item.id] = item) // перегоняем первый массив в объект, где ключи объекта id элемента
    
    arr2.forEach(item => {
        const objectItem = object[item.id];
        if (objectItem !== undefined) {
            const mergeItem = Object.assign({}, objectItem, item);
            newArray.push(mergeItem);
            object[item.id] = undefined;
        }
    })
    Это будет быстрее чем вложенный цикл по второму массиву.
    Ответ написан
    9 комментариев
  • Как регулярками выбрать весь текст между двумя датами?

    TommyV888
    @TommyV888
    -
    Замените \s на . и используйте просмотр вперед:
    ((\d{4}\-\d{2}\-\d{2}))(\n|.)*?(?=(\d{4}\-\d{2}\-\d{2}))

    Тут пример
    Ответ написан
    1 комментарий
  • Как мигрировать с самописной конфигурации?

    Jump
    @Jump
    Системный администратор со стажем.
    Интересует сам процесс перехода, чтобы все данные можно было мигрировать в новую 1ску, возможно ли это и какие проблемы могут возникать?
    Ставите УТ, читаете описание - как с ней работать.
    Планируете как вы будете свои бизнес процессы отражать в ней, после чего переносите со старой конфигурации те данные которые вам понадобятся.

    Для торговли ничего сложного.
    Главное тут не пожалеть времени - поставить заранее нужную конфигурацию и отработать на ней все типовые операции и разрулить все проблемы которые вылезут - после чего переносим остатки и работаем на новой.
    Ответ написан
    Комментировать