SECOND BLOG POST : AF
Here in my second post i’m going to share some knowledge about AF, which stands for Application Frameworks.
We can mainly use basic styles(HTML, CSS) or a programming language(PHP, JS, Python) to create our own components, styles in web development process. Then we have to build our own techniques, logic, styles and make development from the every single component, which is good but in more difficult way. But it is not that much easy to do such a thing since we have to consider various concerns(User Experience, Authentication, Access Control etc) as well as it is very difficult to develop a system from the very basic since we are in enterprise web development environment.

But think if we have a basic structure and techniques(Already defined) to develop such a system and we can reuse these during development process, which will be a huge concern for developers.. An Application Framework provides us such a facility to develop a great application with less effort. They provide us services like Views/Templates, Routing, Security, DB Migrations, Authentication, Error handling etc..

Mainly we can specify AF as,
- Server side application frameworks
- Express (Node.js/JavaScript)
- Django (Python)
- ASP.NET (C#)
- Laravel (PHP)
- Client side application frameworks
- React.js
- Angular.js
- Bootstrap
- Semantic-UI
It is really useful us to follow certain frameworks that suitable for our needs and make things much more easier..

- SOME FAMOUS AFs.
- React – https://reactjs.org/
- Javascript framework
- Created by Facebook
- Use to create front-end Applications / Front-end of full stack development
- Most popular framework now
- Angular – https://angular.io/
- Javascript framework
- Created by google
- Use to create front-end application / Front-end of full stack development
- Laravel – https://laravel.com/
- PHP framework
- Use MVC design pattern
- Includes Artisan CLI – DB migrations,create controllers,models,jobs,events
- Includes Eloquent ORM(Object Relational Mapper) for working with DB
- Use blade template engine
- BEST PRACTICES & PRINCIPLES IN SOFTWARE ENGINEERING.

As software engineers or future software engineers we have to make sure that we follow standard methods, which leads us to a quality software product. Here are some of these best practices and principles we can follow through development process…
- S.O.L.I.D. Principles.
- A group of principles each letter in βSOLIDβ represents one of the principles
- Single responsibility
- Every class should have responsibility for a single part of the functionality provided by the software, that responsibility should be encapsulated.

- Left side class has both Person properties and database management functions. savePerson( ) function is a database action which don’t be a part of the Person class. violate Single responsibility.
- If we separate Person properties and database management functions that will be a good way to do it.
- Open-closed
- Classes, modules, functions, etc should be open for extension, but closed for modification.

- TicketPrice class can extended by adding more sub classes.
- Liskov substitution
- Inherited class should complement,but not replace the behavior of the base class.
- If we add fly( ) method in Bird class we can’t implement it in Ostrich class. Then we add FlyingBirds class extending from bird class and then we can extends from that class for other flying birds.
- Interface segregation
- Client should not be forced to depend on methods it does not use.

- Dependency inversion
- Programmer should work at the interface level and not at the implementation level.
- Single responsibility
- A group of principles each letter in βSOLIDβ represents one of the principles
LINKS.
- Today Extra Topic: SOFTWARE DEVELOPER COMMUNITIES.
Sometimes we need to communicate with someone who can share their knowledge and help for solve our coding problems. Developer communities helps us to meet other developers online and discuss topics or exchange news and tips with others. Also we can help to someone to solve their problems and gain our coding skills. Some of most popular developer communities are,
- FreeCodeCamp
- Stackoverflow
- Github
- Digitalocean
- Dzone
- We can Ask questions. (Here i asked my question regarding react development)

- Others will help you for achieve a better solution. (Others share their codes and links that helps me to solve my problem)

LINKS.
- My stackoverflow account – https://stackoverflow.com/users/10633600/prabath-shalitha
- https://hashnode.com/post/15-best-developer-communities-every-developer-should-join-ck0htjn2m001k15s1foinc1dl
-Prabath Shalitha (2020 Feb 15)