Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

Sorry, you do not have permission to ask a question, You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please type your username.

Please type your E-Mail.

Please choose an appropriate title for the post.

Please choose the appropriate section so your post can be easily searched.

Please choose suitable Keywords Ex: post, video.

Browse

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Logo Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Logo

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Navigation

  • Home
  • About Us
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • About Us
  • Contact Us
Home/ Questions/Q 493

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Latest Questions

Author
  • 62k
Author
Asked: November 25, 20242024-11-25T11:24:07+00:00 2024-11-25T11:24:07+00:00

How to properly take over a complex PHP project

  • 62k

Why it's Best to Leave Well-Functioning Things Alone

Assuming the code is running smoothly and meeting the SLA set by previous developers, you may not need to make any changes unless there are new feature requests or bugs to fix. While it's important to understand the project, your goal should be to gather enough information on relevant requests to fix the necessary pieces and touch relevant code only. Rewriting the entire project or even trying to understand every detail is not always necessary or efficient.


Strategies for making isolated changes are very different from strategies for understanding or re-architecting whole code bases.

When making small changes to your application, it's best to enter it via an HTTP request and run your server under a debugger. This allows you to closely observe the logic being followed and gain a more profound understanding of the relevant architecture. Using a debugger can be an effective tool for navigating the complexities of your codebase.


Consider making a small change with some code rot.

In some cases, you may find yourself thinking, 'I'm confident this code modification will work, despite being suboptimal from a design perspective.' While this can be a justifiable decision, it's crucial to first confirm that the alteration will indeed function properly. This may entail examining pertinent components to some extent.
It's important to also consider potential security risks – even if the changes appear to be effective in a limited number of test scenarios, it's essential to have a comprehensive understanding of the system to anticipate and avoid disastrous edge cases.


Your early steps should include getting your code under source control and learning the moving parts in production.

Effective source control is crucial, especially when working on unfamiliar codebases. It's essential to keep a detailed record of any changes you make so that you can easily track and manage them. To streamline this process, it's advisable to make cohesive git commits from the outset. This will help you perform tasks such as cherry-picking and subtle rollbacks more efficiently. When creating branches, it's significant to do so thoughtfully, considering the specific changes you've made. Consider segmenting your changes based on their level of safety or significance, such as changes that are deemed safe for production and those made simply for exploration purposes that may be useful for future reference.

In addition to basic considerations like familiarity with the codebase, it's important to take a broader view when making changes. For example, it's crucial to have a thorough understanding of your environment to ensure that you don't inadvertently break anything in production. This may involve utilizing a safe development environment to test your code before deploying it to a live environment. In addition to the software itself, it's essential to account for other key components such as the build system, unit tests, logging, monitoring, and error notification. Neglecting any of these elements can result in issues down the line, such as broken monitoring that goes unnoticed until it's too late. By taking a holistic approach to your changes, you can minimize the risk of errors and ensure that your updates are reliable and effective.


Be prepared to make the case for an expensive redesign or rearchitecture.

As maintenance tasks become increasingly time-consuming or frequent, it's worth considering whether the code you're working with is of poor quality. In such cases, it may be more cost-effective to make the case for replacing it altogether. Rather than tackling the entire codebase at once, identify specific areas that can be rewritten affordably. This might involve isolating individual components, such as the data layer or logging system, and updating them one at a time. By taking a focused approach to rewriting key pieces, you can gradually improve the overall quality of the codebase while minimizing disruption to ongoing development efforts.

Though it may be tempting to start from scratch and rewrite the entire project, this is usually not the best approach. In most cases, it's more effective to identify specific areas of the codebase that are problematic and work on updating them incrementally. This requires a profound understanding of the code and the ability to turn difficult-to-maintain components into more manageable ones. While larger pieces may require more extensive rewrites, it's important to avoid the extreme step of throwing out everything and starting from scratch, as this should be a last resort. In most cases, a focused approach to updating individual components can yield significant improvements in the codebase without disrupting ongoing development efforts.

phpprogrammingtutorialwebdev
  • 0 0 Answers
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

Sidebar

Ask A Question

Stats

  • Questions 4k
  • Answers 0
  • Best Answers 0
  • Users 2k
  • Popular
  • Answers
  • Author

    ES6 - A beginners guide - Template Literals

    • 0 Answers
  • Author

    Understanding Higher Order Functions in JavaScript.

    • 0 Answers
  • Author

    Build a custom video chat app with Daily and Vue.js

    • 0 Answers

Top Members

Samantha Carter

Samantha Carter

  • 0 Questions
  • 20 Points
Begginer
Ella Lewis

Ella Lewis

  • 0 Questions
  • 20 Points
Begginer
Isaac Anderson

Isaac Anderson

  • 0 Questions
  • 20 Points
Begginer

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help

Footer

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise

Querify Question Shop: Explore, ask, and connect. Join our vibrant Q&A community today!

About Us

  • About Us
  • Contact Us
  • All Users

Legal Stuff

  • Terms of Use
  • Privacy Policy
  • Cookie Policy

Help

  • Knowledge Base
  • Support

Follow

© 2022 Querify Question. All Rights Reserved

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.