--Duplicate code --The code is doubled here and there --Methods that are too long --Method is too long --Huge class --The class has too many fields and methods --Too many arguments --Too many arguments to pass to the method --Changing changes --There are many corrections scattered around when specification changes occur. --Distribution of changes --If you modify one class, you must modify the other classes as well. --Homewrecker of attributes and operations ――There is a class that is always playing with the contents of other classes --A swarm of data --Multiple data to be handled together are not collected in one class --Obsession with basic data types --No classes are created, only basic data types such as int are used --Switch statement --Behaviors are separated using switch statements and if statements --Parallel inheritance --If you create a subclass, you must create a subclass elsewhere in the class hierarchy. --Lazy class ――The class doesn't do much work --Suspicious generalization ――It's too generalized, hoping that it will be expanded like this one day. --Temporary attributes --Some fields are used only temporarily --Message chain --There is a chain of method calls --Intermediary ――There are classes that are just being transferred and not working on their own --Inappropriate relationship --You have a two-way link when you don't need it, or you use inheritance when you don't have an IS-A relationship. --Class interface mismatch --Inappropriate class interface (API) --Immature class library --Existing class library is difficult to use --Data class --Some classes have only fields, getter and setter methods --Inheritance refusal --The method is inherited, but when you call it, a problem occurs. --Comment --There are detailed comments to make up for the deficiencies in the code.
Recommended Posts