ಪೈಥಾನ್ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಟೈಪ್ ಚೆಕ್ ಮಾಡುವ ಮಾರ್ಗ. ಭಾಗ 3

ಪೈಥಾನ್ ಕೋಡ್‌ಗಾಗಿ ಟೈಪ್ ಚೆಕಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಅಳವಡಿಸುವಾಗ ಡ್ರಾಪ್‌ಬಾಕ್ಸ್ ತೆಗೆದುಕೊಂಡ ಹಾದಿಯ ಕುರಿತು ವಸ್ತುಗಳ ಅನುವಾದದ ಮೂರನೇ ಭಾಗವನ್ನು ನಾವು ನಿಮ್ಮ ಗಮನಕ್ಕೆ ಪ್ರಸ್ತುತಪಡಿಸುತ್ತೇವೆ.

ಪೈಥಾನ್ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಟೈಪ್ ಚೆಕ್ ಮಾಡುವ ಮಾರ್ಗ. ಭಾಗ 3

→ ಹಿಂದಿನ ಭಾಗಗಳು: ಮೊದಲು и ರಷ್ಯಾ

ಟೈಪ್ ಮಾಡಿದ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ತಲುಪುತ್ತಿದೆ

ಮತ್ತೊಂದು ಪ್ರಮುಖ ಸವಾಲು (ಮತ್ತು ಆಂತರಿಕವಾಗಿ ಸಮೀಕ್ಷೆ ಮಾಡಿದವರಲ್ಲಿ ಎರಡನೇ ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಕಾಳಜಿ) ಡ್ರಾಪ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಟೈಪ್ ಚೆಕ್‌ಗಳ ಮೂಲಕ ಒಳಗೊಂಡಿರುವ ಕೋಡ್‌ನ ಪ್ರಮಾಣವನ್ನು ಹೆಚ್ಚಿಸುವುದು. ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ನಾವು ಹಲವಾರು ವಿಧಾನಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿದ್ದೇವೆ, ಟೈಪ್ ಮಾಡಿದ ಕೋಡ್‌ಬೇಸ್‌ನ ಗಾತ್ರವನ್ನು ಸ್ವಾಭಾವಿಕವಾಗಿ ಬೆಳೆಸುವುದರಿಂದ ಹಿಡಿದು ಸ್ಥಿರ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ಸ್ವಯಂಚಾಲಿತ ಪ್ರಕಾರದ ತೀರ್ಮಾನದ ಮೇಲೆ mypy ತಂಡದ ಪ್ರಯತ್ನಗಳನ್ನು ಕೇಂದ್ರೀಕರಿಸುವವರೆಗೆ. ಕೊನೆಯಲ್ಲಿ, ಯಾವುದೇ ಸರಳ ಗೆಲುವಿನ ತಂತ್ರವಿಲ್ಲ ಎಂದು ತೋರುತ್ತಿದೆ, ಆದರೆ ನಾವು ಅನೇಕ ವಿಧಾನಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ ಟಿಪ್ಪಣಿ ಕೋಡ್‌ನ ಪರಿಮಾಣದಲ್ಲಿ ತ್ವರಿತ ಬೆಳವಣಿಗೆಯನ್ನು ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಯಿತು.

ಇದರ ಪರಿಣಾಮವಾಗಿ, ನಮ್ಮ ಅತಿದೊಡ್ಡ ಪೈಥಾನ್ ರೆಪೊಸಿಟರಿಯು (ಬ್ಯಾಕೆಂಡ್ ಕೋಡ್‌ನೊಂದಿಗೆ) ಸುಮಾರು 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳ ಟಿಪ್ಪಣಿ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿದೆ. ಸ್ಟ್ಯಾಟಿಕ್ ಕೋಡ್ ಟೈಪಿಂಗ್ ಕೆಲಸ ಸುಮಾರು ಮೂರು ವರ್ಷಗಳಲ್ಲಿ ಪೂರ್ಣಗೊಂಡಿತು. Mypy ಈಗ ವಿವಿಧ ರೀತಿಯ ಕೋಡ್ ಕವರೇಜ್ ವರದಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ ಅದು ಟೈಪಿಂಗ್ ಪ್ರಗತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ, ನಾವು ಪ್ರಕಾರಗಳಲ್ಲಿ ಅಸ್ಪಷ್ಟತೆಗಳೊಂದಿಗೆ ಕೋಡ್‌ನಲ್ಲಿ ವರದಿಗಳನ್ನು ರಚಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಒಂದು ಪ್ರಕಾರದ ಸ್ಪಷ್ಟ ಬಳಕೆಯಂತಹ Any ಪರಿಶೀಲಿಸಲಾಗದ ಟಿಪ್ಪಣಿಗಳಲ್ಲಿ ಅಥವಾ ಪ್ರಕಾರದ ಟಿಪ್ಪಣಿಗಳನ್ನು ಹೊಂದಿರದ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಲೈಬ್ರರಿಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುವಂತಹ ವಿಷಯಗಳೊಂದಿಗೆ. ಡ್ರಾಪ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಟೈಪ್ ಪರಿಶೀಲನೆಯ ನಿಖರತೆಯನ್ನು ಸುಧಾರಿಸುವ ಯೋಜನೆಯ ಭಾಗವಾಗಿ, ಕೇಂದ್ರೀಕೃತ ಪೈಥಾನ್ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಕೆಲವು ಜನಪ್ರಿಯ ತೆರೆದ ಮೂಲ ಲೈಬ್ರರಿಗಳಿಗೆ ಟೈಪ್ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು (ಸ್ಟಬ್ ಫೈಲ್‌ಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುವ) ಸುಧಾರಿಸಲು ನಾವು ಕೊಡುಗೆ ನೀಡಿದ್ದೇವೆ. ಟೈಪ್‌ಶೆಡ್.

ಕೆಲವು ನಿರ್ದಿಷ್ಟ ಪೈಥಾನ್ ಮಾದರಿಗಳಿಗೆ ಹೆಚ್ಚು ನಿಖರವಾದ ಪ್ರಕಾರಗಳನ್ನು ಅನುಮತಿಸುವ ಪ್ರಕಾರದ ವ್ಯವಸ್ಥೆಯ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಾವು ಕಾರ್ಯಗತಗೊಳಿಸಿದ್ದೇವೆ (ಮತ್ತು ನಂತರದ PEP ಗಳಲ್ಲಿ ಪ್ರಮಾಣೀಕರಿಸಲಾಗಿದೆ). ಇದಕ್ಕೆ ಗಮನಾರ್ಹ ಉದಾಹರಣೆಯೆಂದರೆ TypeDict, ಇದು JSON-ತರಹದ ನಿಘಂಟುಗಳಿಗೆ ಪ್ರಕಾರಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಅದು ಸ್ಥಿರವಾದ ಸ್ಟ್ರಿಂಗ್ ಕೀಗಳನ್ನು ಹೊಂದಿದೆ, ಪ್ರತಿಯೊಂದೂ ತನ್ನದೇ ಆದ ಪ್ರಕಾರದ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ನಾವು ಟೈಪ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ವಿಸ್ತರಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇವೆ. ಪೈಥಾನ್‌ನ ಸಂಖ್ಯಾತ್ಮಕ ಸಾಮರ್ಥ್ಯಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸುಧಾರಿಸುವುದು ನಮ್ಮ ಮುಂದಿನ ಹಂತವಾಗಿದೆ.

ಪೈಥಾನ್ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಟೈಪ್ ಚೆಕ್ ಮಾಡುವ ಮಾರ್ಗ. ಭಾಗ 3
ಟಿಪ್ಪಣಿ ಮಾಡಲಾದ ಕೋಡ್‌ನ ಸಾಲುಗಳ ಸಂಖ್ಯೆ: ಸರ್ವರ್

ಪೈಥಾನ್ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಟೈಪ್ ಚೆಕ್ ಮಾಡುವ ಮಾರ್ಗ. ಭಾಗ 3
ಟಿಪ್ಪಣಿ ಮಾಡಲಾದ ಕೋಡ್‌ನ ಸಾಲುಗಳ ಸಂಖ್ಯೆ: ಕ್ಲೈಂಟ್

ಪೈಥಾನ್ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಟೈಪ್ ಚೆಕ್ ಮಾಡುವ ಮಾರ್ಗ. ಭಾಗ 3
ಟಿಪ್ಪಣಿ ಮಾಡಲಾದ ಕೋಡ್‌ನ ಒಟ್ಟು ಸಾಲುಗಳ ಸಂಖ್ಯೆ

ಡ್ರಾಪ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಟಿಪ್ಪಣಿ ಮಾಡಲಾದ ಕೋಡ್‌ನ ಪ್ರಮಾಣವನ್ನು ಹೆಚ್ಚಿಸಲು ನಾವು ಮಾಡಿದ ವಿಷಯಗಳ ಮುಖ್ಯ ವೈಶಿಷ್ಟ್ಯಗಳ ಅವಲೋಕನ ಇಲ್ಲಿದೆ:

ಟಿಪ್ಪಣಿ ಕಠಿಣತೆ. ಹೊಸ ಕೋಡ್ ಅನ್ನು ಟಿಪ್ಪಣಿ ಮಾಡುವ ಕಠಿಣತೆಯ ಅವಶ್ಯಕತೆಗಳನ್ನು ನಾವು ಕ್ರಮೇಣ ಹೆಚ್ಚಿಸಿದ್ದೇವೆ. ಈಗಾಗಲೇ ಕೆಲವು ಟಿಪ್ಪಣಿಗಳನ್ನು ಹೊಂದಿರುವ ಫೈಲ್‌ಗಳಿಗೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಲು ಸಲಹೆ ನೀಡುವ ಲಿಂಟರ್ ಸಲಹೆಗಳೊಂದಿಗೆ ನಾವು ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ. ನಮಗೆ ಈಗ ಹೊಸ ಪೈಥಾನ್ ಫೈಲ್‌ಗಳಲ್ಲಿ ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಹೆಚ್ಚಿನ ಫೈಲ್‌ಗಳಲ್ಲಿ ಟೈಪ್ ಟಿಪ್ಪಣಿಗಳ ಅಗತ್ಯವಿದೆ.

ಟೈಪಿಂಗ್ ವರದಿಗಳು. ನಾವು ತಂಡಗಳಿಗೆ ಅವರ ಕೋಡ್‌ನಲ್ಲಿ ಟೈಪ್ ಮಾಡುವ ಮಟ್ಟದಲ್ಲಿ ಸಾಪ್ತಾಹಿಕ ವರದಿಗಳನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ ಮತ್ತು ಮೊದಲು ಏನು ಟಿಪ್ಪಣಿ ಮಾಡಬೇಕು ಎಂಬುದರ ಕುರಿತು ಸಲಹೆಯನ್ನು ನೀಡುತ್ತೇವೆ.

ಮೈಪಿಯ ಜನಪ್ರಿಯತೆ. ನಾವು ಈವೆಂಟ್‌ಗಳಲ್ಲಿ mypy ಕುರಿತು ಮಾತನಾಡುತ್ತೇವೆ ಮತ್ತು ಪ್ರಕಾರದ ಟಿಪ್ಪಣಿಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಲು ಸಹಾಯ ಮಾಡಲು ತಂಡಗಳೊಂದಿಗೆ ಮಾತನಾಡುತ್ತೇವೆ.

ಸಮೀಕ್ಷೆಗಳು. ಪ್ರಮುಖ ಸಮಸ್ಯೆಗಳನ್ನು ಗುರುತಿಸಲು ನಾವು ಆವರ್ತಕ ಬಳಕೆದಾರರ ಸಮೀಕ್ಷೆಗಳನ್ನು ನಡೆಸುತ್ತೇವೆ. ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವಲ್ಲಿ ನಾವು ಸಾಕಷ್ಟು ದೂರ ಹೋಗಲು ಸಿದ್ಧರಿದ್ದೇವೆ (ಮೈಪಿಯನ್ನು ವೇಗಗೊಳಿಸಲು ಹೊಸ ಭಾಷೆಯನ್ನು ಸಹ ರಚಿಸುವುದು!).

ಪ್ರದರ್ಶನ. ಡೀಮನ್ ಮತ್ತು mypyc ಅನ್ನು ಬಳಸುವ ಮೂಲಕ ನಾವು mypy ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೆಚ್ಚು ಸುಧಾರಿಸಿದ್ದೇವೆ. ಟಿಪ್ಪಣಿ ಪ್ರಕ್ರಿಯೆಯ ಸಮಯದಲ್ಲಿ ಉಂಟಾಗುವ ಅನಾನುಕೂಲತೆಗಳನ್ನು ಸುಗಮಗೊಳಿಸಲು ಮತ್ತು ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಕೋಡ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಇದನ್ನು ಮಾಡಲಾಗಿದೆ.

ಸಂಪಾದಕರೊಂದಿಗೆ ಏಕೀಕರಣ. ಡ್ರಾಪ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಜನಪ್ರಿಯವಾಗಿರುವ ಎಡಿಟರ್‌ಗಳಲ್ಲಿ ಮೈಪಿ ಚಾಲನೆಯನ್ನು ಬೆಂಬಲಿಸಲು ನಾವು ಪರಿಕರಗಳನ್ನು ನಿರ್ಮಿಸಿದ್ದೇವೆ. ಇದು PyCharm, Vim ಮತ್ತು VS ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ಇದು ಕೋಡ್ ಅನ್ನು ಟಿಪ್ಪಣಿ ಮಾಡುವ ಮತ್ತು ಅದರ ಕಾರ್ಯವನ್ನು ಪರಿಶೀಲಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೆಚ್ಚು ಸರಳಗೊಳಿಸಿತು. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಅನ್ನು ಟಿಪ್ಪಣಿ ಮಾಡುವಾಗ ಈ ರೀತಿಯ ಕ್ರಿಯೆಗಳು ಸಾಮಾನ್ಯವಾಗಿದೆ.

ಸ್ಥಾಯೀ ವಿಶ್ಲೇಷಣೆ. ಸ್ಥಾಯೀ ವಿಶ್ಲೇಷಣಾ ಪರಿಕರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಕಾರ್ಯದ ಸಹಿಗಳನ್ನು ಊಹಿಸಲು ನಾವು ಉಪಕರಣವನ್ನು ರಚಿಸಿದ್ದೇವೆ. ಈ ಉಪಕರಣವು ತುಲನಾತ್ಮಕವಾಗಿ ಸರಳ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸಬಲ್ಲದು, ಆದರೆ ಹೆಚ್ಚಿನ ಪ್ರಯತ್ನವಿಲ್ಲದೆ ನಮ್ಮ ಕೋಡ್ ಪ್ರಕಾರದ ವ್ಯಾಪ್ತಿಯನ್ನು ಹೆಚ್ಚಿಸಲು ಇದು ನಮಗೆ ಸಹಾಯ ಮಾಡಿದೆ.

ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಲೈಬ್ರರಿಗಳಿಗೆ ಬೆಂಬಲ. ನಮ್ಮ ಹಲವು ಯೋಜನೆಗಳು SQLAlchemy ಟೂಲ್‌ಕಿಟ್ ಅನ್ನು ಬಳಸುತ್ತವೆ. PEP 484 ಪ್ರಕಾರಗಳು ನೇರವಾಗಿ ಮಾಡೆಲ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗದ ಪೈಥಾನ್‌ನ ಡೈನಾಮಿಕ್ ಸಾಮರ್ಥ್ಯಗಳ ಪ್ರಯೋಜನವನ್ನು ಇದು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ನಾವು, PEP 561 ಗೆ ಅನುಗುಣವಾಗಿ, ಅನುಗುಣವಾದ ಸ್ಟಬ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿದ್ದೇವೆ ಮತ್ತು mypy ಗಾಗಿ ಪ್ಲಗಿನ್ ಅನ್ನು ಬರೆದಿದ್ದೇವೆ (ಮುಕ್ತ ಸಂಪನ್ಮೂಲ), ಇದು SQLalchemy ಬೆಂಬಲವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.

ನಾವು ಎದುರಿಸಿದ ತೊಂದರೆಗಳು

ಟೈಪ್ ಮಾಡಿದ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಲೈನ್‌ಗಳ ಹಾದಿಯು ನಮಗೆ ಯಾವಾಗಲೂ ಸುಲಭವಲ್ಲ. ಈ ಹಾದಿಯಲ್ಲಿ ನಾವು ಅನೇಕ ಗುಂಡಿಗಳನ್ನು ಎದುರಿಸಿದ್ದೇವೆ ಮತ್ತು ಹಲವಾರು ತಪ್ಪುಗಳನ್ನು ಮಾಡಿದ್ದೇವೆ. ಇವು ನಾವು ಎದುರಿಸಿದ ಕೆಲವು ಸಮಸ್ಯೆಗಳು. ಅವರ ಬಗ್ಗೆ ಹೇಳುವುದು ಇತರರಿಗೆ ಇದೇ ರೀತಿಯ ಸಮಸ್ಯೆಗಳನ್ನು ತಪ್ಪಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ.

ಫೈಲ್‌ಗಳು ಕಾಣೆಯಾಗಿದೆ. ನಾವು ಸಣ್ಣ ಪ್ರಮಾಣದ ಫೈಲ್‌ಗಳನ್ನು ಮಾತ್ರ ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ನಮ್ಮ ಕೆಲಸವನ್ನು ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ. ಈ ಫೈಲ್‌ಗಳಲ್ಲಿ ಸೇರಿಸದ ಯಾವುದನ್ನೂ ಪರಿಶೀಲಿಸಲಾಗಿಲ್ಲ. ಫೈಲ್‌ಗಳಲ್ಲಿ ಮೊದಲ ಟಿಪ್ಪಣಿಗಳು ಕಾಣಿಸಿಕೊಂಡಾಗ ಅವುಗಳನ್ನು ಸ್ಕ್ಯಾನಿಂಗ್ ಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. ಪರಿಶೀಲನೆಯ ವ್ಯಾಪ್ತಿಯಿಂದ ಹೊರಗಿರುವ ಮಾಡ್ಯೂಲ್‌ನಿಂದ ಏನನ್ನಾದರೂ ಆಮದು ಮಾಡಿಕೊಂಡಿದ್ದರೆ, ನಾವು ಅಂತಹ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದೇವೆ Any, ಇವುಗಳನ್ನು ಪರೀಕ್ಷಿಸಲಾಗಿಲ್ಲ. ಇದು ಟೈಪಿಂಗ್ ನಿಖರತೆಯ ಗಮನಾರ್ಹ ನಷ್ಟಕ್ಕೆ ಕಾರಣವಾಯಿತು, ವಿಶೇಷವಾಗಿ ವಲಸೆಯ ಆರಂಭಿಕ ಹಂತಗಳಲ್ಲಿ. ಈ ವಿಧಾನವು ಇಲ್ಲಿಯವರೆಗೆ ಆಶ್ಚರ್ಯಕರವಾಗಿ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡಿದೆ, ಆದಾಗ್ಯೂ ಒಂದು ವಿಶಿಷ್ಟವಾದ ಪರಿಸ್ಥಿತಿಯು ವಿಮರ್ಶೆಯ ವ್ಯಾಪ್ತಿಗೆ ಫೈಲ್‌ಗಳನ್ನು ಸೇರಿಸುವುದು ಕೋಡ್‌ಬೇಸ್‌ನ ಇತರ ಭಾಗಗಳಲ್ಲಿನ ಸಮಸ್ಯೆಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ಕೆಟ್ಟ ಸಂದರ್ಭದಲ್ಲಿ, ಕೋಡ್‌ನ ಎರಡು ಪ್ರತ್ಯೇಕ ಪ್ರದೇಶಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಿದಾಗ, ಇದರಲ್ಲಿ, ಪರಸ್ಪರ ಸ್ವತಂತ್ರವಾಗಿ, ಪ್ರಕಾರಗಳನ್ನು ಈಗಾಗಲೇ ಪರಿಶೀಲಿಸಲಾಗಿದೆ, ಈ ಪ್ರದೇಶಗಳ ಪ್ರಕಾರಗಳು ಪರಸ್ಪರ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ ಎಂದು ತಿಳಿದುಬಂದಿದೆ. ಇದು ಟಿಪ್ಪಣಿಗಳಲ್ಲಿ ಅನೇಕ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುವ ಅಗತ್ಯಕ್ಕೆ ಕಾರಣವಾಯಿತು. ಈಗ ಹಿಂತಿರುಗಿ ನೋಡಿದಾಗ, ಮೈಪಿಯ ಪ್ರಕಾರವನ್ನು ಪರಿಶೀಲಿಸುವ ಪ್ರದೇಶಕ್ಕೆ ನಾವು ಕೋರ್ ಲೈಬ್ರರಿ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಬೇಗ ಸೇರಿಸಬೇಕಾಗಿತ್ತು ಎಂದು ನಾವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತೇವೆ. ಇದು ನಮ್ಮ ಕೆಲಸವನ್ನು ಹೆಚ್ಚು ಊಹಿಸುವಂತೆ ಮಾಡುತ್ತದೆ.

ಹಳೆಯ ಕೋಡ್ ಅನ್ನು ಟಿಪ್ಪಣಿ ಮಾಡಲಾಗುತ್ತಿದೆ. ನಾವು ಪ್ರಾರಂಭಿಸಿದಾಗ, ನಾವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪೈಥಾನ್ ಕೋಡ್‌ನ ಸುಮಾರು 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಈ ಎಲ್ಲಾ ಕೋಡ್ ಅನ್ನು ಟಿಪ್ಪಣಿ ಮಾಡುವುದು ಸುಲಭದ ಕೆಲಸವಲ್ಲ ಎಂದು ಸ್ಪಷ್ಟವಾಯಿತು. ನಾವು PyAnnotate ಎಂಬ ಪರಿಕರವನ್ನು ರಚಿಸಿದ್ದೇವೆ ಅದು ಪರೀಕ್ಷೆಗಳು ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಪ್ರಕಾರ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು ಮತ್ತು ಸಂಗ್ರಹಿಸಿದ ಮಾಹಿತಿಯ ಆಧಾರದ ಮೇಲೆ ನಿಮ್ಮ ಕೋಡ್‌ಗೆ ಟೈಪ್ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಬಹುದು. ಆದಾಗ್ಯೂ, ಈ ಉಪಕರಣದ ನಿರ್ದಿಷ್ಟವಾಗಿ ವ್ಯಾಪಕವಾದ ಅಳವಡಿಕೆಯನ್ನು ನಾವು ಗಮನಿಸಿಲ್ಲ. ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುವುದು ನಿಧಾನವಾಗಿತ್ತು, ಮತ್ತು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಲಾದ ಟಿಪ್ಪಣಿಗಳಿಗೆ ಅನೇಕ ಹಸ್ತಚಾಲಿತ ಸಂಪಾದನೆಗಳು ಬೇಕಾಗುತ್ತವೆ. ನಾವು ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದಾಗಲೆಲ್ಲಾ ಈ ಉಪಕರಣವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಚಾಲನೆ ಮಾಡುವ ಬಗ್ಗೆ ಅಥವಾ ಕೆಲವು ಸಣ್ಣ ಪ್ರಮಾಣದ ನೈಜ ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುವುದರ ಆಧಾರದ ಮೇಲೆ ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುವ ಕುರಿತು ನಾವು ಯೋಚಿಸಿದ್ದೇವೆ, ಆದರೆ ಎರಡೂ ವಿಧಾನವು ತುಂಬಾ ಅಪಾಯಕಾರಿಯಾಗಿರುವುದರಿಂದ ಅದನ್ನು ಮಾಡದಿರಲು ನಿರ್ಧರಿಸಿದ್ದೇವೆ.

ಪರಿಣಾಮವಾಗಿ, ಹೆಚ್ಚಿನ ಕೋಡ್ ಅನ್ನು ಅದರ ಮಾಲೀಕರಿಂದ ಹಸ್ತಚಾಲಿತವಾಗಿ ಟಿಪ್ಪಣಿ ಮಾಡಲಾಗಿದೆ ಎಂದು ಗಮನಿಸಬಹುದು. ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸರಿಯಾದ ದಿಕ್ಕಿನಲ್ಲಿ ಮಾರ್ಗದರ್ಶನ ಮಾಡಲು, ನಾವು ನಿರ್ದಿಷ್ಟವಾಗಿ ಮುಖ್ಯವಾದ ಮಾಡ್ಯೂಲ್‌ಗಳು ಮತ್ತು ಟಿಪ್ಪಣಿಗಳನ್ನು ಮಾಡಬೇಕಾದ ಕಾರ್ಯಗಳ ಕುರಿತು ವರದಿಗಳನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತೇವೆ. ಉದಾಹರಣೆಗೆ, ನೂರಾರು ಸ್ಥಳಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ಲೈಬ್ರರಿ ಮಾಡ್ಯೂಲ್‌ಗೆ ಟೈಪ್ ಟಿಪ್ಪಣಿಗಳನ್ನು ಒದಗಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಆದರೆ ಹೊಸದರೊಂದಿಗೆ ಬದಲಾಯಿಸಲಾಗುತ್ತಿರುವ ಹಳೆಯ ಸೇವೆಯನ್ನು ಟಿಪ್ಪಣಿ ಮಾಡುವುದು ಇನ್ನು ಮುಂದೆ ಅಷ್ಟು ಮುಖ್ಯವಲ್ಲ. ಲೆಗಸಿ ಕೋಡ್‌ಗಾಗಿ ಟೈಪ್ ಟಿಪ್ಪಣಿಗಳನ್ನು ರಚಿಸಲು ಸ್ಥಾಯೀ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಪ್ರಯೋಗಿಸುತ್ತಿದ್ದೇವೆ.

ಆವರ್ತಕ ಆಮದುಗಳು. ಮೇಲೆ, ನಾನು ಆವರ್ತಕ ಆಮದುಗಳ ಬಗ್ಗೆ ಮಾತನಾಡಿದ್ದೇನೆ ("ಅವಲಂಬನೆ ಸಿಕ್ಕುಗಳು"), ಅದರ ಅಸ್ತಿತ್ವವು ಮೈಪಿಯನ್ನು ವೇಗಗೊಳಿಸಲು ಕಷ್ಟಕರವಾಗಿದೆ. ಈ ಸೈಕ್ಲಿಕ್ ಆಮದುಗಳಿಂದ ಬರುವ ಎಲ್ಲಾ ವಿಭಿನ್ನ ಭಾಷಾವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಮೈಪಿ ಬೆಂಬಲಿಸುವಂತೆ ಮಾಡಲು ನಾವು ಶ್ರಮಿಸಬೇಕಾಗಿತ್ತು. ವೃತ್ತಾಕಾರದ ಆಮದುಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಹೆಚ್ಚಿನ mypy ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವ ಪ್ರಮುಖ ಸಿಸ್ಟಮ್ ಮರುವಿನ್ಯಾಸ ಯೋಜನೆಯನ್ನು ನಾವು ಇತ್ತೀಚೆಗೆ ಪೂರ್ಣಗೊಳಿಸಿದ್ದೇವೆ. ಈ ಸಮಸ್ಯೆಗಳು ವಾಸ್ತವವಾಗಿ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಆರಂಭಿಕ ದಿನಗಳಿಂದ ಹುಟ್ಟಿಕೊಂಡಿವೆ, ಮೈಪಿ ಯೋಜನೆಯು ಮೂಲತಃ ಕೇಂದ್ರೀಕರಿಸಿದ ಶೈಕ್ಷಣಿಕ ಭಾಷೆಯಾದ ಅಲೋರ್‌ನಿಂದ. ಅಲೋರ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಲೂಪಿಂಗ್ ಆಮದು ಆಜ್ಞೆಗಳೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ಆಧುನಿಕ ಮೈಪಿಯು ಅದರ ಆರಂಭಿಕ, ಅತ್ಯಾಧುನಿಕ ಅನುಷ್ಠಾನದಿಂದ ಕೆಲವು ಮಿತಿಗಳನ್ನು ಪಡೆದಿದೆ (ಇದು ಅಲೋರ್‌ಗೆ ಉತ್ತಮವಾಗಿದೆ). ಪೈಥಾನ್ ವೃತ್ತಾಕಾರದ ಆಮದುಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ, ಮುಖ್ಯವಾಗಿ ಅಭಿವ್ಯಕ್ತಿಗಳು ಅಸ್ಪಷ್ಟವಾಗಿರುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ನಿಯೋಜನೆ ಕಾರ್ಯಾಚರಣೆಯು ವಾಸ್ತವವಾಗಿ ಒಂದು ವಿಧದ ಅಲಿಯಾಸ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ಹೆಚ್ಚಿನ ಆಮದು ಲೂಪ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವವರೆಗೆ Mypy ಯಾವಾಗಲೂ ಈ ರೀತಿಯ ವಿಷಯಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಆಲೂರಿನಲ್ಲಿ ಅಂತಹ ಅಸ್ಪಷ್ಟತೆಗಳಿರಲಿಲ್ಲ. ಸಿಸ್ಟಮ್ ಅಭಿವೃದ್ಧಿಯ ಆರಂಭಿಕ ಹಂತಗಳಲ್ಲಿ ಮಾಡಿದ ಕಳಪೆ ನಿರ್ಧಾರಗಳು ಹಲವು ವರ್ಷಗಳ ನಂತರ ಪ್ರೋಗ್ರಾಮರ್ಗೆ ಅಹಿತಕರ ಆಶ್ಚರ್ಯವನ್ನು ಉಂಟುಮಾಡಬಹುದು.

ಫಲಿತಾಂಶಗಳು: 5 ಮಿಲಿಯನ್ ಲೈನ್‌ಗಳ ಕೋಡ್ ಮತ್ತು ಹೊಸ ಹಾರಿಜಾನ್‌ಗಳಿಗೆ ಮಾರ್ಗ

mypy ಯೋಜನೆಯು ಬಹಳ ದೂರ ಸಾಗಿದೆ - ಆರಂಭಿಕ ಮೂಲಮಾದರಿಗಳಿಂದ 4 ಮಿಲಿಯನ್ ಲೈನ್‌ಗಳ ಉತ್ಪಾದನಾ ಕೋಡ್ ಪ್ರಕಾರಗಳನ್ನು ನಿಯಂತ್ರಿಸುವ ವ್ಯವಸ್ಥೆಗೆ. ಮೈಪಿ ವಿಕಸನಗೊಂಡಂತೆ, ಪೈಥಾನ್‌ನ ಪ್ರಕಾರದ ಸುಳಿವುಗಳನ್ನು ಪ್ರಮಾಣೀಕರಿಸಲಾಯಿತು. ಈ ದಿನಗಳಲ್ಲಿ, ಪೈಥಾನ್ ಕೋಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡುವ ಸುತ್ತ ಪ್ರಬಲ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯು ಅಭಿವೃದ್ಧಿಗೊಂಡಿದೆ. ಇದು ಲೈಬ್ರರಿ ಬೆಂಬಲಕ್ಕಾಗಿ ಒಂದು ಸ್ಥಳವನ್ನು ಹೊಂದಿದೆ, ಇದು IDE ಗಳು ಮತ್ತು ಸಂಪಾದಕರಿಗೆ ಸಹಾಯಕ ಸಾಧನಗಳನ್ನು ಹೊಂದಿದೆ, ಇದು ಹಲವಾರು ರೀತಿಯ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಹೊಂದಿದೆ, ಪ್ರತಿಯೊಂದೂ ತನ್ನದೇ ಆದ ಸಾಧಕ-ಬಾಧಕಗಳನ್ನು ಹೊಂದಿದೆ.

ಡ್ರಾಪ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಟೈಪ್ ಚೆಕ್ ಅನ್ನು ಈಗಾಗಲೇ ನೀಡಲಾಗಿದೆಯಾದರೂ, ನಾವು ಪೈಥಾನ್ ಕೋಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡುವ ಆರಂಭಿಕ ದಿನಗಳಲ್ಲಿ ಇನ್ನೂ ಇದ್ದೇವೆ ಎಂದು ನಾನು ನಂಬುತ್ತೇನೆ. ಟೈಪ್ ಚೆಕ್ಕಿಂಗ್ ತಂತ್ರಜ್ಞಾನಗಳು ವಿಕಸನಗೊಳ್ಳಲು ಮತ್ತು ಸುಧಾರಿಸಲು ಮುಂದುವರಿಯುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

ನಿಮ್ಮ ದೊಡ್ಡ-ಪ್ರಮಾಣದ ಪೈಥಾನ್ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ಟೈಪ್ ಚೆಕ್ ಅನ್ನು ಬಳಸದಿದ್ದರೆ, ಸ್ಥಿರ ಟೈಪಿಂಗ್‌ಗೆ ಪರಿವರ್ತನೆ ಮಾಡಲು ಇದೀಗ ಉತ್ತಮ ಸಮಯ ಎಂದು ತಿಳಿಯಿರಿ. ಇದೇ ರೀತಿ ಪರಿವರ್ತನೆ ಮಾಡಿದವರೊಂದಿಗೆ ಮಾತನಾಡಿದ್ದೇನೆ. ಅವರಲ್ಲಿ ಯಾರೂ ಪಶ್ಚಾತ್ತಾಪ ಪಡಲಿಲ್ಲ. ಟೈಪ್ ಪರಿಶೀಲನೆಯು ಪೈಥಾನ್ ಅನ್ನು "ಸಾಮಾನ್ಯ ಪೈಥಾನ್" ಗಿಂತ ದೊಡ್ಡ ಯೋಜನೆಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ಭಾಷೆಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ.

ಆತ್ಮೀಯ ಓದುಗರು! ನಿಮ್ಮ ಪೈಥಾನ್ ಯೋಜನೆಗಳಲ್ಲಿ ನೀವು ಟೈಪ್ ಚೆಕ್ ಅನ್ನು ಬಳಸುತ್ತೀರಾ?

ಪೈಥಾನ್ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಟೈಪ್ ಚೆಕ್ ಮಾಡುವ ಮಾರ್ಗ. ಭಾಗ 3
ಪೈಥಾನ್ ಕೋಡ್‌ನ 4 ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಟೈಪ್ ಚೆಕ್ ಮಾಡುವ ಮಾರ್ಗ. ಭಾಗ 3

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ