Задать вопрос
  • Стоит ли сейчас начинать изучать React Native или все переходят на Flutter?

    sim3x
    @sim3x
    Стоит или не стоит изучать - вопрос так не должен стоять
    Всегда лучше изучить что-то чем не изучить

    Мигрировать с любой технологии для кроссплатформенной разработки будут не на другую платформу, а на нативные решения

    Писать новое кроссплатформенное будут на чем-то хайповом, если ТЛ неопытный.
    Если опытный - будут делать кроссплатформенный прототип, на том на чем можно сделать его ASAP
    А после проверки маркетинговых гипотез будут делать нативное приложение под те платформы, которые опрадали себя

    Для игр ситуация будет несколько иной
    Ответ написан
    Комментировать
  • Какой CMS движок учить начинающему?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никакой. Изучайте разработку ПО, языки программирования, построение архитектуры ПО, алгоритмы, математику и т.д и т.п.

    UPD
    Приведу немного аргументации и очевидных вещей для тех, кто не понимает почему ответ именно такой. На самом деле все очень просто: в IT индустрии всё развивается и меняется очень, очень-очень быстро. И как следствие возникает проблема устаревания знаний и умений. Вот например 15-20 лет назад изучение языка программирования под названием "Дельфи" и популярной тогда его среды разработки для десктопных приложений вполне имело смысл и было популярным явлением, т.к. оно тогда довольно широко использовалось, или например Perl для создания сайтов. А где оно сейчас? Почему сегодня сайты пишутся на джаваскрипте? А как на счет десктопных приложений? А ведь те же десять лет назад попробуй скажи такое — как бы область деятельности не пришлось менять. И вот такое происходит просто с языками программирования за довольно короткое время. А основа любого CMS, фреймворка и иже с ними — это как раз таки язык программирования. И вот за время жизни языка программирования в нём случаются новые стандарты, изменения и прочее, а популярное ПО на нём переписываются десятки и сотни раз. Т.е., изменчивость продуктов какого либо языка зависит как от самого языка так и от его популярности. И чем они выше — тем чаще что-то меняется. Из всего этого вытекает очень логичный вывод: в долгосрочной перспективе выгоднее те знания, которые не устареют как можно дольше. И вот тут как раз таки знания разработки ПО и языков программирования, построения архитектура, алгоритмы и прочее имеют наибольший срок устаревания. А уж сколько тысяч лет математике можно и не вспоминать. А она, кстати именно благодаря стремительному развитию IT тоже развивается очень быстрыми темпами. Так вот, при наличии вот таких фундаментальных знаний можно легко и быстро осваивать любые новые фреймворки, CMS, языки программирования и прочее. А уж при наличии подробных мануалов, гугла, форумов и прочего большинство задач сводится тупо к вбиванию "как сделать YYY в ZZZ" в строке поиска (я вот например никак не могу понять ход мыслей людей, которые задают вопросы на форумах и прочих ресусах, ответ на которые выдается в первых же строчках гугла, складывается впечатление, что они вообще первый раз в интернете и про гугл не знают вообще ничего).
    Если есть желание именно в изучении CMS — ставим себе задачу и решаем её используя разные CMS, далее выбираем наиболее понравившуюся и пользуемся пока не надоест или не устареет. А после — повторить.

    Немного перефразирую сам вопрос и соседний популярный ответ:
    — Каким инструментом учиться пользоваться начинающему строителю?
    — Учись использовать молоток и гвозди, леса полно, доски везде используются.
    Вот только строительство — это не одни только доски, в которые забиваются гвозди, а еще архитектура, сопромат и иже с ним, экстерьер, интерьер, отопление, освещение, канализация, вентиляция и ещё куча всего. Аналогично и во всех остальных областях, в том числе и web разработке.
    Ответ написан
    9 комментариев
  • Можно ли построить карьеру front-end или back-end разработчиком зная вместо JS Python?

    Mi11er
    @Mi11er
    A human...
    JS одна из основ фронта..
    Куда же без него.
    Бек конечно можно... Но все же...
    Ответ написан
    Комментировать
  • Существуют ли потенциальные проблемы с большими значениями параметров session.sid_length и session.sid_bits_per_character?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    https://www.php.net/manual/ru/session.configuratio...

    А сколько вам надо-то? В документации указан максимум если он есть или оптимальное значение.

    session.sid_length integer
    session.sid_length позволяет указать длину идентификатора сессии. Это значение должно быть в диапазоне 22-256


    session.sid_bits_per_character integer
    session.sid_per_character позволяет задать количество бит в одном символе идентификатора сессии. Доступные значения '4' (0-9, a-f), '5' (0-9, a-v), и '6' (0-9, a-z, A-Z, "-", ","). По умолчанию 4. Чем больше бит, тем сильнее идентификатор сессии. В большинстве окружений рекомендуется 5.


    2) Идентификатор сессии меняется часто, допустим раз в полчаса
    3) Средний онлайн = 10к пользователей


    стандартная работа сессий вообще везде и при гораздо большем онлайне работают. Почему там вдруг должны возникнуть проблемы?
    Ответ написан
    2 комментария
  • Как ограничить размер загружаемого файла в форме POST?

    @MiMitin
    Размер загружаемого файла настраивается в файле php.ini строчкой "upload_max_filesize = 10M" (без кавычек).

    В браузере можно проверить через javascript:
    let file = document.getElementById("inputfile").files[0];
    if(file.size > 10*1024*1024) {
        alert("Слишком большой файл");
        return;
    }

    Но в любом случае эта проверка весьма условна, т.к. отправить файл бОльшего размера все равно возможно.

    Можно на серверной стороне, но проверять уже загруженный файл такая себе затея. Если сильно хочется:
    if($_FILES['uploadfile']['size'] > 10*1024*1024) {
        exit("Файл слишком большой");
    }

    И все равно размер загружаемого файла будет зависеть от настройки в php.ini.
    Ответ написан
    2 комментария
  • Можно ли реализовать mvc без роутера?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Можно ли как-то избежать написания роутинга?

    только библиотеки

    https://github.com/auraphp/Aura.Router (пример работы)
    https://github.com/nikic/FastRoute
    Ответ написан
    1 комментарий
  • Как понять, что стажировка по java плохая, и что с нее стоит уйти?

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

    Теперь что вам нужно сделать
    0. Проверить три раза, что все таски, что повешены на вас решены/закрыты
    Далее в произвольном порядке после разговора с тем к кому вы прикреплены как стажер
    1. Подойти к ТЛ и спросить можно ли браться за баги из багтрекера или для вас есть более срочные задачи
    1.1 Если дано добро на баги - начните с того, на который указали или самого древнего. Если не понимаете, как пофиксить - будет достаточно подтвердить его существование. Идеально - написать тесты под него
    2. Подойти к ближайшему мидлу или лучше джуну и попросить посидеть у него за спиной посмотреть, как он/она пишет код
    3. Посмотреть код коммита за которым вы наблюдали, понять и повторить его
    4. Когда такое начнет получаться и у вас появится понимание что происходит - напроситься на парное программирование
    5. Поговорить с мидлами - что глобального для облегчения их задач вы можете сделать. Нарисовать диаграму, прошерстить тесты и тд и тп
    Ответ написан
    11 комментариев
  • Как понять, что стажировка по java плохая, и что с нее стоит уйти?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Во-первых, надо понять, что без опыта очень тяжело устраиваться, а попасть на стажировку - редкая удача, особенно в enterprise. Многие убили бы за возможность попасть на ваше место. Не разбрасывайтесь возможностями. Во-вторых, работа отличается от учёбы, в офисе никогда не будет рядом преподавателей стремящихся вас научить. Люди, которые могли бы, завалены своими делами. Придётся суетиться самому. В-третьих, не стоит ждать волшебного взлёта профессионального уровня. В среднем чтобы дорасти до разработчика (перестать быть джуном) нужно около трёх лет. Наконец, по неопытности можно не видеть возможности для обучения, находящиеся прямо под носом. Это напоминает дзенские притчи, в которых мастер годами лупит ученика по голове бамбуковой палкой, а ученик удивляется, почему его не учат.
    Ответ написан
    Комментировать
  • Почему в Python 3.7.3 знаки наоборот?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Ну, не любой, видимо, вы же не понимаете. Переведём для ясности инструкцию while на русский язык, получится "пока a == 5". Но a равно 1, а значит не равна 5. То есть блок внутри while никогда не выполнится. Базовая логика, язык тут вообще не при чём.
    Ответ написан
    8 комментариев
  • Где ошибка в запросе?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    SELECT MONTH(purchase_date) AS mont, SUM(price) AS goods_sum
    FROM goods
    GROUP BY MONTH(purchase_date)

    Дополнение, ведь жизнь кончается не завтра.
    SELECT YEAR(purchase_date) AS goods_year,
      MONTH(purchase_date) AS goods_month, 
      SUM(price) AS goods_sum
    FROM goods
    GROUP BY YEAR(purchase_date), MONTH(purchase_date)
    ORDER BY 1, 2
    Ответ написан
    1 комментарий
  • В чем смысл микросервисов (на примере Node.js)?

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

    А на малых проектах микросервисы наоборот всё усложняют и требуют больших вложений.
    Ответ написан
    4 комментария
  • В какой сфере можно заработать на фрилансе?

    sim3x
    @sim3x
    знаю HTML, CSS, JQUERY
    сомневаюсь

    без особых трудностей развиваться как фрилансер
    ни в какой. Везде будут трудности
    Ответ написан
    Комментировать
  • Какие есть библиотеки для комментирования php кода и оценки покрытия кода комментариями?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это бессмысленный вопрос, и ответа на него не существует.

    Чисто процент строк с комментариями можно посчитать примитивным грепом, но следйет отдавать себе отчет, что эта метрика абсолютно бессмысленная, и ничего, кроме вреда, не принесет.
    Ответ написан
    Комментировать
  • Актуально ли изучать nodejs для бекенда или лучше оставаться на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Изучать надо программирование.
    Все эти вопросы, "Какую машину лучше учиться водить - Рено или Фольксваген?" - это детский сад, честное слово.
    Если для вас потолок - это несколько десятков встроенных функций одного языка, то всё равно что учить - ковыряться помаленьку можно на любом.
    Программист же мыслит не инструкциями, а алгоритмами, паттернами, потоками данных, структурами объектов, шинами сообщений. На каком языке это все реализуется - не принципиально.
    Ответ написан
    2 комментария
  • Как отправлять письма функцией mail?

    Зайдите в настройки
    5cc0d95fc11b0298874159.jpeg
    Ответ написан
    Комментировать
  • Насколько адекватно требовать домашнего развития от разработчиков?

    Zoominger
    @Zoominger
    System Integrator
    снг-бодишопов перфоманс ревью опен-сорс

    Лец ми спик фром май харт.

    По теме:
    1). Каким образом вы сделали данные выводы? Вы описываете исключительно свои частные субъективные наблюдения или у вас есть какие-нибудь источники, может, HR-handbook, где прямо описывается практика вешания ярлыков? Не сочтите за какую-то грубость, просто так можно что угодно утверждать.

    2). Вопросы, которые вы перечислили, вполне нормальные, мне на каждом интервью их задавали. Так проверяется мотивация, любовь к своему делу, уровень развития собеседника.

    3). Развиваться на и вне работы - рядовое качество нормального айтишника. Если кто-то говорит, что уже достиг каких-то высот и дальше ему развиваться некуда, то этот человек либо лжёт, либо скоро устареет и потеряет ценность. Область IT меняется постоянно и относительно быстро и изучать что-то самому - суровая необходимость, ибо на ряд специальностей нет образовательных программ даже на Западе.
    Ответ написан
    3 комментария
  • Зачем/Для чего нужен данный код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это геттеры и сеттеры. То есть функции доступа к свойству.

    Зачем? Попробую объяснить простым языком. Большие программы сложно полностью загрузить в мозг отдельного человека и представлять всю структуру целиком со всеми нюансами одновременно. Поэтому принято делить программу на части. Вынос кода в отдельную функцию - один из простых способов. В ООП к этой проблеме подходят более основательно. Класс как явление - тому пример.

    Класс делит программу как минимум на 2 части - то, что внутри класса, и то, что снаружи класса. Считается как бы, что класс пишет один человек, а пользуется им другой человек. Но это может быть и один единственный человек, всё равно так проще, потому что человек сначала пишет класс, тщательно всё там кодит и тестирует, а потом напрочь ЗАБЫВАЕТ, как он устроен внутри, потому что он уже готов и им можно пользоваться. То есть человек выгружает из своей ненадежной человеческой памяти эту инфу и переходит к следующей задаче, в которой просто использует этот класс. Всё, что ему нужно помнить, это то, как пользоваться классом, а всю подноготную можно забыть до тех пор, пока не понадобится улучшить класс. И здесь снова получается удобно. Когда будем улучшать класс (это не обязательно тот же самый человек), можно не думать о том, как его используют. Главное, чтобы способ взаимодействия с классом не изменился (не сильно изменился).

    В вашем примере - это просто заготовка. Дальше нужно наполнять эту заготовку функционалом. В самом простом виде геттер просто возвращает приватное свойство, а сеттер меняет его. Так нужно сделать сразу, чтобы потом не пришлось переписывать всю программу (и согласовывать с коллегами). Но даже здесь уже есть небольшое правило - нельзя передавать отрицательные значения. Условия могут быть сложнее. И вообще всё может быть сложнее. Например, вместо age можно хранить дату рождения. И функция GetAge будет каждый раз высчитывать разницу с текущей датой. По сути для внешнего использования ничего не меняется, но внутри происходит магия.
    Ответ написан
    3 комментария
  • Зачем/Для чего нужен данный код?

    yudinikita
    @yudinikita
    Инженер-программист из России
    Сейчас постараюсь объяснить своими словами, а ниже прикреплю более полную и точную информацию.

    0. age - приватная переменная, которая доступна только в пределах этого класса.

    1. GetAge() - публичная (открытая для всех классов) функция, которая возвращает значение приватной (скрытой от других классов) переменной. Часто называют геттер, от слова Get.

    2. SetAge() - публичная функция, которая устанавливает значение приватной переменной. Называется сеттер, от слова Set.

    Для чего это нужно?
    В первую очередь, для безопасности, а также:
    - соблюдение одного из основных принципов ООП (на котором и построен C#) - инкапсуляция.
    - для того, чтобы нельзя было напрямую изменять переменную из других классов.
    - для того, чтобы задавать дополнительные условия.
    Например, в SetAge() можно написать условие, при котором возраст можно указать только в пределах от 0 до 100, это позволит избежать множества ошибок.

    Также в C# существует более удобный синтаксис:
    public int Age { get; set; }
    Это если нужно просто принимать или устанавливать значение, также set или get можно вообще не писать, если он не нужен. А для более сложной логики можно написать так:
    private int _age;
    public int Age
    {
        get
        {
            return _age;
        {
        set
        {
            if(value > 0) _age = value;
        }
    }


    Статья на docs.microsoft:
    https://docs.microsoft.com/ru-ru/dotnet/csharp/pro...

    Статья про инкапсуляцию и для чего нужны get/set:
    https://metanit.com/sharp/tutorial/3.4.php
    Ответ написан
    Комментировать