java-refactoring-extract-method

द्वारा github

जावा विधि निष्कर्षण रिफैक्टरिंग जो पठनीयता और रखरखाव में सुधार करता है। जटिलता सीमा (LOC > 15, कथन > 10, चक्रीय जटिलता > 10) से अधिक विधियों की पहचान करता है और तार्किक कोड ब्लॉकों को केंद्रित सहायक विधियों में निकालता है। वर्णनात्मक विधि नामों और एकल-पंक्ति दस्तावेज़ीकरण टिप्पणियों के साथ पूरी तरह से संकलन योग्य Java 17 कोड तैयार करता है। छोटी, एकल-उत्तरदायित्व विधियों के माध्यम से संज्ञानात्म

npx skills add https://github.com/github/awesome-copilot --skill java-refactoring-extract-method

Refactoring Java Methods with Extract Method

Role

You are an expert in refactoring Java methods.

Below are 2 examples (with titles code before and code after refactoring) that represents Extract Method.

Code Before Refactoring 1:

public FactLineBuilder setC_BPartner_ID_IfValid(final int bpartnerId) {
	assertNotBuild();
	if (bpartnerId > 0) {
		setC_BPartner_ID(bpartnerId);
	}
	return this;
}

Code After Refactoring 1:

public FactLineBuilder bpartnerIdIfNotNull(final BPartnerId bpartnerId) {
	if (bpartnerId != null) {
		return bpartnerId(bpartnerId);
	} else {
		return this;
	}
}
public FactLineBuilder setC_BPartner_ID_IfValid(final int bpartnerRepoId) {
	return bpartnerIdIfNotNull(BPartnerId.ofRepoIdOrNull(bpartnerRepoId));
}

Code Before Refactoring 2:

public DefaultExpander add(RelationshipType type, Direction direction) {
     Direction existingDirection = directions.get(type.name());
     final RelationshipType[] newTypes;
     if (existingDirection != null) {
          if (existingDirection == direction) {
               return this;
          }
          newTypes = types;
     } else {
          newTypes = new RelationshipType[types.length + 1];
          System.arraycopy(types, 0, newTypes, 0, types.length);
          newTypes[types.length] = type;
     }
     Map<String, Direction> newDirections = new HashMap<String, Direction>(directions);
     newDirections.put(type.name(), direction);
     return new DefaultExpander(newTypes, newDirections);
}

Code After Refactoring 2:

public DefaultExpander add(RelationshipType type, Direction direction) {
     Direction existingDirection = directions.get(type.name());
     final RelationshipType[] newTypes;
     if (existingDirection != null) {
          if (existingDirection == direction) {
               return this;
          }
          newTypes = types;
     } else {
          newTypes = new RelationshipType[types.length + 1];
          System.arraycopy(types, 0, newTypes, 0, types.length);
          newTypes[types.length] = type;
     }
     Map<String, Direction> newDirections = new HashMap<String, Direction>(directions);
     newDirections.put(type.name(), direction);
     return (DefaultExpander) newExpander(newTypes, newDirections);
}
protected RelationshipExpander newExpander(RelationshipType[] types,
          Map<String, Direction> directions) {
     return new DefaultExpander(types, directions);
}

Task

Apply Extract Method to improve readability, testability, maintainability, reusability, modularity, cohesion, low coupling, and consistency.

Always return a complete and compilable method (Java 17).

Perform intermediate steps internally:

  • First, analyze each method and identify those exceeding thresholds:
    • LOC (Lines of Code) > 15
    • NOM (Number of Statements) > 10
    • CC (Cyclomatic Complexity) > 10
  • For each qualifying method, identify code blocks that can be extracted into separate methods.
  • Extract at least one new method with a descriptive name.
  • Output only the refactored code inside a single java block.
  • Do not remove any functionality from the original method.
  • Include a one-line comment above each new method describing its purpose.

Code to be Refactored:

Now, assess all methods with high complexity and refactor them using Extract Method

github की और Skills

console-rendering
github
Go में struct टैग-आधारित कंसोल रेंडरिंग सिस्टम का उपयोग करने के निर्देश
official
acquire-codebase-knowledge
github
इस कौशल का उपयोग तब करें जब उपयोगकर्ता स्पष्ट रूप से किसी मौजूदा कोडबेस का मानचित्रण, दस्तावेज़ीकरण या उसमें शामिल होने का अनुरोध करे। "इस कोडबेस का मानचित्रण करें", "दस्तावेज़ीकरण करें..." जैसे संकेतों के लिए ट्रिगर करें।
official
acreadiness-assess
github
Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc…
official
acreadiness-generate-instructions
github
एजेंटआरसी निर्देश कमांड के माध्यम से अनुकूलित AI एजेंट निर्देश फ़ाइलें उत्पन्न करता है। .github/copilot-instructions.md (डिफ़ॉल्ट, VS में Copilot के लिए अनुशंसित) उत्पन्न करता है…
official
acreadiness-policy
github
उपयोगकर्ता को AgentRC नीति चुनने, लिखने या लागू करने में सहायता करें। नीतियाँ अप्रासंगिक जाँचों को अक्षम करके, प्रभाव/स्तर को ओवरराइड करके, सेट करके तत्परता स्कोरिंग को अनुकूलित करती हैं…
official
add-educational-comments
github
कोड फ़ाइलों में शैक्षिक टिप्पणियाँ जोड़कर उन्हें प्रभावी शिक्षण संसाधनों में बदलें। व्याख्या की गहराई और लहज़े को तीन कॉन्फ़िगरेबल ज्ञान स्तरों के अनुसार अनुकूलित करता है: शुरुआती, मध्यवर्ती और उन्नत। यदि कोई फ़ाइल प्रदान नहीं की गई है तो स्वचालित रूप से एक फ़ाइल का अनुरोध करता है, त्वरित चयन के लिए क्रमांकित सूची मिलान के साथ। केवल शैक्षिक टिप्पणियों का उपयोग करके फ़ाइलों को 125% तक विस्तारित कर
official
adobe-illustrator-scripting
github
एक्सटेंडस्क्रिप्ट (जावास्क्रिप्ट/JSX) का उपयोग करके Adobe Illustrator ऑटोमेशन स्क्रिप्ट लिखें, डीबग करें और ऑप्टिमाइज़ करें। उन स्क्रिप्ट को बनाने या संशोधित करने के लिए उपयोग करें जो…
official
agent-governance
github
एजेंट टूल एक्सेस और व्यवहार को नियंत्रित करने के लिए घोषणात्मक नीतियां, इरादा वर्गीकरण और ऑडिट ट्रेल्स। कंपोजेबल गवर्नेंस नीतियां अनुमत/अवरुद्ध टूल, सामग्री फ़िल्टर, दर सीमाएं और अनुमोदन आवश्यकताओं को परिभाषित करती हैं — कॉन्फ़िगरेशन के रूप में संग्रहीत, कोड नहीं। सिमैंटिक इरादा वर्गीकरण टूल निष्पादन से पहले पैटर्न-आधारित संकेतों का उपयोग करके खतरनाक प्रॉम्प्ट
official