ื–ื• ื”ืกื™ื‘ื” ืฉื™ืฉ ืฆื•ืจืš ื‘ืืœื’ื‘ืจื” ื‘ืชื™ื›ื•ืŸ

ื‘ื“ืจืš ื›ืœืœ ื”ืฉืืœื” "ืœืžื” ืื ื—ื ื• ืฆืจื™ื›ื™ื ืžืชืžื˜ื™ืงื”?" ื”ื ืขื•ื ื™ื ืžืฉื”ื• ื›ืžื• "ื”ืชืขืžืœื•ืช ื‘ืฉื‘ื™ืœ ื”ื ืคืฉ". ืœื“ืขืชื™ ื”ืกื‘ืจ ื–ื” ืื™ื ื• ืžืกืคื™ืง. ื›ืืฉืจ ืื“ื ืžื‘ืฆืข ืคืขื™ืœื•ืช ื’ื•ืคื ื™ืช, ื”ื•ื ื™ื•ื“ืข ืืช ื”ืฉื ื”ืžื“ื•ื™ืง ืฉืœ ืงื‘ื•ืฆื•ืช ื”ืฉืจื™ืจื™ื ื”ืžืชืคืชื—ื•ืช. ืื‘ืœ ืฉื™ื—ื•ืช ืขืœ ืžืชืžื˜ื™ืงื” ื ืฉืืจื•ืช ืžื•ืคืฉื˜ื•ืช ืžื“ื™. ืื™ืœื• "ืฉืจื™ืจื™ื ืžื ื˜ืœื™ื™ื" ืกืคืฆื™ืคื™ื™ื ืžืื•ืžื ื™ื ืขืœ ื™ื“ื™ ืืœื’ื‘ืจื” ื‘ื™ืช ืกืคืจื™ืช? ื–ื” ื‘ื›ืœืœ ืœื ื“ื•ืžื” ืœืžืชืžื˜ื™ืงื” ืืžื™ืชื™ืช, ืฉื‘ื” ืžืชื’ืœื™ื ืชื’ืœื™ื•ืช ื’ื“ื•ืœื•ืช. ืžื” ื ื•ืชื ืช ื”ื™ื›ื•ืœืช ืœื—ืคืฉ ืืช ื”ื ื’ื–ืจืช ืฉืœ ื›ืžื” ืคื•ื ืงืฆื™ื•ืช ืžืกื•ื‘ื›ื•ืช?

ื”ื•ืจืืช ืชื›ื ื•ืช ืœืชืœืžื™ื“ื™ื ื—ืœืฉื™ื ื”ื•ื‘ื™ืœื” ืื•ืชื™ ืœืชืฉื•ื‘ื” ืžื“ื•ื™ืงืช ื™ื•ืชืจ ืœืฉืืœื” "ืœืžื”?" ื‘ืžืืžืจ ื–ื” ืื ืกื” ืœื”ืขื‘ื™ืจ ืœื›ื ื–ืืช.

ื–ื• ื”ืกื™ื‘ื” ืฉื™ืฉ ืฆื•ืจืš ื‘ืืœื’ื‘ืจื” ื‘ืชื™ื›ื•ืŸ
ื‘ื‘ื™ืช ื”ืกืคืจ, ื“ื™ ื”ืจื‘ื” ื–ืžืŸ ืžื•ืงื“ืฉ ืœืฉื™ื ื•ื™ ื•ืคื™ืฉื•ื˜ ื‘ื™ื˜ื•ื™ื™ื. ืœื“ื•ื’ืžื”: ื™ืฉ ืœื”ืžื™ืจ ืืช 81ร—2+126xy+49y2 ื‘ืชื•ืจ (9x+7y)2.

ื‘ื“ื•ื’ืžื” ื–ื•, ืžืฆื•ืคื” ืžื”ืชืœืžื™ื“ ืœื–ื›ื•ืจ ืืช ื”ื ื•ืกื—ื” ืฉืœ ืจื™ื‘ื•ืข ื”ืกื›ื•ื

ื–ื• ื”ืกื™ื‘ื” ืฉื™ืฉ ืฆื•ืจืš ื‘ืืœื’ื‘ืจื” ื‘ืชื™ื›ื•ืŸ

ื‘ืžืงืจื™ื ืžื•ืจื›ื‘ื™ื ื™ื•ืชืจ, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื‘ื™ื˜ื•ื™ ื”ืžืชืงื‘ืœ ืขื‘ื•ืจ ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช ืื—ืจื•ืช. ืœื“ื•ื’ืžื”:

ื–ื• ื”ืกื™ื‘ื” ืฉื™ืฉ ืฆื•ืจืš ื‘ืืœื’ื‘ืจื” ื‘ืชื™ื›ื•ืŸ

ืžื•ืžืจ ืชื—ื™ืœื” ืœ

ื–ื• ื”ืกื™ื‘ื” ืฉื™ืฉ ืฆื•ืจืš ื‘ืืœื’ื‘ืจื” ื‘ืชื™ื›ื•ืŸ

ื•ืื–, ืขื ื”ื”ื‘ื”ืจื” (a + 2b) != 0, ื–ื” ื™ื•ืฆื ื›ื›ื”

ื–ื• ื”ืกื™ื‘ื” ืฉื™ืฉ ืฆื•ืจืš ื‘ืืœื’ื‘ืจื” ื‘ืชื™ื›ื•ืŸ

ื›ื“ื™ ืœื”ืฉื™ื’ ืชื•ืฆืื” ื–ื•, ื”ืชืœืžื™ื“ ืฆืจื™ืš ืœื”ื›ื™ืจ ื‘ื‘ื™ื˜ื•ื™ ื”ืžืงื•ืจื™ ื•ืœืื—ืจ ืžื›ืŸ ืœื™ื™ืฉื ืฉืœื•ืฉ ื ื•ืกื—ืื•ืช:

  • ืจื™ื‘ื•ืข ื”ืกื›ื•ื
  • ื”ื‘ื“ืœ ืฉืœ ืจื™ื‘ื•ืขื™ื
  • ื”ืคื—ืชืช ื”ื’ื•ืจืžื™ื ืฉืœ ืฉื‘ืจ ื ืคื•ืฅ

ื‘ื‘ื™ืช ื”ืกืคืจ ืœืืœื’ื‘ืจื”, ื›ืžืขื˜ ื›ืœ ื”ื–ืžืŸ ื‘ื™ืœื™ื ื• ื‘ืฉื™ื ื•ื™ ื‘ื™ื˜ื•ื™ื™ื ื›ืืœื”. ืฉื•ื ื“ื‘ืจ ืœื ื”ืฉืชื ื” ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ื‘ืžืชืžื˜ื™ืงื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ ื‘ืื•ื ื™ื‘ืจืกื™ื˜ื”. ืืžืจื• ืœื ื• ืื™ืš ืœืงื—ืช ื ื’ื–ืจื•ืช (ืื™ื ื˜ื’ืจืœื™ื ื•ื›ื•') ื•ื ืชื ื• ืœื ื• ื”ืžื•ืŸ ื‘ืขื™ื•ืช. ื”ืื ื–ื” ื”ื™ื” ืžื•ืขื™ืœ? ืœื“ืขืชื™ - ื›ืŸ. ื›ืชื•ืฆืื” ืžื‘ื™ืฆื•ืข ื”ืชืจื’ื™ืœื™ื ื”ื‘ืื™ื:

  1. ื”ืžื™ื•ืžื ื•ืช ืฉืœ ืฉื™ื ื•ื™ ื‘ื™ื˜ื•ื™ื™ื ื”ืฉืชื›ืœืœื”.
  2. ื”ืชืคืชื—ื” ืชืฉื•ืžืช ืœื‘ ืœืคืจื˜ื™ื.
  3. ื ื•ืฆืจ ืื™ื“ื™ืืœ - ื‘ื™ื˜ื•ื™ ืœืงื•ื ื™ ืฉืืœื™ื• ื ื™ืชืŸ ืœืฉืื•ืฃ.

ืœื“ืขืชื™, ื‘ืขืœ ืืชื•ืก, ืื™ื›ื•ืช ื•ืžื™ื•ืžื ื•ืช ืฉื›ื–ื” ื”ื•ื ืฉื™ืžื•ืฉื™ ืžืื•ื“ ื‘ืขื‘ื•ื“ื” ื”ื™ื•ืžื™ื•ืžื™ืช ืฉืœ ืžืคืชื—. ืื—ืจื™ ื”ื›ืœ, ืœืคืฉื˜ ื‘ื™ื˜ื•ื™ ืคื™ืจื•ืฉื• ื‘ืขืฆื ืœืฉื ื•ืช ืืช ื”ืžื‘ื ื” ืฉืœื• ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ื”ื‘ื ื” ืžื‘ืœื™ ืœื”ืฉืคื™ืข ืขืœ ื”ืžืฉืžืขื•ืช. ื–ื” ืžื–ื›ื™ืจ ืœืš ืžืฉื”ื•?

ื–ื•ื”ื™ ืœืžืขืฉื” ื”ื”ื’ื“ืจื” ืฉืœ refactoring ืžื”ืกืคืจ ื‘ืขืœ ืื•ืชื• ื”ืฉื ืžืืช ืžืจื˜ื™ืŸ ืคืื•ืœืจ.

ื‘ืขื‘ื•ื“ืชื•, ื”ืžื—ื‘ืจ ืžื ืกื— ืื•ืชื ื›ืš:

Refactoring (n): ืฉื™ื ื•ื™ ื‘ืžื‘ื ื” ื”ืคื ื™ืžื™ ืฉืœ ืชื•ื›ื ื” ืฉื ื•ืขื“ ืœื”ืงืœ ืขืœ ื”ื”ื‘ื ื” ื•ื”ืฉื™ื ื•ื™ ืžื‘ืœื™ ืœื”ืฉืคื™ืข ืขืœ ื”ื”ืชื ื”ื’ื•ืช ื”ื ื™ืชื ืช ืœืฆืคื™ื™ื”.

Refactor (ืคื•ืขืœ): ืฉื ื” ืืช ืžื‘ื ื” ื”ืชื•ื›ื ื” ืขืœ ื™ื“ื™ ื™ื™ืฉื•ื ืกื“ืจื” ืฉืœ Refactorings ืžื‘ืœื™ ืœื”ืฉืคื™ืข ืขืœ ื”ืชื ื”ื’ื•ืชื”.

ื”ืกืคืจ ื ื•ืชืŸ "ื ื•ืกื—ืื•ืช" ืฉืฆืจื™ืš ืœื”ื›ื™ืจ ื‘ืงื•ื“ ื”ืžืงื•ืจ ื•ืืช ื”ื›ืœืœื™ื ืœื”ืžืจืชืŸ.

ื›ื“ื•ื’ืžื” ืคืฉื•ื˜ื”, ืืชืŸ ืืช "ื”ืงื“ืžื” ืฉืœ ืžืฉืชื ื” ืžืกื‘ื™ืจ" ืžื”ืกืคืจ:

if ( (platform.toUpperCase().indexOf(โ€œMACโ€) > -1 ) &&
    (browser.toUpperCase().indexOf(โ€œIEโ€) > -1 )&&
    wasInitialized() && resize > 0 ) {
    // do something
}

ื™ืฉ ืœื›ืชื•ื‘ ื—ืœืงื™ื ืžื”ื‘ื™ื˜ื•ื™ ืœืชื•ืš ืžืฉืชื ื” ืฉืฉืžื• ืžืกื‘ื™ืจ ืืช ืžื˜ืจืชื•.

final boolean isMacOS = platform.toUpperCase().indexOf(โ€œMACโ€) > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf(โ€œIEโ€) > -1;
final boolean isResized = resize > 0;
if(isMacOS && isIEBrowser && wasInitialized() && isResized) {
   // do something
}

ืชืืจื• ืœืขืฆืžื›ื ืื“ื ืฉืื™ื ื• ื™ื›ื•ืœ ืœืคืฉื˜ ื‘ื™ื˜ื•ื™ื™ื ืืœื’ื‘ืจื™ื™ื ื‘ืืžืฆืขื•ืช ื ื•ืกื—ืช ื”ืกื›ื•ื ื‘ืจื™ื‘ื•ืข ื•ื”ืคืจืฉ ื”ืจื™ื‘ื•ืขื™ื.

ืืชื” ื—ื•ืฉื‘ ืฉื”ืื“ื ื”ื–ื” ื™ื›ื•ืœ ืœืฉื—ื–ืจ ืืช ื”ืงื•ื“?

ื”ืื ื”ื•ื ื‘ื›ืœืœ ื™ื•ื›ืœ ืœื›ืชื•ื‘ ืงื•ื“ ืฉืื ืฉื™ื ืื—ืจื™ื ื™ื›ื•ืœื™ื ืœื”ื‘ื™ืŸ ืื ื”ื•ื ืœื ื™ืฆืจ ืืช ื”ืื™ื“ื™ืืœ ืฉืœ ื”ืงื™ืฆื•ืจ ื”ื–ื” ื‘ื“ื™ื•ืง? ืœื“ืขืชื™, ืœื.

ืขื ื–ืืช, ื›ื•ืœื ื”ื•ืœื›ื™ื ืœื‘ื™ืช ื”ืกืคืจ, ื•ืžื™ืขื•ื˜ื ื”ื•ืคื›ื™ื ืœืžืชื›ื ืชื™ื. ื”ืื ืžื™ื•ืžื ื•ืช ื”ืžืจืช ื”ื‘ื™ื˜ื•ื™ ืฉื™ืžื•ืฉื™ืช ืขื‘ื•ืจ ืื ืฉื™ื ืจื’ื™ืœื™ื? ืื ื™ ื—ื•ืฉื‘ ืฉื›ืŸ. ืจืง ื”ืžื™ื•ืžื ื•ืช ืžื™ื•ืฉืžืช ื‘ืฆื•ืจื” ืžื•ืคืฉื˜ืช ื™ื•ืชืจ: ืขืœื™ืš ืœื”ืขืจื™ืš ืืช ื”ืžืฆื‘ ื•ืœื‘ื—ื•ืจ ืคืขื•ืœื” ื ื•ืกืคืช ื›ื“ื™ ืœื”ืชืงืจื‘ ืืœ ื”ืžื˜ืจื”. ื‘ืคื“ื’ื•ื’ื™ื” ืงื•ืจืื™ื ืœืชื•ืคืขื” ื”ื–ื• ื”ืขื‘ืจื” (ืžื™ื•ืžื ื•ืช).

ื”ื“ื•ื’ืžืื•ืช ื”ื‘ื•ืœื˜ื•ืช ื‘ื™ื•ืชืจ ืขื•ืœื•ืช ื‘ืžื”ืœืš ืชื™ืงื•ื ื™ ื‘ื™ืช ื‘ืืžืฆืขื™ื ืžืื•ืœืชืจื™ื, ืฉื™ื˜ืช "ื”ื—ื•ื•ื” ื”ืงื™ื‘ื•ืฆื™ืช". ื›ืชื•ืฆืื” ืžื›ืš, ืื•ืชื "ื˜ืจื™ืงื™ื" ื•ืคืจื™ืฆื•ืช ื—ื™ื™ื ืžื•ืคื™ืขื™ื, ืฉืื—ื“ ืžื”ื ืžืชื•ืืจ ื‘-KPDV. ืœืžื—ื‘ืจ ื”ืจืขื™ื•ืŸ ื”ื™ื• ื—ืชื™ื›ืช ืขืฅ, ื—ื•ื˜ ื•ืืจื‘ืขื” ื‘ืจื’ื™ื. ื›ืฉื ื–ื›ืจ ื‘ืชื‘ื ื™ืช ืฉืงืข ื”ืžื ื•ืจื”, ื”ื•ื ื”ืจื›ื™ื‘ ืžื”ื ืฉืงืข ืžื ื•ืจื” ื‘ื™ืชื™.

ื’ื ื‘ื ื”ื™ื’ื” ื‘ืจื›ื‘, ื”ื ื”ื’ ืขื•ืกืง ื›ืœ ื”ื–ืžืŸ ื‘ื–ื™ื”ื•ื™ ื“ืคื•ืกื™ื ื‘ืขื•ืœื ืกื‘ื™ื‘ื• ื•ื‘ื™ืฆื•ืข ื”ืชืžืจื•ื ื™ื ื”ืžืชืื™ืžื™ื ื›ื“ื™ ืœื”ื’ื™ืข ืœื™ืขื“ื•.

ื›ืฉืืชื” ืžืช, ืืชื” ืœื ื™ื•ื“ืข ืขืœ ื–ื”, ื–ื” ืคืฉื•ื˜ ืงืฉื” ืœืื—ืจื™ื. ื–ื” ืื•ืชื• ื“ื‘ืจ ื›ืฉืืชื” ืœื ืฉื•ืœื˜ ื‘ืžืชืžื˜ื™ืงื”...

ืžื” ืงื•ืจื” ืื ืื“ื ืœื ืžืฆืœื™ื— ืœืฉืœื•ื˜ ื‘ื˜ืจื ืกืคื•ืจืžืฆื™ื” ืฉืœ ื‘ื™ื˜ื•ื™ื™ื? ืžื“ื™ ืคืขื ืื ื™ ืžืขื‘ื™ืจ ืฉื™ืขื•ืจื™ื ืคืจื˜ื ื™ื™ื ืœืชืœืžื™ื“ื™ื ืฉื”ื™ื• ื’ืจื•ืขื™ื ื‘ืžืชืžื˜ื™ืงื” ื‘ื‘ื™ืช ื”ืกืคืจ. ื›ื›ืœืœ, ื”ื ื ืชืงืขื™ื ืœื—ืœื•ื˜ื™ืŸ ื‘ื ื•ืฉื ื”ืžื—ื–ื•ืจื™ื•ืช. ืขื“ ื›ื“ื™ ื›ืš ืฉืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ืื™ืชื "ืืœื’ื‘ืจื”", ืื‘ืœ ื‘ืฉืคืช ืชื›ื ื•ืช.
ื–ื” ืงื•ืจื” ื›ื™ ื‘ืขืช ื›ืชื™ื‘ืช ืœื•ืœืื•ืช, ื”ื˜ื›ื ื™ืงื” ื”ืขื™ืงืจื™ืช ื”ื™ื ืœื”ืคื•ืš ืงื‘ื•ืฆื” ืฉืœ ื‘ื™ื˜ื•ื™ื™ื ื–ื”ื™ื.

ื ื ื™ื— ืฉื”ืชื•ืฆืื” ืฉืœ ื”ืชื•ื›ื ื™ืช ืฆืจื™ื›ื” ืœื”ื™ืจืื•ืช ื›ืš:

ืžื‘ื•ื
ืคืจืง 1
ืคืจืง 2
ืคืจืง 3
ืคืจืง 4
ืคืจืง 5
ืคืจืง 6
ืคืจืง 7
ืžืกืงื ื”

ืชื•ื›ื ื™ืช ื˜ืจื™ื•ื•ื™ืืœื™ืช ืœื”ืฉื’ืช ืชื•ืฆืื” ื–ื• ื ืจืื™ืช ื›ืš:

static void Main(string[] args)
{
    Console.WriteLine("ะ’ะฒะตะดะตะฝะธะต");
    Console.WriteLine("ะ“ะปะฐะฒะฐ 1");
    Console.WriteLine("ะ“ะปะฐะฒะฐ 2");
    Console.WriteLine("ะ“ะปะฐะฒะฐ 3");
    Console.WriteLine("ะ“ะปะฐะฒะฐ 4");
    Console.WriteLine("ะ“ะปะฐะฒะฐ 5");
    Console.WriteLine("ะ“ะปะฐะฒะฐ 6");
    Console.WriteLine("ะ“ะปะฐะฒะฐ 7");
    Console.WriteLine("ะ—ะฐะบะปัŽั‡ะตะฝะธะต");
}

ืื‘ืœ ื”ืคืชืจื•ืŸ ื”ื–ื” ืจื—ื•ืง ืžืœื”ื™ื•ืช ืื™ื“ื™ืืœ ืœืงื•ื ื™. ืจืืฉื™ืช ืขืœื™ืš ืœืžืฆื•ื ื‘ื” ืงื‘ื•ืฆื” ื—ื•ื–ืจืช ืฉืœ ืคืขื•ืœื•ืช ื•ืœืื—ืจ ืžื›ืŸ ืœื”ืžื™ืจ ืื•ืชื”. ื”ืคืชืจื•ืŸ ืฉื™ืชืงื‘ืœ ื™ื™ืจืื” ื›ืš:

static void Main(string[] args)
{
    Console.WriteLine("ะ’ะฒะตะดะตะฝะธะต");
    for (int i = 1; i <= 7; i++)
    {
        Console.WriteLine("ะ“ะปะฐะฒะฐ " + i);
    }
    Console.WriteLine("ะ—ะฐะบะปัŽั‡ะตะฝะธะต");
}

ืื ืื“ื ืœื ืฉืœื˜ ื‘ืžืชืžื˜ื™ืงื” ื‘ื–ืžืŸ ืื—ื“, ืื– ื”ื•ื ืœื ื™ื•ื›ืœ ืœื‘ืฆืข ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช ื›ืืœื”. ืคืฉื•ื˜ ืœื ืชื”ื™ื” ืœื• ื”ื›ื™ืฉื•ืจื™ื ื”ืžืชืื™ืžื™ื. ื–ื• ื”ืกื™ื‘ื” ืฉื”ื ื•ืฉื ืฉืœ ืœื•ืœืื•ืช ื”ื•ื ื”ืžื›ืฉื•ืœ ื”ืจืืฉื•ืŸ ื‘ื”ื›ืฉืจืช ืžืคืชื—.

ื‘ืขื™ื•ืช ื“ื•ืžื•ืช ืžืชืขื•ืจืจื•ืช ื‘ืชื—ื•ืžื™ื ืื—ืจื™ื. ืื ืื“ื ืœื ื™ื•ื“ืข ืื™ืš ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ื ืฉื‘ื™ื“ื•, ืื– ื”ื•ื ืœื ื™ื•ื›ืœ ืœื”ืจืื•ืช ื›ื•ืฉืจ ื”ืžืฆืื” ื™ื•ืžื™ื•ืžื™. ืœืฉื•ื ื•ืช ืจืขื•ืช ื™ื’ื™ื“ื• ืฉื”ื™ื“ื™ื™ื ืฆื•ืžื—ื•ืช ืžื”ืžืงื•ื ื”ืœื ื ื›ื•ืŸ. ืขืœ ื”ื›ื‘ื™ืฉ, ื–ื” ืžืชื‘ื˜ื ื‘ื—ื•ืกืจ ื”ื™ื›ื•ืœืช ืœื”ืขืจื™ืš ื ื›ื•ืŸ ืืช ื”ืžืฆื‘ ื•ืœื‘ื—ื•ืจ ืชืžืจื•ืŸ. ืžื” ืฉื™ื›ื•ืœ ืœืคืขืžื™ื ืœื”ื•ื‘ื™ืœ ืœืชื•ืฆืื•ืช ื˜ืจื’ื™ื•ืช.

ืžืกืงื ื•ืช:

  1. ืื ื• ื–ืงื•ืงื™ื ืœืžืชืžื˜ื™ืงื” ืฉืœ ื‘ื™ืช ืกืคืจ ื•ืื•ื ื™ื‘ืจืกื™ื˜ื” ื›ื“ื™ ืฉื ื•ื›ืœ ืœื”ืคื•ืš ืืช ื”ืขื•ืœื ืœืžืงื•ื ื˜ื•ื‘ ื™ื•ืชืจ ืขื ื”ืืžืฆืขื™ื ืฉื™ืฉ ืœื ื•.
  2. ืื ืืชื” ืกื˜ื•ื“ื ื˜ ื•ืžืชืงืฉื” ืœืœืžื•ื“ ืžื—ื–ื•ืจื™ื, ื ืกื” ืœื—ื–ื•ืจ ืœื™ืกื•ื“ื•ืช - ืืœื’ื‘ืจื” ื‘ื™ืช ืกืคืจื™ืช. ืงื— ืกืคืจ ื‘ืขื™ื•ืช ืœื›ื™ืชื” ื˜' ื•ืคืชื•ืจ ืžืžื ื• ื“ื•ื’ืžืื•ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”