https://t.me/perpetlearn -- пишу о программировании и не только.

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (23)

Лучшие ответы пользователя

Все ответы (29)
  • Как создать язык программирования?

    @0nkery
    https://monkeylang.org/ -- неплохой туториал по созданию несложного императивного ЯП.

    craftinginterpreters.com -- более сложный и полный материал (там что-то вроде Java получается в результате).
    Ответ написан
    1 комментарий
  • Что использовать для создания консольного меню средствами терминала?

    @0nkery
    Если хотите программируемое поведение, посмотрите на ncurses -- всякие обвязки на нее есть на разные языки типа Python.
    Ответ написан
    Комментировать
  • Почему не могу поменять пользователя в git?

    @0nkery
    Вывод последней команды подсказывает, что делать. У вас каким-то образом появилось несколько имен пользователя в глобальном конфиге гита, что можно исправить так:

    $ git config --global --replace-all user.name "Ivan Sierov"


    Либо, если вам нужны несколько имен, то можно добавить еще одно:

    $ git config --global --add user.name "Ivan Sierov"


    Вангую, что примерно так у вас до этого появилось несколько юзернеймов.
    Ответ написан
    2 комментария
  • Микросервисы при разработке сервера?

    @0nkery
    1. Да, через тот же RabbitMQ вы можете организовать общение ваших микросервисов. Особенно RabbitMQ будет полезен в случае, если вы сможете избежать большого количества прямых запросов к отдельным микросервисам, а сможете представить потоки данных в виде событий и их обработчиков.
    2. Да, будет запущен в отдельном процессе. Это можно назвать параллельными вычислениями. :) Ну и вообще в линуксе разница между отдельным системным процессом и отдельным потоком (thread'ом) внутри одного системного процесса размыта (отличаются у них фактически только параметры создания -- есть ли общая память с какими-то другими потоками исполнения).
    3. Не знаком, но знаю, что многие компании убегают с ноды, потому что не хватает производительности или запутанная модель исполнения.

    Ну и вообще, если вы переживаете насчет производительности, попробуйте что-нибудь более производительное, чем нода: Erlang/Elixir, Go, .NET и так далее.

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

    @0nkery
    Здесь описано про проектирование программ и сопутствующую математику. Вполне фундаментальные вещи.

    Так же рекомендую разобраться в: логике первого порядка, теории множеств, машине Тьюринга, лямбда-исчислении. Затем рекомендую освоить какой-нибудь функциональный ЯП (чем больше похож на Haskell, тем лучше). Хорошая инвестиция времени.

    Про более приземленные вещи советую читать у Таннебаума:

    Компьютерные сети
    Распределенные системы
    Архитектура компьютера
    Современные операционные системы
    Операционные системы: разработка и реализация
    Ответ написан
    3 комментария