Category Archives: CS-343

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-7

Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.

 

What are microservices? 

Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are

  • Highly maintainable and testable
  • Loosely linked 
  • Individually deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.

The pattern language guide 

The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.

The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:

  • The pattern language allows whether microservices are a good place for application.
  • The pattern language allows the microservice
    architecture favorably.

Characteristics of Microservices

  • Autonomous – Each element set in a
    microservices architecture can be developed, deployed, operated, and scaled
    without affecting the functioning of other benefits. Services don’t need to
    share any code or implementation with other services. Any connection between
    individual components happens through APIs. 
  • Specialized – Each service is designed
    for a collection of capabilities and focuses on solving a specific problem. 

Benefits of Microservices

  • Agility – promote an organization of small and
    independent teams that take ownership of their services. Groups work in a small
    and well-understood context and are allowed to work independently and fast. It
    helps to shorten construction cycle times. It benefits significantly from the
    throughput of the organization.
  • Flexible Scaling – Each service is to be
    independently scaled to meet the demand for its support application. It enables
    teams to support requirements, precisely measure the cost of a feature, and
    manage availability if a service experiences a spike in demand.
  • Easy Deployment – Enable continuous combination
    and delivery, helps try out new ideas, and rolls back if something doesn’t work.
    The low cost of failure enables experimentation to update code and stimulates
    time-to-market for new features.
  • Technological Freedom – It doesn’t follow a
    “one size fits all” plan. Teams have chosen the best tool to solve
    specific problems.
  • Reusable Code – Dividing software into small
    modules, which enables teams to use functions for multiple purposes.
  • Resilience – Service independence increases an
    application’s stand to failure. With microservices, applications handle
    complete service failure by discrediting functionality and not crashing the
    entire application.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

Blog post 2 – Design Smells

In programming, we often make a lot of mistakes, some break the code, and some do not. The ones that do not tend to bring down the efficiency of our code and make it very difficult to work with. Some of these mistakes have to do with the way we write the code, and they tend to hint at a bigger problem in the code design. These mistakes are called design smells. I think Martin Fowler defines coding smells the best, he defines them as a “surface indication that usually corresponds to a deeper problem in the system.” Design smells come in all different ways, but they usually stem from developers not following best practices. The end result is that the code either becomes too bloated, too inefficient or breaks easily. Luckily, design smells are rather easy to spot once you know what they are. Some of the more common smells are:

Rigidity – Program breaks in many places when a single change is made to the code.

Immobility – The code contains parts that could be useful in other systems, but the effort and risk involved in separating those parts from the original system are too great.

Opacity – This smell occurs when the code is difficult to understand and follow.

Fragility – The code becomes pretty difficult to change. A simple change could cause a cascade of subsequent changes in dependent modules.

Viscosity –  When making changes to the code, it is easy to do the wrong thing, but hard to do the right thing.

Needless complexity –  There are elements in the code that are not useful. Having them in the code is simply not necessary and it makes the code more complex than it needs to be.

Needless repetitiveness –  There are too many repeating elements in the code that could be removed by using abstracted or refactoring the program.

These are things that we do not want in the code. In fact, they are considered technical debt. Technical debt is a term that describes the effects of mistakes or bad practices in code. As we program, we are going to make mistakes, errors, and sometimes not follow best practices. These shortcomings are things that we will have to revisit later today and spend time, resources, and effort spent on trying to fix and modify the code to make it work better. In this sense, it is similar to normal debt.  Once you know the smells, it’ll become a lot easier to find them in your code. If you do spot design smells, then it is best to try to remove and solve the underlying problem.

https://martinfowler.com/bliki/CodeSmell.html

https://martinfowler.com/bliki/TechnicalDebt.html

From the blog CS@Worcester – Fadi Akram by Fadi Akram and used with permission of the author. All other rights reserved by the author.