• Взаимодействие приложений на разных стэках?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ничего нового не выдумали

    * шареная память
    * пайпы
    * сокеты
    * надстройки над сокетами (TCP)
    * файлы
    Ответ написан
    Комментировать
  • OC для маршрутизации на x86-64?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Ужасный pfsense на самом деле ок. С прокладкой обычно проблема бывает.
    Ответ написан
    Комментировать
  • Есть ли функция в fiber, подобная функции set в gin которая записывает пару ключ/значение в определенном контексте?

    В контекст можно передать нужные пары ключ-значение с WithValue
    ctx := context.Background() // исходный контекст
    ctx = context.WithValue(ctx, "foo1", "bar1") // переопределенный
    ctx = context.WithValue(ctx, "foo2", "bar2") // переопределенный

    И это безотносительно фреймворка
    Ответ написан
    1 комментарий
  • Истина в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Выражение 8 == True не истинно потому, что булевые значения в Python - подтипы целых чисел. True - это фактически единица, а 1 не равно 8.

    В выражении if это срабатывает потому, что в контексте условных выражений производится неявное преобразование числа 8 в булевое значение. То есть интерпретатор сначала преобразовывает число (или что-либо другое) в 1 или 0 в соответствии с правилами преобразования, а потом выполняет с получившимся значение логическую операцию.
    Ответ написан
    Комментировать
  • Как выключить историю команд Bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Может надо не HITSIZE а HISTSIZE, и соответственно не HITFILESIZE а HISTFILESIZE?

    Почитайте также про HISTCONTROL
    Ответ написан
    Комментировать
  • Скомпилировать go проект под линь?

    vabka
    @vabka
    Токсичный шарпист
    Нужно просто указать параметры GOOS и GOARCH при сборке.
    https://habr.com/ru/articles/249449/
    Ответ написан
    6 комментариев
  • Как тестировать сетевые запросы в Go?

    @falconandy
    Я исользую Docker для запуска сервера. Я запускаю сервер на порте 8081, но Docker перенаправляет запросы на 8081 с порта 8000, куда я могу "дотянуться" из браузера или Postman. Тесты я тоже запускаю в Docker. И сервер и тесты запущены в едином Docker-compose.


    Из контейнера тестов вы должны обращаться к контейнеру сервера не по localhost, а по имени контейнера сервера и по оригинальному порту, на котором висит сервер. Т.е. что-то типа http://server:8081
    Ответ написан
    Комментировать
  • Как правильно настроить pgbouncer и postregsql?

    Melkij
    @Melkij
    PostgreSQL DBA
    max_client_conn в конфиге баунсера - это максимальное число возможных подключений от клиентов к самому баунсеру.
    Если у вас max_client_conn стоит, например, 100, а каждый из 20 бекендов попробует открыть по 10 соединений с баунсером - то первая сотня подключений будет успешна, остальные получат ошибку "no more connections allowed (max_client_conn)"
    max_client_conn ставится в 10000 и про него надолго забываем. Штука фактически бесплатная, libevent хорошо умеет с таким работать. Но требуется выставить корректный open file limit. Каждый коннект - это файловый дескриптор, если не скорректировать настройки ОС - то будет неприятный сюрприз.

    Далее, max_connections базы оставить как есть. Максимум в 100 процессов базы на всего 8 ядер - это и так довольно-таки много, но и урезать смысла нет.
    max_user_connections не трогать если нет причин для этого.

    pool size 20 на всего лишь 8 ядер CPU может быть чрезмерно. Но далее нужно смотреть уже мониторинг. Сколько реальных процессов базы в работе, очередь ожиданий на баунсере, хватает ли баунсеру процессорного времени (тут скользкий момент, баунсер строго однопоточный и может упираться в производительность одного ядра CPU)
    Ответ написан
    2 комментария
  • Первое предложение о работе, как поступить?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Джуны и в лучшие времена были не нужны, а теперь тем более. Поэтому хвататься надо за любую возможность, а потом сжав зубы получать свой первый год непрерывного опыта, с которым будет проще потом устраиваться.
    Ответ написан
    1 комментарий
  • Как изучить язык баз данных SQL?

    akaish
    @akaish
    Стек Java\Android
    К сожалению, чтобы Вам что-то посоветовать - необходимо узнать Ваш личный "фундамент". Хоть указанная Вами книга и будет полезной (даже с учетом того, что она писалась для MySQL версии 4.х, фундаментально как в СУБД, так и в SQL и в конкретном синтаксисе MySQL последнее, наверно, десятилетие, ничего не менялось), я бы посоветовал следующий алгоритм обучения:

    1) Знакомство с основами реляционной алгебры, нормальными формами и реляционной моделью. Без фанатизма, прочтение и осознание статей даже на Википедии хватит за глаза.

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

    3) Выбор диалекта языка. Подбор литературы (практически любой, за исключением книг из серии "{0} для чайников" и "100 и одно решение для {0}"). На этом этапе важно определиться также с инструментарием, который Вы будете использовать в дальнейшем. Для начала подойдет любой онлайн интерпретатор SQL кода, к примеру sqlfiddle. Но по мере изучения Вам понадобятся более сложные инструменты.

    4) Знакомство с UML. Точнее, если по минимуму, с той частью, которая затрагивает прототипирование БД. SQL и СУБД - это инструменты, которые позволяют автоматизировать процессы бизнес логики. UML позволяет эти процессы описать и на основе этих процессов создать прототип схемы БД, от которого уже можно идти к конкретной реализации.

    Итак. Четыре базовых шага выполнены. Дальше все просто, перевариваете информацию и занимаетесь практикой от простого к сложному (в комментариях уже указывали вполне годные наборы задачек). Попутно узнаете особенности программной реализации выбранной Вами СУБД. И внимательно читаете документацию от разработчика. На примере SQLite, у них подробно разобрана семантика запросов: SQLite CREATE. Под MySQL найдете сами.

    Теперь поясню, почему все четыре шага важны.
    1) Без базовых фундаментальных знаний вы просто не поймете, почему, к примеру, в ячейке столбца номера нельзя указывать два номера телефона, или как работают ограничения на целостность данных.
    2) Хоть диалекты SQL и отличаются от стандарта SQL:2008, следует понимать, что знание стандарта позволит Вам в случае необходимости переключиться с одной СУБД на другую. Также, хорошая реляционная SQL СУБД должна быть совместима с этим стандартом априори.
    3) Тут на Ваш вкус. Посмотрите изложение автора перед покупкой, посмотрите списки того или иного программного обеспечения. Но факт остается фактом, что прочтение только стандартов, мануалов и официальной документации - путь явно не для всех. Кому-то просто необходимо "художественное" изложение, да и просто из книг можно почерпнуть реальные примеры из опыта автора.
    4) Надо понимать, что реляционные СУБД всего лишь инструмент для хранения и обработки данных, обеспечивающий определенные бизнес-процессы определенной предметной области. И под бизнес-процессами следует понимать не как какую-то эфемерную для простого человека вещь, а то, что закладывается под этим словом в оригинальном языке, т.е. совокупность процессов\действий, направленных на создание продукта\предоставление услуги. А средства UML позволяют все это описать в стандартизированной графической форме. Чтобы знать SQL не надо знать UML, не надо знать, что такое и, к примеру, ЖЦ программного продукта. Но со временем, если Вы захотите расти дальше, Вам нужен будет инструмент прототипирования. Также, как если вы дорастете до архитектора БД, вам нужно будет представление о том, как эти БД проектировать, начиная с описания предметной области и заканчивая организационной точкой зрения. Стандарты ГОСТ 34.601-90 и ISO/IEC 12207:2008.

    Я, как и многие, начинал с какого-то полу прочитанного учебника и примеров из сети. Сейчас я понимаю, что просто потратил время практически впустую. Как ни странно, хоть и принято ругать наше образование, но список курсов для специальностей "ПИ" подобран не просто так. Помимо самого языка следует знать математический "бэкенд" и как его использовать для реализации задач предметной области. Я отношусь к SQL потребительски, это не мой основной язык, но сейчас я понимаю, что если бы уделил ему больше внимания не как языку, а, в первую очередь, как к одному из инструментов СУБД, работающих на основе реляционной алгебры для обеспечения бизнес-процессов, я бы избежал кучу потерянного времени, костылей и ошибок. Надеюсь, мой ответ будет Вам полезен.
    Ответ написан
    3 комментария
  • Чистая архитектура. Как можно использовать класс без import?

    xez
    @xez
    TL Junior Roo
    Написано, что ссылка должна быть только на "на модули с исходным кодом, содержащим интерфейсы, абстрактные классы и другие абстрактные объявления."
    Т.е. импорт интерфейса, а не конкретного класса с его реализацией. Конкретный объект, реализующий интерфейс, туда попадет уже на этапе внедрения зависимостей.

    Пример для Spring:
    package com.example.springbark;
    
    import com.example.springbark.pet.Dog;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringBarkApplication implements CommandLineRunner {
    
        @Autowired
        private Dog dog; // зависимость от интерфейса
    
        public static void main(String[] args)  {
            SpringApplication.run(SpringBarkApplication.class, args);
        }
    
        @Override
        public void run(String... args) throws Exception {
            dog.bark();
            System.exit(0);
        }
    }


    package com.example.springbark.pet;
    
    public interface Dog {
    
        void bark();
    }


    package com.example.springbark.pet;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class Spike implements Dog {
    
        @Override
        public void bark() {
            System.out.println("Bark-bark");
        }
    }


    Тут есть импорт интерфейса Dog и в главном классе неизвестно, какой конкретно объект будет внедрен.
    Ответ написан
    8 комментариев
  • Комментарии в коде?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    Не учите меня программировать.
    Комментарии лишними не бывают.
    5e30e1be57646442252796.gif
    // Когда я начинал это писать, только Бог и я понимали, что я делаю
    // Сейчас остался только Бог


    // иногда мне кажется, что компилятор игнорирует все мои комментарии


    // пьян, исправить позже

    // Магия. Не трогать.

    /**
     * Всегда возвращает true.
     */
    public boolean isAvailable() {
        return false;
    }
    Ответ написан
    2 комментария
  • Комментарии в коде?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Давайте перестанем путать комментарии в коде и документацию. Если первое предназначено для объяснения как это вообще работает, то второе ставит перед собой цель описания интерфейса взаимодействия, краткие описания с примерами использования и другие вещи, позволяющие, например, автоматически генерировать документацию
    Ответ написан
    Комментировать
  • Нужно ли DevOps знать фреймворк(и)?

    paran0id
    @paran0id
    Умный, но ленивый
    Конкретные фреймворки - нет. Как работает веб - желательно знать.
    Ответ написан
    Комментировать
  • Нужно ли DevOps знать фреймворк(и)?

    @vitaly_il1
    DevOps Consulting
    Дополню - фрейморки знать не надо.
    Но понимать и знать, как вебсервер работает с бекенд апликацией, как строить апликацию и деплоить - да.
    Ответ написан
    Комментировать
  • Нужно ли DevOps знать фреймворк(и)?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Там и питон не обязательно знать... базового вполне может хватить.
    Девопс должен уметь админить и автоматизировать администрацию и оркестрацию.

    Если ты можешь написать на питоне скрипт, который получит по веб какой-то json, распарсит его и конвертнет в нужный формат, например в sql query или хотя бы cvs - уже полдела сделано
    Ответ написан
    1 комментарий
  • Можно ли изменять неимпортируемые поля структуры в других пакетах программы?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Если у вас в разных частях программы нужен один кеш — то на уровне выше, где создаются эти части программы передавайте один и тот же инстанс

    Инстанс храните в DI-контейнере или синглтоне или просто создавайте в одном месте нужные части и/или прокидывайте зависимости руками :)
    Ответ написан
    Комментировать
  • Какая операционная система была взята за основу при разработке OpenOS из мода OpenComputers?

    vabka
    @vabka
    Токсичный шарпист
    Никакая. "ОС" в opencomputers - это просто скрипт на lua, который имитирует своим поведением работу операционной системы.
    Ответ написан
    2 комментария