• Насколько актуальна книга Марка Саммерфильда?

    Не читал, но не осуждаю)

    Я считаю, что если многие советуют, то можно брать, если хотите.

    Go - язык немного особенный в плане устаревания информации. Если, например, купить книгу по JavaScript того года, то это будет супер-вредно, потому что в те времена это был чуть ли не другой язык.

    А создатели Go с самого начала заявили, что обратная совместимость будет одной из основных характеристик языка. Роб Пайк вообще говорил, что Go 2 никогда не будет.

    Так же, из-за простоты языка существует великолепный феномен, когда разные программисты, решающие одну и ту же задачу, напишут практически одинаковый код.

    Всё вышеперечисленное позволяет мне, даже не читавшему эту книгу, заявить, что вреда она вам точно не причинит, и предположить, что принесёт пользу.

    P. S. Совет лично от меня: читайте книги по программированию на английском. Очень часто переводчики просто бредят как ChatGPT, и некоторые книги просто невозможно читать.
    Ответ написан
    2 комментария
  • Как правильно распарсить json?

    @12rbah
    В правый столбик тут нужно кинуть JSON а в левом будет сгенерирована нужная структура, которую можно будет использовать для маршалинга/анмаршалинга
    Ответ написан
    Комментировать
  • Как устранить утечку памяти при множественных соединениях в net/http Golang?

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

    var client = &http.Client{
        Timeout: time.Millisecond * 100,
    }
    
    func scan(ip string) (error, string, string, string) {
        resp, err := client.Get("http://" + ip)
        // Здесь сразу желательно обработать ошибку ...
        
        // Закрываем соединение в конце выполнения
        // функции в любом случае,
        // даже если где-то возникнет ошибка
        defer resp.Body.Close()
    
        // Закрытие неиспользуемых соединений
        // Нужно ли это теперь?
        // client.CloseIdleConnections()
    
        // Проблема могла быть тут
        // if err != nil {
        //     return err, "", "", ""
        // }
    
        headers := buildHeaders(resp.Header)
        body, _ := io.ReadAll(resp.Body)
    
        // и это нам уже особо не нужно
        // resp.Body.Close()
    
        return err, headers, string(body), resp.Status
    }
    Ответ написан
    3 комментария
  • Как выбрать архитектуру автономного веб-приложения?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Архитектура приложения разве может быть универсальной? Она зависит от самого приложения. Автономность - это скорее отдельное свойство архитектуры, чем ее стержень, но опять же зависит от конкретной задачи.

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

    С базой данной сложнее, конечно же. В идеале стоит дать пользователю контролировать, что именно он хочет хранить локально. Но если данных не так уж и много (больше 5 Мб, но не гигабайты), то можно и всю базу скопировать, а потом обновлять ее. Возможно, стоит сделать упор на то, как обновлять базу мелкими патчами, если это делается часто, либо тупо перезагружать всю базу заново, если это делается редко. В общем, повторюсь, архитектура и ее детали зависят от задачи, и автономность это, скорее всего, всего лишь одна фича из многих.
    Ответ написан
    6 комментариев
  • Можно ревью супергрязного(наверное) кода на с#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я тоже добрый сегодня.

    Общее впечатление что код - пенопласт. В нем очень много строк но очень мало бизнес логики.

    1) Во первых непонятно где фокусироваться. Смотреть формочки - не интересно они состоят в
    основном из шумящих событий которые радуют глаз но делают очень мало действий. Это как смотреть
    байткод LLVM или Java.

    2) Вот такой комментарий я-бы не писал. Он звучит как капитан-очевидность. И ежу понятно что это Main.

    /// <summary>
            /// Главная точка входа для приложения.
            /// </summary>
            [STAThread]
            static void Main()


    Если твой преподаватель требует - то пускай будет. Но я-бы убрал.

    3) Вот такие название как Classes, надо убрать. Они считаются дурным тоном. У тебя-же есть понимание
    что внутри? Вот прояви фантазию и дай какое-то бизнесовое название. У тебя в названии вообще висит
    газо-анализатор. Используй это.

    4) Вот здесь имеет смысл вводить поясняющую переменную. Это основы рефакторинга
    о которых писал Кериевски.

    Mixtures[mixture].measurementResults[cycle] = gasType == "mixture" ? concentration : Mixtures[mixture].measurementResults[cycle] - concentration;
            }//сохранение текущего результата в конкретный цикл конкретной смеси


    И комментарий должен стоять над кодом а не внизу.

    5) Я не знаю зачем в 21 веке так сложно конкатенировать строку. Это не Си и не Java1.1.

    table.GetControlFromPosition(i, table.RowCount - 1).Text = String.Concat("СКО", ":", Mixtures[i].sko.ToString());


    Вот я специально посмотрел в learn портал https://learn.microsoft.com/en-us/dotnet/csharp/ho... и там пишут что вполне можно брать операцию плюс или стринговую интерполяцию.

    Вобщем старайтесь писать меньше слов. Это - хорошая точка приложения сил для развития как разработчика.
    Ответ написан
  • Как правильно решить конфликт?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    предлагает использовать либо одно, либо другое

    Кто такое предлагает? Наоборот, в большинстве случаев хочется оставить и то и другое.

    Как правильно решить этот конфликт?

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

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Обновляйте ветку используя дополнительный рабочий каталог, либо другую копию репозитория, чтобы не влиять на работу в основном рабочем каталоге.
    Ответ написан
    9 комментариев
  • Чем заменить сводки в виде xls файла?

    @Iv_and_S
    описана только часть БП (бизнесс процесса).
    также следует значительно расширить и проработать требования к будущему решению.
    плюс решение о выборе стека/архитектруры , во многом зависит от имеющейся на предприятии (может и никакой) архитектуре уровня Enterprise. также большое значение имеют: бюджет, сроки , степени "зрелости" проблемы и ее масштаба.

    в итоге по описанию можно только сказать " что то сделать вероятно можно".
    Ответ написан
    Комментировать
  • Какое место БД в Чистой Архитектуре?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Первая схема в вопросе - это так называемая гексагональная архитектура. Многослойную архитектуру в виде круга не рисуют как раз потому, что центра у неё нет, скорее концы или верх и низ.
    Ответ написан
    Комментировать
  • Где искать svg всех городов, районов, областей, стран?

    hint000
    @hint000
    у админа три руки
    CityCat4, почти согласен
    Я бы начал с 2gis или Яндекс-Карт.
    Только не 2gis или Яндекс, а OSM (OpenStreetMap), ибо Open - ничего не спрятано, вот они все исходные данные, вот оно описание формата, легче уж некуда.
    https://www.openstreetmap.org/#map=12/42.8768/74.6013
    https://wiki.openstreetmap.org/wiki/RU:Tag:boundar...
    Ответ написан
    2 комментария
  • Почему ссылка AJAX запроса ссылается не на php файл?

    @psiklop
    Веб-сервера уже по умолчанию настроены автоматически искать index.php в папке
    Я сам так часто делаю без всяких танцев с бубном положить в любую папку и заработает, например: ajax/index.php
    Ответ написан
    Комментировать
  • Javarush.Стоит ли там учиться, или же лучше по книжкам?

    general
    @general
    25 star General
    В любой профессии есть знания и навыки.
    Могу посоветовать книги: Head First Java (легко гуглится) и Thinking in Java (но она не для новичков).

    Thinking in Java очень полезно прочитать перед походами на собеседование - помогает структурировать имещниеся знания. Ну, а в плане практики, замене javarush пока нет.
    Ответ написан
    Комментировать
  • Javarush.Стоит ли там учиться, или же лучше по книжкам?

    @Rustam_Aliev
    Ну, как ни крути, в рунете пока нет ничего лучшего в плане изучения Java на практике. Я брал годовую подписку, но мне хватило где-то 6 месяцев ударного обучения (решал задачи на Javarush`е, читал книги, смотрел видео), чтобы начать рассылать резюме. Тут есть свой минус - канеш, никто заставлять учиться не будет: выезжаешь только на само мотивации (и самобичевании в дни когда все тупо влом))))
    Ответ написан
    Комментировать
  • Javarush.Стоит ли там учиться, или же лучше по книжкам?

    @deeze-deeze
    Прошел курсы на Джавараш по совету знакомого джависта-сениора. Что сказать? Самая сильная сторона курса - практические задачи, они реально неплохи, и их дофига. Нужно быть правда готовым к тому, что курс покроет только джава кор. Маловато теории но вроде такая позиция создателей курса: что нужно учиться гуглить. Я бы советовал учить теорию по книгам и проходить задачки на Джавараш. Валидатор иногда тупит - так что приготовьтесь. Но мгновенный результат по решению задач - радует.
    Ответ написан
    Комментировать
  • Чем array_walk лучше foreach?

    @novrm
    Работая по ссылке с foreach можете налететь на очень неприятны грабли, которые незаметны и сильно попортят вам нервы.
    Особенно когда разработчики неопытные.
    И именно - ссылку после foreach нужно удалять.
    array_walk для работы по ссылке - само-то, лишь тем и лучше.
    В других случаях — будь попроще — используй foreach.

    Кроме того в array_walk становится очень удобный для оперирования многомерными массивами,
    а также замыкания могут также наследовать переменные из родительской области видимости.

    Пример:
    array_walk($guide['postInGuides'], function (&$postInGuide, $key) use ($guide, $viewRenderer) {
        $postInGuide['post']['url'] = [
            'read' => $viewRenderer->url('guide/guide/post', [
                'slugGuide' => $guide['name'],
                'slugPost'  => $postInGuide['post']['slug'],
            ]),
            'update' => $viewRenderer->url('post/post/action', [
                'slugPost'  => $postInGuide['post']['slug'],
                'action' => 'update',
            ]),
            'delete' => $viewRenderer->url('post/post/action', [
                'slugPost'  => $postInGuide['post']['slug'],
                'action' => 'delete',
            ]),
        ];
    });
    Ответ написан
    Комментировать
  • Чем array_walk лучше foreach?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Сделайте тоже самое, только запихните не $item = 'hello!'; а что-то посложнее и разница будет меньше.
    Ну и банально избежать дублирование кода.
    function test_print($item2, $key) 
    {
        echo "$key. $item2<br />\n";
    }
    array_walk($array1, 'test_print');
    array_walk($array2, 'test_print');
    array_walk($array3, 'test_print');
    array_walk($array4, 'test_print');
    array_walk($array5, 'test_print');
    //вот тебе новая выгода:
    $func_name = 'test_print';
    array_walk($array5, $func_name);

    Прикиньте это c foreach

    В целом foreach и if else творят чудеса и позволяют сделать что угодно. А порой это даже быстрее работает. Но выглядит не читабельно, по сути не гибко и т.д.
    Ответ написан
    Комментировать
  • Как сделать проверку статуса платежа и дальнейшее выполнение функций?

    YooMoneyHelp
    @YooMoneyHelp
    Здравствуйте. Рекомендуем ориентироваться на уведомление об успехе платежа payment.succeeded: https://yookassa.ru/developers/using-api/webhooks#...
    Также, можете использовать запрос get_payment: https://yookassa.ru/developers/api#get_payment
    Периодичность запросов определяется вами самостоятельно.
    Если варианты выше по каким-то причинам вам не подходят, напишите на почту технических специалистов ЮKassa: b2b_support@yoomoney.ru Коллеги разберут ваш сценарий более детально и все расскажут.
    Ответ написан
    Комментировать
  • Как сделать проверку статуса платежа и дальнейшее выполнение функций?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Страница result не имеет вообще никакого отношения к успешности платежа. На неё любой придурок и так может перейти, руками, без всякой оплаты.
    Успешность оплаты подтверждается либо колбеком банка, либо отдельным запросом в банк. После которых полученная информация записывается в базу данных, а затем "выполнение кода продолжается" и код начинает отправлять всякие СМС и емейлы. После получения подтверждения, а не на странице result.

    Соответственно, на любой странице, куда попадает пользователь, будь это страница result, или "на главную страницу с выбором услуги" код должен проверять состояние платежа по базе данных. Если заказ оплачен успешно, то так и писать. Если колбек ещё не пришел, то можно самостоятельно запросить информацию о статусе платежа.
    Ответ написан
    Комментировать
  • Как подтвердить регистрацию в linkedin с помощью телефона?

    @tmpolina
    1) На телефоне запускаете VPN, выбираете страну UK (возможно и с другими тоже работает)
    2) С браузера в телефоне заходите на linkedin, выбираете англ.язык
    3) Регистрируетесь. Телефон не просит.

    Не благодарите :)
    Ответ написан
    10 комментариев
  • Актуально ли изучать java 8?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Джава полностью обратно совместимая.
    Так что изучайте спокойно 8ю, потом подтяните фишки, которые появились позже.
    Ответ написан
    24 комментария