• Насколько адекватно требовать домашнего развития от разработчиков?

    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
    Ответ написан
    Комментировать
  • За работу в офисе больше платят, или как верстальщики 1000$ зарабатывают?

    Decadal
    @Decadal
    Извечный вопрос о несправедливости в нашем мире.
    Обширные знания, богатый опыт, личные качества не гарантируют хорошей зарплаты, верно и обратное. Поиском сотрудников занимаются HR, у каждого из них свой подход к тому, как подбирать кадры. На технических собеседованиях то же самое - у каждого интервьювера, особенно если это заядлый программист, но ни разу не менеджер и не специалист по подбору кадров - свои подходы, практики, и они все тоже делают ошибки. Если вы видите, что человек знает меньше вас но получает больше, совершенно нечему удивляться. Значит, вас не было в то время и в том месте, где HR искал кадров на хорошую зарплату.
    Всё сводится к тому, что вы стоите столько, за сколько можете себя продать.

    Ещё скажу - кто набирает в офис? Как минимум, тот, у кого есть деньги на офис. Значит, на кадры у него тоже деньги найдутся.
    Ответ написан
    2 комментария
  • Как сэмулировать нажатие на ввод?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Неправильно. Вы передаёте строку "chr(13)+chr(10)", а не результат работы функций.
    Либо передавайте chr(13) . chr(10), либо "\r\n"
    Ответ написан
    Комментировать
  • Как называется панель справа для быстрой навигации по коду?

    0xD34F
    @0xD34F
    minimap
    Ответ написан
    Комментировать
  • Почему на моём vps стоит 24 маска. Разве 32 не была бы безопаснее?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    С точки зрения безопасности, все VPS-ки, включая ваш, торчат публичным IP адресом в интернет. Ваш конкретный хостер просто не заморачивается созданием приватной сетки на каждого пользователя.
    Ответ написан
    Комментировать
  • Как реализовать такое в роутинге?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Совершенно не представляю как реализовать такое:

    как повезло что это опенсорс и можно посмотреть исходники:
    https://github.com/laravel/framework/blob/5.8/src/...
    Ответ написан
    Комментировать
  • Как будет реализовано такое условие на языке программирования?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Если Объект[выбрал_пользователь].Объект.Тип = Тот_ещё_тип тогда Скажи("Ой!")
    Ответ написан
    Комментировать
  • Каковы _существенные_ (практически значимые) отличия Symfony от Laravel?

    @EvgeniiR
    https://github.com/EvgeniiR
    Eloquent = Doctrine?)
    Советую вам хоть немного разобраться что это такое, и какие паттерны реализованы в Доктрине, а какие в елоквенте.

    Мне в Laravel понравилась свобода - то есть при желании я могу запросто напихать в шаблоны PHP-код и в запросы к базе - RAW-SQL и запихнуть эти запросы хоть в роутер))))
    Пишите на чем угодно, все равно в помойку отправится, потому что подерживать такое никто не будет.
    Фреймворк для того что вы хотите делать не нужен вообще.

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

    Опять же - вам не нужен фреймворк. Фреймворк это каркас для приложения которое вы будете писать.

    Вы наслушались где-то про фреймворки, и теперь пытаетесь рассуждать о них даже не понимая что это такое и для чего они нужны.
    Вам нужен готовый конструктор / CMS
    Ответ написан
    Комментировать
  • Когда лучше работать с объектами, а когда с массивами, на примере?

    isEmpty
    @isEmpty
    предавать массив во views нет никакой необходимости, работать с объектом намного удобнее.
    Ответ написан
    Комментировать
  • Какое выбрать кресло для программиста?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Эргономичное посоветую. А в этой области за последние лет 10 ничего особенно не поменялось - Herman Miller Aeron.

    Дома уже лет 6 использую Duorest Alpha 80H. Не Аэрон конечно, но всё равно очень доволен.

    То, что у вас по ссылке - это не кресло для программиста, а просто кресло, причём уровня офисного ширпотреба.
    Ответ написан
    2 комментария
  • Почему класс объявляется внутри проверки на существование класса?

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

    Пример:

    В php7 добавилась функция error_clear_last

    Если ты запустишь такой код в php7, то все будет ок
    var_dump(error_get_last());
    error_clear_last();
    var_dump(error_get_last());

    но если в php5 то будет ошибка

    ----

    Теперь другая ситуация, объявляем в php5
    function error_clear_last() {}
    будет все ок, но в PHP7 будет ошибка тк существует уже такая встроенная функция

    ----

    Задача, надо чтобы работало и там и там
    if (!function_exists('error_clear_last')) {
        function error_clear_last() {}
    }

    В итоге, в PHP7 функция уже существует и будет использоваться встроенная, в PHP5 функция не существует и будет использоваться твоя.

    У тебя, тоже самое, только с классами.
    Ответ написан
    1 комментарий
  • Как получить таблицу "зеброй"?

    @EvgeniiR
    https://github.com/EvgeniiR
    А причем тут Symfony и Twig то?)
    Это делается одним CSS параметром :nth-child
    См. htmlbook.ru/css/nth-child
    <!DOCTYPE html>
    <html>
     <head>
      <meta charset="utf-8">
      <title>nth-child</title>
      <style>
       table { 
        width: 100%; /* Ширина таблицы */
        border-spacing: 0; /* Расстояние между ячейками */
       }
       tr:nth-child(2n) {
        background: #f0f0f0; /* Цвет фона */
       } 
       tr:nth-child(1) {
        background: #666; /* Цвет фона */
        color: #fff; /* Цвет текста */
       } 
      </style>
     </head>
     <body>
      <table border="1">
       <tr> 
        <td>&nbsp;</td><td>2134</td><td>2135</td>
        <td>2136</td><td>2137</td><td>2138</td>
       </tr>
       <tr> 
        <td>Нефть</td><td>16</td><td>34</td>
        <td>62</td><td>74</td><td>57</td>
       </tr>
       <tr>
        <td>Золото</td><td>4</td><td>69</td>
        <td>72</td><td>56</td><td>47</td>
       </tr>
       <tr>
        <td>Дерево</td><td>7</td><td>73</td>
        <td>79</td><td>34</td><td>86</td>
       </tr>
       <tr>
        <td>Камни</td><td>23</td><td>34</td>
        <td>88</td><td>53</td><td>103</td>
       </tr>
      </table> 
     </body>
    </html>
    Ответ написан
    3 комментария
  • Почему большинство алгоритмов хэширования состоит из 16 символов?

    15432
    @15432
    Системный программист ^_^
    Это форма записи произвольного набора данных. Вы можете его и в base64 кодировать и будет вам более короткая строка из всех символов латиницы.
    Удобство шестнадцатеричной записи заключается в кратности степени двойки - на один байт (8 бит) уходит ровно два символа.
    Ответ написан
    Комментировать
  • Как изменить текст в phpmyadmin?

    @Barmunk
    потому что это сериализованный массив, его сначала нужно конвертировать, а потом сохранить заново.
    Ломается потому что в s:17:"BOOK APPOINTMENT:" 17 это не просто циферки, а кл-во байт в string

    пример https://ideone.com/sUlbO2
    Ответ написан
    4 комментария
  • Почему неправильно регулярное выражение в PHP?

    romanko_vn
    @romanko_vn
    флаг u добавить нужно
    preg_replace('/(@[a-zA-Zа-яА-Я0-9]+?)#(\d+)/u', '<a href="/user/$2" class="user-tag">$1</a>', $text);

    вместо [a-zA-Zа-яА-Я0-9], можно так \w
    Ответ написан
    3 комментария
  • Какие области в веб - разработке осваивать в перспективе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Надеюсь, вопрос закроют как дубль. Потому что ну сколько можно уже. "Я ничего не знаю, ни к чему душа особо не лежит, но хочу быть молодым перспективным владельцем стартапов, газет, пароходов поэтому скажите мне какой язык программирования делает людей богатыми и успешными. но только чтобы особо напрягаться не нужно было!"
    Ответ написан
    4 комментария
  • Автозамена в xml файле?

    @mystifier
    Например, XSLT
    Ответ написан
    Комментировать