Задать вопрос
  • Какое техническое решение подобрать для создания сайта?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Поскольку я сталкивался с подобными задачами, сразу скажу, что нужно писать систему готовую к горизонтальному масштабированию.
    Сразу выкиньте из головы готовые CMS и прочую шелуху, когда вы засунуте в базу под лям объектов, вы начнете топить печь деньгами, чтобы обеспечить должный уровень отклика.
    Базу следует брать SQL, начинать с mysql и изначальной настройкой мультимастер шардинга+репликации+failover. Здесь очень долго посидеть над анализом документации, поиска по параметрам и т.д. На первичном этапе это не требуется, но потом часто выливается в гемор.
    На бэкэнд следует брать Go (Gorm для работы с базой). Он легко деплоится и просто масштабируется c помощью примитивной балансировки.
    Строительную документацию и картинки сразу хранить в S3-подобном хранилище.
    На фронтэнд берите последний AngularJS. Можете поиграться с Vue, но потом вам все равно прийдется это переписывать.

    Для такой работы вам потребуются следующие специалисты: дизайнер (фринлансер), devops-чел (проверенный, на удаленке), 2 программиста (frontend + backend) на полный рабочий день (они тоже могут работать удаленно) и руководитель проекта (технический директор).

    Не экономьте на специалистах, иначе получится неюзабельное говно.

    Не думайте о такой системе, как о сайте. Вам нужно веб-приложение.
    Ответ написан
  • Когда использовать классы, а когда функции?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    Согласен с Ларисой, но немного дополню.
    Классы, собственно, введены для любителей ООП, и действительно - только эмулируют в JS классическое ООП.
    Нужны они для того, чтобы инкапсуллировать части кода, иметь возможности классового наследования и проч. Но нужно не забывать, что в JS используется наследование на прототипах и никакого другого в нем нет.
    Если понять вышесказанное, то от классов в JS лучше отказаться, и использовать встроенные инструменты. Сразу скажу единственный минус, который я не смог чисто обойти - отсутствие множественного наследования.

    Итак, инкапсулляцию лучше всего делать, размещая все функции отдельного блока кода не в классе, а в качестве методов объекта.
    var obj1= {
    prop1: value,
    met1: function(arguments) {
    body
    }
    // etc
    }


    При таком подходе мы имеем в глобальном скопе лишь одну переменную, но можем вполне использовать весь ее потенциал, как:
    obj1.met1();
    И зачем нам нужны классы при таком подходе?
    Если нам нужно унаследовать от другого объекта, самым простым способом будет разместить ссылку на родительский объект в свойстве __proto__ наследника.
    var parent= {...};
    var child= {
    __proto__: parent,
    .....
    }
    Ответ написан
    Комментировать
  • Что есть исключения?

    @xfg
    Исключение - это отклонение от нормы. Оно всегда будет. Всего не предусмотреть. Вы можете сделать исключения для Unprocessable, Forbidden, NotFound.
    Написать обработчик, который ловит все необработанные исключения и конвертирует Unprocessable в HTTP 422, Forbidden в HTTP 403, Not Found в HTTP 404, а все остальное в HTTP 500.

    О проблемах с сетью клиента уведомлять не надо. Таких технических проблем могут быть сотни и тысячи. Когда они возникнут, ваше приложение итак по очевидным причинам не сможет обработать запрос и упадет с исключением/ошибкой. Вам лишь надо, чтобы исключение/ошибка провалилась в обработчик и превратилась в 500 Internal Server Error. О большем клиенту знать не зачем.
    Ответ написан
    Комментировать
  • Си это основополагающий язык или просто популярный?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Процессоры под языки - несколько исторических примеров, вроде lisp-машины.

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

    В этом как раз очень помогают C и C++, потому как они являются кросcплатформенными языками, для которых действует принцип вы платите (тратите ресурсы на) только те фичи языка, которыми пользуетесь.

    Именно поэтому большинство интерпретаторов и Runtime-окружений для некомпилируемых (Python) и JIT-компилируемых (Java) языков делаются на C или C++, либо являются трансляторами в C++ (KPHP)
    Ответ написан
    2 комментария
  • Если материнская плата сгорела(и пахнет сгоревшим), подлежит ли она гарантийному обслуживанию?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Если контора уровня "три стола, два стула" ее можно просто припугнуть, но для этого надо знать закон о защите прав потребителей и все подобное. Придти, положить на стол работающий диктофон и начать качать права. Говорить тихо, вежливо, опираться на законы, попросить их показать все что обязана показать торгующая организация - книгу отзывов, уголок потребителя etc. Все фиксировать на телефон, упирать на то, что пойдете в суд и т.д.
    Обычно конторе такого уровня проще деньги вернуть, потому что там только копни - нарушение на нарушении верхом :D
    Ответ написан
    Комментировать
  • Запрашивает root пароль Linux Ubuntu?

    @immaculate
    Программист-путешественник
    Запрашиваемый пароль - это ваш пароль, который вы вводите при входе в систему.
    Ответ написан
    2 комментария
  • PHP фреймворки новые с Crud и возможностью создания модуля?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    (контроллер модель и view в одном пакете)

    Наверняка для любого популярного есть данная бесполезная вещь, просто надо посмотреть бандлы/пакеты в репозиториях.
    Данный механизм подходит исключительно для самого простого сайтика.
    Правильная работы - выбрать (на данный момент) Symfony/Laravel и понять как делаются качественные проекты на них.

    Для больших HL++ я бы посоветовал Symfony, по началу вы заметите, что он работает намного медленнее Laravel etc. Но при готовой архитектуре проекта, заметите что скорость сравняется и даже больше.
    Вся суть в использовании правильной и действенной архитектуры (не как в доке и туториалах).
    Если использовать подход DDD (CQRS/CommanBus/Persister etc..), то система будет оч. гибкой, что оч. важно бизнесу. Так же вся разработка будет в PHP коде в виде объектов. (за редким исключением, где потребуются билдеры) Можно еще оч. долго об этом говорить и расписывать.

    Все то же касается и Laravel/Yii, но с исключениями. Данные фреймворки придется не слабо расширять и учить работать с ORM.

    Если вам интересуют формы для запросов, то тут на помощь приходит swagger. Остальное ручками.
    Все выше сказанное - это если вас интересует качественный и хороший проект.

    UPD.
    Забыл упомянуть минус. Это то что придется писать много кода ручками. Но в последствии это окупится в крупных проектах.
    Так же, выше предложенная схема, дает возможность покрывать тестами 90% кода.
    Ответ написан
    4 комментария
  • PHP фреймворки новые с Crud и возможностью создания модуля?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Старые уже закончились на складе?
    Ответ написан
  • Как быстро развернуть настроенную ОС с Линукс на новые компьютеры по сети?

    @Tabletko
    никого не трогаю, починяю примус
    Установка по сети (tftp) и настройка политиками (Ansible и пр.)
    Ответ написан
    1 комментарий
  • Вывод даты в нужном виде. Как сделать?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Если абстрагироваться от того, что вы используете для работы с MySQL deprecated-расширение и не используете prepared statements, то проблема ваша как минимум в том, что вы не читали документацию:
    php.net/manual/ru/function.mysql-query.php
    Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.


    Вы получили дескриптор и пытаетесь с ним работать как с массивом.
    Ответ написан
    Комментировать
  • Установка нескольких ОС на одну машину?

    @Erelecano
    Админю сервера, починяю примуса.
    Сначала винду, потом линуху. Линуховые инсталяторы видят другие ОС на компе и настраивают GRUB на их загрузку, а винда затирает чужие загрузчики в MBR.
    Но разумней поставить Ubuntu GNU/Linux в качестве основной системы, а зоопарк развести в виртуалках(kvm и virt-manager вам в помощь).
    Ответ написан
    Комментировать
  • Как технически правильно организовать разработку информационного сайта?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Сам являюсь фронт-энд разработчиком, с бекендом не дружу.

    Предлагаю забить хрен на идею подобного рода тогда.

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

    А если вдруг портал станет популярный, ваш вордпресс сдохнет нахер под нагрузкой.

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

    1) И да, и нет. С движком определиться надо, но если речь идет именно про такие порталы, как указаны в вопросе, то нужна собственная разработка, фреймворк.
    2) База, естественно, нужна. И не обязательно, чтобы это была мейнстримовская MySQL.
    3) Лучшая фишка - официальная апишка.
    Ответ написан
    6 комментариев
  • Однодневкам-одновопросникам тостера запретить задавать вопросы?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Я так понял, что автора не столько беспокоит, что новички задают вопросы, сколько то, что их вопросы "захламляют" его ленту. Как вариант, сделать настройку ленты более гибкой: показывать вопросы только тех авторов, которые задали больше N вопросов, показывать только те вопросы, которые набрали N подписчиков и прочее.

    Чтобы вопросы не повторялись достаточно пожаловаться на вопрос. Специально для этого и сделана кнопка "Жалоба". Запрещать задавать новичкам вопросы - это бред. На девять простых вопросов иногда задается такой, который будет многим интересен.
    Ответ написан
    9 комментариев
  • Как узнать было ли заражение?

    @zzzevaka
    Узнайте у провайдера характер вредоносного трафика: хосты, порты, протоколы. По нему попробуйте определить сервис, который подвергся атаке. Копать все логи всего бесполезно. Если у вас стоит роутер с внешним IP-адресом, в первую очередь проверьте, не отвечает ли он на DNS запросы извне - наиболее часто используемая дыра.

    Ну и пройдите по своему серверу nmap и отключите/закройте все лишнее.
    Ответ написан
    1 комментарий
  • Каким образом лучше всего избежать повторения ENUM в БД?

    Для этого, внезапно, можно использовать таблицу значений и внешние ключи.

    Хотя, конечно, создание таблиц при работе с базой данных кому-то может показаться радикальной идеей.
    Ответ написан
    1 комментарий
  • Всегда ли поисковые системы используют User Agent?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Есть много людей, которые утверждают, что их спасли дельфины, но не видел не одного, кто сказал бы, что его утопил дельфин.
    Ответ написан
    5 комментариев
  • Какая программа менеджмента паролей подойдет для совместной роботы в IT отделе?

    secsite
    @secsite
    Безопасные и быстрые сайты
    Подход в корне неправильный. Нужно не выдавать пароли, а настраивать доступы юзерам.
    Ответ написан
    5 комментариев
  • Какой компилятор выбрать для C++?

    TrueBers
    @TrueBers
    Гуглю за еду
    Самый древний и популярный компилятор — это GCC. Он поддерживает миллиард платформ, хорошо фичи новых стандартов умеет, стабильный, быстрый. Классика, работающая всегда и везде. Версия для винды ставится либо из Mingw-w64, он довольно прилично отстаёт от основной ветки, но работает неплохо. Либо можно поставить из пакета MSYS2, там всё свежее и постоянно обновляется.

    Visual Studio — если вы начнёте с неё, то потом будет очень тяжело перейти на другой компилятор, всё будет непривычно и ничего не будет работать. Ибо вижуал студия подразумевает тесную интеграцию IDE и компилятора. Ко всему прочему, если вы пишете код в вижуал студии и он компилируется, это ещё не значит, что код соответствует стандартам, и будет компилироваться где-либо ещё. Так как майкрософты, по классике, клали большой и толстый на все эти ваши стандарты. Да, IDE у них более-менее юзабельная, но у компилятора своя атмосфера.

    Ну, и самый, на мой взгляд, прогрессивный и удобный компилятор — clang. Очень молодой, но очень фичастый. Очень удобные сообщения об ошибках, всё понятно и наглядно. Поддерживает даже черновики и пропозалы новейших стандартов. Для новичка, более чем, рекомендую! Поставить его для винды можно всё из того же пакета MSYS2. Можно, конечно, качать сборку с официального сайта, но она не всё поддерживает в винде. Ещё есть вариант поставить clang вместе с Visual Studio 2017 Community. Там есть такая фича, не пробовал, правда, но в теории, должно работать.

    В качестве IDE ещё могу посоветовать Clion. Крутая штука, хоть и тормознутая малость. Из мелких и легковесных — juci. Очень шустрая современная штука, правда, пока не особо чего умеет.

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

    artem90
    @artem90
    TeamLead, Developer
    Ответ написан
    Комментировать