• Что нужно требовать от компании-разработчика?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Все сугубое imho:
    1. Что должна предоставить нам компания, кроме работающего приложения, чтобы в дальнейшем штатные разработчики без труда подхватили проект?

    Смена команды разработки - всегда боль.
    Если это резкая смена команды - то либо это заканчивается переписыванием 70-80% кода, либо закладывайте ~30% потраченных на разработку ресурсов на вхождение новой команды в курс дела.

    На мой взгляд есть 2 способа этого избежать:
    a) покупка изначальной команды в штат
    b) участие ваших штатных разработчиков в проекте изначально (но мало кто из аутсорсеров на это пойдет)

    ну а предоставить собственно должны исходники без обфускации, с читаемыми названиями переменных, форматированием согласно принятым стандартам языка (для php например это PSR), документацию.

    2. Какое качество кода должно быть, есть ли какие-то стандарты качества, которые нужно отразить в договоре?

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

    3. Как относятся компании к договору NDA?

    Относится отлично, но NDA в РФ не работает по факту. Хотя все их очень любят подписывать по поводу и без.

    4. Какую документацию по проекту мы должны получить от разработчика?

    Ту которую хотят ваши разработчики. Для веб-приложения на мой взгляд программа минимум это
    а) ТЗ по которому все пишется
    b) описание внешних и внутренних компонент приложения, что они делают и как взаимодействуют
    c) описание структуры БД, как объектов со связями, так и полей. Если где-то денормализация - обоснование её наличия и описание логики.
    d) описание endpoint проекта если есть (апи, итд)

    5. Нужно ли прописать в договоре пункт про бэкдоры, работает ли это на судебном уровне
    В РФ imho нет.
    Ответ написан
    2 комментария
  • Как реализовать поиск данных в бд по заданным параметрам?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Я позволю поставить ссылку на недавний вопрос Как лучше устроить базу данных?

    Основные тезисы такие же:
    - иметь NN столбцов в одной таблице - однозначно плохо, поэтому умещать все в одной таблице - bad design.
    - в любой непонятной ситуации проектируйте базу исходя из 3НФ (google it) и все будет хорошо.

    В данном конкретном случае, у вас есть 2 основные сущности: рецепт и продукт с соотношением многие-ко-многим, соответственно правильная структура базы в упрощенном виде:

    1. Рецепт
    • id рецепта (integer, primary, auto increment)
    • название рецепта (varchar)
    2. Продукт
    • id продукта (integer, primary, auto increment)
    • название продукта (varchar)
    3. Единица измерения (добавил для примера, не обязательно)
    • id единицы измерения (integer, primary, auto increment)
    • название единицы измерения (varchar)
    4. Элемент рецепта
    • id рецепта
    • id продукта
    • id единицы измерения
    • количество продукта в указанных единицах измерения (decimal)

    В последней таблице можно сделать составной PRIMARY (id рецепта, id продукта), а можно добавить еще отдельный PRIMARY автоинкрементный, а указанный выше составной ключ сделать просто UNIQUE.
    Ответ написан
    Комментировать
  • Как лучше устроить базу данных?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Увеличивать количество столбцов до бесконечности - bad design.
    Делать отдельные таблицы на разные виды товаров - получше, но не гибко.

    я бы сделал 4 таблицы:

    1. товары
    id_товара, id_категории, название товара

    2. свойство
    id_свойства, название свойства

    3. значение свойства у товара
    id_товара, id_свойства, значение

    4. возможные свойства категории
    id_категории, id_свойства

    получится достаточно гибко и масштабируемо
    Ответ написан
    1 комментарий
  • Как ускорить получение данных с АПИ?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    @sochi-russia
    у сайта нет базы данных.

    сделайте. не умеете - научитесь. не хотите учиться - наймите профессионала.
    объяснить как из php работать с базой данных - явно выходит за рамки вопроса на тостере.
    материала в сети море.

    php.net/manual/ru/intro.mysqli.php
    www.mysql.ru/docs/man/Reference.html
    Ответ написан
    2 комментария
  • Может ли один хороший веб-разработчик заменить команду?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Во первых один человек не может быть действительно хорош во всем.
    Да, знания из смежных областей полезны, но "чистый" специалист как правило будет эффективней.

    Во вторых, по порядку, но не по значимости - ни один даже самый великолепный специалист не может уделять проекту больше 60-70 часов в неделю.

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

    Если говорить про приведенный пример в виде сайта Аэрофлота - мой опыт работы с enterprise компаниями, говорит что задачка "нам нужно сделать новый баннер на главной странице" оформляется в виде небольшого ТЗ страниц на 70-80, включает в себя предварительную аналитику, 5-6 вариантов дизайна, исследования фокус групп, - и это все не говоря о юридической части работы. Сможет ли это все сделать 1 человек за приемлемое для заказчика время - ...
    Ответ написан
    1 комментарий
  • Правда ли что программистам навязывают определенные мысли?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1)обязательно надо знать математику алгоритмы и тд(даже если это не используется)

    Если хочется выйти за рамки дешевой рабочей силы - да.

    2)надо работать бесплатно на первых порах

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

    3)создавать open source проекты бесплатно чтобы показать всем свой код

    Скорее нет

    4)всегда думать о работе даже по выходным и тд

    Если хочется выйти за рамки дешевой рабочей силы - ДА.

    UPD:
    Реальность такова, что если вы хотите выйти за рамки дешевой рабочей силы - у вас ровно 2 способа это сделать:
    а) вы можете основать собственное дело
    b) вы можете в чужом деле вырасти из человека который пишет код, в партнера который решает проблемы бизнеса ( что в конечном счете эквивалентно предыдущему пункту)

    И то и другое подразумевает что вы перестаете разделять свою жизнь и работу.
    Вы, это и есть то дело, которым Вы занимаетесь. 24/7/365.
    И это к слову сказать справедливо для практически любой сферы, не только IT.
    Ответ написан
    11 комментариев
  • Кто поможет с кодом на PHP?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    вы реально считаете что кто-то будет вглядываться в пережатую картинку где светло-серым по темно-серому написан код? выложите на pastebin хотя бы.

    ну и стандартный вопрос для отладки - т.к форму вы не показали, покажите что выводит print_r($_POST)
    Ответ написан
    2 комментария
  • Какую структуру выбрать для базы данных?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Не очень понял описание, с живыми примерами было бы понятней.
    Модификации у всех товаров одинаковые?
    Т.е условно - у всех товаров модификация №1 - цвет, значение 1 - красный, 2 - синий итд?

    В таком случае храним 5 табличек - справочников с расшифровкой значений модификаторов.
    В таблице товаров храним 5 полей со значениями этих модификаторов
    Ответ написан
  • Что это и зачем нужно?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Что не понятного в надписи DDoS protection by Cloudflare ?
    Ответ написан
    Комментировать
  • А как вы отправляете email с сайта?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Ответ написан
    Комментировать
  • Можно ли принудительно в программе Инфоклиника отсоединится от центральной базы данных?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Таки логично обратиться с этим вопросам к тем кто продал Вам её.
    Если вы купили версию специально для филиалов - очевидно вы купили не ту просто версию.
    Ответ написан
    Комментировать
  • Как реализовать уведомление пользователей?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    как правильно сделать систему уведомлений

    Правильно - на сокетах.
    Не хотите socket.io - реализуйте протокол самостоятельно.

    Все остальное для этой задачи - не правильно.
    Ответ написан
    Комментировать
  • Подтверждение пароля через сканер отпечатка пальцем?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    В рамках нативного приложения - легко.
    https://developer.apple.com/documentation/localaut...

    В рамках web браузера - никак.
    Ответ написан
    Комментировать
  • Что это за слово?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    deprecated.

    осуждение тут не при чем, просто эти методы объявлены устаревшими, соответственно
    а) исчезнут в следующих версиях (языка, фреймворка, итд)
    b) в них не исправляются ошибки.
    Ответ написан
    Комментировать
  • JSON тип данные в MySQL, в чем минус?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    По большому счету это денормализация базы.
    Денормализацию стоит применять когда Вы 100% понимаете что делаете, получая в каких-то конкретных условиях ускорение каких-то конкретных запросов, взамен теряя в гибкости при дальнейшей разработке и в производительности во всех остальных местах.

    Попробую расписать на Вашем примере (хранить категории поста в свойстве поста в json) чтобы было понятней:

    Тут все отлично пока Вам просто нужно выводить категории у поста.

    Как только нужно искать по категории - начинаются проблемы, какой нибудь JSON_CONTAINS - будет дико медленным на нормальном объеме данных (ведь ему нужно выполниться для каждой строки таблицы, а индексов то и нет).

    Решение - заводить еще одну денормализованное свойство для категорий - в котором хранить id постов.
    Но дальше всплывают новые задачи которые в нормализованной базе решаются за 5 секунд, а в денормализованной - нужно опять же кодить:
    - поиск по нескольким категориям сразу
    - расчет количества постов у категорий
    - итд итп.

    К чему это я все?
    К тому что используйте 3 НФ, и только когда упретесь в реальную производительность базы - начинайте думать про денормализацию.
    Ответ написан
    Комментировать
  • Как лучше хранить дату в MySQL?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    DATETIME !
    Ответ написан
    Комментировать
  • Выбор монитора для программиста, как правильно?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. TN матрицы абсолютное зло для глаз. Берите только IPS

    2. С нынешними ценами оптимальным считаю вариант 2 шт 27" IPS FullHD

    3. Не забывайте что врачи рекомендуют находиться от монитора на 60-70 см минимум.
    Соответственно мониторы больше чем FullHD на мой взгляд нет смысла брать с диагональю меньше 32" - все будет слишком мелко.
    Ответ написан
    9 комментариев
  • Как проверить существует ли элемент в БД?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    зачем тут вообще EXISTS ??
    значение count() всегда определено, получается будет всегда одно и то же.

    смотрите на значение count, это логичней и читабельней.
    Ответ написан
    1 комментарий
  • Проходят ли крупные конференции по PHP типа Joker по Java и DodNext?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    https://devconf.ru/ru был не плох.
    Ответ написан
    Комментировать