When building an application, we often face problems with external APIs. One has simple methods, other has them very complicated. Unifying them und...
For further actions, you may consider blocking this person and/or reporting abuse
amazing! thanks for great article!
just out of curiosity, would it be nicer if we use
symbol
instead of string literals for different types?and then instead of switch using strategy pattern using symbol as object key to select intended function
You can use
Symbol
, example I've brought is purely illustrational. Or you can try TypeScript and use enums. Choose whatever you're most comfortable with, but remember to stick with it :)in ruby would be
.send(:"_findMusic", id)
, in JS_findMusic.call(this, id)
?? or something similar??... thanksHi fabriziobertoglio1987, can you rephrase your question? I don't seem to understand it fully :)
I was referring to use either Symbol or other code like
.call
or other Object method to delete your switch statement and replace it with a loopdeveloper.mozilla.org/en-US/docs/W...
developer.mozilla.org/en-US/docs/W...
Why would you obscure such a simple statement with a loop? It would be shorter, true, but more complex to the reader.
It is a common practive in Ruby. Right now would be done for exercise and experimentation, but it would make a lot of sense when you don't have only 1 switch statement and your code grows in complexity.
I don't like switch or if statements
keithcirkel.co.uk/metaprogramming-...
I don't know about Ruby, but in fact some languages don't even have
switch
statements, for example, Python.Creating a code that'll "know" which function to run without you telling it to with a direct statement is nice, but always try to think about some junior devs that might join your team. I had this phase of writing super complex code that only senior developers understood. But I quickly backed away, as I wasn't able to go on vacation, since I was the one person in the current team that understood how it all worked.
(But I quickly backed away, as I wasn't able to go on vacation, since I was the one person in the current team that understood how it all worked) :-D
Yes, I guess everything has its downside.
I think using metaprogramming sometimes is literally an alternative to using design patterns. For example the Factory Design Pattern allows you dinamically create objects, but you could solve the same problem with inheritance and metaprogramming
alligator.io/js/factory-pattern/
but the code would me much harder to read and does not make sense in Frontend Development.
The good thing is that Ecmascript now is really advanced and you are free to do anything with it. It is very good for Frontend, but also backend development.
Good topic, great explanation. Thanks!
What theme is this?
Hey wh0ismi, what do you mean? If you are referring to the code theme used on dev.to, I am not sure, but looks like Monokai.
TypeScript and enums could help as well
When building the facade wouldn't it be better to use the rxjs observables? Like in this example: nerd-corner.com/how-to-build-a-pus...
Nice! like a beautiful reducer.