Home > Net >  Consult the business function extension of software modification maintenance problems.
Consult the business function extension of software modification maintenance problems.

Time:09-16

Ask a question, the project has issued, the customer in use after period of time (1 year), to the expansion of the business functions on the basis of the original database (here the business need to increase table field in the table),
History and the customer also need to keep the business data query and statistics, based on the expansion of the business functions, I now projects need to modify the code in the database access module, interface display module of code, the code in the data query module, statistics module of code, such as
This code change amount is so big, have good design method?
You usually how to deal with the business functions to modify?
Whether to use frame design software when modifying the type function expansion easily?

CodePudding user response:

His first take a bubble

CodePudding user response:

Separate development of a historical data query system,

Continue to maintain the current system development,

Need to consider whether you need new data and historical data with statistics,

You this mostly project open before docking with the customer not good, so will always communicate with users, the demand first design try to do well,

No other good idea, you also don't understand to your specific business,

CodePudding user response:

Database table to increase the field, then the interface display must be changed (such as multiple button, text box), interface display changes must also get involved in code (such as fuzzy query, only need according to the original name is now added a time field, need according to the fuzzy query name and date), so the structure of the database table changes sometimes is holding a launch a whole body, can only change its beauties

CodePudding user response:

Project open before and customer communication is good, this is bullshit, not good communication, customer do the first phase of the project estimate all don't know for a second phase, a year before they want to up to do new features, how can you communicate in advance? Now can do is try not to move the original table structure and code, as you say, this new function is not the original function of modification, but new features, then try not to move the original table structure, a new table, code as far as possible with the new class, rather than to change the original class,

CodePudding user response:

I have done a project, the user even the basic function of repeatedly changing, they didn't set yourself well, say a constant of the underlying business rules, or want to change back to the original, what can you do?

CodePudding user response:

Choose framework class library has a little effect, but usually more junior programmer to rely mainly on the role of, once the project is complex, creative and more own core technology, so it's not what this road is the main choice is not big,

Back to the nature of programming, the programming goal is not to release, the purpose of programming is to pass the test, and the purpose of the test is to release, conference and training purpose is to let users to use, so when you feel "good big workload, often because you don't have a long-term accumulation mechanism of automated testing, there is no guarantee that the product quality,

Write software to the most basic professional characteristics, primary is going to write a lot of assertions, senior is to write hundreds or even thousands of automatic testing, whenever the program code to modify, will run the automated tests, repeated every day, random, concurrently test tens of thousands of times, will dare to submit, so even if a major emergency need to modify the code in the sudden hundreds or even thousands of bug, also will be very easy, you see a programmer at this time whether has the courage, will know that is the amateur or professional,

CodePudding user response:

"Try not to move the original table structure and code" to be honest, this is for programmers may have a more advanced things, for the user and the strategic investors is dirt! Programmers cannot live forever in our narcissistic in the ivory tower, but with their own service organizations to maintain balance, the balance is to use the requirements document and work log specific, operational, refining, no nonsense, can be guaranteed as evidence of a legal dispute, programmers and a big advantage, almost 99% of the industry in the future society people would lose jobs, but the programmer's demand more and more, this is the advantage of programmers, so programmers to learn to write test code requirements, learn to test-driven development, not only do the lowest piece together forever "people used to code" coolie,

CodePudding user response:

Large amount of code? The customer how long does it take for you? How much money for you? Such as: give you a year, 1 million, a person's workload, large amount of code like this? Let programmers to have money, and to pay and is proportional to the money, to make themselves feel cool just have power to do things,
Customer database replication, and then in the original database upgrade, every time to delete them whatever database changes or add, record with dongdong, then finished, an update to take your record of east east and change the customer database, database change over, and then upgrade procedures,

CodePudding user response:

First code will certainly change, the more the more complex the project in the changes, select useful framework that's for sure, but for large projects, not very useful, because people put forward the design out of the framework, has its own framework for large projects, this framework is based on the business logic to their program,

CodePudding user response:

Basic principle is to do not change the old code, can be used to add new class to handle inheritance

CodePudding user response:

Customers also need to keep the historical business data query and statistics, the amount of code change is so big, do you have any good design method?
The open closed principle, is open for extension, but are often closed to the modification,
Depend on the inversion principle, should use more abstract interfaces in your code, as far as possible avoid the use of various concrete implementation class,
  • Related