Software efficiency – Telegram
Software efficiency
78 subscribers
10 photos
1 video
11 links
Welcome to Software Efficiency!
Download Telegram
Protocol-Oriented Programming in Swift
Watch it at WWDC, you'll get most of what you need about POP.
Bismillah.

Let's go ahead and continue, I want to share with you guys, about the advanced swift topics.
I've got planning to go with these topics;

Introduction to OOP:
- Basics of OOP
- Pillars of OOP

Introduction to POP:
- Basics of POP

Software design principles:
- Composition Over Inheritance
- SOLID Principles
- Single Responsibility Principle
- Open/Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle

Gang of Four Design Patterns:
- Creational Design Patterns
- Structural Design Patterns
- Behavioral Design Patterns

and much more.
👍3🔥3
I also want to share iOS interview questions and answers, stay tuned for more.
🔥5
#QA
Does a protocol can be inherit from other protocol?
- Yes!, Protocol types can inherit from other protocols, but not from other named types.
named types: (Class, Struct, Enum, Protocol)

@software_efficiency
#QA
Does swift support multiple class inheritance?
- No. Class types can inherit from a single superclass and conform to any number of protocols.

@software_efficiency
#QA
What’s a Design Pattern?

- Design patterns are typical solutions to commonly occurring problems in software design. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code.

You can’t just find a pattern and copy it into your program, the way you can with off-the-shelf functions or libraries. The pattern is not a specific piece of code, but a general concept for solving a particular problem. You can follow the pattern details and implement a solution that suits the realities of your own program.

A pattern is a more high-level denoscription of a solution. The code of the same pattern applied to two different programs may be different.

@software_efficiency
next blog posts will be on design patterns, until then I will try to give a brief intro with such #QAs

add your friends or share the post to your channel, stay tuned for more.

@software_efficiency
🔥31
The flexible way to set up collaboration between objects:

1. Determine what exactly one object needs from the other: which methods does it execute?
2. Describe these methods in a new interface or abstract class.
3. Make the class that is a dependency implement this interface.
4. Now make the second class dependent on this interface rather than on the concrete class.

You still can make it work with objects of the original class, but the connection is now much more flexible.
👍1
Software efficiency pinned «The flexible way to set up collaboration between objects: 1. Determine what exactly one object needs from the other: which methods does it execute? 2. Describe these methods in a new interface or abstract class. 3. Make the class that is a dependency implement…»
Hey, nice to see you again after Ramadan. are you here?)
👍5
Later == Never
😎☝️
we'll continue.
🔥4
#advice
Don't try to remember stuff. Brain is bad at remembering. It's rather good at processing.
🔥3
today I'll tell you the truth)

How I make all this content:

1. I learn something small and new
2. I write it down on paper
3. I organize the thought
4. I publish it
5. Repeat
🔥3
#advice
Comments are an apology, not a requirement. Good code mostly documents itself.

@software_efficiency
#advice
Functions should only do one thing - this is by far the most important rule in software engineering. When you can isolate a function to just one action, they can be refactored easily and your code will read much cleaner.

@software_efficiency
👍3