Задать вопрос
  • Как поставить Linux на Вирт. машину на маке?

    alsopub
    @alsopub
    https://www.virtualbox.org/ вам поможет.
    Ответ написан
    Комментировать
  • API для сайта и приложения, как сделать?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Я бы не усложнял и сделал бы дополнительную проверку контрольной суммы в передаваемом хеше ключа.

    - Не предавал бы ключ в открытом виде а шифровал бы его во что-то типа
    key = md5(ключ + соль)

    - Дальше бы генерил доп строку, на основе данных доступных обоим сторонам запроса, например:
    check = md5(внешний ip)

    - Дальше бы по спец алгоритму о котором знаю только я и оба софта, смешивал бы значение key и check. Например, первые 5 символов в check добавлял бы через букву в key. Для особой паранойи можно способ шифрования сделать от версии ПО или вообще предварительным запросом к серверу

    - На серваке опять восстанавливал бы key и часть check, и сравнивал бы с сгенерированным check на сервере.

    - Если check совпал, тогда бы сверял key со своей базой

    Даже в случае перехвата, алгоритм подобрать будет сложно. А брутфорс на серваке можно отслеживать. Разумеется от дизассемблирования, это не спасет.. но тот кто может позволить себе понять алгоритм шифрования по исходникам ассемблера (т.е. разобраться как генерится check и что используется за соль), вряд ли не сможет просто вырубить запрос к серверу или ограничения...

    -
    Ответ написан
    3 комментария
  • API для сайта и приложения, как сделать?

    @murlogen
    Во первых, https, а вовсе не http
    Во вторых если ты хочешь чтобы тебе помогли - сформулируй яснее что именно тебя смущает.
    Как злодеи отследят запрос?
    Ответ написан
    Комментировать
  • В чём разница между фреймворк и cms?

    @murlogen
    CMS - готовая система, которой воспользоваться может не программист.
    Ее можно программировать, но обычно предпочитают не заморачиваться с этим, а искать уже готовые (созданные программистами) модуля CMS под ту или иную задачу

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

    CMS позволяют сэкономить время и деньги если речь идет о типовой задаче. Однако на все случаи жизни готовых решений наперед не напридумываешь (в любой сфере человеческой жизни).

    На фреймворк начинают смотреть, если задача отличается от типовой.

    MVC - это просто свойство. Которое может быть присуще любому типу ПО из этих двух. Это как зеленая легковушка и зеленый трактор. То что они оба зеленых не дает же вам основания говорить - "они оба зеленых, поэтому я буду пахать на легковушке"
    Ответ написан
    24 комментария
  • Как ускорить веб-разработку на Windows (Gulp, PHP, Ruby) в NTFS?

    sim3x
    @sim3x
    vagrant
    работать в виртуалке с линуксом
    работать сразу в линуксе
    работать сразу на макоси
    Ответ написан
    9 комментариев
  • Если страх, что не справишься с работой, как быть?

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

    sim3x
    @sim3x
    Глаза боятся, а руки делают

    Если в процессе работы ты не знаешь как что-то сделать, то ты спрашиваешь, а потом делаешь

    Если страх не можешь перебороть сам - иди к спецу
    Ответ написан
    Комментировать
  • Если страх, что не справишься с работой, как быть?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Программирование на самом деле не особо нравится

    У меня вопрос. Нахрена тогда?
    Ответ написан
    Комментировать
  • Как перенять объектно-ориентированное мышление?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Т.е. сложно понимаю, что "засунуть" в один объект, что в другой, что должно быть статическим методом, что приватным и тд.


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

    То есть по сути наше приложение - один объект. У него внутри вообще все. У этого объекта есть один метод - обработай запрос. Когда внешний мир его вызывает, меняются значения каких-то переменных, вызываются какие-то внутренние "приватные" для внешнего мира функции, и делается работа.

    Теперь задумаемся о декомпозиции всего этого хаоса. Мы находим какую-то задачу, которую выполняет наш код (например какую функцию вызвать для обработки каждого конкретного запроса) и выносим это в отдельный объект. Отправка email-ов - отдельный объект. Весь SQL зашиваем в отдельный объект. Соединение с базой - объект. Пользователи - объекты. Все - объекты.

    И главное, у каждого объекта есть своя область ответственности. UNIX way. Каждый объект делает что-то одно и делает это хорошо. Бывает так что ну... нужно сделать так что бы один объект делал две вещи. НЕ вопрос, мы можем его попросить сделать что-то сложное, а он будет как хороший менеджер тупо делегировать работу другим объектом. То есть он и сложную штуку сделает, и сам не будет знать как она делается.

    А все безхозные функции, которые не пренадлежат никаким объектам (например функции порождающие объекты) можно вынести в статические методы. Главное что бы статичесих переменных у нас небыло (ибо это те же глобальные переменные). И поменьше публичного ибо черт его знает что эти разработчики будут использовать. Причем "те разработчики" это вы завтра.

    Вообщем писав всё время на процедурке, сложно перейти на ооп.


    Просто не думайте что это что-то "принципиально другое". Это та же самая процедурка, просто благодаря классам и объектам, вы можете порезать систему на маленькие модули. Данные будут лежать рядом с процедурами и у вас будет больше контроля за происходящим.

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

    Подскажите, какой проект начать писать (гостевая, блог), или может начать изучать фреймворк.


    Фреймворки универсальны, а значит чистого ООП там быть не может. Во всяком случае нет ни одного фреймворка на котором стоит учиться ООП.

    Есть хорошие упражнения на развитие понимания объектно-ориентированного проектирования. Например вот: https://habrahabr.ru/post/206802/

    Сразу хочу отметить что это крайности. Упражнения же. Они должны ограничивать вас что бы заставлять думать и задавать правильные вопросы.

    Или может подскажите книгу/сайт где пошагово в ооп написан какой-то проект, чтобы быстрее пришло понимание.


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

    gordon_shamway
    @gordon_shamway
    Github
    Ответ написан
    Комментировать
  • Что значит хорошо знать фреймворк?

    romy4
    @romy4
    Exception handler
    это значит, что когда тебе сказали запили фичу, то ты не сидишь ломая голову и изучая чужие примеры, пиля костыли, спрашивая на этом форуме, а делаешь сам зная какие модули надо использовать и как, знаешь мануал на столько, что тебе не нужны подсказки вроде "а как мне сделать такую-то шнягу?", ты просто знаешь, что её можно сделать так и так двумя-тремя способами, надо только глянуть на страницу мануала подсмотреть синтаксис функций.
    Ответ написан
    Комментировать
  • Выбрать все строки из БД, в которых записи не пустые?

    @lubezniy
    Может, WHERE (to_comment<>'') ?
    Ответ написан
    Комментировать
  • Как лучше организовать очередь отложенной обработки изображений?

    TheKnight
    @TheKnight
    Программист
    1) RabbtiMQ|Kafka|ActiveMQ|whatever. Кладем в очередь сообщения на обработку, помним про ограничения на размер сообщения.
    2) Самописное решение на костылях и скотче, с использованием БД.
    3) Сделать развязку в виде сервиса хранения данных и рест интерфейса. PHP принимает изображение, сохраняет, посылает рест запрос на обработку сообщения лежащего на сервере. ЛБ динамически распределяет запросы по молотилкам.
    4) Any variants.

    Но на самом деле есть вопрос. А много ли тех изображений? Может и не стоит заморачиваться-то?
    Ответ написан
    2 комментария
  • Весь код программы на c# пишется в одном файле Program.cs?

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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Как и в случае с любой другой задачей в мире, если вы не знаете, сколько времени и сил на неё понадобится, это означает одно из двух:
    1. Задача слишком общая и её нужно дробить, оценивая подзадачи.
    2. Вы некомпетентны в данном вопросе и задачу нужно отдать тому, кто нужными знаниями обладает. Если у вас есть желание повысить свой уровень, то нужно стоять над душой у этого человека во время работы и задавать вопросы.

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

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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Выбирайте любую с webSocket.
    Ответ написан
    Комментировать
  • Использование процессора PHP?

    romy4
    @romy4
    Exception handler
    одна программа на пхп использует только один поток
    Ответ написан
    4 комментария