á ááşáážáŻá ááşáááşáá°ááźááşá¸- ááŽáááŻááşá¸áĄááźáąááśáá° áá ááťááş
áááąáˇááąááşáá˝ááşá áááşááąáŹááşáážáŻáĄáá áşááťáŹá¸á áĄáááŽááąá¸áážááşá¸ááťáŹá¸áážááˇáş áĄááźáŹá¸áĄááąá¸ááźáŽá¸ááąáŹááááŻááááşááťáŹá¸ááᯠáááŻáśáááŻááşááąáŹááşá ááŹááťáŹá¸ááᯠáááşááŽá¸áááŻááşá áąáááˇáş ááąáŹáˇááşáá˛ááşááž SpaceX ááŻáśá¸ááťáśááᯠááááşá¸ááťáŻááşáááşáĄáá˝ááş ááąáŹáˇááşáá˛ááşáážáááş á áááşááŻááşá¸áážáá áşáááˇáş ááąáŹááşáááşá¸áážá ááąáá˝áąá¸áĄááŻá¸áážááˇáş áĄááźááşáĄáážááşááŻáśáˇááźááşáážáŻáĄáá ááąáˇá ááşáááşááŽá¸ááťááşáážááááşá
áá áşááŤáá áşááśáá˝ááşá áá°á áááşáĄáŹá¸áááşáááşááąáŹ startupper áááŻáˇáááŻááş ááŹáááş Full Stack áááŻáˇáááŻááş Data Scientist ááźá áşá áąá áĄáá˝áąáˇáĄááźáŻáśááážáááąá¸áá° ááááŻááááşááŹáááŻááşá¸áááş ááááᯠáĄáá˝ááşáááŻá¸áážááşá¸á áąáááˇáş ááááŻááááşááąá¸áá˝á˛ááźááşá¸áážááˇáş áááşááŽá¸ááźááşá¸áĄáá˝ááş á ááşá¸ááťááşá¸áĄááťááŻáˇáážáááźáąáŹááşá¸ áááážáááŹááźáááşá
á¤ááąáŹááşá¸ááŤá¸áá˝ááşá 10-factor App áááşá¸á
áá
áşááᯠáĄááźáąááśá áááşá¸ááᯠáĄááşááş/áááşááąáŹááşáážáŻáá
áşááŻáááŻáˇ áĄáá˝ááşááá° ááąáŤááşá¸á
ááşá¸áááŻááşá
áąáááş á
ááşáážáŻááŻááşáááşá¸ááŻáśá¸ á
ááşáááşáá°áážáŻ ááááŻááááşááᯠáááşáá˛áˇáááŻáˇ ááááŻááááşááŻááşáááşá¸ 12 ááᯠáĄáááŻááťáŻááş ááąáŹáşááźááŤáááşá
á¤ááąáŹááşá¸ááŤá¸áááş á
ááşáážáŻááŻááşáááşá¸ááŻáśá¸ Machine Learning áážááˇáşáááşáááşáááˇáş áĄáááşá¸áááşááąáŹááşá¸ááŤá¸ááťáŹá¸áĄáá˝ááş ááŻááşááźáŻá
ááŹá¸ááźá
áşáááşá áááşá¸áááŻáˇáá˝ááş áĄáážááşááááş ááąáŹáşáááşáá
áşáᯠáááşááŽá¸ááźáŽá¸ ááŻááşááŻááşáážáŻáá˝ááş á
áááşáááşá áááşá¸áĄáá˝ááş API áá
áşáᯠáááşááŽá¸áááşá¸áážááˇáş áááşá¸áááŻáˇá á
áá
áşááťáŹá¸áá˝ááş áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ ML ááŤáážááááˇáş ááŻáášáááŽááťáŹá¸áážááˇáş áááşáááşáĄááŽá¸ááŽá¸ááž ááá°ááŹááťáŹá¸ááᯠááťá˝ááşáŻááş áááşáááşááźáąáŹááźááŤáááşá
á ááşá¸ááťááşá¸ 1- ááŻááşáĄááźáąááśáá áşááŻ
ááááĄáááˇáşáá˝ááş áĄááťááŻáˇááąáŹ ááááŻááááşááŹááťáŹá¸áááş áááşá¸áááŻáážáŹáá˝áąáááş ááťááşá¸ááááźááşá¸ááźáąáŹááˇáş (áááŻáˇáááŻááş áááşá¸áááŻáˇááááŻááşáááŻááşáĄááźáąáŹááşá¸ááźáąáŹááˇáş) Git ááᯠááąáˇáá˝áŹá¸ááźáááşá á ááŹá¸ááŻáśá¸ááᯠááŻáśá¸ááŻáśá¸ááąáˇáá˝áŹá¸ááźáááşá áááŻáááŻááŹá áááŻááşáá˝áąááᯠdrive áá˛áážáŹ áá áşááąáŹááşáá˛áˇáá áşááąáŹááş áá áşááťááŹ/ á áŹááŹá¸áá˝áąááᯠáááŻááźáŽá¸ áááŻáˇáááŻááşá ááŤáážáááŻááş áá°áááŻáˇáá˛áˇ áĄááŻááşáĄáá˝áŹá¸áĄááŹááᯠáá ááşá¸á áŹá¸áᲠáĄááŽá¸ááŽá¸ áááááááŻáˇáá˛áˇ ááŹááá˝á˛ááᯠáĄááşáážáśááźáŽá¸áááşá ááááşá
á¤ááááŹááááş- ááŻááşááąáˇá áşáá áşááŻáážááˇáş ááźááˇáşááťááşáážáŻááťáŹá¸á á˝áŹáážááááşá
Git ááᯠááŻááşááŻááşáážáŻáá˝ááşááąáŹ ááŻááąáááážááˇáş áá˝áśáˇááźááŻá¸áááŻá¸áááşááąá¸ (R&D) áá˝ááşá፠áĄááŻáśá¸ááźáŻáááŻááşááźáŽá¸ áááşá¸ááᯠáááźáŹáá áĄááŻáśá¸áááźáŻááŤá
áĽáááŹáĄáŹá¸ááźááˇáşá R&D áĄáááˇáşáá˝ááş áĄááąáŹááşá¸ááŻáśá¸áááŻáá˝áąá¸ááťááşááźáŽá¸ áááşá¸áážááˇáşáááşáááşááŻááşááąáŹááşáááş áá˝ááşáá°á áąáááşáĄáá˝ááş ááá°ááŽááąáŹááąááŹááŻááşááąáŹááşáážáŻáááşá¸áááşá¸ááťáŹá¸áážááˇáş ááąáŹáşáááşááťáŹá¸ááźááˇáş áááááááşááťáŹá¸áááŻááŹá¸áá˛áˇáááŻááşááŤáááşá
ááŻááááĄááąáá˛áˇá ááŻááşááŻááşáážáŻáážáŹ ááŤá áĄá áŹá¸áááŻá¸áááŻáˇáááá˛áˇ áĄááŹáá áşááŻá፠- áááşá¸áá˛áˇááŻááşááźáąáŹááşá¸áá˛áážáŻááᯠáĄáááşáááźááşááźááˇáşáážáŻááźáŽá¸ áááşááąáŹáşáááşá áĄááąáŹááşá¸ááŻáśá¸ááááşáá˝áąááŻááşááąá¸áá˛á áĄááŻáśá¸áážáŹ áááşááŻááşá áĄááŻááşááźá áşáá˛áˇááá˛á áĄá˛ááŤá áĄááŻááşáááŻááşááąáŹáˇáᲠááŤáážáááŻááş ááážááşáá˛áˇááááşáá˝áą á áááşááŻááşááąá¸áá˛áˇááŹááᯠáááááŻáˇ áááŻáĄááşááŤááááˇáşáááşá . áĄá˛ááŤá áááááááşáá˝áąáĄáá˝ááşááŤá
áĽáááŹáĄáŹá¸ááźááˇáşá Gemfury áá˝ááş ááŹá¸á áááˇáşáááąáŹááťááşá áááşááąáˇááşáťáá áşááŻáááŻáááşá¸ áááşááŽá¸áááŻááşáááşá áááŻáˇááąáŹááş áááşá¸áááŻáˇááᯠáĄááźáááş 1000 ááźááşáááşááąá¸ááŹá¸ááźááşá¸áááźáŻáááş áááşá¸áááŻáˇááᯠáĄááźáŹá¸áááąáŹááťááşááťáŹá¸áĄáá˝ááş áááŻá¸áážááşá¸á á˝áŹ áááşáá˝ááşá¸áááŻááşáááşá
á ááşá¸ááťááşá¸ 2- áážáŽáááŻáážáŻááᯠáážááşá¸áážááşá¸áááşá¸áááşá¸ááźáąááŹááźáŽá¸ ááŽá¸ááźáŹá¸áá˝á˛ááŻááşááŤá
áááąáŹááťááşáá áşááŻá áŽáá˝ááş áááşá¸áááŻáˇááᯠáá áşááąááŹááŹáá˝ááş áĄááŻáśá¸ááťáááşáĄáá˝ááş áááşááźááşáááž áááşáá˝ááşá¸áááˇáş ááá°ááŽááąáŹ á áŹááźááˇáşáááŻááşááťáŹá¸áážááááşá áááşá¸áááş Python á áŹááźááˇáşáááŻááşááťáŹá¸ áááŻáˇáááŻááş áááşáá˝ááşááťááşáĄááťááŻá¸ááťááŻá¸áĄáá˝ááş áĄááźáŹá¸ááŹááŹá ááŹá¸ááťáŹá¸á á áŹááźááˇáşáááŻááşááťáŹá¸ áááŻáˇáááŻááş á áá áşááááááŹááťáŹá¸ - áááşáááŹáááşáážáŹ-
- áážáŽáááŻáážáŻááᯠáážááşá¸áážááşá¸áááşá¸áááşá¸ ááźáąááźáŹá፠á áááŻáááŻáááşáážáŹ áááˇáşáááąáŹááťááşáá˝ááş áĄááŻáśá¸ááźáŻáááˇáş á
áŹááźááˇáşáááŻááşááťáŹá¸á ááááááŹááťáŹá¸áážááˇáş áááşá¸áááŻáˇá ááŹá¸áážááşá¸ááťáŹá¸ áĄáŹá¸ááŻáśá¸ááᯠáááˇáşáá˝ááşá¸áááˇáş áááŻááşáá
áşáᯠ(áĽáááŹá Python áá˝ááş áááşá¸ááᯠPipfile áááŻáˇáááŻááş requirements.txt ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááąáŹááşáááŻááşáááşá A ááąáŹááşá¸ááąáŹááşá¸ááŹá¸áááşáááŻááşá
áąáááˇáş link
realpython.com/pipenv-guide ) - áá˝áśáˇááźááŻá¸áááŻá¸áááşááąá ááşáĄáá˝ááşá¸ áááˇáşááááŻááááşáĄáá˝ááş áážáŽáááŻáĄáŹá¸ááŹá¸áážáŻááťáŹá¸ááᯠááŽá¸ááźáŹá¸áá˝á˛ááŻááşááŤá áááşáááş ááŹá¸áážááşá¸ááťáŹá¸ááᯠáĄáááşáááźááşááźáąáŹááşá¸áá˛ááźáŽá¸ áĽááᏠTensorflow ááᯠááźááşáááşáááˇáşáá˝ááşá¸áááŻááŤáááŹá¸á
á¤áááşá¸áĄáŹá¸ááźááˇáşá ááąáŹááşáá˝ááş áááˇáşáĄáá˝á˛áˇáá˝ááş ááŤáááşáááˇáş developer ááťáŹá¸áááş áááˇáşáááąáŹááťááşáá˝ááş áĄááŻáśá¸ááźáŻáááˇáş áá áşááťá áşáááşááťáŹá¸áážááˇáş áááşá¸áááŻáˇá ááŹá¸áážááşá¸ááťáŹá¸áážááˇáş ááťááşááźááşá á˝áŹ áááşá¸áážáŽá¸ááŹáááŻááşááźáŽá¸ áááşáááşáážááşáážááşáĄáá˝ááş áááˇáşáá˝ááşá¸ááŹá¸áááˇáş ááŹá¸áážááşá¸ááťáŹá¸áážááˇáş áá áşááťá áşáááŻááşááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááş áĄáá˝ááˇáşáĄááąá¸áááşá¸ ááážááááşááźá áşáááşá á áŹááźááˇáşáááŻááşááťáŹá¸ áááŻáˇáááŻááş áááşá¸áááŻáˇá ááŹá¸áážááşá¸ááťáŹá¸áážááˇáş áááŻááşááŽáážáŻááážáááźááşá¸ááᯠáážáąáŹááşáážáŹá¸áááş áá°ááŽááąá¸áááˇáş áááąáŹááťááşá
áááˇáşáĄáááŽááąá¸áážááşá¸áááş ááŽá¸ááźáŹá¸ OS áá áşááŻááąáŤáşáá˝ááş áááˇáşáá˝ááşá¸áááŻááşáááˇáş á áá áşááááááŹááťáŹá¸áĄááąáŤáşáá˝ááşáááşá¸ áĄáŹá¸áááŻá¸áááąáááˇáşááŤá á¤ááááááŹááťáŹá¸ááᯠáážáŽáááŻáážáŻááąáŹáşááźáážáŻáá˝ááşáááşá¸ ááźáąááŹáááŤáááşá ááááááŹááťáŹá¸á ááŹá¸áážááşá¸ (áĄááźááş áááşá¸áááŻáˇááážááááŻááşáážáŻ) áááş OS áá áşááŻá á áá áşááááááŹááťáŹá¸áážááˇáş ááááŻááşááŽáááˇáş áĄááźáąáĄááąááťáŹá¸ááᯠáážáąáŹááşáážáŹá¸áááşáĄáá˝ááş áááşá¸áááş áááŻáĄááşááŤáááşá
áááŻáˇááźáąáŹááˇáşá curl áááŻáá˝ááşááťá°ááŹáĄáŹá¸ááŻáśá¸ááŽá¸ááŤá¸áá˝ááşáĄááŻáśá¸ááźáŻáááŻááşááąáŹáşáááşá¸á áĄááźáŹá¸ááááşááąáŹááşá¸áá áşááŻáááŻáˇááźáąáŹááşá¸áá˝ážáąáˇáááˇáşáĄááŤáááşá¸áááşáááŻááąááŹáá˝ááşááážááááŻááş áááŻáˇáááŻááş áááşáá°ááááŻáĄááşáááˇáşááŹá¸áážááşá¸áááŻááşáááˇáşáĄáá˝ááşááźáąáŹááˇáş áááşá¸áĄáŹá¸ áážáŽáááŻáážáŻááźááˇáşááźáąááźáŹáááˇáşááŤáááşá
áĽáááŹáĄáŹá¸ááźááˇáşá áááşá requirement.txt áááş á¤áá˛áˇáááŻáˇááźá áşáááŻááşáááş-
# Model Building Requirements
numpy>=1.18.1,<1.19.0
pandas>=0.25.3,<0.26.0
scikit-learn>=0.22.1,<0.23.0
joblib>=0.14.1,<0.15.0
# testing requirements
pytest>=5.3.2,<6.0.0
# packaging
setuptools>=41.4.0,<42.0.0
wheel>=0.33.6,<0.34.0
# fetching datasets
kaggle>=1.5.6,<1.6.0
á ááşá¸ááťááşá¸ 3- áá˝á˛áˇá ááşá¸áážáŻááťáŹá¸
áĄááťááŻá¸ááťááŻá¸ááąáŹ developer ááąáŹááşáťáŹá¸ááťáŹá¸áááş AWS ááž á ááŹá¸áážááşááťáŹá¸áážááˇáş áĄááźáŹá¸ááąáŹáˇááťáŹá¸ááźááˇáş áĄááťáŹá¸áá°áážáŹ áááŻáážáąáŹááşááŹáááŻáˇ GitHub áááŻáˇ ááŻááşááᯠáááąáŹáşáá áĄááşááŻááşááŻááşáááˇáş ááŹááşáááşá¸ááťáŹá¸ááᯠáĄááťáŹá¸áĄááźáŹá¸ ááźáŹá¸áááá˛áˇááźááźáŽá¸ ááąáŹááşáá áşááąáˇáá˝ááş áĄááźá˝áąá¸ááąáŤáşáᏠáááá áááŻáˇáááŻááş ááąáŤáşáᏠá áááá ááźááˇáş áááŻá¸áááŹáá˛áˇáááşá
ááŻááşááŤáááşá ááŽááźá
áşáááşáá˝áąá áá˝ááşáá˛áááşá ááŤááąáááˇáş áĄáááşá¸ááááŹáááşá áĄáááşá áááşáááş ááŻááşáĄáá˝ááşá¸ áá˝á˛áˇá
ááşá¸áážáŻááŻáśá
áśáĄáá˝ááş áááŻáĄááşááąáŹ áááşááĄááąáŹááşáĄááŹá¸ááťáŹá¸ áááŻáˇáááŻááş áĄááźáŹá¸ááąááŹááťáŹá¸ááᯠááááşá¸áááşá¸ááŹá¸ááŤá áááşáááş áážáŹá¸áá˝ááşá¸ááąááźáŽá¸ áĄáááşááźáąáŹááˇáşáááŻáááşááᯠáážááşá¸ááźáááşááááŻáĄááşááŤá
áááşá¸áĄáá˝ááş áĄááźáŹá¸áá˝áąá¸ááťááşá
ááŹáá
áşááŻáážáŹ áááşáááşá¸ááťááş ááááşá¸áážááşááťáŹá¸áá˛áá˝ááş áá˝á˛áˇá
ááşá¸áážáŻááŻáśá
áśááťáŹá¸ááᯠááááşá¸áááşá¸áááşááźá
áşáááşá áááşáááşá¸ááťááş ááááşá¸áážááşááťáŹá¸áĄááźáąáŹááşá¸ áááŻáááŻáááşáážáŻáááŻááşááŤáááşá
áááşáááşá¸ááťááş ááááşá¸áážááşááťáŹá¸áá˝ááş ááááşá¸áááşá¸ááąáˇáážáááąáŹ ááąááŹááá°ááŹááťáŹá¸-
- áááŻááááşá¸áĄáááşááťáŹá¸
- API URLs/URI ááťáŹá¸
- áĄááťáŹá¸áá°áážáŹáážááˇáş ááŽá¸áááˇáşááąáŹáˇááťáŹá¸
- áĄáááşáĄáá˝ááşááťáŹá¸ (ááąá¸ááşá ááŻááşá¸á á áááşááźááˇáş)
á¤áááşá¸ááźááˇáş áááˇáş configuration variable ááťáŹá¸ ááźáąáŹááşá¸áá˛ááŤá ááŻááşááᯠáĄáááşáááźááş ááźáąáŹááşá¸áá˛áááş ááááŻáĄááşááŤá áááşá¸áááş áááˇáşáĄáŹá¸ áĄááťáááşá ááźááŻá¸á áŹá¸áĄáŹá¸ááŻááşáážáŻáážááˇáş áá˝áąááźáąá¸ááᯠáááşááŹá áąáááşááźá áşáááşá
áĽáááŹáĄáŹá¸ááźááˇáşá áááşáááş á ááşá¸áááşáážáŻááťáŹá¸ááŻááşááąáŹááşáááş Kaggle API ááᯠáĄááŻáśá¸ááźáŻááŤá (áĽáááŹá ááąáŹáˇááşáá˛ááᯠááąáŤááşá¸ááŻááşááŻááşááźáŽá¸ ááąáŹáşáááşááᯠááąáŹááşá¸á á˝áŹáááşáááşááąááťáááşáá˝ááş á ááşá¸áááşáááşáĄáá˝ááş áááşá¸áááŻáĄááŻáśá¸ááźáŻááŤá)á áááŻáˇááąáŹááş Kaggle ááž ááŽá¸áááˇáşááąáŹáˇááťáŹá¸ááźá áşáááˇáş KAGGLE_USERNAME áážááˇáş KAGGLE_KEYá áááşáááşá¸ááťááş ááááşá¸áážááşááťáŹá¸áá˝ááş ááááşá¸áááşá¸ááŹá¸áááşá
á ááşá¸ááťááşá¸ 4- Third Party áááşááąáŹááşáážáŻááťáŹá¸
á¤ááąááŹáá˝ááş áĄááŻááşááŽááŹáážáŹ ááŻááşá ááşá¸áááşá¸ááťááşááťáŹá¸áĄá ááąááá˝ááşá¸áážááˇáş ááźááşááĄáá˝á˛áˇáĄá ááşá¸ áááşá¸ááźá áşááťáŹá¸ááźáŹá¸ áá˝áŹááźáŹá¸áážáŻááážáááąáŹ ááááŻááááşááᯠáááşááŽá¸áááşááźá áşáááşá áĽáááŹáĄáŹá¸ááźááˇáşá áááşáááş Local MySQL áážááˇáş Third-party áááŻáˇááᯠááťáááşáááşáááŻááşáááşá Google Maps áááŻáˇáááŻááş Twitter API áá˛áˇáááŻáˇááąáŹ API áĄááťááŻá¸ááťááŻá¸áĄáá˝ááş áĄááŹá¸áá°áááşááźá áşáááşá
Third-party áááşááąáŹááşáážáŻááᯠááááşáááş áááŻáˇáááŻááş áĄááźáŹá¸áá áşááŻááᯠááťáááşáááşáááşáĄáá˝ááşá áĄáááşá áŹáááŻááşáá˝ááş ááťá˝ááşááąáŹáşááźáąáŹáá˛áˇáááˇáş Environment variables áĄáá˝ááşá¸áážá ááąáŹáˇááťáŹá¸ááᯠááźáąáŹááşá¸áá˛áááş áááŻáĄááşááŤáááşá
áááŻáˇááźáąáŹááˇáşá áĽáááŹá ááŻááşáĄáá˝ááşá¸áážáááąááŹáĄá áŻáśááŤáááˇáşáááŻááşááťáŹá¸ááŽáááŻáˇ áááşá¸ááźáąáŹááşá¸ááᯠáá áşááźáááşá áŽáááşáážááşááźááşá¸áĄá áŹá¸á pathlib á áŹááźááˇáşáááŻááşáááŻáĄááŻáśá¸ááźáŻááźáŽá¸ config.py áážá datasets ááťáŹá¸áááŻáˇáááşá¸ááźáąáŹááşá¸áááŻááźáąááźáŹááźááşá¸á áááŻááąáŹááşá¸áááşá áááŻáˇáážáᏠáááşáááşáááˇáşáááşááąáŹááşáážáŻáááŻáĄááŻáśá¸ááźáŻáááşááźá áşá áą (áĄáá˝ááş áĽáááŹá CircleCI)á ááááŻááááşáááş áááşááąáŹááşáážáŻáĄáá áşáážá áááŻááşá áá áşáĄáá áşá áá˝á˛áˇá ááşá¸ááŻáśááᯠáááˇáşáá˝ááşá¸á ááşá¸á áŹá¸ááźáŽá¸ ááąááŹáĄáá˝á˛ááťáŹá¸ááŽáááŻáˇ áááşá¸ááźáąáŹááşá¸ááᯠáážáŹáá˝áąáááŻááşáá˛áˇáááşá
ááááŹá 5. áááşááąáŹááşá ááŻááşáá˝ážááşáážáŻá runtime
Data Science áážáá°ááťáŹá¸á á˝áŹáááş áááşá¸áááŻáˇáááąáŹáˇááşáá˛ááşááąá¸ááŹá¸ááźááşá¸á á˝ááşá¸áááşááᯠááźážááˇáşáááşáááş áĄááŻáśá¸áááşáááşáᯠáá°áááźáááşá ááťá˝ááşáŻááşáááŻáˇáááááŻááááşááᯠáááşáááŻááşáááťáž ááťááşááźááşáá˝áŹá¸á áąáááşáážááˇáş ááźá áşáááŻááşáááťážááŹááááşááŻáśá¸ ááťááşáá˝ááşáážáŻááťáŹá¸ááážááᲠááŻááşááąáŹááşáááŻááŤáá ááŹá¸áážááşá¸áĄáá áşááᯠááźááˇáşááťáááźááşá¸ááŻááşáááşá¸á ááşááᯠáĄáááˇáş á áááˇáşáá˝á˛áááş áááŻáĄááşáááş-
- ááŹááşá ááş á ááşá¸ááąá¸áá˝á˛ááťáŹá¸. áááşáááş áááşááááŹááŻááşáĄáŹá¸ááŻáśá¸ááᯠáĄáááşá¸áĄááźá áşáá áşááŻááťááşá¸á áŽááźááˇáş áááŻáĄááşááąáŹááŻááşáážááˇáş ááąááŹááťáŹá¸ááŤáážáááąáŹ áááşááąáˇááşáťááŻááąáŤáşááąáŹ áááşááąáˇááşáťáá áşááŻáĄááźá áşáááŻáˇ ááźáąáŹááşá¸áá˛ááŤáááşá á¤áĄááŻááşááᯠá ááşá¸ááąá¸áá˝á˛ááŻááąáŤáşáááşá
- ááŹááşá ááş áá˝ážááşááąá¸ â á¤ááąááŹáá˝ááş ááťá˝ááşáŻááşáááŻáˇá ááááŻááááşááᯠáááŻááşááźááşáááŻááşáᲠááťá˝ááşáŻááşáááŻáˇá config ááᯠá ááşá¸ááąá¸áá˝á˛áááŻáˇ ááťáááşáááşááŤáááşá ááᯠá¤áĄááŹáááş á áááşáááş áĄáááşáááˇáşááźá áşááąááźáŽááźá áşáááşá
- ááąáŹááşáá áşááŻá á ááşááąáŤáşááᯠááąáŹááşááŹáááşá ááźááˇáşá áŻáśááźááşá¸á. á¤áá˝ááş ááťá˝ááşáŻááşáááŻáˇáááş ááťá˝ááşáŻááşáááŻáˇáááŻááşááąáážáŻááž áááŻáĄááşááąáŹááŻááşáááşá¸á ááşááťáŹá¸ááᯠááŻááşááąáŹááşááźááşá¸ááźááˇáş áĄáááŽááąá¸áážááşá¸ááᯠááŻááşááźááşáááşá
ááąáŹáşáááşáá áşááŻá ááŹá¸áážááşá¸áĄáá áş áááŻáˇáááŻááş áááŻááşáááŻááşá¸áá áşááŻááŻáśá¸ááᯠááŹá¸áážááşá¸áĄáá áşááťáŹá¸ááŻááşáá˝ážááşááźááşá¸áĄáá˝ááş áááŻáá˛áˇáááŻáˇááąáŹá áá áşáááş áááˇáşáĄáŹá¸ á áŽááśáááˇáşáá˝á˛áá°ááťáŹá¸áážááˇáş ááąáŹáˇááşáá˛áĄááşááťááşááŽááŹááťáŹá¸áĄááźáŹá¸ áĄáááşá¸ááášáááťáŹá¸ááᯠáá˝á˛ááźáŹá¸áááŻááşá áąáᏠááŹá¸áážááşá¸ááťáŹá¸ááᯠááźáąááŹááśáááŻááşááźáŽá¸ ááááŻááááşá ááááŻááŹá¸áĄááşááąáŹ áááşáááˇáşáážáŻááťáŹá¸ááᯠááŹá¸ááŽá¸ááąá¸áááŻááşáááşá
ááŻááşááąááźááşá¸ááŻááşáááşá¸áĄáá˝ááşá áááşáááş .yml áááŻááşáá áşááŻáá˝ááş áááşáááŻááşáááŻááşááŻááşááąáŹááşáááş ááŻááşáááşá¸á ááşááťáŹá¸ááᯠááąá¸ááŹá¸áááŻááşáááˇáş áá˝á˛ááźáŹá¸ááąáŹáááşááąáŹááşáážáŻááťáŹá¸á á˝áŹááᯠáááşááŽá¸ááŹá¸áááş (áĽáááŹá CircleCI áá˝ááş áááşá¸áááş ááŻááşáááşá¸á ááşááᯠááśáˇáááŻá¸áááş config.yml ááźá áşáááş)á Wheely áááş áááąáŹááťááşááťáŹá¸áĄáá˝ááş áááşááąáˇááťáşááťáŹá¸ááᯠáááşááŽá¸ááŹáá˝ááş ááąáŹááşá¸áá˝ááşáááşá
áááˇáşá ááşáááşáá°áážáŻááąáŹáşáááşá ááá°ááŽááąáŹááŹá¸áážááşá¸ááťáŹá¸ááźááˇáş áááşááąáˇááťáşááťáŹá¸ááᯠáááşááŽá¸áááŻááşááźáŽá¸ áááşá¸áááŻáˇááᯠááŻááşáááŻá¸áᏠáááşáááŻááąááŹááž áááşááąá¸ááŹá¸ááŹá¸áááˇáş ááŻááşááąáŹááşááťááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááşáĄáá˝ááş áááŻáĄááşááąáŹ áááşááąáˇááťáşááťáŹá¸áážááˇáş áááşá¸áááŻáˇáááŹá¸áážááşá¸ááťáŹá¸ááᯠáááŻá¸ááŹá¸áááŻááşáááşá áááşá¸áááş áááˇáşááąáŹáşáááşáĄáá˝ááş API áá áşááŻáááşááŽá¸áááş áá°ááŽááąá¸áááşááźá áşááźáŽá¸á áĽáááŹáĄáŹá¸ááźááˇáş áááˇáşáááşááąáˇááťáşááᯠGemfury áá˝ááş ááŹá¸áážááááŻááşááŤáááşá
á ááşá¸ááťááşá¸ 6. áááˇáşááąáŹáşáááşááᯠáá áşáᯠáááŻáˇáááŻááş áá áşááŻáááşáááŻááąáŹ ááŻááşáááşá¸á ááşááťáŹá¸áĄááźá áş ááŻááşááąáŹááşááŤá
áááŻáˇáĄááźááşá ááŻááşáááşá¸á ááşááťáŹá¸áá˝ááş ááťážááąááŹá¸ááąáŹááąááŹááťáŹá¸ ááážááááˇáşááŤá áááŻáááŻáááşáážáŹá ááŻááşáááşá¸á ááşááťáŹá¸áááş ááŽá¸ááźáŹá¸á áŽáážáááááşááźá áşááźáŽá¸á áĽáááŹá áááşáááŻáĄááşáááˇáşáĄááąáŤáşáá°áááşá MySQL áááŻáˇáááŻááş áĄááźáŹá¸áááşááąáŹááşáážáŻááťáŹá¸áá˛áˇáááŻáˇ ááźááşááááşááąáŹááşáážáŻááťáŹá¸áá˝ááş ááŽá¸ááźáŹá¸á áŽáážáááááşááźá áşááźáŽá¸ ááąááŹáĄááťááŻá¸áĄá áŹá¸áĄáŹá¸ááŻáśá¸áááş ááŽá¸ááźáŹá¸á áŽáááşáážáááááşááźá áşáááşá
áááŻáááŻáááşáážáŹá áááşá¸áááş ááŻááşáááşá¸á ááş áááŻááşá áá áşáĄáá˝ááşá¸ ááąááŹááᯠááááşá¸áááşá¸áááş ááááŻááşáááşááŤá áááŻáˇáááŻááşááŤá áááşá¸áááş ááąáŹááşáá˝ááşáážá/áá˝á˛áˇá ááşá¸ááŻáśááťáŹá¸ ááźáąáŹááşá¸áá˛ááźááşá¸ áááŻáˇáááŻááş ááááŻááááşáááşáááşáááˇáşá áá áşá áá˝ážá˛ááźáąáŹááşá¸áážáŻáĄáá˝ááşá¸ á¤ááąááŹááᯠáážááşá¸áááşá¸áá˝áŹá¸á áąáááŻááşáááşá
áááŻáˇááąáŹáş ááźá˝ááşá¸ááťááşáá áşááŻáážááááş- á ááşáááşáá°áážáŻáááąáŹááťááşááťáŹá¸áĄáá˝ááşá ááŹá¸áážááşá¸áĄáá áşáááŻáá˝ááˇáşáááŻááşá¸ áááşá¸áááŻáˇááᯠáááşááśáááˇáşáá˝ááşá¸áááˇáşáĄááŤáááŻááşá¸ áááşá¸áááŻáˇááᯠááźááşáááşáááˇáşáá˝ááşá¸ááźááşá¸áááźáŻááá áąáááşáĄáá˝ááşá áĄáááŻáá áşááťá áşáááŻááşááťáŹá¸ áááŻáˇáááŻááş áááşá¸áááŻáˇáááŹá¸áážááşá¸ááťáŹá¸áá˝ááş ááźáąáŹááşá¸áá˛áážáŻáá áşá áŻáśáá áşááŹááźáŻááŻááşááŹá¸ááźááşá¸ááážááᲠáááşá¸áááŻáˇááᯠááźááşáááşáááˇáşáá˝ááşá¸áááˇáşáĄááŤáááŻááşá¸áá˝ááş ááááşá¸áááşá¸áááŻááşááŤáááşá á¤áááşá¸áĄáŹá¸ááźááˇáşá ááŻááşáááşá¸áááşáááşáá˝ááş áááˇáşááąáŹáşáááşááᯠá áááşáááş áááŻáĄááşáááˇáşáĄááťáááşááᯠááťážáąáŹáˇááťáááŻááşáááşááźá áşáááşá
ááąáŹáşáááşááᯠááŻááşáááşá¸á ááşááťáŹá¸á á˝áŹáĄááźá áş ááŻááşááąáŹááşáááşá áááŻáĄááşááąáŹ ááŻááşáááşá¸á ááşááťáŹá¸áážááˇáş áááşá¸áááŻáˇá áĄá áŽáĄá ááşááťáŹá¸ááᯠáááşáážááşááąá¸áááˇáş .yml áááŻááşááᯠáááşáááşááŽá¸áááŻááşáááşá
á ááşá¸ááťááşá¸ 7- ááźááşáááşáĄááŻáśá¸ááźáŻáááŻááşááźááşá¸á
áááşá ááąáŹáşáááş áĄáááŽááąá¸áážááşá¸áá˝ááş ááŻááşááąáŹááşáááˇáş ááŻááşáááşá¸á ááşááťáŹá¸áááş á áááşáááşáážááˇáş áááşáááˇáşáááş áá˝ááşáá°áááˇáşáááşá áááŻáˇááźáąáŹááˇáşá áááşá¸áááş áááˇáşáĄáŹá¸ ááŻááşááźáąáŹááşá¸áá˛áážáŻááťáŹá¸á áá˝á˛áˇá ááşá¸áážáŻáááŻááşááŹááźáąáŹááşá¸áá˛áážáŻááťáŹá¸á ááťááşááźááşá á˝áŹáážááˇáş áááŻááşááťáąáŹááŽáá˝áąááźá áşáĄáąáŹááş á ááąá¸ááᯠááťááşááźááşá á˝áŹáĄááŻáśá¸ááźáŻáááŻááşáááşáážááˇáş áĄááŻááşááŻááşáááˇáşááŹá¸áážááşá¸á ááźá áşáááŻááşááťáąááźááŻáá˝á˛áážáŻááťáŹá¸ááᯠááŹáá˝ááşáááŻááşáááşááźá áşáááşá
áááŻáááŻáááşáážáŹá ááąáŹáşáááşáážááˇáşáĄáá° áááşá ááŻááşáááşá¸á ááşáááş-
- á áááşááťáááşááᯠááťážáąáŹáˇááŤá áĄááąáŹááşá¸ááŻáśá¸áážáŹá á áááşááťáááş (á áááşáááˇáşáĄááááˇáşááᯠááŻááşááźááşáááˇáşáĄááťáááşááž ááŻááşáááşá¸á ááşá áááşáááˇáşáĄááťáááşáĄáá) áááş á áášáááˇáşáĄáááşá¸áááşáááş ááááŻáááˇáşááŤá áĄáááşáá˝ááşááąáŹáşááźááŹá¸ááąáŹ Library caching áááş startup time áááŻááťážáąáŹáˇááťáááşáááşá¸áááşá¸áá áşááŻááźá áşáááşá
- áĄááŻááşáážááşáááşá áááŻáááŻáááşáážáŹá áááşááąáŹááşáážáŻáááŻáˇááşáá˝ááş ááŹá¸ááąáŹááşááźááşá¸ááᯠáĄáážááşááááş áááŻááşá¸ááśáˇááŹá¸ááźáŽá¸á á¤ááááşáááşá¸áááŻáˇ áááşáá˝ááşá¸áááˇáş ááąáŹááşá¸áááŻááťááşáĄáá áşááťáŹá¸ááᯠááŻááşááąáŹááşáááşáááŻááşááŤá á¤ááąááŹáá˝ááş áááşáááş DevOps áĄááşááťááşááŽááŹááťáŹá¸áážááˇáş ááąáŹááşá¸áá˝ááşááąáŹ áááşáá˝ááşáážáŻááᯠáááşááąáŹááşáááş áááŻáĄááşáááş áááŻáˇáááŻááş áááşá¸áááş áááşáááŻááşáááŻááş áááşáááŻáˇáĄááŻááşááŻááşáááşááᯠááŹá¸áááşáááş áááŻáĄááşáááş (ááźá áşáááŻááşáááşáážáŹá ááąááťáŹáááşáážáŹá ááąáŹááşáááŻááşá¸áá˝ááşá áááşáááˇáşáááąáŹááťááşáá˝ááşáááᯠáááşáá˝ááşááąá¸ááᯠáĄááźá˛ááááşá¸ááááşá¸ááŹá¸áááˇáşááŤáááşá)
á ááşá¸ááťááşá¸ 8- á ááşáááşáááźááş ááźááˇáşááťááşáážáŻ/ááąáŤááşá¸á ááşááźááşá¸á
ááŻáášáááŽááťáŹá¸á á˝áŹáááş áĄáááŽááąá¸áážááşá¸áá˝áśáˇááźááŻá¸áááŻá¸áááşááąá¸áážááˇáş áĄááŻáśá¸ááťááąá¸áĄáá˝á˛áˇááťáŹá¸áĄááźáŹá¸ áá˝á˛ááźáŹá¸áážáŻááᯠáĄááŻáśá¸ááźáŻáááş (áĄáááŽááąá¸áážááşá¸ááᯠááŻáśá¸á á˝á˛áá°ááťáŹá¸ááś ááážáá áąááźááşá¸)á áááşá¸áááş ááąáŹáˇááşáá˛ááşáá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻááᯠáážáąá¸áá˝áąá¸á áąááźáŽá¸ áááşá¸ááᯠáááŻáááŻááąáŹááşá¸áá˝ááşáĄáąáŹááş ááŻááşááąáŹááşáááŻááşáááşá áááşá¸áááş áĄááźááşá¸ááťááşá¸áĄáŹá¸ááźááˇáşááźáąáŹáááťážááş ááąáŤááşá¸á ááşááŹá¸ááąáŹ DevOps áááşááťáąá¸áážáŻáááŻáááşá¸ ááťááşá áŽá¸á áąáááşá
áááŻáˇááźáąáŹááˇáşá á¤ááááŹááĄá áááşááá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáááşáááşá¸ááťááşáááş áááşáááŻááşááŻááşáážáŻáááşáááşá¸ááťááşáážááˇáş áĄááŽá¸á ááşááŻáśá¸ááźá áşáááˇáşáááşáᯠááąáŹáşááźááŹá¸áááşá
áááşá¸áááş-
- ááŻááşáá˝ážááşááťáááşááᯠáááşááááşá¸ááźááˇáş ááťážáąáŹáˇááťááŤá
- ááŻááşáážááˇáş áááŻááşááŽáážáŻ ááážáááźááşá¸ááźáąáŹááˇáş áĄáážáŹá¸áĄáá˝ááşá¸ áĄááąáĄáá˝ááşááᯠááťážáąáŹáˇááťááŤá
- ááąáŹáˇááşáá˛áááŻáĄááŻáśá¸ááźáŻáááˇáş developer ááťáŹá¸áážááˇáş application áááŻáĄááŻáśá¸ááźáŻááąáá°ááťáŹá¸áááşáááŻáĄáá˝á˛áˇáá áşáá˝á˛áˇááźá áşááąáŹááźáąáŹááˇáşá áááşá¸áááşáááşáááşá¸ááťáŹá¸áĄáá˝ááşáĄááŻááşááŹáááşáááŻáááşá¸ááťážáąáŹáˇááťááąá¸áááşá
áááşá¸áážááˇáşáĄááŻááşááŻááşáááşáááˇáşáĄáŹá¸áá˝ááˇáşááźáŻáááˇáşááááááŹááťáŹá¸áážáŹ CircleCIá Travis CIá GitLab CI áážááˇáşáĄááźáŹá¸áĄááŹááťáŹá¸ááźá áşáááşá
ááąáŹáşáááşáá˝ááş áĄáááŻáááşááąáŹááşá¸áážáŻááťáŹá¸ááᯠááťááşááźááşá á˝áŹ ááźáŻááŻááşáááŻááşáááşá áááşá¸ááᯠáĄááşááááşááŻááşááźáŽá¸ ááťááşááťááşá¸áá˝ááˇáşáááŻááşááąáŹáşáááşá¸á ááťááşáá˝ááşáážáŻááťáŹá¸áá˝ááşá áĄááŻááşááŻááşáááˇáşááŹá¸áážááşá¸áááŻáˇ áĄáá˝ááşááťááşááźááşá á˝áŹ ááźááşáá˝áŹá¸áááş áá˝ááşáá°áááşááźá áşááźáŽá¸á áĄááŻáśá¸ááźáŻáá°áááş áááşá¸áááŻáááş ááááááŹá¸ááá áąáááş ááźáŻááŻááşáááŻááşáááşá áááˇáşáá˝ááş á á áşááąá¸áážáŻááąáŹááşá¸ááťáŹá¸áážáááŤá áĄáá°á¸áááźááˇáş áá˝ááşáá°ááťááşááźááşá á˝áŹ ááŻááşááąáŹááşáááŻááşááŤáááşá
áá˝á˛ááźáŹá¸áážáŻááᯠááťážáąáŹáˇááťááŤ!!!
áĄááźáąááśáá° áá áááşááážááşáááşá¸ááťáŹá¸
áážááşáááşá¸ááťáŹá¸ (áááŻáˇáááŻááş "áážááşáááşá¸ááťáŹá¸") áááş áĄááşáááŽááąá¸áážááşá¸áĄáá˝ááşá¸ ááźá áşááąáŤáşáááˇáş á áŹááŹá¸ááąáŹáşáááşááźááˇáş áážááşáááşá¸áááşááŹá¸ááąáŹ ááźá áşáááşááťáŹá¸ááźá áşáááşá áááŻá¸áážááşá¸ááąáŹ áĽáááŹ- "2020-02-02 - á áá áşáĄáááˇáş - ááŻááşáááşá¸á ááşáĄáááşá" ááááŻááááşáááşáááşááąááťáááşáá˝ááş áááşá¸áááŻáˇááᯠááąáŹáˇááşáá˛ááąá¸ááŹá¸áá°á á áŹááŹá¸áĄáááŻááşá¸ááźááşáááŻááşá áąáááş áááşá¸áááŻáˇááᯠááŽáááŻááşá¸ááŻááşááŹá¸áááşá ááŻááşáááşá¸á ááşááťáŹá¸á áááŻá¸áááşáážáŻááᯠááźááşááźáŽá¸ áááşá¸áááş ááąáŹáˇááşáá˛ááąá¸ááŹá¸áá°áááŻááşáááŻááş áááşáá˝ááşááŹá¸áááˇáşáĄáááŻááşá¸ ááźá áşáááźá áşááᯠááŹá¸áááşáááşá
á¤ááááŹááĄá áááˇáşáážááşáááşá¸ááťáŹá¸ááᯠáááˇáşáááŻááşá áá áşáĄáá˝ááşá¸á áááááşá¸áááşá¸áááˇáşá፠- áááşá¸áááŻáˇáĄáŹá¸ ááťááşáážáŹááźááşáááŻáˇáᏠâááŻááşááąá¸â áááˇáşáááşá áĽáááŹá á áá áşáá áśáážáŻááşá¸ááźááˇáş á¤áĄááŹááᯠááŻááşááąáŹááşááŤá á¤áááşá¸áĄáŹá¸ááźááˇáş áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻááŹááĄáá˝ááşá¸ terminal áĄáá˝ááşá¸áážáá áŽá¸áááşá¸áážáŻááᯠá áąáŹááˇáşááźááˇáşáááş ááźá áşáááŻááşáááşááźá áşááŤáááşá
áážááşáááşá¸ááťáŹá¸ááᯠááááşá¸áááşá¸áááş ááŻáśá¸áááááŻáĄááşáᯠáááŻáááŻááŤáááŹá¸á áááşááŻááşááá˛á áááşá áĄááşááşááŽááąá¸áážááşá¸áááş áááşá¸ááᯠááźááşááááşááąáŹááşáážáŻááťáŹá¸ááś ááŹá¸áá˛áˇááŤá áááˇáşáĄáááŽááąá¸áážááşá¸áááş áĄááťáááşáážááˇáşáá áşááźáąá¸ááŽááźááˇáşáážáŻáááşáĄáá˝ááş ááŽá¸ááźáŹá¸áááŻááş áááŻáˇáááŻááş ááááşáá áşááŻáááŻáˇáᏠáážááşáááşá¸ááťáŹá¸áááŻááŹááąá¸áááŻáˇáááŻááşáááşá áááŻáˇáááŻááş áááşá¸ááᯠááąááŻááťáááşáá˝ááşááťááşááąááŹáááŻáážáąáŹááşáážáŻá áá áş (Hadoop áá˛áˇáááŻáˇááąáŹ) áááŻáˇááąá¸áááŻáˇáááŻááşáááşá áááˇáşáĄáááŽááąá¸áážááşá¸áááŻááşáááŻááşá áážááşáááşá¸ááťáŹá¸áážááˇáş ááááşá¸áááşá¸ááźááşá¸ áááŻáˇáááŻááş áĄááźááşáĄáážááşááŻáśáˇááźááşááźááşá¸áááźáŻáááˇáşááŤá
á ááşá¸ááťááşá¸ 10. á ááşá¸áááşááŤá
á ááşáážáŻááŻááşáááşá¸ááŻáśá¸ á ááşáááşáá°ááźááşá¸áĄáá˝ááşá á¤áĄáááˇáşáááş áĄáá˝ááşáĄááąá¸ááźáŽá¸ááŤáááşá ááąáŹáşáááşáááş áážááşáááşá á˝áŹ áĄááŻááşááŻááşááźáŽá¸ áááşáĄáááŻáážáááŹááᯠááŻááşááąá¸ááźáąáŹááşá¸ ááŹá¸áááşáááş áááŻáĄááşááŤáááşá
á ááşá¸áááşáážáŻááťáŹá¸ááᯠpytest ááŻáśá¸ááźáŽá¸ áááşááŽá¸áááŻááşááźáŽá¸ áááˇáşáá˝ááş ááŻááşááŻááşáážáŻ/áĄááťááŻá¸áĄá áŹá¸áá˝á˛ááźáŹá¸ááźááşá¸ááŻááşááąáŹááşá ááŹáá áşááŻáážáááŤá ááąááŹáĄáá˝á˛áááşááᯠáĄááŻáśá¸ááźáŻá á ááşá¸áááşáááŻááşáááşá
ááá°ááŽááąáŹááááşááťáŹá¸ááᯠáĄáááşáááźááşáááŻááşáááŻááşáĄáąáŹááş áááşáá˛ááąáŹáááşáá°áážáŻááŻáśá áśááťáŹá¸áĄáá˝ááş áá°ááŽááąáŹááťááŻá¸á áąáˇááᯠáááşáážááşáááş áááąáˇááŤáážááˇáşá
á¤áááşáážáŹ áĄááźáąááśáá° áá ááťááşá áĄááťááşá¸ááťáŻááşááąáŹáşááźááťááşááźá áşááźáŽá¸á áááşá¸áááŻáˇ áááşáááŻáˇááŻááşááąáŹááşáááşááᯠáááźááˇáşáᲠáááşá¸áááŻáˇááᯠáĄááŻáśá¸ááźáŻáááş áááşáá˛ááąáŹááźáąáŹááˇáşá á¤ááąáŹááşá¸ááŤá¸áááş áááşáááŻáˇáááşááŽá¸ááááşááᯠááąáŹáşááźáááˇáş á áááşáááşá áŹá¸áá˝ááşááąáŹááşá¸ááŤá¸áĄáá˝á˛áááŻááşáĄáá˝ááş á¤ááąáŹááşá¸ááŤá¸áááş á ááŹá¸áá áşáá˝ááşá¸ááťážáᏠááźá áşááŤáááşá á ááşáážáŻááŻááşáááşá¸ááŻáśá¸ á ááşáááşáá°áážáŻááŻáśá áśááťáŹá¸á áááşá¸áááŻáˇááᯠá áá áşááťáŹá¸áá˝ááş áááşáááŻáˇááąáŤááşá¸á ááşááááşáááşá¸á á¤áĄááźáąááśáá°ááťáŹá¸áááş ááťá˝ááşáŻááşáááŻáˇáĄáŹá¸ááŻáśá¸áĄáá˝ááş áááááŻáááŻáá˝ááşáá°á áąáááŻááşááŻáśá
ááášááážááááş comment áážáŹ áááşáá°áááᯠááťááşááŹá¸áá˛áˇáááŻááşáá˛áˇ áĄáááŻááşá
áŹá¸ áááąáŹáááŹá¸áá˝áąááᯠáĄááŻáśá¸ááťáááŻáˇ ááźááŻá¸á
áŹá¸ááŤáˇáááşá
source: www.habr.com