Application Performance Management and Application Monitoring (APM) (edit)
There is a wide range of application performance management and application monitoring (APM)
What is APM? Overview, Common Terms, and 10 Critical APM Features (stackify.com)
Application Performance Management | APM Performance & Process Management
Principles behind the Agile Manifesto
We follow these principles:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals.
Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Các nguyên tắc đằng sau Tuyên ngôn Agile
Chúng tôi tuân theo các nguyên tắc sau:
Ưu tiên cao nhất của chúng tôi là làm hài lòng khách hàng thông qua việc phân phối sớm và liên tục các phần mềm có giá trị.
Hoan nghênh các yêu cầu thay đổi, ngay cả khi phát triển muộn. Các quy trình nhanh nhẹn khai thác sự thay đổi vì lợi thế cạnh tranh của khách hàng.
Cung cấp phần mềm hoạt động thường xuyên, từ vài tuần đến vài tháng, ưu tiên khoảng thời gian ngắn hơn.
Người kinh doanh và nhà phát triển phải làm việc cùng nhau hàng ngày trong suốt dự án.
Xây dựng các dự án xung quanh những cá nhân có động lực.
Cung cấp cho họ môi trường và sự hỗ trợ mà họ cần, và tin tưởng để họ hoàn thành công việc.
Phương pháp hiệu quả và hiệu quả nhất để truyền tải thông tin đến và trong nhóm phát triển là trò chuyện trực tiếp.
Phần mềm làm việc là thước đo chính của sự tiến bộ.
Các quy trình Agile thúc đẩy sự phát triển bền vững.
Các nhà tài trợ, nhà phát triển và người dùng sẽ có thể duy trì một tốc độ liên tục vô thời hạn.
Sự quan tâm liên tục đến sự xuất sắc về kỹ thuật và thiết kế tốt giúp tăng cường sự nhanh nhẹn.
Sự đơn giản - nghệ thuật tối đa hóa khối lượng công việc chưa hoàn thành - là điều cần thiết.
Các kiến trúc, yêu cầu và thiết kế tốt nhất xuất hiện từ các nhóm tự tổ chức.
Trong khoảng thời gian đều đặn, nhóm phản ánh về cách trở nên hiệu quả hơn, sau đó điều chỉnh và điều chỉnh hành vi của mình cho phù hợp.
Sample code implement SOLID Principles
public interface ISomeInterface { int GetValue(); } public class SomeClass : ISomeInterface { public int GetValue() { return 1; } } public interface ISomeOtherInterface { bool IsSuccess(); } public class SomeOtherClass : ISomeOtherInterface { private ISomeInterface m_SomeInterface; public SomeOtherClass(ISomeInterface someInterface) { m_SomeInterface = someInterface; } public bool IsSuccess() { return m_SomeInterface.GetValue() == 1; } } public class SomeFactory { public virtual ISomeInterface GetSomeInterface() { return new SomeClass(); } public virtual ISomeOtherInterface GetSomeOtherInterface() { ISomeInterface someInterface = GetSomeInterface(); return new SomeOtherClass(someInterface); } }