Хіба обов'язково через апворк? Я через нього ще не працював. Якщо обов'язково, то я - пасую. Якщо ні, то API легко можна імітувати за допомогою тестів, в Angular 4.3 якраз нещодавно оновився клієнт, тепер він таке вміє. Достатньо лише документації по API.

Я давним-давно вже не встановлював собі Apache, composer і т.д. для PHP. Простіше буде написати тести, що імітують бекенд, ніж піднімати у себе усе це, згадувати як там воно робиться... До речі, в проекті лише два тести, і ті згенеровані angula-cli при створенні проекта...

Не збирається Angular-проект, кидає таку помилку:

Cannot read property 'config' of null
TypeError: Cannot read property 'config' of null
    at Class.run (/var/www/work-vovik-gizmo/ci/node_modules/@angular/cli/tasks/build.js:15:56)
    at Class.run (/var/www/work-vovik-gizmo/ci/node_modules/@angular/cli/commands/build.js:204:26)
    at resolve (/var/www/work-vovik-gizmo/ci/node_modules/@angular/cli/ember-cli/lib/models/command.js:273:20)
    at new Promise (<anonymous>)
    at Class.validateAndRun (/var/www/work-vovik-gizmo/ci/node_modules/@angular/cli/ember-cli/lib/models/command.js:251:12)
    at Promise.resolve.then.then (/var/www/work-vovik-gizmo/ci/node_modules/@angular/cli/ember-cli/lib/cli/cli.js:154:24)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

P.S. Ось оце робив "Copy ci/src/app/globals.ts.distr to ci/src/app/globals.ts and set you variables there"

А, прочитав README, бачу що проект для ангулар таки тут. Ну нічого, зараз глянемо на якість коду.

Vo_Vik написав:

4) Вилка заробітної плати:
Кожен таск десь ціною в 100 доларів. Тобто якщо ви досить досвідчений, то це виходить до 50 доларів в годину. Якщо не дуже, то можете працювати 10 годин по 10 доларів в годину.
По Angular умови ті самі, тільки завдання будуть такого типу:
https://github.com/mathgizmo/gizmo/issues/34

Кхм. Якщо такі коротенькі таски, як показано в лінку, то готовий взятись. Сподіваюсь для Angular не треба буде тулити проект у цей самий репозиторій?

karmeljuk, ви не новачок на цьому форумі, а задаєте питання як новачок. - Де ви показали, що якось намагались вирішити самостійно це, прямо скажемо, елементарне завдання?

А взагалі, можна використовувати https://regex101.com/, там ліворуч необхідно вказати, що ви хочете використовувати регулярні вирази саме для JavaScript.

У вашому випадку - у верхній інпут вставляєте, наприклад

/_plan_id=(.*)\'\)/

у нижній

gateway/?redirect=[URLENCODE('https://site.co/?payment_plan_id=PAYMENT_PLAN')]

Праворуч є пояснення.

86

(22 відповідей, залишених у Робота)

Не знаю як у кого, але я сам розсилав резюме по вакансіям лише коли в мене не було досвіду роботи. Коли досвід з'явився, то я виставляю резюме, вказую бажану ставку, і якщо мені телефонують, то зрозуміло, що роботодавець згоден платити мені вказану суму. Усе чітко й зрозуміло.

Звичайно ж не після першого інтерв'ю усіх все влаштовує, але це нормальна практика...

До речі, тут згадувалось про "не знаю як платити за роботу". Сьогодні ось таке побачив в Приват Банку: Українським фрилансерам додали можливостей

87

(46 відповідей, залишених у Бази даних)

Але ж вибірка все-одно була, так? Якщо - так, це не страшно. Просто вам будуть не доступні перераховані дії.

Оскільки у запиті використовуються не однозначні джоїни, то редактор не розуміє над якою сутністю робити певні дії.
Якщо вам потрібен id, то останній мій запит треба написати так:

select
    if(d.first_user = 1, u2.id, u1.id) as id,
    if(d.first_user = 1, u2.name, u1.name) as second_user_name
from dialogs as d
    join user as u1
        on d.first_user = u1.id
    join user as u2
        on d.secound_user = u2.id
where 1 in(d.first_user, d.second_user)

88

(46 відповідей, залишених у Бази даних)

Як я і казав, на щойно створених таблицях без реальних даних - взагалі ні про що не говорить.

89

(46 відповідей, залишених у Бази даних)

Так все-таки, ви тестуєте на чому? На таблицях з індексами й реальними даними, чи на щойно створених таблицях, без індексів й без реальних даних?

Якщо перше, то цікаво глянути explain з вашого і мого останнього запиту.

90

(46 відповідей, залишених у Бази даних)

ваш 0.0015 - 0.0017 с.

Мій з union all чи самий останній?

91

(46 відповідей, залишених у Бази даних)

Коли вам лінь, то мені ще більше лінь. Не бачу проблем щоб відновити дамп через ваш той PHPMySQLAdmin, після чого глянути плани виконання.

92

(46 відповідей, залишених у Бази даних)

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

93

(46 відповідей, залишених у Бази даних)

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

94

(46 відповідей, залишених у Бази даних)

Та ну, перестаньте, на двох рядках не протестуєте.

95

(46 відповідей, залишених у Бази даних)

VTrim написав:

ktretyak, поки не перевіряв.
Два джоіна однієї таблиці для цього? Х.з-х.з..

Ото ж бо й воно. Ви гляньте спочатку на плани виконання, а потім буде рахувати кількість джоїнів. У вашому запиті, наведеному на початку теми, оптимізатор взагалі може не користується індексами, навіть при їх наявності, через оту вашу умову з if при джоїнах.

96

(46 відповідей, залишених у Бази даних)

Тобто ви створили тему, яка для вас не дуже то й актуальна? Чи ви іншим шляхом пішли? Все одно цікаво - яким.

97

(46 відповідей, залишених у Бази даних)

VTrim, так що там із вашим і моїм запитом. Цікаво ж що показує там ваш explain, ну або хоча б що показує ваш спосіб -
визначення швидкості "на око".

Можна ще так спробувати:

[code=sql]select
    if(d.first_user = 1, u2.name, u1.name) as second_user_name
from dialogs as d
    join user as u1
        on d.first_user = u1.id
    join user as u2
        on d.secound_user = u2.id
where 1 in(d.first_user, d.second_user)[/code]

98

(46 відповідей, залишених у Бази даних)

Якщо ви працюєте з MySQL/MariaDB, то так - я мав на увазі плани виконання через explain.

VTrim написав:

Мабуть найочевидніше просто перевірити час виконання при великих обсягах даних.

Ні, цим способом потрібно користуватись, коли ви глянули на план виконання і побачили, що використовуються саме ті ключі, які ви очікували задіяти. Інколи ви можете виконати запити з однаковою швидкістю, але один із них буде видаватись з кешу вашої СУБД...

99

(46 відповідей, залишених у Бази даних)

Якщо вмієте дивитись на плани виконання, то гляньте. Важливіше, що він буде працювати швидко, і у вас не буде непотрібних дублів.

100

(46 відповідей, залишених у Бази даних)

Тоді запит змінюється на такий:

-- Спочатку виводите діалоги, де ви запрошували когось.
-- Тобто під first_user - це ви, отже з таблицею users вам треба з'єднуватись по second_user
select
    u.name as second_user_name
from dialogs as d
    join user as u
        on d.second_user = u.id
where d.first_user = 1

-- Об'єднує запити  них обо'язково повинна співпадати кількість полів)
union all

-- Тепер виводите діалоги, де вас запрошували.
-- Тобто під first_user - ваш співрозмовник, отже з таблицею users вам треба з'єднуватись по first_user
select
    u.name as second_user_name
from dialogs as d
    join user as u
        on d.first_user = u.id
where d.second_user = 1