One Daily, One Topic – Nov, 11 to Nov, 26

By
Santiago
2015-12-03
One Daily,
Daily - ShuttleCloud

"One Daily, One Topic" is the group of posts where we'll share the topics that we talk during the lasts sprints. Besides, our Director of Engineering, Félix López, will comment why they've selected these papers and the link to find them. You can also follow the engineering team in Twitter at @ShuttleCloudEng.

S.O.L.I.D: The First 5 Principles of Object Oriented Design

By Samuel Oloruntoba

S.O.L.I.D

Why have we selected this paper?SOLID stands for five basic principles of object-oriented programming and design that every program must know.S – Single-responsibility principleO – Open-closed principleL – Liskov substitution principleI – Interface segregation principleD – Dependency Inversion Principle.(F.López)

The Clean Code Talks -- Unit Testing

By Misko Hevery (GoogleTechTalks Channel)

The Clean Code Talks

Why have we selected this paper?This is talk is about how to write testable code. You can find bad smells, bad practices, habits, etc than can help you identify them but also you can find how to solve them. (F.López)

Stop Mocking, Start Testing

By Augie Fackler and Nathaniel Manista

StopMockingStartTesting

Why have we selected this paper?In this talk we can learn about the problems associated to mocking, for example if every member of the team creates his/her own mock when the real implementation is changed, we need to find them and update them. Even if we have only one mock it will tell us what we want to hear, because we've done it. So if the real object is changed we don't even noticed. (F.López)

Facade Design Pattern

By Derek Banas

Design Patterns

Why have we selected this paper?Last week we talked about Abstractions and Design patterns, this is the first one we're going to see. This is a really simple design pattern that we can find all over around. (F.López)

What Every Programmer needs To Know About Encodings And Character Sets To Work With Text

By David C. Zentgraf

Encoding

Why have we selected this paper?Character sets, encodings, Unicode are part of our life as software developers. No matter what you're doing you need to know what they are. What's Unicode, what the encodings are, what's the relation between Unicode and the encodings.And if you're working with Python then please, please read this article. Just search on Stackoverflow this "ascii' codec can't decode byte" and you' understand why I'm saying this. (F.López)

Forking vs Threading

By Napster

ForkingVsThreading

Why have we selected this paper?This is another basic concept that as Software Developers we need to master. It's not only that you need to know this in order to start using threads or forking processes, when you're using Apache Server, Nginx, etc you need to understand what happens behind the scenes. (F.López)

Process Management (Context and Process Switch/scheduling/preemption...)

By Mike Murphy

ProcessManagement

Why have we selected this paper?This is one of these concepts that looks like not everyone in this industry knows and that we should know from the very beginning.What happens when you do a call that ends up in a system call? What happens when your process has to wait for IO?What happens when your process is CPU bound? Do It runs forever? (F.López)

System Calls Make the World Go Round

By Gustavo Duarte

System-calls-make-world

Why have we selected this paper?Another concept that every developer needs to know in order to do software. What happens when you read a file? What happens when you read data from a website?All these things end in a system call. Do you know how they work? Do you know how they affect the performance of your program?(F.López)

Understanding the Python GIL

By David Beazley

Understanding-Phyton_GIL

Why have we selected this paper?Do you work with Python? If so, you need to know how python works. Do you think we can start using Threads and you're going to benefit immediately from the cores of the machine? Then you'd better watch this talk about the global interpreter lock which is a mutex that prevents multiple native threads from executing Python bytecodes at once.(F.López)

Share this post