Giter Club home page Giter Club logo

rpn-calculator's People

Contributors

asokol123 avatar livace avatar

Watchers

 avatar  avatar  avatar

rpn-calculator's Issues

Третий релиз

  • REPL
  • Перевод между записями в обе стороны (инфиксная → префиксная и наоборот)
  • Сборка с помощью GraalVM native-image или jlink.
    Docker для быстро запускающейся и быстро завершающейся утилиты shell будет странным и медленным решением

Ещё замечания по User Stories

ПР вмёржился, а замечания к User Stories остались там в комментариях. Дублирую:

В текущем виде, User Stories всё ещё читаются как кусочек документации готового продукта. Только теперь они похожи не на сухой раздел USAGE в man page, а на какие-нибудь "Концептуальные Концепции использования виртуальных машинок".

К чему я веду: в текущем виде истории не раскрывают потребность пользователя, а просто констатируют факт, например: "ну... если вам надо много вычислять, то у нас есть REPL". Но REPL'а ещё нет! Мы только представляем, что он наверное был бы полезен для определённого класса пользователей, и если этот класс пользователей нам действительно важен - REPL стоит реализовать.

Кроме того, у меня лично фраза "вычисления большого количества выражений подряд" вызывает ассоциации совсем не с REPL, а с batch-режимом, в котором на вход утилиты подаётся файлик со всеми выражениями, которые надо вычислить, а утилита в ответ печатает в stdout/в выходной файл результаты вычислений.

Вот бы как я переписал этот кусочек в виде требования:
"Для вычисления большого количества выражений подряд есть REPL - интерактивный режим, где можно вводить команды по одной и смотреть на результат предыдущей команды."
=>
"Как опытный пользователь CLI, я хочу выполнять вычисления в интерактивном режиме (REPL, Read-Eval-Print Loop), вводя команды по одной и просматривая результаты их выполнения на экране. REPL нужен для: одноразовых вычислений, тестирования выражений и т.д."

Шаблон юзер-стори:
"Как <тип пользователя>, я хочу <получить такие-то результаты используя продукт>, <для того чтобы ...>"
может показаться неудобным, но он реально заставляет думать в формате "чего хочет достичь с помощью продукта определённый класс пользователей и зачем". Именно поэтому шаблон так популярен - он помогает :-)

Further plans

  • Fix Non-terminating decimal expansion
  • Add infix notation
  • Add files support

Совсем далекие планы

  • Добавить возможность определенения функций

Замечания по документации с семинара

  • Vision:
    • Прописать риски проекта
    • Подумать и указать, кто, по вашему, основные пользователи проекта. Программисты? Разработчики shell-скриптов? НЕлюбители команд bc и eval? и т.д.
  • User Stories: нужно написать более общие истории. Например, "как разработчик shell-скриптов, я хочу вычислять несколько выражений сразу, чтобы ..." а не "Для вычисления нескольких выражений сразу, передайте их команде uzhos через stdin или файл, по одному в строке, разделённой \n или \n\r".

Четвёртый релиз

  • Сборка с помощью GraalVM native-image или jlink.
    Docker для быстро запускающейся и быстро завершающейся утилиты shell будет странным и медленным решением
  • Настроена система непрерывной интеграции, запускающая тесты через Maven/Gradle на каждый коммит в main и на каждый коммит в пул-реквестах. CI берите любую бесплатную и интегрирующуюся с GitHub'ом: GitHub Actions, Travis CI, …

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.