top | item 18253187

(no title)

n0n | 7 years ago

Interesting view. How should i, as a sysadmin who just writes bash and powershell scripts, start to learn _serious_ programming? Is it still worth to force myself into OOP?

discuss

order

blub|7 years ago

If you want to get a job, yes.

The world is built on OOP, it's just that too many like to use it as a punching bag.

amirouche|7 years ago

function are in the gray area in Python.

I argue that you should start simple with functions and IF you see a use case for classes use them.

To be able to make a reasonable choice, you must learn OOP at least the OOP machinery of your language.

A few hints:

a) Python's abc or Java Interfaces serves as template to implement multiple times the same behavior in different contexts

b) If you don't inhirit the class, the class is useless, except if you use the class as an interface (see a)

c) A class is more complex than a function ie. more guns to shot yourself in the foot.

d) think function pointer / first-class function. Many times, you can avoid a class by passing a function as parameter e.g. filter.

e) think function factory ie. a function that returns a function.

f) think pure function / side effect free functions. This is a BIG life savior. A function without side effects is much simpler to test that a function with side effects. Of course, you can not avoid all side effects (io et al.) or mutations, so build your abstraction so that the side-effects / mutation to happen in a well known place.

g) keep functions small

1ark|7 years ago

Start writing some of the scripts in Python, for example, quite popular in both sysadmin world and _serious_ programming world.