áĄááŻááşááźáąáŹááşá¸ááąáŹáˇáááş áĄááşááŹááťá°á¸ááźáąáááş áááŻáĄááşááŹááąáŹáĄááŤáá˝ááş ááááŚá¸ááŻáśá¸ áááşáááşááąáŹáĄááŹáážáŹ "áĄááşááŹááťá°á¸áĄáá˝ááş ááźááŻáááşááźááşáááşááŹá¸áááş áááŻáĄááşáááş" áᯠáááşááźááşáááááşáážáŹ áááˇáşáĄáá˝ááş áá°á¸áááşá¸áááşáááŻááşááąá 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