• Можно ли заменять в SQL запросе ' на "?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Эти функции - какой-то ужас, летящий на крыльях ночи. mysql_real_escape_string - вообще за гранью добра и зла.

    Но главное, что я не могу понять - это какое отношение к mysql и mssql имеет функция xss_clean. Ну то есть я даже представить себе не могу, как можно функцию для защиты от xss применять для любых манипуляций c SQL. Это - я не знаю - как положить деньги в презерватив от грабителей. Он же служит для безопасности. Ну вот деньги и будут в безопасности.

    По теме: ради всего святого, используйте PDO с подготовленными выражениями. Это сделает ненужной всю эту мышиную возню с регулярками. PDO поддерживает как mysql, так и mssql, так что разница будет только в синтаксисе запросов, а сам код работы с запросами будет один и тот же

    $sql = "SELECT TOP 10 * FROM user where mssql.department_id=?";  
    $stmt = $conn->prepare($sql);  
    $stmt->execute([$_GET['department_id']]); 
    $users = $stmt->fetchAll();
    
    $sql = "SELECT * FROM user where mysql.department_id=? LIMIT 10";  
    $stmt = $conn->prepare($sql);  
    $stmt->execute([$_GET['department_id']]); 
    $users = $stmt->fetchAll();


    Как можно заметить, в запросах нет ни одной кавычки вообще, что делает сам вопрос про замену бессмысленным.

    От XSS же надо защищаться совсем в другом месте, и также без всего этого ужаса
    Ответ написан
    1 комментарий
  • Что вы делаете если не укладываетесь в срок?

    Andrey_Pletenev
    @Andrey_Pletenev
    Pletenev.com
    Варианты, которые есть у менеджера, чтобы ускорить разработку и успеть в срок (из моего опыта):
    a) Помочь преодолеть имеющееся затруднение. Если разработчик "буксует", нужно понять в чем конкретный затык. Помочь может совет опытного коллеги, пример чужого кода и даже умение пользоваться поисковиком.
    b) Предложить более эффективный способ решения задачи. Как известно, любую задачу можно решить несколькими способами. Иногда разработчик почему-то выбирает самый длинный, крутой и извилистый :)
    c) Устранить имеющееся непонимание постановки задачи. К сожалению, иногда задержка вскрывает, что задача была неправильно понята и делается лишняя работа.
    d) Уменьшить объем работ, изменив постановку задачи. В данном случае задача понята верно. Но если можно упростить саму задачу без принципиальной потери ценности функционала - это неплохой вариант.
    e) Подключить дополнительные ресурсы к решению задачи (подключить дополнительных людей, купить больше их времени). Если это возможно, задача распараллеливается (при условии, что усилия на интеграцию не съедают экономию). Если нельзя распараллелить, применяем парное программирование. Сверхурочные - способ не требующий умственных усилий менеджера, а потому первым приходящий в голову. Не очень хороший вариант, т.к. проблема со сроками перетекает в проблему со стоимостью.
    f) Принять решение о замене исполнителя задачи. Это крайний случай, но бывает, если ошиблись и поручили задачу разработчику, который ее "не тянет".

    Задача менеджера - принять оптимальное решение, исходя из текущей ситуации.
    Если ничего из вышеперечисленного не сделано или не возымело достаточного действия, то недостающие ресурсы и время на автомате начинают черпаться за счет снижения качества. Делаются "костыли" вместо основательных решений, нарушается технологический процесс (время экономится на дизайне, отладке, ревью, тестировании и т.д.)
    Ответ написан
    Комментировать
  • Как хранить и выполнять операции с большим числом типа int?

    EreminD
    @EreminD
    Кое-что умею
    самый простой вариант - использовать BigInteger
    using System;
    using System.Numerics;
    					
    public class Program
    {
    	public static void Main()
    	{
    		BigInteger hugeInt = BigInteger.Parse("91948102834320102834715231012347");
    		Console.WriteLine(hugeInt);
    	}
    }


    Но вообще, есть ощущение, что вы больше настрадаетесь с лишними типами данных
    А если не секрет, а что вы храните в таких чисах? Вы с ними делаете какую-то арифмеику?
    Ответ написан
    4 комментария
  • Зачем собирать проект на сервере?

    Stalker_RED
    @Stalker_RED
    У софта, библиотек, и прочих зависимостей бывают версии. Еще и у железа отличия бывают.

    Смысл сборки "на месте" в том, что если уж оно собралось, то уже не должно ругаться на "не та версия" и должно учитывать особенности железа. Т.е. потерпев некоторое неудобство при сборке получаете надежность и скорость работы.

    Собрав у себя локально и перелив на сервер, у которого отличается окружение - рискуете получить кучу глюков, и чем больше оно отличается, тем сильнее рискуете.
    Ответ написан
    7 комментариев
  • Разрешено ли использовать картинки с сайта nike в некоммерческих целях?

    @stratosmi
    Нет.

    Для этих целей можно использовать библиотеки бесплатных картинок.
    Или фотостоки (купить там или у них есть бесплатные "фото дня" или даже целые разделы бесплатного).
    Ответ написан
    Комментировать
  • Что вы делаете если не укладываетесь в срок?

    @bupatiho88
    Определить, находится ли фича в списке приоритетных на данный спринт, иными словами является ли она критичной к исполнению для достижения цели спринта
    1) Да
    1.1) Пытаемся выиграть за счёт потери менее приоритеной фичи, при наличии таковой конечно
    1.2) Все на бекенд. Несмотря на узкую специализированность, помочь всё же можно
    1.3) Жертвуем качеством кода. Знаю что плохо, объясняем заказчику необходимость дополнительного времени для возврата технического долга.
    1.4) Пытаемся выделить какую-то значимую для заказчика часть фичи(важную для бизнеса) и поставить её. Что-то лучше, чем ничего
    2) Нет
    2.1) Печально, каимся заказчику, движемся дальше

    При любом раскладе обсуждаем на ретро проблему, ищем способ не допустить подобного в дальнейшем
    Ответ написан
    Комментировать
  • Что вы делаете если не укладываетесь в срок?

    @ponaehal
    Упрощаю вопрос:
    Я запланировал сделать это за две недели, но ошибся в оценке. Что делать?
    Ответ на мой взгляд очевиден:
    Извиниться, признать ошибку, сделать выводы. Все остальное (типа привлечение доп ресурсов, введение ночных смен и т.п.) это попытка прикрыть свою ошибку как менеджера за счет компании.
    Ответ написан
    2 комментария
  • Полиморфизм на собеседовании?

    BacCM
    @BacCM
    C++ почти с рождения
    Есть формальные определения. Есть лозунговые как от Страуструпа. На адекватном собеседовании нужно показать понимание вопроса, а не зазубренные формулировки. В идеале подкрепить объяснение реальными примерами разного вида полиморфизма и примерами где без него вполне можно обойтись.
    Ответ написан
    Комментировать
  • Как изучать паттерн MVVM и WPF?

    netrox
    @netrox
    Ответ написан
    Комментировать
  • Законно ли копировать информацию с профиля ВК на свой ресурс?

    YardalGedal
    @YardalGedal
    yeah boy
    Мне кажется, у вас огромные проблемы с восприятием информации. Попробуйте сначала сделать домашнее задание на завтра, а потом самостоятельно ответить на свой вопрос.

    Теперь по делу, на страницах vk.com/terms, vk.com/privacy можно найти исчерпывающую информацию по любому из ваших последних заданных вопросов.

    Профиль можно сделать приватным, доступным только тем, кто находится в списке друзей, а так же скрыть от неавторизованных пользователей полностью. Для этого есть страница vk.com/settings?act=privacy.

    Вы ПОЛНОСТЬЮ согласились со ВСЕМИ правилами в момент регистрации страницы, в том числе и с тем, что они могут изменяться без уведомления.

    Если вас не устраивают правила социальной сети, политика конфиденциальности — удалите свою страницу, не пользуйтесь социальными сетями, живите в землянке в глухом лесу и ни на секунду не снимайте шапочку из фольги.
    Ответ написан
    1 комментарий
  • Тестовые задания по C#?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    https://www.codewars.com

    Решаешь задачу, тесты проверяют корректность решения, после можно посмотреть как другие решили. По итогам выдают очки (видимый прогресс повышает мотивацию), по мере "прокачки" предлагают всё более сложные задачки (впрочем, никто не мешает сразу замахнуться на что-то трудное). Есть и C# и много других языков. Ну и публичный профиль потом можно в резюме показать:)
    Ответ написан
    1 комментарий
  • Как строку форматировать в функцию (C#)?

    lam0x86
    @lam0x86
    Есть два пути:
    1. Сложный - самому написать калькулятор выражений. Если выражения несложные, то такой путь предпочтительный.
    2. Использовать пакет Microsoft.CodeAnalysis.CSharp.Scripting (для .NET Framework 4.6+ или .NET Core 1.1+):
    • Проинсталировать пакет:
      Install-Package Microsoft.CodeAnalysis.CSharp.Scripting

    • Вычислить выражение:
      int result = await CSharpScript.EvaluateAsync<int>("14 - 15");

    Ответ написан
    Комментировать
  • Как убрать ошибку " установки netframwork"?

    shai_hulud
    @shai_hulud
    1) Посмотреть список предустановленных версий .NET Framework на тех версиях Windows где будет устанавливаться приложение.
    2) В настройках проекта указать target framework эту версию.
    3) Удалить, потом добавить все пакеты из Nuget, заменить другими если их нет под эту версию фреймворка.
    Ответ написан
    Комментировать
  • Почему аналогичная реализация через LINQ запрос не работает?

    // Аналогично циклу с использованием Any
    return !Beads.Any(n => Vector3.Distance(n.position, pos) < 0.1f);
    // Можно с использованием All
    return Beads.All(n => !Vector3.Distance(n.position, pos) < 0.1f);


    В первом цикле возвращается false, если условие будет выполнено хотя бы раз. Any в этом случае вернёт true. Поэтому нужно применить инверсию. Также можно переписать операцию использую метод All.
    Ответ написан
    3 комментария
  • Как изменить значение переменной в ресурсах?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    использовать БД или конфигурационные файлы (в обоих случаях полезно задумываться о безопасности - использовать шифрование, хотя бы для защиты от прямого чтения)

    а ресурсы изначально задумывались как способ хранения статических вещей, типа параметров по умолчанию, разметки по умолчанию, и тд
    Ответ написан
    Комментировать
  • Мир программирования. С чего начать новичку?

    Ni55aN
    @Ni55aN
    1. С# - слишком сложно на ранних этапах (в интернетах пишут нужно хотя бы начать с JS)


    C# в самый раз, чтобы научиться программированию и ООП. На JS слишком много свободы (динамическая типизация, коллбэки, асинхронность везде и всюду), что будет мешать изучению именно программирования, а не самого языка

    2. JavaScript - в тех же интернетах пишут, что бы было легче освоится нужно выучить\прочесть что то о HTML и CSS


    значит говорят о разработке вцелом, а не только программировании. Программировать можно научиться с выводом через один console.log

    Мир программирования.

    3. HTML и CSS - думаю я на правильном пути или нет ?


    No. Верстка - это верстка, программирование - это программирование :)

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

    @LiguidCool
    Является ли плохой практикой организовывать работу api и работу сайта с одной и той же базой? Или лучше вынести данные по валютам в отдельную базу и работать с ней только посредством api, а данные пользователей и тд - в базу, с которой работает сам сайт?

    Нет смысла разделять БД, да и зачем? Это актуально только для микросервисов.

    Если в будущем потребуется брать данные по валютам при рендере страницы сервером, как быть? Получать данные с api или копировать метод из апи в ядро сайта, чтобы получать данные сразу (возможно логика работы и нагрузка будут идентичными в этом случае, но это недостаток теории), это если в случае использования одной базы для api и сайта?

    Вариантов решений масса, но самый простой - делать универсальные MVC модули и контрполлеры, которые бы поддерживали отдачу как по API, так и просто рендер.

    Что бы вы посоветовали почитать, дабы более углубленно разобраться в этом вопросе (и в вопросах этой области), скорее всего это вопросы из области проектирования, ибо учу все это сам и очень не хватает теоретических знаний?

    Про MVC и HMVC в частности.
    Ну и реализация на примерах, например Laravel.
    Ответ написан
    Комментировать
  • Кодер -> Программист -> Архитектор?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Архитектор - в первую очередь опыт работы, в идеале в разных проектах, чтобы понимать на практике разницу между реализацией разных SDLC.

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

    Архитектор, бизнес-аналитик и менеджер - три звена, которые создают основу работы проекта, каждый со своей стороны.
    Бизнес-аналитик - должен максимально разбираться в бизнесе заказчика, чтобы понимать значение требований и переводить их для исполнителей.
    Архитектор - должен как минимум немного разбираться в бизнесе, но его основная задача - решить как воплощать требования бизнеса. Определять железо, технологии, требования. Говорить, что "вот для этого нужно использовать 10 этого и 20 этого, и использовать вот такие языки, библиотеки, платные решения". Техническое hi-level видение проекта.
    Менеджер - по согласованию с бизнес-аналитиком и архитектором должен решать кадровые вопросы. Количество людей, качество людей, работу команды, тайминги, офис и оборудование - все денежные вопросы. Отчеты. Договариваться, убеждать заказчика о ценах и сроках. Выбивать новые задачи и развивать проект. Следить за настроением в команде.

    Переход программист-архитектор не всегда последователен. Он должен быть инициирован программистом.

    Программист может остаться просто сеньор программистом, может стать тим-лидом, тратя часть времени на менджмент команды но все-равно основную часть времени оставляя на кодинг.

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

    Правильный способ - отсортировать рандомно массив и потом брать элементы по-очереди с первого. Гуглите по ключевому слову Shuffle.

    array.Shuffle();
    
    foreach (var randomItem in array) {
        Console.WriteLine( randomItem );
    }
    Ответ написан
    Комментировать