amazing talk, the key take away was thinking in terms of isolation and boundaries !
@Yamagatabr8 жыл бұрын
Why the slide have "Path+" at 17:23 ? He talks about that Functional core of the program having all the Conditionals, and them being Paths to the System. What exactly he means? Because when searching I just find about system paths and those would be External dependencies and actually should not be in the Functional Core (to keep transparency) right?
@ChrisLasher8 жыл бұрын
"Paths" refers to "logical paths". These are points in the code where business logic takes place, like deciding if a user account has expired or has not expired. There is one logic path if the user account has expired (add the account to the list of expired accounts), and a separate logic path if it has not (in this case ignore the account).
@Yamagatabr8 жыл бұрын
Thank you Chris! It is very clear now ! :) Also, he is a Ruby programmer, and most of his applications in D.A.S are towards web applications management. Do you think that "Functional Core + Imperative Shell" applies to all areas of computer programming, or is a better practice just when applied to this scenarios?
@ChrisLasher8 жыл бұрын
Web apps provide a common ground for many programmers and this is why web app development makes a good domain to illustrate the concepts. The point is to teach the concepts without the audience getting lost learning domain knowledge. If the examples were shown for bioinformatics software or financial software, a large portion of the audience might be unfamiliar with the domain, and now the instructor has to explain things unrelated to software development. These principles apply to any domain, though, (including bioinformatics and finance). If something looks exceptional to these guidelines, try reframing the problem. Approaching it from a different perspective can reveal how it actually fits in with these concepts.
@dhellraisa Жыл бұрын
2023. This video still does not have near enough views.👏
@warvariuc4 жыл бұрын
As the guy comes from Ruby world, he forgot to add `return` to many of the functions/methods ;)