
áĄááŻááșááŒá±áŹááșážáá±áŹá·áááș áĄááșááŹáá»á°ážááŒá±áááș áááŻáĄááșááŹáá±áŹáĄáá«ááœááș ááááŠážááŻá¶áž áááșáááșáá±áŹáĄááŹááŸáŹ "áĄááșááŹáá»á°ážáĄááœááș ááŒááŻáááșááŒááșáááșááŹážáááș áááŻáĄááșáááș" áᯠáááșááŒááșáááááșááŸáŹ ááá·áșáĄááœááș áá°ážáááșážáááșáááŻááșáá±á HackerRank ááœááșááŒáżááŹáá»áŹážáááŻááŒá±ááŸááșážáá«á ááŻááșáĄááșááŹáá»áŻážááᯠCrack áááșáá«á ArrayList áĄááŻááșááŻááșááŻá¶ááŸáá·áș LinkedList ááœáŹááŒáŹážááŻá¶ááᯠáĄááœááșáá»ááșáá«á áĄááŻáž ááŻááșááČá·á áĄáá»ááŻážáĄá
áŹážááœáČááŒááșážáĄááŒá±áŹááșážáááșáž áá±ážáá±áŹááșážáá±ážáááŻááșáááșá áĄááŒááșáĄáá»ááŻážáĄá
áŹážá áĄáá±áŹááșážááŻá¶ážááœá±ážáá»ááșááŸáŻááŒá
áșáááșáááŻá· ááŒá±áŹááŹá ááá±áŹáșáááșááŸááșáááșáááŻááșááŒá±áŹááșáž ááááŹáááșááŸáŹážáá«áááșá
áá«áá±ááá·áș á
á±áŹáá·áșáá«á áááșážá áá
áșáá±á·ááᯠá ááŹááź áĄá
áźáĄá
ááșááœáČááŒáźáž á
áááșáááșá
áŹážá
ááŹáá±áŹááșážááŒáźáž áĄáá±ážáĄááœáČáááŻááșááČá· ááŒáżááŹááœá±ááᯠááŒá±ááŸááșážáá±ážááŒáźáž áĄááŻááșáĄáá
áșááŸáŹ áĄáá±á«ááșáž áá«ááŸáááŻááș áĄááŻááșáááŻááČ ááŻááșáááá·áșáááșá áááșáááŻá·áááșáááŻá
á±ááŹáá° áĄááșááŹáá»á°ážáá
áșááŻáĄá±áŹááșááŒááșáááșáĄááœááș áááșáááș áááșááá±á·á
ááșáá»áœááșážáá»ááșááŸáŻááᯠááá±áŹáșááŒááČ áá
áșáááșážáááșážááŒáá·áș ááŒááŻáááșááŒááșáááșááŹážáááș áááŻáĄááșáá±áŹáșáááșáž áááșááááșááŸááĄááŻááșááœááș áááșááááŻáĄááșááČááŸáá·áș áá±áŹááșáá
áșááŻááœááș áááŻáĄááșáááŻááșááœááșáááŸáááá·áșáĄááŹáá»áŹážááᯠáá±á·ááŹáá«á ááœááșááŒá°ááŹááááčáá¶áᏠáá«áááŻá·ááČá·ááœá±ážááČáá«áá±ááŹááᯠáááșážááá·áșááœááșáááșá áááșáž áá«áááŻá·ááᯠááááșááŸáŹáááŻážáááș áááááŒááșááááČ áá
áșáááșáá
áșáááșááČá·áĄáá»ááșááááŻááșááᯠáá±á«ááșážáĄáŻá¶ážá
áœááșáá
áșááŻáá±á«áșááŸáŹ áá»ááșá
áááŸáááșááŒáźáž á
áŹáá±ážáááŻááșážáááŸáŹáá±á«á·á áááșáááșááŸáŹ áĄááŻááșááááș á áá«á·ááČá· áĄááá ááŸáá·áșááœááșá ááźááᯠáĄáááĄáá» ááŒá
áșáááá·áșáááș á ááŻááșá áá« ááá±áŹáá°áááș á ááźáĄáááșáĄáá»ááșážááᯠá
ááșážáááșáááŻá· áááŻáá«áááșá
áá«áá±ááá·áș áááșážááČá·áááșááŸááĄááŻááșááČá· ááááșáááŻááșááČá· áĄáááșáĄáá»ááșážááœá±ááᯠááŹááŒá±áŹáá·áș á
ááșážáááșááŹááČá áááșááŸááșáá»ááŹááŹááŒá±áŹáá·áșááŹážá Google á ááźáááŻááŻááșáááŻá·ááŹážá áááŻá·áááŻááș áááșááĄááŹáááșáĄááœáČá·áá±á«ááșážáá±áŹááșáááș áĄááșááŹáá»á°ážáá
ááź á
áźááŒááșážáááșážáááșážáĄáŹážááŻá¶ážááᯠáá±á·ááŹááČá·ááá±áŹááŒá±áŹáá·áș áááŻáĄáá«ááœááș "ááááŻááááșááŹáá±áŹááșážáááŻááșážáááș á
áŹáááșážáá
áșááŻááČááœááș palindrome áááŻááŸáŹááœá±ááŒááșážááĄáá±áŹááșáĄáááșáá±áŹáșááŸáŻááᯠá
áááșááŸááŻá¶ážááŒáá·áș ááááááș" áᯠááŻá¶ááŒááșáá±áá«áááșá
áá±áŹááșážááŒáźá áááșáááș Google (á) áááŻááșáá«á Google á ááŹáááșáááŻááșááČ ááŹááŹááș ááŻááčáááźááœá±á áááŻááșáááŻááșáá°ážá Google áááș áááșážááááșáááșážáá»áŹážá áĄáá»ááșáĄáááșáá»áŹážááᯠááœáČááŒááșážá
áááșááŒáŹááŒáźáž Olympiad áá±áŹááșáá¶ááŸá áĄááșáá»ááșááźááŹáá»áŹážáááș áááșážá ááźážááŒáŹážááŻááșáááșážááŹáááșáá»áŹážááᯠáááŻááșááœááșááŒá±ááŸááșážááŹááœááș áá±áŹááșážááœááșááŒá±áŹááșáž áá±áŹááșáá»ááșáá»ááČá·áááșá áááŻá·áĄááŒááșá áááșážáááŻá·áááœá±ážáá»ááșááŸáŻááŻááșáááșážá
ááșááᯠááźáááŻááșážááŻááșááŒááșážááŒáá·áșá áááșážáááŻá·áááș áááșáčáá»áŹááŻá
áčááŹáá»áŹážááᯠááœááșáá°á
áœáŹ áááŒá±ááŸááșážáááŻááșáá±áŹááŒá±áŹáá·áș áĄááșáá»ááșááźááŹáá±áŹááșážáĄáááșážáááșááᯠááŸáŹážáááșážááŒááșážáááŒáŻáááŻááșááá·áș áĄááčáááŹááșááᯠáááșáááŻááșááŒáááșá áá«áá±ááá·áș áá«á áá°áááŻá·áĄááœááș ááŒáżááŹáááŻááșáá«áá°ážá Google ááŸáŹ áĄááŻááșááŻááșáá»ááșáá°ááœá± áĄáá»áŹážááŒáźážááŸáááŹááŒá±áŹáá·áș ááŹáá°ážá ááááșááœáŹážááŸáŹ ááŒá
áșáá«áááșá
áĄáᯠááŒáááșážáá±á«ááșááá± ááŒáá·áșáááŻááșááĄá±áŹááșá ááá·áșááŻá¶ážáááșážááŸá±á·ááŸáŹ ááá·áșáĄááœááș áĄááŻááșáá±ážáá»ááșááČá· áĄááșáá»ááșááźááŹááœá±á ááČá
áááșážáá
áșááŻááᯠááááșáá±áŹááșááá±ážáá°ážáááŻáááșá ááá·áș developer ááœá±á áá±áŹááșááŹááá·áș Spring ááŸááșáá»ááșááᯠááá·áșááœááșážáááŻá· áááŻáĄááșááČá·áĄááŹáĄááœááș stackoverflow ááᯠáááŻáááŻááŸáŹááœá±áá±ááŒáá«áááșá áĄááá·áșáááșááŸááșááŒááșážáááŻááșáᏠáĄááșááááŻááźáááșáá»áŹážá ááŸáŻááșááœá±ážááŸáŻáá»áŹážáááș áááșááŸáŹážáááșááŸáŹá áááșáááș Google ááᯠáá°ážáá°ááá·áșáááá·áșááᯠá
ááșážá
áŹážáááá·áșáĄáá»áááșááŒá
áșáááșá
áá±áŹááșážááŒáźá ááźáá
áșáá« Google á áá»ááșááœááșááŒáźáž áĄááŒá±ááá±ážááČá·áááș ááŹááŻááșááá·áșááČá áá±áŹá·ááșááČáá±ážááŹážáá°áááș áĄááŻááșááœááș ááŹááŻááșáááșááᯠáĄáááĄáá»á
á
áșáá±ážáá«á Developer ááœá±ááŸáŹ áááșááŹáááŻáááșáááŻážááŹážáá«áááČá
áááșááŸáŹážáááșážáááŻáá°áĄááœááș á
á¶ááŸáŻááșážáá»áŹážáááșááŸááșááŒáźáž á€áĄáááșáĄáá»ááșážáá»áŹážááᯠáĄáááĄáá»á
ááșážáááșááá·áș á
áŹáá±ážááœáČáá»áŹáž áá±áŹáșááŻááșáá«á
áááșáčáááŹáá«
ThoughtWorks áááș áááșážááŸáá·áș áááșáááŻá·áááșáááŻááșááááșážá áĄáČááźá·ááŸáŹ áá»áœááșáá±áŹáșáááŻááșáááŻááșáĄááœááș áá±áŹáșáááșáĄááșááŹáá»á°ážáá
áșááŻááČá· á„áááŹáá
áșááŻááᯠááŸáŹááœá±á·ááČá·áá«áááșá ThoughtWorks á áááșáá°ááœá±ááČá áĄáááŻáá»áŻááșááŒá±áŹááá»áŸááș á€áááșááŸáŹ áááŻááșá á
ááșáčááŹáá°á០áĄáá±áááááșáááŻááșááŒáźážáĄáá áááčááŹáá
áșááŸááșážááŸá ááŻá¶ážááœáČáá»áŹážááŸááá±áŹ High-End áĄáááŻááșáááșáá¶ááŻááčáááźááŒá
áșááŒáźážá ááœá¶á·ááŒááŻážáááŻážáááșááŸáŻáááșáááșááœááș 25 ááŸá
áșááá·áș áĄááŒá¶áá±ážááŹážááá·áș Martin á០áŠážáá±áŹááșáá±áŹ áááŻááșáááŻááșááááčáá¶ááŹáááœáČááŸááááșá ááŸááșááá±ážááœá±á Software Engineer áá
áșáá±áŹááșáĄááœááș áááŒá
áșááá±áááșááá·áșááČá· á
áŹáĄáŻááș 10 áĄáŻááșá
áŹáááșážááᯠááŸáŹááŒáá·áșáááșáááŻáááș áĄáČááźááČá 2-3 áĄáŻááșááᯠThoughtWorks á០áá±áŹááșá»áŹážáá±ážáá»áŹážááŒá
áșááá·áș Martin Fowler á០ááŒááșáááșááŒááșáááșááŒááșáž ááŸáá·áș Building Microservices : Sam á០Fine-Grained Systems áá»áŹážááᯠááźáááŻááșážááŻááșááŒááșážááČá·áááŻá·áá±áŹ ThoughtWorks á០áá±áŹááșá»áŹážáá±ážáá»áŹážá០áá±ážááŹážááŹážáááșááŒá
áșáá«áááșá Newman áááŻá·áááŻááș ááá·áșááČááŒá
áșá
ááșááááŻááŹáá»áŹáž áááșáá±áŹááșááŒááșážá
Patrick Kuaá Rebecca Parsonsá Neal Ford ááŸá
ááŻááčáááźá ááŻááșáááșážáááș á
á»á±ážááŒáźážáá±áŹ áááșáá±áŹááșááŸáŻáá»áŹáž áá±ážáá±áŹááșááŒááșážáĄáá±á«áșááœááș áááșáá±áŹááșááŹážáá±áŹáșáááșáž áá±áŹááșáááșáááș áá»áœááșážáá»ááșááŸáŻá ááŹáááœááșáž á
á¶ááŸáŻááșážáá»áŹážááŸáá·áș áá°áá»áŹážáá«áááșááá·áș áá°ážááŒáŹážáááșážááŒáŹážáá±áŹ áĄáááșáĄááœá±ážáĄááœááș áá±ážáá»á±áááșá áááŻá·ááŒá±áŹáá·áș á€áá±ááŹááœááș ááŸááșáááșáá±áŹáá°áá»áŹážááᯠááá·áșáĄááșáááș áĄáá±ážááŒáźážáá«áááșá
áááșâáááŻáá°ááŸááșâááČ ááŻááșáá«áááșá áá°áááŻááșážáĄááœááș ááá°ááźááČá·áĄáá»ááșááœá±ááŸááá«áááșá ThoughtWorks áááș áááșážáááŻá·á developer ááŻááșáááșážááŻá¶á
á¶áĄááœááș áĄáá±ážááŒáźážááŻá¶áž á
á¶áááșááŸááșáá»ááșáá»áŹážááŸáŹ-
- áĄááœáČáááŻááș ááœá¶á·ááŒááŻážáááŻááșááŸáŻá áĄáááșáĄáá»ááșážá áĄááœá±á·áĄááŒáŻá¶ áááŻá·áááŻááș áá»áœááșážáá»ááșááŸáŻ áááŻááșáá«á Pair programming ááᯠ5 ááŸá áșááŒáŹ áá±á·áá»áá·áșááČá·áá°ááœá± áá±áŹááșááŹáááá·áșáááșáááŻá· áááșáá°áá០áá»áŸá±áŹáșááá·áșáááŹážáá«áá°ážá áá«áá±ááá·áș áááŒáŹážáá°ááœá±ááČá· áááșááŒááșáá°ááá»ááșááœá±ááᯠáááșáá¶ááŹážáá±áŹááșáááșááŹáᏠáááŸááááŒá áșáááŻáĄááșááČá· áá»áœááșážáá»ááșááŸáŻáá áșááŻáá«á
- á áŹáá±ážááœáČáá»áŹážááᯠáá±ážáááŻááșááŒááșážá TDD ááᯠáááșááœá±á·áá»áá» áá±á·áá»áá·áșáá«á
- SOLID ááŸáá·áș OOP ááᯠââááŹážáááșááŒáźáž áááșážáááŻá·ááᯠáĄááŻá¶ážáá»áááŻááșááááșá
- ááá·áșáááșááŒááșáá»ááșááᯠáááșááŒáá«á áĄáááŻááșáááșáá¶áá áșáŠážáĄáá±ááŒáá·áș áááșáááș áá±áŹááșáááșá developer áá»áŹážá áĄááŒáŹážáĄáááŻááșáááșáá¶áá»áŹážááŸáá·áșáĄáá° áĄááŻááșááŻááșááááșááŒá áșááŒáźážá áá°áá áșáŠážáááș áá áșááŻááŻááᯠáá±áŹááșážááœááșá áœáŹááŻááșáá±áŹááșáááŻááșáá±áŹáșáááșáž áááșážááᯠáĄááŒáŹážáĄááœáČá·áááŻá· áá±ážáááŻá·áááŻááșááŒááșážáááŸááá«á áá»áŹážá áœáŹáĄáá»ááŻážááŸááááșáááŻááșáá±á
ááᯠáá»áŸá±áŹááșááŹážáá°ááœááș áĄáááŻáá« áĄáá°ážáá»áœááșážáá»ááșááŸáŻáá»áŹážááᯠáĄááČááŒááșáááș áĄáá±ážááŒáźážáá«áááșá ááŒáźážáá±áŹá· ááźáá±ááŹááŸáŹ ThoughtWorks ááŸáŹ áĄááșááŹáá»á°ážááČá· áĄááœá±á·áĄááŒáŻá¶áĄááŒá±áŹááșáž ááŒá±áŹááŒáá»ááșáá«áááșá áá»áœááșáá±áŹáș á ááșáčááŹáá°ááᯠááœáŹážááŒáźáž áĄá±áŹááșááŒááșááČá·áááș áááŻá· áá»ááșááŒááșáž ááŒá±áŹáááŻááșáááș á áá«áá±ááá·áș á áŻáá±áŹááșážáá±áž ááŻááșáááșážá ááș ááá±áŹá· áá áșá áŻáá áșá ááșážáááșáž ááŒá áșááŒáźáž áá áșáááŻááșáá¶ááČá· áá áșáááŻááșáá¶ áĄáá»áŹážááŒáźáž ááœáŹááŒáŹážááŸáŹ áááŻááșáá«áá°ážá
áĄááá·áș 0 á HR
áááŒáŹáááááŻáááᯠHR ááŸáá·áș áááá áș 20 áĄááșááŹáá»á°ážá áĄáČáá«ááᯠáá»áœááșáá±áŹáș áááŒá±áŹáá«áá°ážá ááŻááčáááźááČá· ááœá¶á·ááŒááŻážáááŻážáááșááŸáŻ áááșáá»á±ážááŸáŻáĄááŒá±áŹááșáž 15 áááá áșáá±áŹááș á ááŹážááŒá±áŹáááŻááșááČá· HR áá áșáá±áŹááșááČá· áá áșáá«á០áááŻá¶áá°ážáá°ážá ááŹááŒá±áŹáá·áș TDD ááᯠááŻá¶ážáááŹááČá ááŹááŒá±áŹáá·áș ááœáČááŻááșáááČá· programming áááŻááŹááᯠáá»áœááșáá±áŹáș ááŒá±áŹáá»ááșáá«áááșá áĄáá»áŹážáĄáŹážááŒáá·áșá HR áá»áŹážáááș á€áá±ážááœááșážááᯠáááŻááŹážááŒááŒáźáž áááșážáááŻá·á ááŻááșáááșážá ááșáááș ááŻá¶ááŸááșááŒá áșáááș- developer áá»áŹáž ááźááœááșááŒááșážá á ááșážáááșáá°áá»áŹáž á ááșážáááșááŒááșážá áááșáá±áá»áŹáá»áŹáž áá±áŹááșážááŸááșááŒááșáž ááŒá áșáááșá
áĄááá·áș áá OOPá TDD ááŸáŹ áááș áááșáá±áŹááșáá±áŹááșážááČá
áĄááșááŹáá»á°ážáá áááșááź 1.5 ááŹááźáĄáááŻááœááș Mars Rover Simulator áá áșááŻááŒáŻááŻááșáááș áá»áœááșáŻááșáĄáŹáž áĄááŻááșáá áșááŻá á±ááœáŸááșááČá·áá«áááșá
Mars Rover áá
áșááŸááșáĄááșáčáá«ááŒááŻááșáá±á«áșááŸá ááŻááșážááŒááșááŒáá·áșáá
áșááŻáá±á«áș NASA á០á
ááșááŻááșáááșážááŹááșáá»áŹáž áááșážáááșááááșááŒá
áșáááșá áá°ážáááșážáá±áŹ á
ááŻáá¶ááŻá¶ááŒá
áșáá±áŹ á€ááŻááșážááŒááșááŒáá·áșáááș áááșážáááŻá·á áá±ááŹááșáá±á«áșááŸá áááșáááŹáá»áŹážáááș áááčááŹááŒá±áááŻá· ááŒááșáááŻá·áááșáĄááœááș áááșáááșážáá»ááșááŒá±ááŒááșááᯠáĄááŒáá·áșáĄáááŒááșáááŻááșá
á±áááșáĄááœááș áááŻááŹáá»áŹážááŒáá·áș ááœáŹážááŹááááșááŒá
áșáááșá ááŹááșáá
áșá
áźážá áááșáá±ááŹááŸáá·áș áááșáá±ááŹááᯠx ááŸáá·áș y áá±á«ááșážá
ááșááŸáááŸááŻááșážááŸáŻáá»áŹážááŸáá·áș ááŹááźáááș áá¶áááŻááșáĄáááșááŒáŸá±áŹááș áĄááŸááșáá±ážááŻááČá០áá
áșááŻááᯠáááŻááșá
áŹážááŒáŻááá·áș á
áŹááŻá¶ážááŒáá·áș áááŻááșá
áŹážááŒáŻáááșá ááŻááșážááŒááșááŒáá·áșááᯠáááșážááŒá±áŹááșážááŸááșážáááș áááŹážááœááșáá
áșááŻáĄááŒá
áș áááŻááșážááŒáŹážááŹážáááșá á„ááᏠáĄáá±áĄááŹážáááș 0, 0, N ááŒá
áșáááŻááșáááșá áááŻáááŻáááșááŸáŹ áááŻááŹáááș áááșáááșáĄá±áŹááșááŒá±áá±áŹáá·áșááœááșááŸáááŒáźáž ááŒá±áŹááșáááșáááŻá· áá»ááșááŸáŹáá°ááŹážáááșá áááŻááŹááᯠááááșážáá»áŻááșáááșáĄááœááș NASA áááș áááŻážááŸááșážáá±áŹ á
áŹáááșážáá
áșááŻááᯠáá±ážáááŻá·áááșá ááŒá
áșáááŻááșáá»á±ááŸááá±áŹ á
áŹááŻá¶ážáá»áŹážááŸáŹ 'L'á 'R' ááŸáá·áș 'M' ááŒá
áșáááșá 'L' ááŸáá·áș 'R' áááș áááŻááŹáĄáŹáž áááșážá áááșááŸááá±ááŹá០áááœá±á·ááČ 90 ááźáááź áááș áááŻá·áááŻááș ááŹáááŻá· áĄááźážááźáž ááŸáá·áșáááșá
á±áááșá 'M' áááŻáááșááŸáŹ áááŹážááœááșáá
áșááŻá ááŸá±á·áááŻá· ááœá±á·áá»áŹážááŒáźáž áá°ááźáá±áŹ áá±á«ááșážá
ááșááᯠááááșážááááșážááŹážáááșá
(xá y) á០ááŒá±áŹááșáááș áááŻááșáááŻááșá
ááŻáááșážáááș (xá y+1) áᯠáá°ááá«á
input:
ááá·áșááœááșážááŸáŻá áááá
áŹááŒá±áŹááșážáááș ááŻááșážááŒááșááŒáá·áșá áĄáá±á«áș-ááŹáááș ááŒááááááșááŒá
áșááŒáźážá áááșáááșáĄá±áŹááșáááŻááșáž ááŒááááááșáá»áŹážááᯠ0,0 áᯠáá°ááááșá
áá»ááșááá·áșááœááșážááŸáŻáááș ááŒáá·áșáá»ááșáá»ááŹážáá±áŹ áááŻááŹáá»áŹážááŸáá·áș áááșáááșááá·áș áĄáá»ááșáĄáááșááŒá
áșáááșá Rover áá
áșááŻá
áźááœááș input áááŻááșážááŸá
áșááŻááŸááááșá ááááááŻááșážáááș ááŻááșážááŒááșááŒáá·áșááᯠá
á°ážá
ááșážáá±á·ááŹáááș áááŻááŹáĄáŹáž ááœáŸááșááŒááá·áș áááșážááœáŸááșáá»ááș áĄááœáČáááŻááșááŒá
áșááŒáźážá ááŻááááááŻááșážáááș ááŻááșážááŒááșááŒáá·áșááᯠá
á°ážá
ááșážáá±á·ááŹáááș áááșážááœáŸááșáá»ááșáá
áșááŻááŒá
áșáááșá áááșáá±ááŹááᯠááááșážááŒáá·áșááŸá
áșááŻááŸáá·áș áĄáŹááŹááá»áŹážááŒáá·áș áááŻááșážááŒáŹážááŹážáá±áŹ áĄááčáááŹáá
áșááŻááŒáá·áș ááœáČá·á
ááșážááŹážááŒáźáž x ááŸáá·áș y áá±á«ááșážá
ááșááŸáááŸááŻááșážááŸáŻáá»áŹážááŸáá·áș rover á áŠážáááșáá»ááșáááŻá·ááŒá
áșáááșá
áááŻááŹáá
áșááŻá
áźáááș áááșáááŻááșááŒáźážááŻá¶ážááœáŹážáááșááŒá
áșááŒáźáž áááŻáááŻáááșááŸáŹ ááááá
áșááŻááœá±á·áá»áŹážááŒááșážáááŒáźážááá»ááșáž ááŻááá rover áááș á
áááșááœá±á·áá»áŹážáááșáááŻááșáá«á
Output:
Rover áá
áșááŻá
áźáĄááœááș ááááșáááș áááșážá áá±áŹááșááŻá¶áž áá±á«ááșážá
ááșááŸáááŸááŻááșážááŸáŻáá»áŹážááŸáá·áș áŠážáááșáá»ááșááŒá
áșááá·áșáááșá
ááŸááșáá»ááș:
áĄáááșáá±áŹáșááŒáá« áááŻáĄááșáá»ááșáá»áŹážááᯠáááŻážááŸááșážá
áœáŹ áĄáá±áŹááșáĄáááșáá±áŹáșááŒáźáž ááŻááșá
áŻááșá
ááșáááș áááșážáĄááœááș áá°áá
áșá
á
áșáá±ážááŸáŻáá»áŹážááᯠáá±ážááŹážááŒááșážááŒáá·áș áĄááŻááșááŻááșááŒá±áŹááșáž áááșáá±ááŒáá«á
áĄááŻá¶ážááŒáŻáá° áĄááșááŹáá±á·á
áșááŻá¶á
á¶ááᯠáááșááźážááŒááșážáááș áááșáááșááááșáá«á
TDD (Test Driven Development) áá»ááșážáááșáááșážááᯠáááŻááșááŹááŒááșážááŒáá·áș ááŒáżááŹááŒá±ááŸááșážááŒááșážááᯠáŠážá
áŹážáá±ážáá«áááșá
ááááŻááșáá±áŹáĄáá»áááșáááŻáĄááœááșážá áá»áœááșáŻááșáááŻá·áááș ááŒáźážááŒáá·áșá
áŻá¶ááŸáŻáááș áĄáááșáĄááœá±ážááŸáá·áș áááșáááșá áááŻáĄáá±ážááŹážáá«áááșá
*áá»áœááșáŻááșáá¶áá±ážáááŻá·áá±áŹááŹáááșááᯠáá»áœááșáŻááșáááșááááá«á á€áááșááŸáŹ ááœááșááČá·áá±áŹááŸá
áșáá±á«ááșážáá»áŹážá
áœáŹááá±ážááČá·áá±áŹ ááŹáááșáá±áŹááșážáá
áșááŻááŒá
áșáááșá áá«áá±ááá·áș ááŻá¶ááŒááșáááŻááșáá«á áĄááŒá±áá¶áĄáŹážááŒáá·áșáá±áŹá· áĄááŹáĄáŹážááŻá¶ážáᏠáĄáá°áá°áá«ááČá
áĄáá°ážáááŒáá·áș áĄááČááŒááșááŒááșážáááŻááșáᏠá á¶ááŸáŻááșážáá»áŹážááᯠáĄáá°ážáááŻááŒáŻáááŻáá«áááșá á áŹáááșážá á áșááŹááĄááœááșáž áááŻááșá áŹážááŸááșáá±áŹááșážáá áșáŠážáĄááœááș áĄáá±ážááŒáźážáá±áŹáĄááŹáá»áŹážáááș ááŻá¶ážááĄáá±ážááá«ááá·áș áĄááŒá±áĄáá±ááŸáá·áș áĄááŒááșáĄááŸááșáĄáŹážááŒáá·áș áááșáááșááŸá áșáá« ááŒáŻá¶ááœá±á·áá°ážáá«áááČá áá°áááŻááșážá áááșááČá·áááșáá°áááœá±ážááŒáá±ááá·áș áá±áŹáșáá±áŹáșáá»áŹážáá»áŹážá ááá·áșáááșáááŻážááœá±ááᯠááŸááșážááŸááșážáááșážáááșážáá±áŹáșááŒááŹážáááș áááșáá¶ááŒáźáž áááŻááșááŹáááŻááșáá«áááșá áááŻá·ááŒá±áŹáá·áș áĄááČááŒááșááŸáŻ á á¶ááŸáŻááșážáá»áŹážá០á€áĄááá·áșááœááș áĄáá±ážááŒáźážááŻá¶ážáá±áŹ áá»áœááșážáá»ááșááŸáŻáá»áŹážáááș áá»ááșááŒááșáž ááááŹáááșááŸáŹážáá«áááșá
- TDD;
- OOP ááᯠââáĄááŻá¶ážááŒáŻá ááááșážááááșážáááŻááșáá±áŹ ááŻááșáá±ážáááŻááșááŒááșážá
- áĄááœáČáááŻááș ááááŻááááșáá±ážááŒááșážá áœááșážáááș
áááŻá·ááŒá±áŹáá·áșá ááŻááșáá±ážááá·áșáĄá áŹáž áĄáááŻáá« 1.5 ááŹááźááᯠáá»áœááșáŻááșáááșááČá·áááŻá· ááŻááșáá±áŹááșááááșááᯠá ááșážá áŹážáááș ááááá±ážááČá·áá«áááșá ááŻááșááœáČáá±ážáá«áááșá
ááŻááșážááŒá±áŹááČá·áĄáá« áá±áŹááșá»áŹážáá±ážááœá±á áááșáá°ááœá±ááČá ááŹááœá±ááŻááșáá±ááČ áááŻááŹááᯠáĄáááŻáá»áŻá¶ážááŒá±áŹááŒááŒáźáž ááœá¶á·ááŒááŻážáááŻážáááșááŸáŻá áááșáááŻá· áááșážááŸááșážáá«áááșá
áĄááșááŹáá»á°ážáá áșááŻááŻá¶ážááŸáŹ áĄááșááŹáá»á°ážáá¶áááŹááᯠáá áșáá«á០ááá¶á áŹážáá°ážáá°ážá áĄááœáČá·áá áșááœáČá·ááœááș áááșáááș ááŻááșááᯠáááșááźážáá±áááșáᯠáá¶á áŹážáá»ááșááŸááááșá áá áșáá±ááŹááŹááŸáŹ ááááșáááá±áááșáááŻáááș áá°áááŻá·á áá°ááźáá±ážáááșá áĄááŒá¶áá±ážáááșá ááœá±ážááœá±ážáááșá áááșáááŻááŻááșáááș áĄáá±áŹááșážááŻá¶ážááŒá áșáááșáááŻáᏠáĄáá»ááșážáá»ááșáž ááŒááșážááŻá¶ááŒáá±ážáááșá áĄááșááŹáá»á°ážááŸáŹá áááșážáááșážáá áșááŻá Exception áá áșááŻááᯠáá»áá±ážááá·áș JUnit 5 ááᯠáááșáááŻá á áșáá±ážááááČáááŻááŹááᯠáá±á·ááœáŹážááČá·áááș - áá°áááŻá·á á áŹáá±ážááœáČááᯠáááșáá±ážáááŻá· áááșážááŸááșážááČá·ááŒáźáž áĄáČááźááČá áá áșáá±áŹááșá áĄáČáá«ááᯠáááșáááŻááŻááșááááČáááŻáᏠgoogling ááŻááșáá±áááșá
áĄááșááŹáá»á°ážááŒáźážáá±áŹááș ááŹááźáĄáááșážáááșáĄááŒáŹááœááș áá»áœááșáŻááșáááș áĄááŒáŻááá±áŹáá±áŹááșáá±áŹ ááŻá¶á·ááŒááșáá»ááș- áá»áœááșáŻááșááŸá áșáááșáá±áŹáĄááŹááŸáá·áș áááŒááŻááșáá±áŹáĄááŹááᯠáááŸáááČá·áá«áááșá áá»áœááșáŻááșáááá áčá ááœááșá áĄáá»ááșážááŸáźážáá±áŹáĄááŹáááŻáĄá áŹážáááŻážáĄááŒá áș Sealed classes áááŻáĄááŻá¶ážááŒáŻááá·áșáĄááœááș áá»áźážáá»á°ážáá¶ááá«áááșá ááŻááșáááŻááá±ážáááșááŸáŹá áá«áᏠRover ááᯠáááșáááŻááááșážáá»áŻááșáááŻáááČáááŻááŹááᯠpseudocode ááČá·áá±ážááČá·ááŒáźáž á ááșááŻááșááČá· API ááŸáŹ áá«áááșááČá· áĄáááșážááœá±ááČá· ááŻá¶ááŒááșážáá áșááŻááᯠáááŸáááČá·áá«áááșá
áĄááá·áș 2: áá»áœááșáŻááșáááŻá·ááᯠááŒá±áŹááŒáá«á
áĄááșááŹáá»á°ážáááŒá±ááź áá
áșáááșáĄáááŻááœááș áá»áœááșáŻááșáĄáŹáž á
áááșáááșá
áŹážááá·áș áááșááá·áșáĄááŒá±áŹááșážáĄááŹáááŻáááᯠáááșááŒáááș ááŒááșáááșáááŻááșážááČá·áááșá áá±áŹáșáááșáááș áááŻážááŸááșážááŒáźáž áááșážááŸáźážáááș- 15 áááá
áșáááșáááșááŸáŻá 15 áááá
áșáá±ážááœááșážáá»áŹážáááŻááŒá±áááŻááŒááșážá
áá»áœááșáá±áŹáș áĄááșáááșáá±áŹá·ááČá· Clean Architecture ááᯠááœá±ážáá»ááșááČá·áá«áááșá áá±áŹááșááááș áá°áĄáá»ááŻá·á áá»áœááșáŻááșáĄáŹáž ááœá±á·ááŻá¶áá±ážááŒááșážááČá·áá«áááșá á€áááșááŸáŹ áĄááșáčáááááșááŹááŹááŒáá·áș áááșááŒááŒááșážá áááááŻá¶áž áĄááœá±á·áĄááŒáŻá¶ááŒá
áșááŒáźážá áĄáááșá áá»áœááșáŻááșáááș á
áááșááá
áźážáá±áŹ áĄááŒá±áĄáá±ááœááș ááŸáááČá·áá«á ááááșážáá»á±áŹááșážáááŻááșáááșáááŻááșáá±á áá«áá±ááá·áș áá
áșáá«á០áĄááșááŹáá»á°ážááŸáŹ ááá¶á
áŹážáá°ážáá°ážá áĄááŹáĄáŹážááŻá¶ážá áá«áááŻááșážáááŻáá«ááČ- áá«áá°áááŻá·áááŻááŒá±áŹáááșá áááŻáá
ááŻááșááŹážáá±áŹááșáááșá áááŹážáááŻážáá» áĄáá±ážáĄááŒá±áááčááááșáááș áĄááșááŹáá»á°ážáá
áșááŻááᯠáááŻááșáá±á áá±ážááœááșážáá»áŹážááᯠâáá
áșááŒáŻááșâ áááș ááá±áŹááșážáááŻááČ áá»áœááșáŻááșá áááșááŒáá»ááșááœááș áááșážáááŻá·ááᯠáĄááŸááșááááș á
áááșáááșá
áŹážáá°ááŒá
áșááŒá±áŹááșáž áááșááŸáŹážáá«áááșá
áĄááșááŹáá»á°ážááŒáźážááŒáźážáá»ááșáž ááŹááźáĄáááșážáááșáĄááŒáŹááŸáŹáá±áŹá· ááŻá¶á·ááŒááșáá»ááșáááČá·áá«áááș - áááșááŒáá»ááșá áĄáááșážáĄááŻá¶ážáááșááŒáźáž ááŹážáá±áŹááșááᏠááááșááᯠááŸá áșáááșáá«áááșá
áĄááá·áș 3á ááŻááșááŻááșááŸáŻ áĄáááșáĄááœá±áž ááŻááș
á€áááșááŸáŹ áááșážáááŹáááŻááșááŹáĄááșááŹáá»á°ážáá»áŹážááá±áŹááșááŻá¶ážáĄááá·áșááŒá áșáááșáááŻááááá±ážááŒáźážáá±áŹááșá áá»áœááșáŻááșáĄáŹáž ááŻááșáááŻááŻááșááŻááșáááșáĄááá·áșááŸááá±áŹáĄááŒá±áĄáá±áááŻá·áĄáááșááœááșáá°áá±áŹááșááŹáááș ááŻááșáááŻáá±ážáááŻá·ááŒáźážáá±áŹááș áĄááŻááșáĄááœááșáááŻáĄááșáá»ááșáá»áŹážááŒá±áŹááșážááČáááșááŒá áșááŒáźáž ááŻááșáááŻááŒááșáááșááŻá¶ážáááșáááșááŸáá·áș áĄááșááŹáá»á°ážáĄáá»áááșáááŹážáááŻáá±ážáááŻá·áááșáá±áŹááșážáááŻááČá·áááșá ááŒáŻááŒááșááœááșážáá¶áááș áááŻáĄááșáááșá ááŸá±á·áááŻááŒáá·áșáááŻááșáááș ááŻááșááŻá¶ážáááșáá»ááșááᯠáá»ááșá áá áŻá¶ááŸáááșááŒáźáž ááŻááșáá±áŹááșáááșáááŻá· ááŒá±áŹáááŻá·ááááșá ááŻá¶ážáááșáá°ááœá±á áá»áŸá±áŹááșááŹážááČá· ááŹáá°ážááᯠáááááŹá áá°á· CV ááᯠáááŒááșááá°ážá áá°á·ááŹáááșáá±áŹááș áááŒááșáá°ážá
ááŻááșážááŒááșááŹááŒáźáž áá±áŹáșááźááŹááČá·áá áșáááșááŒááșážááŸáŹ áá±áŹááșá»áŹážáá±ážááŸá áșáá±áŹááș ááŸááá±ááŒááșáááșá ááááĄááșááŹáá»á°ážááŸáŹ áĄáŹážááŻá¶ážáĄáá°áá°áá«ááČá áĄáááááá±áŹá· TDD ááᯠááá±á·áááŻá·á áááșááŹááŻááșáááČá ááŹááŒá±áŹáá·áșááČáááŻáᏠááŒá±áŹááŒáá«á áĄáááșá áááșáááș TDD ááᯠááááșá ááá±á·áá»áá·áșáá°ážáá«áá ááŻááčáááźáá»áŹážááœááș áááŻáĄááșáá±áŹááŒá±áŹáá·áșáááŻááșááČ áááșážáááș ááá·áșááááᯠááááááŹáᏠáááŻážááŸááșážááœááșáá°á á±áá±áŹááŒá±áŹáá·áș áááșááŸá áșáááșáá«á ááá·áșá áááșááá áźážááŸáŻáĄááá·áșááᯠáá»á±áŹá·áááșážá á±áá«áááșá ááá±áŹááșááŹááŸáááá·áșáᏠááŒááșááŻááșáá±ážáááŻááșáá±áŹ áĄááŸáŹážáá áșááŻáĄááœááș áĄááŸáŹážááŸáŹááááááŹááŒáá·áș áĄáá°ážáĄáá°ážááŸáŹááœá±ááČá·áááŻá¶ááᯠáááááá«á áááŻá·áá±áŹáș á ááșážáááșááŸáŻáá»áŹážááŒáá·áș áááșážááᯠááŒááșáááșááŻááșááŻááșááááá«á ááᯠáĄááșááŹáá»á°ážáá áșááŻááœááș áááŻáááŻá·áá±áŹáĄááŸáŹážáá áșááŻááᯠáááșáááșážáááááșáᯠá áááșáá°ážááŒáá·áșáá« - ááá·áșáá¶áááșááŒá°ááŸá áșáá±áŹááșááᯠáĄáŹááá¶ááŹážáááșá TDD ááČá· áá«áááŻá· ááŹáááČá áá»áœááșáŻááșáááŻá·áááș ááŻááșáááŻááŒá±áŹááșážáááŻááșááŒáźáž áááŻáĄáá« á ááșážáááșááŸáŻáá»áŹážáááș áĄááźáá±áŹááșááŒá áșáá±ááŒá±áŹááșáž ááááșááŸááșááČ áááááŻááșááá±áŹáșáááșáž ááááĄááŒáááșááœááș áá»áœááșáŻááșáááŻá· ááááááŻááșáá±áŹ áĄááŸáŹážááŸáŹ áĄáááșáááșážá áá±áŹááșážááŒáźá áá»áœááșáŻááșáááŻá·áááș áĄááșááŹáá»á°ážáá°áá»áŹážááᯠâáĄá°ážâ ááŻááŒá±áŹáᏠCtrl-Z áááŻááŸáááșááŒáźáž ááŸá±á·áááŻá·ááŒá±ááŸááșážáĄáááșážáááșááŸááșážáá«á ááŻááșáá«áááșá áááșáááŻááșáááŻááș TDD áááŻáĄááŻá¶ážááŒáŻááŒáźáž áááșááŸááșážáá»ááșáááșážáááŻááșááᯠáĄáá±áŹááșááŸááșážáááŻááșáááŻá· á áœááșážáááșááᯠááŒáŸáá·áșáááșáááŻá· áááŻáá«áááșá âáááșážááŸáŹ áĄáŹážááŒááșááŒáá·áșáááŻá· áĄáá»áŹážááŒáźážááŸááááŻá·â áááŻáá±áŹá· áááșážááČá·á áŹáá±ážááœáČááœá±á áá±á·áá áșáááșááŻá¶áž áĄááŒáČáááșážá áááșážáá±ááŒáźáž áĄááźáááŻááșááČ á áááșážáá±áĄá±áŹááș ááœá¶á·ááŒááŻážáááŻá· áááŻáá«áááșá á€áááșááŸáŹ ááááșážááááșážáááŻááșáá±áŹ ááŻááșáá±ážááŒááșáž áááŻá·áááŻááș ááŒá áșááœááșážáá±áŹ ááŻááșáá±ážááŒááșážááČá·áááŻá· áá°ááźáá±áŹ áá»áœááșážáá»ááșááŸáŻááŒá áșáááșá
áááŻá·ááŒá±áŹáá·áșá ááá·áșááŻááșááᯠáááșáá»áŸ áá±áŹááșážááœááșá áœáŹ ááŒá±áŹááșážááČáááŻááșáááșá áááșá áááșáááș á áááșááČááœááșááŸáááá·áș ááźáááŻááșážá áááșážáááș áááșáá»áŸáááŻážááŸááșážáááșá áááșá á áŹáá±ážááœáČáá»áŹáž áááșáá»áŸ áá±áŹááșážááœááșáááșáĄáá±á«áș áá°áááșáá«áááșá
áĄááșááŹáá»á°ážááŒáźážáá±áŹááș ááŹááźáĄáááșážáááșáĄááœááșáž ááŻá¶á·ááŒááșáá»ááșáááČá·áá«áááșá á€áĄááá·áșááœááșá áá»áœááșáŻááșáááș âFowlerâ ááŸáá·áșááœá±á·ááá·áșáĄáá»áááșáĄáá áĄáááșážáááșáá»áŸááŹáá»ááșáá±áŹá·áááș áᯠááá±áŹáá±á«ááșááŹáááșá
áĄááá·áș 4. áá±áŹááșááŻá¶ážá áááșážáááŹáááŻááșááŹáá±ážááœááșážáá»áŹáž ááŻá¶áá±áŹááșáá«áááșá áááșážáááșáá°ááČ áá«áááŻá·áááá»ááșáááșá
áááŻážáááŻážááŹážááŹážááŒá±áŹááááș ááźáá±ážááœááșážááČá·ááŻá¶á á¶ááᯠáá»áœááșáá±áŹáș áááșážáááșážáá±áŹá· áá¶ááááŒá áșáááááșá áá áșááŹááźááŒáŹ á ááŹážá ááŒááșááŒá±áŹáááșáž áá«áááșáááŻáá°ááČáááŻáᏠáááșážáááșáááŻááŹážáááșáááŻááșáááČá áááŻá·áááșáááŻááááșá áá»áœááșáŻááșáááș áá»áœááșáŻááșáááŹááááŹááŹá ááŹážáááŻááșáá±áŹá ááœáá·áșááœáá·áșáááșážáááșážááŒá±áŹááá»áŸááș áĄááœááșáá¶á·áá»ááșážááŒáźáž áá»áŸáŹááŒáá·áșáá»ááșááŹážáá±áŹ ááŹááŹá ááŹážááᯠááŒá±áŹáá±áŹáĄáá« áááșážááᯠáááș áááșáááŻá·ááŹážáááșáááŻááșáááșáááșážá áĄáááșáĄááșááŹáá»á°ážááœá±ááŸáŹ áá±ážááœááșážááœá±ááŒá±ááŹáááș á ááŹážááŒá±áŹááᏠáááŻááœááșááŒáźáž áá±áá°áá±ááááșážá áĄááŒá áșáááșáááșá áĄááșááŹáá»á°ážáá°ááœá±ááČá áĄáááșážááŻá¶ážáá áșáá±áŹááșá áĄáŹááŸááŹážááŒá áșááŒáźážá áá°áááŻá·ááČá· áá±áá°áá±ááááșážá á„áá±áŹáááŹážááČá· áĄáááșážáááș áááá»áááșáááŻá· áááŻááŒáá«á ááŻá·á áááŻá·ááŒá±áŹáá·áșá áá»áœááșáŻááșáááș áĄááŒáŻááá±áŹáá±áŹááșáá±áŹáá»ááșážáááșááŸáŻáá áșááŻáááŻáá°áááș ááŻá¶ážááŒááșááČá·áááș - áá»áœááșáŻááșáááș áá»áœááșáŻááșááĄááŒá±áŹááșážáááșááŒáá»ááșááᯠááŒááșáááșááŒáźáž áĄááșááŹáá»á°ážááĄá ááœááș á€áááșáááșááŸáŻááŒáá·áș áá»áœááșáŻááșáĄááŒá±áŹááșážááŒá±áŹáááŻáááș áááșážááŸááșážááŸáŻááᯠááŒááșáááșááČá·áá«áááșá áá°áááŻá·ááá±áŹáá°áááș áĄáááșážááŻá¶ážáá±áŹá· áá»áœááșáá±áŹá·áșáĄááœááș áá±ážá ááŹáááșážáááșážááŸááá«áááá·áșáááșá áááșážááŸááșážááŸáŻááᯠááŒááșážáááșáááș áááșáááșááŸáŻáá áșááŻáĄááœááș ááŻá¶ážááČá·áááČá· áá»áœááșáá±áŹá·áșááááČá· á ááŹááźáᏠááźáá±áŹááșááŒáźážááŒáźážááŹážááŹáž á á»á±ážáááŒáźážáá«áá°ážá áá«áá±ááá·áș áááșážáááșáááșááŸáŻááŸáŹ ááŹáá±ážááááČá áĄááčááŻááčáááčáá - áĄáČá·ááźááŸáŹ ááœá±ážááœáŹážááŒáźáž áá»á±áŹááșážáááșá áááčááááŻááșá ááœáČá·ááá±ááá·áș áááșáá°á áááŻá ááŻááșááČá
áááș Google áááș Thoughtworks áááșáá»á±ážááŸáŻáĄááŒá±áŹááșáž áĄáááșážáááșááŒá±áŹáá«áá Martin Fowler [https://martinfowler.com/bliki/ThreePillars.html] á០áááčáááŻááșááŒáźáž 3 ááŻ- áá±ááŸááșáááșáá¶á·áááŻááșáá±áŹ á áźážááœáŹážáá±ážá Software Excellence ááŸáá·áș áá°ááŸáŻáááŹážáá»áŸáááŸáŻááᯠáá±áŹáșááŒááá·áș áá±áŹááșážáá«ážáá áșááŻááșááᯠáááșááœá±á·áááá·áșáááșá
Software Excellence ááᯠáá»áœááșáŻááșáĄááœááș á á áșáá±ážááŒáźážááŒáźáᯠáá°áááŒáá«á ááŻá·á áá±ááŸááșáááșáá¶á·áá±áŹ á áźážááœáŹážáá±ážááŸáá·áș áá°ááŸáŻáááŹážáá»áŸáááŸáŻááᯠááŒááááș áá»ááșááŸááá±áá«áááșá
áá«á·ááŒááșá áá±áŹááșááŻá¶ážááᯠáĄáŹááŻá¶á ááŻááșáááŻá· ááŻá¶ážááŒááșááČá·áááșá
á á áá»ááșážáá±áŹá·á ThoughtWorks á áá°á·ááᯠááŹááŒá±áŹáá·áș ááŒá±áŹááŒááČá·ááŹáá« - Martin Fowler ááČá· ááá±áŹá·ááșááᯠáá±áŹááááșááŸáŹ ááŒááșáááșáá°ážááČá·áĄááœááș Clean code ááᯠááŸá áșáááșáá«áááșá
ááá±áŹáá»ááșáá»áŹážááᯠááŸáŻáá±áŹáá·áșáĄáá»ááŻážáá»ááŻážá០áááșááŒáááŻááșáááșá áá°áááș áá°ááŹáá»áŹážá áĄáááșááᯠáááŻážááŸááșážá á±ááá·áș áá±ážáá«ážáĄááœááș áá±áŹá·ááșááČááșááᯠááźááœááșááČá·ááŒáźáž áá±áŹáááŹááá»áŹáž áĄá áá°áá áșáŠážáááŻáááș áááșáááșááČá·áááșá áááŻááșáá¶ááŹážááœá±áĄááœááșáááșáž ááœááșáá°á á±ááá·áș áááșááœá±áĄááœááș áá±áŹá·ááșááČáááŻáááșáž ááźááœááșááČá·áááșá áĄáá°ážáááŒáá·áș ááźáááșááᯠáááŻááșáá¶á·áá°áŠážáá±ááČá· 70% á ááŻá¶ážáááșáááŻáááșáá±á«á·á áááșážáááș Sberbank áĄááŒá±áŹááșážáááŻááșá ááŻááŸáŹážááŸáá·áșáááșááááșáááŻááșáá«á
áá«á·áĄááŒá±áŹááșážáááá»ááșááŹážá áĄááŻáá±áááșáá±áŹáșá áá»áœááșáá±áŹá·áșáá«áááŹá ááŹááșááŻá¶áááŻááșááŹá áá áșáááșážáááŻááșáá áșáááșážááČá· áá»áœááșáá±áŹá·áșáááșááČááŸáŹ áááșáááŹáá áșááŻá¶ážáááŻááșááŹáᏠáá ááŸá áșáá±áŹááșááŸáááŒáźá ááŒáááŻá·áá±áŹááș áááŸááșáááșáá°áž ááŹááșááŻá¶ááœá±ááŸááááșá áá áșáá»áááșá ááŒá±áŹááșáĄáááŻážáĄááŹáá áșááŻááᯠáá°ááźáá±ážááČá·áááșá áĄááŒáČáááșáž áĄáááșáááŻáĄááșáá±ááČá· ááŒá±áŹááșááœá±ááᯠááŹááșááŻá¶áááŻááșááČá·áááșá ááŹááșááŻá¶áá±áŹááșážááœá±ááČá· ááŒá±áŹááșááᯠááŹážááᏠáááŻááœááșáááșá ááŒá±áŹááșáá áșááŹáá±áŹááș ááŹááșááŻá¶áááŻááșáá°ážáááș :)
áĄááŻá¶ážááœááșá áá»áœááșáŻááșáááșááŒáá»ááșá 80% áááș ááŒá±áŹááșáá»áŹážááŒáá·áș ááŒáá·áșáá±áá«áááșá
áááșáááșááŸáŻááŒáźážááŒáźážáá»ááșážááŸáŹááČ HR á áĄááșááŹáá»á°ážááááșááᯠáááááá±ážáá±ááá·áș ááŻá¶ážáá áșááŻááŻá¶ážá ááŒá±áŹááșááœá±ááᯠááá±áŹáá»áá±ááŒáźáááŻá· HR á áá±ážááČá·áá«áááșá
áĄááŻá¶ážá áœááșáĄáŹážááŒáá·áșá ááŻá¶á·ááŒááșáá»ááșáááŻá á±áŹáá·áșáá±ááČá·áááș - áá°áááŻááșážáá°áááŻááșážááᯠáá»á±áááșáá«áááșá
áááŻá·áá±áŹáș áá±áŹááșááŻá¶ážá ááŹážáááŻááșážááœááș HR á០áá°ááŸáŻáááŹážáá»áŸáááŸáŻáááș áĄááœááșáá±áŹááșážááœááșááŒáźáž áááŻáĄááșáááșáᯠááááčááŹáá«ážáááșá áœáŹááŒá±áŹááČá·áá±áŹáșáááșáž ááá±áŹáá»ááșáĄáŹážááŻá¶ážáááș á€ááČá·áááŻá·áááŻááșáá±á ááŒáźážáá±áŹá· áá°á áá»áœááșáá±áŹá·áșááᯠááŒá±áŹááșááŹážáááŻá· áá±ážáááșá áá±áá°áá»áĄáŹážááŒáá·áșá áá°ááŸáŻáááŹážáá»áŸááá±ážááČá· áááșážáááșáž ááœááșááœáŹážáááșá áĄáČáá« ááŒá áșááœáŹážáááșá :)
ááááș
ááááșáĄáá±ááČá·á áá»áœááșáá±áŹáș á ááșáčááŹáá°ááŸáŹ ááĄáá±áŹáșááŒáŹáá±ááŒáźááŒá áșááČá· Thoughtworks ááŸáŹ áĄááŻááșááŻááșáá±ááŒáźáž Spring áááș áááŻááŻááááŻááá±ááá·áș Spring áááș áááŻááŻááááŻááá±ááá·áș ááŻááčáááźáá±áŹáșáá±áŹáșáá»áŹážáá»áŹážá Google ááźá "áĄáá±áŹááșážááŻá¶ážáĄááșááŹáá»á°ážáĄáá±á·áĄáá»áá·áș" ááᯠáááșáá¶áá»áá·áșááŻá¶ážáá±ááŒááŹááᯠááœá±á·ááČá·ááá«áááșá Symfonyá RubyOnRails (áááŻáĄááșáá±áŹáĄááŹááᯠáá»ááșážááŹážáá«) áĄááŻááșááœááș ááááŻáĄááșáá«á áĄááșáá»ááșááźááŹáá»áŹážáááș áĄááșááŹáá»á°ážáááŒá±ááź áá áșáááșáĄáááŻááœááș âááŒááșáááșáá«â áááșá
Thoughtworks ááœááșá áááŻááșá
áŹážááŸááșáá±áŹááșážáĄááœááș ááŻá¶áá±áŹááșáá±áŹáááŻáĄááșáá»ááșáá»áŹážáĄááŒááșá áĄá±áŹááșáá«áĄááŒá±áá¶áá°áá»áŹážáááș ááŸá±á·áááșážááŸááŒá
áșáááș-
ááœá±á·ááŻá¶áá±ážááŒááșážááŒááșážá áá»á±áŹáșááœáŸááșááŸáŻá áá«á·áĄááŒááș ááŸá
áșáááșá
ááŻá¶ážáĄááœááșáá«á áĄááŸááșá
ááșá
á
áșá áĄáááșá áááșáááș áĄáá±áŹááșážááŻá¶ážáá±áŹ áááșáááșážáá»áŹážááᯠááááŻáá«á (áááșáá°á០áááŻááșáá«) áĄááșááŹáá»á°ážáááș áá»áœááșáá»áŹážááᯠááœá±ážáá»ááșááá·áș á
á»á±ážááœááșáá
áșáᯠáááŻááșáá±áŹáșáááșáž áĄááŻááșááŸááșááŸáá·áș áááŻááșá
áŹážááŸááșáá±áŹááșáž ááŸá
áșáŠážá
ááŻá¶áž áĄááŒááșáĄááŸááș áĄááČááŒááșááá·áș ááŒáááșážáá
áșáᯠááŒá
áșáááșá áĄáááșá áááŻááșá
áŹážááŸááșáá±áŹááșážáá
áșáŠážáááș ááŻááčáááźáá
áșááŻááŸáá·áș ááŹááŹáá±áŹáá¶á
áŹážáá»ááșáá»áŹážááᯠáá±á«ááșážáááșážáá«áá áááșážáááș á€ááŻááčáááźááᯠááœá±ážáá»ááșáááŻááșááœááșááŸááááșá
áááșáááŻááșááŸáŻ áá»á±áŹá·áá«ážá á±áááș áĄááșááŹáá»á°ážáá° áĄáá»áŹážáĄááŒáŹážá Thoughtworks ááœááșá pair programming áááș de facto standard ááŒá áșáááșá á€áĄáá±á·áĄáá»áá·áșááᯠáĄááŒáŹážáááșáááșáá»áŹážááœááș áĄááŻá¶ážáá»áááŻááșáá»áŸááș TW á ááŒááŻážá áŹážáááșá áĄááá·áșáá áșááŻá áźááœááș áá° á áŠážááŒáá·áș áĄááșááŹáá»á°ážááŒáŻááŻááșáááșá áááŻá·ááŒá±áŹáá·áș áá°áá áșáŠážá áźáĄáŹáž áĄáááșážááŻá¶áž áá° 2 áŠážááŒáá·áș áĄááČááŒááșááŹážááŒáźáž TW áááș ááá°ááźáá±áŹáá±áŹááșáá¶á ááœáČááŒáŹážáá±áŹáááșážááœáŸááșááŸáŻáá»áŹáž (áááșážáááŹáá»áŹážááŹáá) ááŸáá·áș áá»áŹážáááœáČááŒáŹážáá±áŹ áĄááșááŹáá»á°ážáá°áá»áŹážááᯠááœá±ážáá»ááșáááș ááŒááŻážá áŹážáááșá
áĄááŻá¶ážá áœááșáĄáŹážááŒáá·áș áĄáááșážááŻá¶áž áá° á áŠážá áááșááŒááșáá°ááá»ááșáá»áŹážáĄáá±á«áș áĄááŒá±áá¶á áĄááŻááșááá·áșááŹážááŸáŻ ááŻá¶ážááŒááșáá»ááșááᯠáááșáá°áá»áŸ ááČáá±ážááœáá·áșáááŸááá«á
áĄáááșáĄáá»ááșážáĄááŒá±áá¶ áĄááŻááșááá·áșááŹážááŒááșáž áááŻááșá áŹážááŸááșáá±áŹááșážáá áșáŠážá ááŒááŻááșááŸá áșáááșááŸáŻ áááŻá·áááŻááș áááŒááŻááșááŸáŻáá»áŹážáĄáá±á«áș áĄááŒá±áá¶á ááŻá¶ážááŒááșáá»ááșáá»ááá·áșáĄá áŹáž áĄáááșážáááčááá áșááŻá áźááŸáá·áș áĄááá·áșáá áșááŻá áźáĄááœááș áá±áŹááșááŻá¶á á¶áá áșááŻááᯠáá±ážááœáČááŹážáááșá áá áșáá»áááșáááșážááŸáŹáááșá áĄááČááŒááșááá·áșáĄáá«ááœááș áá»áœááșážáá»ááșááŸáŻáá áșááŻááŻááœááș áĄááœá±á·áĄááŒáŻá¶áááŸááá±áŹáșáááșáž áááșážááᯠáĄááŻá¶ážáá»áááŻááșá áœááșážááᯠáĄááČááŒááșáááș áĄááŒá¶ááŒáŻááŹážáááșá áááŻá·ááŒá±áŹáá·áș áááŻááșá áŹážááŸááșáá±áŹááșážáá áșáŠážáááș TDD ááČá·áááŻá·áá±áŹ áá»áœááșážáá»ááșááŸáŻáá áșááŻááŻááᯠáĄááŻá¶ážáá»áááŻááșááŒááșážáááŸááá«áá áááșáááŻá·áááșáááŻá á±ááŹáá° áááșážáááŻá·ááᯠáĄááŻá¶ážáá»áááșááŒááŻážá áŹážáᏠáááșážáááŻá·ááᯠááŸááșáááșá áœáŹáĄááŻá¶ážááŒáŻáááșážáááŻááșáᏠáĄááŒá¶ááŹááșáá»áŹážááᯠááŹážáá±áŹááșáá±ážáááșáááŻáá»áŸááș áĄááșááŹáá»á°ážááŒá±áááŻáááș áĄááœáá·áșáĄáá±ážáááŻááșážááŸááááșá
áááŹáá±áž áĄá±áŹááșáááșááŸááșáá»áŹáž ááááŻáĄááșáá«á TW áááș Computer Science ááœááș áááșááá·áș áĄá±áŹááșáááșááŸááș áááŻá·áááŻááș áááŹáá±ážá០ááááŻáĄááșáá«á áĄáááșáĄáá»ááșážáá»áŹážáááŻáᏠáĄááČááŒááșáá«áááșá
áá« ááŒááșáááșá áᏠááááŻááČá· áááŻááșáá¶ááŒáŹáž ááŻááčáááźááœá±ááČá· áááááŻá¶áž áĄááșááŹáá»á°áž áá«á áĄááá·áșáááŻááșážááŒáźážááœáŹážááČá·áĄáá« áááșáááșážáááșáááŻá· ááá¶á áŹážááá±ááá·áș ááá·áșáá»ááșáááșáĄáá±ááČá·ááá±áŹá· á á±áŹáá·áșááŒáá·áșááČá·áá áșáááșááá°ááœá±á áĄáČáá«ááᯠááá±áŹáá»ááŒáźáž áá±á·áááŻááșáž áá»áá·áșááŻá¶ážáááŻááșáááŻá· áááșážááŹáááá«áááșá
ááĄáá±áŹáșááŒáŹááŒáźážáá±áŹááșááŸáŹáá±áŹá· áá»áœááșáá±áŹá·áșááČá·áá»áŸá±áŹáșááá·áșáá»ááșááœá±ááᯠááŒáá·áșááŒáá·áșá áŻá¶á áŻá¶ áĄáá±áŹááșáĄáááșáá±áŹáșáááŻááșááČá·áááșáááŻá· ááŒá±áŹáááŻááșáá«áááșá ThoughtWorks áááș ááŻá¶ááŸááșááŻááčáááźáá áșááŻááŸáá·áș áááșáááŻá·ááœáŹááŒáŹážááááșážá ááŻá¶ááŸááșááŻááčáááźáá áșááŻááœááș developer áá±áŹááșážáá±áŹááșážáá»áŹážááŸáá·áș áá°áá±áŹááșážáá»áŹážááᯠáááșááŸáŹááœá±á·áááŻááșáá±áŹáșáááșáž TW ááœááș áááșážáááŻá·ááĄáŹááŻá¶á á°ážá ááŻááșááŸáŻááŸáŹ áááŹážááœááșáá»áŹážáááŻááșáá±á
áááș ThoughtWorks ááœááș áá«áááșáááș á
áááșáááșá
áŹážáá«áá áá»áœááșáŻááșáááŻá·á ááœáá·áșáááșážáá±áŹ ááŹáá°ážáá»áŹážááᯠááŒáá·áșááŸáŻáááŻááșáá«áááșá
á
áááșáááșá
áŹážá
ááŹáá±áŹááșážááČá· áá
áșáááșáá±ááŹááœá±ááᯠáĄáŹááŻá¶á
ááŻááșáááŻá·áááșáž áĄááŒá¶ááŒáŻáááŻáá«áááșá
áŠážáá±áŹááșáá±áŹá·ááșááČáĄááșáá»ááșááźááŹ- , , ,
áĄááŒáźážáááșážáá±áŹá·ááșááČáĄááșáá»ááșááźááŹ- , , ,
áá±áŹá·ááșááČáĄááșáá»ááșááźááŹ: , ,
áĄááŒáźážáááșážáá±ááŹáĄááșáá»ááșááźááŹ-
áĄáááșáĄááœá±ážááŻá¶ážáááșáá°-
áĄááŒá±áá¶áĄáá±áŹááșáĄáŠ- , ,
(ááá·áșááșáááș áááșááœáŸááșážááá·áșááșáá
áșááŻááŒá
áșááŒá±áŹááșáž áááŻážáááŻážááŹážááŹáž ááááá±ážáááŻáááșá áĄáááșá áááșáááș TW áááŻá·ááœáŹážáá«áá áá»áœááșáŻááșáááș áá±áŹááșážááœááșáá±áŹáá±áŹáááșá
áșááᯠáááŸááááá·áșáááș)á áááșááŸá
áșáááșáá±áŹááŻá¶ážáááșážáááŻááœá±ážáá»ááșáá«á á„áá±áŹááááŻá·áááșáááŻááșáááŻááșááá·áșáááșáááșááááŻáĄááșáá«á ááŒáźážáá±áŹááșá á ááŸá
áșáááŻááșáž TW áááșááá·áșáĄáŹážáĄááŒáŹážáááŻááșáá¶áááŻá·ááŒá±áŹááșážááœáŸá±á·áááșáá»á±áŹáșááœáŸááșáááá·áșáááșááŒá
áșáá±áŹááŒá±áŹáá·áș ... áááșážáááș ThoughtWorks áá°áá«áá áá
áșá
áááșáá
áșáááŻááșážááŒá
áșáá±áŹááŒá±áŹáá·áș áááșáá»á±ážááŸáŻááᯠááŒáá·áșááœáŹážááŒáźáž áá
áșááŹážáááșážááŒá
áșá
á±áá«áááșá
ááŸááșáá»ááșáá»áŹážááœááș áá±ážááœááșážáá»áŹážáá±ážáááș áááŻá·áááŻááș áĄááŒá¶ááŒáŻáá»ááșáá»áŹážáĄááœááș áá»áœááșáŻááșáĄáŹáž ááœááșáááșá
áœáŹáá±ážáá«á
áá±á«ááșážá
ááșá á
áááșáááșá
áŹážá
ááŹáááŻá·áááșáááș ThoughtWorks ááŸáŹ áĄááŻááșááŻááșáááŹááČá· á
ááșáčááŹáá°ááŸáŹ áááșáááŻáááá»ááŻážááČáááŻááŹááᯠáá±ážáá«áááșá
source: www.habr.com
