• Как сделать что б функция выполнялась бесконечно раз в данном коде?

    customtema
    @customtema
    arint.ru
    Страх.
    Ответ написан
    Комментировать
  • Кто нибудь может сказать что это? За мной следят? У меня паранойя?

    27cm
    @27cm
    TODO: Написать статус
    Предположу, что вы кот и ваш хозяин купил лазерную указку)
    Ответ написан
    Комментировать
  • Как правильно читать книги по программированию?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    сперва были вопросы "как стать программистом"
    затем вопросы "что читать"
    теперь уже "как читать"
    может скоро будет "как учить алфавит, а то за меня родители пишут на тостере".

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

    Добавлю еще момент:
    Почитайте статью megamozg.ru/post/10126
    Там очень понятно указано, что профессиональный навык и боль программиста - гиперконцентрация, которая необходима, чтобы освоить понятия и вещи для профессиональной работы. 40 минут это как-то несерьезно.
    Ответ написан
    3 комментария
  • Стоит ли становиться "чистым" программистом?

    @766dt
    "Программирование" это не область производства, это инструмент, помогающий решать различные задачи в разных производственных областях.

    Если "чистый программист" это тот кто только пишет код, то это как человек, который владеет инструментом, но пользуется им только по инструкции. Человек который не может ничего сделать сам никогда и не будет по настоящему востребован.

    Разработка, сопровождение, и тем более автоматизация каких-либо процессов или систем, не может быть голым программированием, и требует знаний какой-то предметной области. Этой областью может быть и робототехника и биоинженерия и BigData.

    "Программирование", как инструмент очень молодо, и, по моему мнению, еще даже не начало раскрывать свой полный потенциал, и любой владеющий этим инструментом, особенно цельно, в отрыве от конкретных языков и платформ, будет очень востребован. Уж в этом то веке точно.
    Ответ написан
    Комментировать
  • Карьера программиста после 30+. Миф или реальность?

    @Alexey_Kutepov
    Разработчик программного обеспечения
    Миф - неплохой стиральный порошок, а не программист после 30-ти
    Ответ написан
    Комментировать
  • Хочется хорошо и качественно разрабатывать, но как?

    He11ion
    @He11ion
    PHP-monkey
    www.phptherightway.com например
    Ответ написан
    Комментировать
  • Какие книги есть по правильному написанию кода, по правильной структуре кода?

    Melkij
    @Melkij
    PostgreSQL DBA
    Классика:
    Совершенный код Макконнела
    Рефакторинг Фаулера
    Ответ написан
    2 комментария
  • Как лучше построить дерево с городами в Yii2?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    Использую для этого нативные связи в фреймворке.

    $city = City::findOne( ... );
    $city->region->country


    или в обратную сторону

    $country = Country::findOne( ... );
    foreach( $country->regions as $region ) {
        foreach ( $region->cities as $city ) {
            echo $city->name
        }
    }


    Не забывать о жадной загрузке with() и кэширование через Yii::$app->db->cache( function () {} ) с использованием зависимостей.

    Добавлено:

    1. Почитайте о связях: www.yiiframework.com/doc-2.0/guide-db-active-recor...
    2. Почитайте о жадной и ленивой загрузке: www.yiiframework.com/doc-2.0/guide-db-active-recor...
    3. Почитайте о кэшировании результатов запросов: www.yiiframework.com/doc-2.0/guide-caching-data.ht...
    4. Почитайте о зависимостях: www.yiiframework.com/doc-2.0/guide-caching-data.ht...
    Ответ написан
    Комментировать
  • Как восстановить знания по C++ на сегодняшний день?

    @coodan
    Думаю, слова о множественных парадигмах и есть ключ, к тому, к чему Вы стремитесь. Ведь Вас интересуют новые возможности?

    Конечно, Вам стоит изучить подходы, связанные с generic programming. Boost в значительной степени основан на этой парадигме. Действительно, там, как и с паттернами вообще, возможны трудноулавливаемые ошибки. Но этот подход сильно меняет суть и облик С++, поэтому может быть важен для Вас.

    Начинать generic programming стоит с его основ - с того, чтобы по-новому взглянуть на STL и контейнеры. Effective STL, по-видимому, самая простая и хорошая книга об этом:
    www.amazon.com/Effective-STL-Specific-Standard-Tem...

    P.S. На конкретном простом примере. Когда мне понадобилась работа с графами, изучил вопрос и просмотрел библиотеки, которые обеспечивают данную функциональность. Некоторые из них заброшены не поддерживаются. Другие вроде бы и ориентированы на ООП, но их интерфейс производит впечатление какой-то запутанности, недостаточно ясного понимания, что порождает сомнения в цельности и безошибочности их реализации. Лучшим решением в этой области на тот момент, по моему мнению, оказалась библиотека boost::graph. Но это чистое обобщенное программирование, как оно есть. Без понимания того, что это такое, умения это использовать и на этом писать, делать там нечего. С ООП это не стыкуется вовсе. Это другое.

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

    ptchol
    @ptchol
    Linux system administrator
    Полагаю универсального решения здесь нет. Все зависит от того, сколько "сервисов" пользуются вашей базой, насколько допустим простой каждого из них и насколько гибок Ваш код.
    Можно представить себе, что миграция это изменение представления данных. Таким образом, у нас открывается потенциальная возможность использовать view, и работа из кода не напрямую с данными, а с этими самыми view. Т.о. Вы можете создавать новые временные столбцы, нацеливать на них view, а заполнять их при помощи триггера к примеру.
    В mysql 5.6 (не прошло и 10 лет !, или прошло ?), в случае если Вы просто меняете имя столбца, копирование во временную таблицу, с соответствующим локом, не происходит.
    Т.о. если вы обернете в единую транзакцию (с локом) переименование столбца, и нацеливание view обратно на "изначальное" имя, столбца, вероятно Вам удастся добиться минимального даунтайма.
    Миграция, т.о. становится многоходовочкой, но Вы избавляете себя от страха за потерю данных после кривой миграции и упрощаете себе переключение между старыми \ новыми данными, т.к. вы управляете этим из кода миграций.

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

    Думаю Вам стоит прикинуть всю сложность операционных работ по реализации данного решения, и решения описанного Fortop чуть выше. И понять, чем Вы можете поступится, и что в Вашей системе проще реализуется сейчас, и через 1 год.
    Ответ написан
    Комментировать
  • Как безопасно провести выкладку проекта с миграциями?

    @Fortop
    Tech/Team lead
    Для интенсивного изменения структуры большой базы используйте реплики.

    Имеем пару мастер-слейв. При необходимости обновления схемы:
    • отключить слейв
    • провести миграции на нем
    • сделать его мастером и подключить к нему новый слейв
    • обновить код проекта при необходимости
    • переключить его на новый мастер
    • отключить бывший мастер
    Ответ написан
    5 комментариев
  • Почему на многих клавиатурах присутствует кнопка windows, в чем может быть причина?

    @mamkaololosha
    У вас "тория заговора и только я спасу этот мир" головного мозга. С виндой поставляют виндовые клавы, с маками маковые, с линуксом с тюксом. Успокойтесь. Всё уже решили за вас и изобрести новый стандарт, перевернуть мир и заработать мильярд на вещах "которые так очевидны но из-за того что 90% людей быдлы, то никто еще до этого не додумался" у вас не выйдет.
    Ответ написан
    Комментировать
  • Зачем в PHP ссылки?

    MintTea
    @MintTea
    Ну так, сходу:

    Модификация элементов внутри цикла требует ссылки:
    foreach ($array as &$item) {
        $item *= 2;
    }

    Рекурсивное замыкание реализуется ссылкой:
    $recursiveClosure = function() use (&$recursiveClosure) {
        $recursiveClosure();
    };

    Передача параметров в функцию по ссылке:
    function foo(&$result)
    {
        $result = 'result';
    }


    Можно продолжать. Я удивлен, как вы не столкнулись ни с одним из вышеперечисленного за год.
    Ответ написан
    6 комментариев
  • Производительные вебсокеты?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    обычный нативный сокет с помощью gcc делаете и никаких проблем нет.
    раз
    два
    Ответ написан
    2 комментария
  • Производительные вебсокеты?

    Lerg
    @Lerg
    Defold, Corona, Lua, GameDev
    Go производительнее python и node.js, это не секрет. Но и разработка на нём будет чуть сложнее. Конкретные цифры вы получите только на этапе стресс тестирования. Можете хотя бы тот же hello world сделать и посмотрите сколько одновременных подключений выдержит ваш компьютер.
    Ответ написан
    Комментировать
  • Не удается преобразовать строку в целое число php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Первым делом идешь и читаешь phpfaq.ru/na_tanke, пока до тебя не дойдет вся вопиющая бессмысленность той строчки, что ты тут написал.
    Потом узнаёшь о том, что фрагмент в РНР из браузера не передаётся.

    После этого ищешь какой-нибудь другой способ получить то что тебе нужно.
    Ответ написан
    1 комментарий
  • Зачем в yii2 классы и объекты для генерации html?

    MrLoki
    @MrLoki
    I will.
    Ну вы даёте, одну из толковых частей фреймворка обзываете.
    В большом и сложном проекте, как правило, есть большая и сложная логика, а большая и сложная логика — предполагает большие и сложные условия. Городить условия во view — дело неблагодарное, потому что view — только представление и ничего больше, и чем оно проще тем лучше.

    Далее по списку.
    Вы в своем примере в HTML совершили ошибку, которая будет стоить вам гибкости.
    href="/index.php?r=/client/create"
    Тут должен быть использован генератор url, но тогда код становится уже сложнее и козырнуть «простотой и понятностью» не выйдет, не так ли? Это позволяет, например на начальном этапе не париться о «красивых» URL, ссылаясь на action/controller, а ближе к концу за 1 раз настроить роутинг по всему проекту, ничего не меняя во вью.

    Попробуйте нарисовать checkbox в html. Не простой, а выбранность которого будет зависеть, от параметра модели. Я подскажу:
    <input type="checkbox" value="1" name="name" <?php if($model->selected) ?>checked <?php endif ?>>

    Уже не так красиво?
    Ещё можете нарисовать select чтоб уж совсем убедиться в необходимости Html-хелпера.

    Сейчас вы можете сказать, про вынесение генерации HTML в файлы, но я вас заверю. Во-первых это породит либо множество файлов и кучу условий (одна форма с кастомным select другая со стоковым, но с label, у третьей ещё что-то), и подключение этой кучи файлов будет выполняться дольше, а без компиляции шаблонов — постоянно дольше. Во-вторых, вы снова теряете в гибкости.

    В Yii есть проблемы, но хелпер Html — не одна из них.
    Ответ написан
    Комментировать
  • Знаете ли Вы онлайн курсы по математике?

    Symphony
    @Symphony
    Ответ написан
    Комментировать
  • Может ли в highload проекте c архитектурой frontend + REST backend использоваться PHP на обеих сторонах?

    стоит ли придумывать оптимизации в логике обмена фронтенда с бакендом в реализации на Yii+PHP или уже есть более производительные решения на других языках?

    Имхо, не стоит. Вообще говоря - у вас какое - то невероятно странное решение на мой взгляд. То есть по сути что вы делаете? Ага, пользовательский браузер устанавливает соединение с Вашим "фронтендом", отсылает ему HTTP-запрос, ваш "фронт" его получает, каким-то образом обрабатывает, устанавливает соединение с бэком, отсылает ему запрос, бекэнд его получает, обрабатывает каким-то образом, отвечает вашему фронту и потом фрон опять каким-то образом обрабатывает полученный ответ и отдает нечто клиенту.
    Вам не кажется что это решение в принципе не может подходить под определение Highload?
    У меня в крупном высконагруженном проекте есть, конечно, разделение на сервисы, которые физически на разных серверах, но они всегда отдают полную информацию в ответ на запрос(то есть если по запросу ясно, что это требуется для конечно пользователя, я отдам сразу html) и реализовывают принципиально разный функционал. Делается это для того, что бы модули друг от друга не зависили, то есть - навернулось что-то одно, работает другое. А в вашем случае зачем это? Бекэнд сможет работать, да, а фронт нет и толку от бека для клиента нет никакого. Короче, я, мягко говоря удивлен вопросом :=)
    Ответ написан
    2 комментария
  • Сложная жизненная ситуация у девушки, решившей стать программистом. Что делать?

    Gromobanan777
    @Gromobanan777
    Self-employed professional
    Имхо, сейчас можно овладеть достаточными знаниями и без ВУЗ'а. RoR сейчас достаточно востребован, да и простая вёрстка тоже может принести деньги. Всяческих вебинаров сейчас предостаточно, но очень поможет хорошее знание английского, так как большая часть на нём. Топик по теме.
    Ответ написан
    Комментировать