• Пишем учебное приложение на Go и Javascript для оценки реальной доходности акций. Часть 1 — backend

    Давайте попробуем написать небольшую тренировочную, но вполне себе законченную информационную систему, состоящую из серверной части на Go и клиентского веб-приложения на Javascript + Vue JS.

    Для начала пару слов о том, что это за приложение и для чего оно нужно. Некоторое время назад передо мной встал вопрос о том, как бы сохранить некоторую сумму денег, которая у меня образовалась. Даже мне, человеку далёкому от мира финансов, было очевидно, что держать деньги наличными плохо по, как минимум, двум причинам:

    • Деньги съедает инфляция (инфляционный риск)
    • Рубль может обесцениться (курсовой риск)

    Было принято решение изучить вопрос и выбрать подходящий инструмент для инвестирования. Основными критериями были надёжность и защита сбережений от указанных выше рисков.
    Вопрос я изучил и в результате пришёл к выводу, что единственным адекватным инвестиционным инструментом для жителя России являются акции биржевых фондов (ETF), причём именно те, что торгуются на Московской Бирже.

    Таким образом, предлагаю написать учебное приложение, которое бы показывало доходность всех ETF, которые представлены на Московской Бирже.
    Читать дальше →
  • 200 — это хорошо или это плохо?

      В этой трехминутной статье я хочу затронуть наболевшую тему.

      Речь пойдет о статус коде HTTP 200 и ошибках в ответе.

      HTTP/1.1 200 OK
      
      {
        "error": {
          code: 2019,
          message: "Validation failed: field 'size' is invalid: the value is not a number"
        }
      }
      

      Нормально ли возвращать такой код, если возникла ошибка?

      Нет? Да? Ну-ка давайте разберемся.

      whaaat

      Случай 1. HTTP 200 и batch операция


      Допустим отправляется один запрос. Запрос выполняется успешно. Возвращаем код 200. Ответ не содержит информации об ошибке. С этим случаем всё предельно просто и понятно. А что делать если требуется выполнить batch операцию?
      Давай разберемся
    • Тяп-ляп и в продакшн? Почему бы и нет

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

        Появляется проект, план-график, декомпозиция задач, некий руководитель проекта, или даже несколько. Верх берут формальности, т.е. форма, а не содержание.

        Понятно, что в некоторых ситуациях именно так и надо действовать. Например, если автоматизацией занимается внешняя компания – она без таких бумажек не выживет, т.к. только и будет гоняться за достижением убегающих требований. Бумажки гарантируют стабильность, прогнозируемость оплат и сдачи работ. Но вот заказчику эти бумажки гарантируют лишь одно – долгий, скучный проект, который не принесет никакой пользы.
        Читать дальше →
      • Кратко об абстракциях

        Бывает так что проект заходит в тупик, и дальнейшее его развитие становится невозможным. Не редко причиной такого провала становится неудачная архитектура, заложенная в начале разработки. Или приходится наблюдать споры о том какой из "двух стульев" лучше, а может даже участвовать и искренне не понимать, как оппонент может так думать!?


        Тогда попробуем не много разобраться в абстракциях, откуда они берутся и что с ними делать.

        Читать дальше →
        • +12
        • 3,8k
        • 8
      • Создание архитектуры для нового высоконагруженного стартапа в 2019

        Цель — создание нового высоконагруженного стартапа в современных условиях. Создание архитектуры будем рассматривать на примере Billingolang — проект универсального биллинга, общего назначения, написанный на golang. Проект включает в себя доступ через API, сайт, интеграцию в бухгалтерские системы, отчеты и графики.

        Изначально были откинуты однопоточные системы. Выбирать пришлось между Erlang, Golang и Rust. Основным языком программирования был выбран Golang, потому что найти программистов на Erlang сложно, хотя устойчивость и горячая замена кода шли в плюс Erlang. Rust, же не смотря на формальное отсутствие состояния гонки, все-таки более подходит не для написания приложений, но драйверов и операционных систем.

        Обмен сообщениями между компонентами системы происходит не на классическом RabbitMQ, а на NATS — последний показал бенчмарки на сервере который сейчас используется, 1M сообщений (+360К при кластеризации) в секунду против 40К у зайца. Да и кластеризуется он быстрее и легче чем RabbitMQ.

        База данных: MySQL InnoDB Сluster 7.6 (MySQL server 8.0). Шикарно верстается и отлаживается комьюнити средством MySQL Workbench.
        Читать дальше →
      • Принципы проектирования справочников номенклатуры в 1С Управление Предприятием 2 (ERP 2.4.6)

        Оглавление
        Основные принципы работы
        Справочники и связанные с ними объекты
        Перечисление «Типы номенклатуры»
        Справочник «Виды номенклатуры»
        Справочник «Товарные категории»
        Справочник «Товарные характеристики»
        Дополнительные реквизиты и сведения
        Функционал «Номенклатура, продаваемая совместно»
        Справочник «Производители»
        Справочник «Номенклатура поставщиков»
        Справочник «Ценовые группы»
        Справочник «Сезонные группы номенклатуры»
        Справочник «Политики учёта серий»
        Справочник «Группы доступа номенклатуры»
        Резюме

        Принципы системного подхода к проектированию справочников номенклатуры в 1С Управление Предприятием 2 (ERP 2.4.6) или как избежать замусоривания.

        В 1С Управление предприятием 2 используется целое семейство справочников для работы с номенклатурой. Эти справочники являются частью НСИ. Правильно организованный подход к НСИ гарантирует контроль работы конфигурации и пользователей. Поэтому работа с НСИ требует жёсткого и, самое главное, систематического подхода, в противном случае, справочники мгновенно превращаются в заполненные мусором списки. Кроме того, правильно организованные справочники упрощают работу с составлением запросов и выборок. Помимо этого, систематически организованные и заполняемые справочники позволяют применять математический аппарат для работы с ними (в основном аппарат из теории графов). И, независимо от этого, правильно организованные справочники позволяют вести корректную кодировку товаров.

        Какие же принципы позволяют организовать систематическую работу со справочниками в 1С ERP?
        Читать дальше →
        • +25
        • 3,9k
        • 6
      • Создание альтернативного дисплея для синтезатора/сэмплера Ensoniq EPS16+ и ASR10

          Привет, Хабр!

          Здесь я расскажу об одном (к сожалению до сих пор неоконченном) проекте по созданию альтернативый стандартному дисплею Ensoniq EPS16+ и ASR10.
          Читать дальше →
        • Bonsai: фамильный вики-движок

            Лирическое вступление


            Как-то вечером, наводя порядок в стенном шкафу, я наткнулся на большую картонную коробку. Она пережила два переезда и не открывалась уже столько лет, что я напрочь забыл, что именно в ней хранилось. Оказалось, там лежали фотографии — в альбомах, в конвертах из фотоателье, а часть просто так.

            Многие фотографии были сделаны более семидесяти лет назад. На одной был дедушка — в студенческие годы, еще молодой и статный, в абсолютно ломовейших очках. «Надо же, мой дед носил хипстерские шмотки еще до того, как это стало мейнстримом», подумал я, и невольно улыбнулся. Его я узнал сразу, но дальше пошли фотографии людей, о которых я ничего не помню. В чертах лица можно смутно угадать родство — и все.



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

            Идеальным решением для хранения семейных данных мне представлялся гибрид вики-движка и фотоальбома. Готовых подходящих решений не оказалось, поэтому пришлось написать собственный. Он называется Bonsai и доступен с открытым кодом по лицензии MIT. Дальше будет история о том, как он устроен и как им пользоваться, а также история его разработки и немного ДРАМЫ.
            Читать дальше →
          • Корпоративные фрукты

              — Прошу внимания, коллеги. – директор постучал карандашом по столу. – Нам предстоит интересное мероприятие.

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

              — Мы собрались для проведения кросс-собеседования. – продолжил директор. – И у нас тут – очень интересный экземпляр. Претендует на должность директора по информационным технологиям. Но вот резюме…

              — Мда. – улыбнулась HR. – Весьма странный субъект. Подозреваю, это будет что-то… Хотя думаю, на работу мы его не возьмем.

              — Почему? – спросил коммерческий.

              — Сейчас сам увидишь. Он утверждает, что может какими-то там программистскими, или… — HR подняла со стола бумажку, пробежалась глазами. – Да, вот… Инженерными методами повысить эффективность бизнеса. В том числе, прибыль.

              — Откуда такое чудо? – коммерческий удивленно улыбнулся.

              — Из деревни какой-то… — HR снова глянула в бумажку. – Написано – Курган. Это где?

              — Там, где волки срать боятся. – подхватил общее настроение главный инженер. – Бывал я там, на практике. Еле жив остался, в девяностые дело было…

              — Ну что, зовем? – перебил директор.

              Внезапно в дверь переговорной постучали и, тут же, не дожидаясь приглашения, вошел Сергей. Почему-то в пуховике и шапке.

              — Это, парни. – сказал он извиняющимся тоном. – Простите за беспокойство, я передумал. Мне ваша компания не подходит. До свидания.
              Читать дальше →
            • Автоматизированное проектирование радиоэлектронной аппаратуры

              В популярной форме освещаются вопросы автоматизированного проектирования радиоэлектронной аппаратуры (РЭА) на конструкциях печатных плат, основные этапы становления и эволюции систем автоматизированного проектирования (САПР) РЭА, содержание задач автоматизации, организация сквозного цикла выполнения проектных работ с использованием средств автоматизации.

              Целью публикации является ознакомление инженерно-технических работников с одним из бурно развивающихся направлений в современной индустрии информационных технологий.

              Читать публикацию

            Самое читаемое