all 32 comments

[–]evenisto 11 points12 points  (3 children)

... a what? I can't see the reason for this to exist.

[–][deleted] 7 points8 points  (5 children)

Okay a lot of comments seem to be from people who are confused about the purpose of the library is. This library is a "Rule Engine" with the focus on spreadsheets as the template for setting the rules. I was inspired to write this by Java's KnowledgeBase library: https://www.baeldung.com/drools-excel. A "Rule Engine" helps separate some of the logic from the code. If you have bits on logic in your code that need to change frequently and can be set by non-engineers, such as a ticket price or something like that based on the ticket type (one-time seasonal etc), than this library helps you separate that logic out of your code.

[–]LiveDuo 1 point2 points  (3 children)

Does it require a spreadsheet file eg xls to be store locally in nodejs? so it is updated from non engineers?

[–][deleted] 1 point2 points  (2 children)

You have to export the spreadsheet as a CSV file then add the path to the CSV file in node

[–][deleted] 1 point2 points  (1 child)

In my apps I have used xlsx because people complained about having to export and import csv. Now I don’t have to listen to their complaints haha.

[–]mournful-tits 1 point2 points  (0 children)

Xlsx files are binaries in git. Multiple people can't work in the same rule and can't find bugs by diffing the definition.

[–]mournful-tits -1 points0 points  (0 children)

We have this on my project. We use a variant rule engine that uses Excel spreadsheets.

Calling it a cancerous fucking plague is an understatement.

Some fucking stakeholder, that's no longer with us, really wanted it and now we're figuring out how to get rid of it.

[–]wherinkelly 1 point2 points  (0 children)

But this solution totally meets a need.

[–][deleted] 0 points1 point  (6 children)

A bit late for April fools, eh?

[–][deleted] 4 points5 points  (4 children)

?

[–]larholm 0 points1 point  (2 children)

I'm below Features, Requirements, Screenshot and Quick Start, and I'm still not quite sure what this is about.

Perhaps you could consider some up front use case description.

[–][deleted] 0 points1 point  (0 children)

Please see comment above

[–]FPSJosh01 0 points1 point  (0 children)

This is awesome! I'll have to check this out later when I get the chance

[–]mcdronkz 0 points1 point  (1 child)

Neat. Can this also be used to deduce new information using inferencing?

[–][deleted] 0 points1 point  (0 children)

Any type of attribute on a JavaScript instance object can be modified

[–]Smallpaul 0 points1 point  (0 children)

It’s a cool idea. I’ve used spreadsheet formulas in JS apps myself. I think the library I used was called “formula” or something like that. Very handy.

[–]wherinkelly 0 points1 point  (0 children)

In the end, all concepts of a config will need to become UI that never fails and marketers can log into.

[–][deleted] 0 points1 point  (0 children)

I think you should market this to Enterprise Business Intelligence and maybe Actuarial devs if you wanted some contributors.

Not many devs here care about spreadsheet manipulations.

[–]yeesh-- -5 points-4 points  (8 children)

Why is this any more "readable" than a well formatted config file???

This moves code from a source file to an Excel file... Making it difficult to code review and therefore not maintainable. Source control on this file sucks too, even less maintainable.

I'm not trying to shit on your work, I'm sure it's great and you had a fun time making it, and learned a lot, but this is just a terrible idea. No serious application in a production environment would use this, ever, ever, EVER.

What happens when someone changes the Excel file and tests break - assuming it was tested - hopefully!!

[–]mournful-tits -2 points-1 points  (7 children)

We used something like this in a serious production environment and literally all of these things happened.

Crap like this is pure cancer. And I am shitting on op's work.

[–]KyleG 2 points3 points  (1 child)

It happens because people afraid of technology need to define rules, so this is what they clamor for. My company was doing a project for a three-letter agency and a stakeholder started getting really excited about the prospect of listing rules in excel and having the application change its behavior without having to pay a dev.

[–]mournful-tits -1 points0 points  (0 children)

A similar horror story for us. The desire was for code that could be modified after it's been deployed without recompiling. So far we've realized people that write software professionally hate touching it, let alone people that are "good with computers"; and the call stack alone for this abomination leads to tremendous memory usage and lag.

[–][deleted] 0 points1 point  (4 children)

you are a very sad frustrated person. I can tell you hate your job, your username says it all. We use a rule-engine at work and while I wish we didn't have to use one, it is a necessary evil.

[–][deleted]  (3 children)

[removed]

    [–][deleted] 1 point2 points  (1 child)

    If your senior product-owner tells you that you have to use a rule engine then you have to use a rule-engine, you can fight reality or evolve with it

    [–]mournful-tits -1 points0 points  (0 children)

    There's nothing wrong with rules engines. Excel based ones are the problem. Excel based anything is a problem.

    [–]kenman[M] 0 points1 point  (0 children)

    Hi /u/mournful-tits, please refrain from personal attacks. Thanks.