uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 421
Obunachilar
Ma'lumot yo'q24 soatlar
+37 kunlar
-430 kunlar
Postlar arxiv
ToCode
1 421
# ื—ื“ืฉ ื‘ืืชืจ: ืžื™ื ื™ ืงื•ืจืก Type Hints ื‘ืคื™ื™ืชื•ืŸ "ืžื” ื”ื‘ืขื™ื” ื”ื›ื™ ื’ื“ื•ืœื” ืฉืœืš ื‘ื›ืชื™ื‘ืช ืคื™ื™ืชื•ืŸ?" ื”ื™ื ื”ืฉืืœื” ืฉืื ื™ ืื•ื”ื‘ ืœืคืชื•ื— ืื™ืชื” ืงื•ืจืกื™ ืคื™ื™ืชื•ืŸ ืฉืื ื™ ืžืขื‘ื™ืจ ื‘ื—ื‘ืจื•ืช, ื•ื‘ื™ืŸ ื”ืชืฉื•ื‘ื•ืช ืชืžื™ื“ ื™ื”ื™ื” ืžืงื•ื ืฉืœ ื›ื‘ื•ื“ ืœื ื•ืฉื ื”ื˜ื™ืคื•ืกื™ื: "ื—ืกืจ ืœื™ ื”ืงื•ืžืคื™ื™ืœืจ", "ืื ื™ ืจื•ืื” ืืช ื”ืฉื’ื™ืื•ืช ืจืง ื‘ื–ืžืŸ ืจื™ืฆื”", "ืื™ ืืคืฉืจ ืœื“ืขืช ืื ืงื•ื“ ื™ืขื‘ื•ื“". ืจื‘ื™ื ืžืื•ื“ ืžืื™ืชื ื• ืœื ืžืฉืชืžืฉื™ื ื‘ื”ื’ื“ืจื•ืช ื˜ื™ืคื•ืกื™ื ื‘ืงื•ื“ ืฉืื ื—ื ื• ื›ื•ืชื‘ื™ื ืื• ืœื ืžืฉืชืžืฉื™ื ื‘ื”ืŸ ืžืกืคื™ืง. ื•ื–ื” ื—ื‘ืœ ื›ื™ Type Hints ื”ื ื”ื›ืจื—ื™ื™ื ื‘ืขื‘ื•ื“ื” ืขืœ ื›ืœ ืคืจื•ื™ืงื˜ ื’ื“ื•ืœ. ื›ื™ ืœื ืžืฉื ื” ื›ืžื” ื”ื”ืฉืœืžื” ื”ืื•ื˜ื•ืžื˜ื™ืช ื˜ื•ื‘ื”, ื‘ืœื™ Type Hints ื”ื™ื ืชืžื™ื“ ืชื˜ืขื” ืœืคืขืžื™ื, ื•ื›ื™ ืœื ืžืฉื ื” ื›ืžื” ืืชื ื‘ื˜ื•ื—ื™ื ืฉื”ืงื•ื“ ืฉืœื›ื ืงืจื™ื, ืฉืœื•ืฉื” ื—ื•ื“ืฉื™ื ืื—ืจื™ ืฉื›ืชื‘ืชื ืื•ืชื• ื”ืกื™ื›ื•ื™ ืœื–ื›ื•ืจ ืžื” ืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืœืื™ื–ื• ืคื•ื ืงืฆื™ื” ื™ื•ืจื“ ืžืฉืžืขื•ืชื™ืช. ืื ื™ ื—ื•ืฉื‘ ืฉื”ืกื™ื‘ื” ืฉืื ื—ื ื• ืœื ื›ื•ืชื‘ื™ื ืžืกืคื™ืง Type Hints ื”ื™ื ืงื•ื“ื ื›ืœ ืขืงื•ืžืช ืœืžื™ื“ื”: ื‘ืจื’ืข ืฉื”ื•ืœื›ื™ื ืžืขื‘ืจ ืœื”ื•ืกืคืช int ืื• str ืื—ืจื™ ื ืงื•ื“ื•ืชื™ื™ื, ืื ื—ื ื• ืžื’ืœื™ื ืฉื™ืฉ ื”ืžื•ืŸ ื“ื‘ืจื™ื ืœืœืžื•ื“ ืขืœ ืžืขืจื›ืช ื”ื˜ื™ืคื•ืกื™ื ืฉืœ ืคื™ื™ืชื•ืŸ. ื‘ืžืงื•ืžื•ืช ืžืกื•ื™ืžื™ื ืื ื—ื ื• ืžื’ืœื™ื ืฉื›ืชื™ื‘ ืฉื”ื™ื™ื ื• ื‘ื˜ื•ื—ื™ื ืฉื™ืขื‘ื•ื“ ืžืฆื™ื’ ืฉื’ื™ืื•ืช ืขืœ ืงื•ื“ ืฉื“ื•ื•ืงื ืขื•ื‘ื“ ืžืขื•ืœื”, ื•ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ืื ื—ื ื• ืœื ืžืฆืœื™ื—ื™ื ืœื”ื’ื“ื™ืจ ืืช ื”ื˜ื™ืคื•ืกื™ื ื›ืš ืฉื™ืฆื™ื’ื• ืืช ื”ืฉื’ื™ืื•ืช ืฉืงืœ ืžืื•ื“ ืœืจืื•ืช ื‘ืขื™ื ื™ื™ื. ื•ื‘ื’ืœืœ ืฉืชืžื™ื“ ื™ืฉ ืžืฉื”ื• ื™ื•ืชืจ ื“ื—ื•ืฃ ืœืขืฉื•ืช, ืื ื—ื ื• ื“ื•ื—ื™ื ืืช ื”ืœื™ืžื•ื“ ื•ืžืชื›ื ื ื™ื ืœื”ื•ืกื™ืฃ ืืช ื”ื’ื“ืจื•ืช ื”ื˜ื™ืคื•ืกื™ื ื‘ื’ื™ืจืกื” ื”ื‘ืื”. ืื ื–ืืช ื”ื™ืชื” ื”ื‘ืขื™ื” ืฉืœื›ื, ืชืฉืžื—ื• ืœืฉืžื•ืข ืฉื”ื’ื™ืจืกื” ื”ื‘ืื” ื”ื™ื ื”ื™ื•ื. ื‘ืžื™ื ื™ ืงื•ืจืก ื—ื“ืฉ ื•ืžืžื•ืงื“ ืขืœ ื”ื’ื“ืจื•ืช ื˜ื™ืคื•ืกื™ื ืจื™ื›ื–ืชื™ (ื‘ื’ื™ืจืกืื•ืช ื•ื™ื“ืื• ื•ื˜ืงืกื˜ ืžืœื ืžืœื•ื•ื”) ืืช ื›ืœ ืžื” ืฉืฆืจื™ืš ืœื“ืขืช ืขืœ Type Hints ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืชื•ื›ื ื™ื•ืช ืืžื™ืชื™ื•ืช. ื‘ืงื•ืจืก ืชืœืžื“ื• ื‘ื™ืŸ ื”ืฉืืจ: 1. ืื™ืš ืœื”ื’ื“ื™ืจ ื˜ื™ืคื•ืกื™ื ืœืคื•ื ืงืฆื™ื•ืช, ืจืฉื™ืžื•ืช, ืžื™ืœื•ื ื™ื ื•ืฉืืจ ืžื‘ื ื™ ื ืชื•ื ื™ื ื‘ืคื™ื™ืชื•ืŸ. 2. ืื™ืš ืœื”ื’ื“ื™ืจ ื˜ื™ืคื•ืกื™ื ืœืคื•ื ืงืฆื™ื•ืช ืžื™ื•ื—ื“ื•ืช ื›ืžื• Decorators, Generators ื•ืคื•ื ืงืฆื™ื•ืช ื”ืžืงื‘ืœื•ืช ืžืกืคืจ ืžืฉืชื ื” ืฉืœ ืคืจืžื˜ืจื™ื. 3. ืื™ืš (ื•ืœืžื”) ืœืขื‘ื•ื“ ืขื TypeVar. 4. ืื™ืš ืœื”ื’ื“ื™ืจ ืคืจื•ื˜ื•ืงื•ืœ ื•ืžืชื™ ืœื”ืฉืชืžืฉ ื‘ื•, ื•ืื™ื–ื” ืคืจื•ื˜ื•ืงื•ืœื™ื ื›ื‘ืจ ืžื•ื’ื“ืจื™ื ื‘ืฉืคื”. ืื‘ืœ ื‘ืขื™ืงืจ ืชืœืžื“ื• ืื™ืš ืœื›ืชื•ื‘ ื”ื’ื“ืจื•ืช ื˜ื™ืคื•ืกื™ื ืœืงื•ื“ ืžื’ื•ื•ืŸ ื“ืจืš ื“ื•ื’ืžืื•ืช ืคืจืงื˜ื™ื•ืช. ื”ืงื•ืจืก ื”ื•ื ืงืฆืจ ื•ืžื•ืจื›ื‘ ืžืฉื™ืขื•ืจ ืคืชื™ื—ื” ื•ืื—ืจื™ื• ืขื•ื“ ืฉื‘ืขื” ืฉื™ืขื•ืจื™ื ื•ืืคืฉืจ ืœืกื™ื™ื ืœืฆืคื•ืช ื‘ื• ื•ืœืชืจื’ืœ ื‘ื—ืฆื™ ื™ื•ื, ื•ืื—ืจื™ ื–ื” ืœื™ื™ืฉื ืืช ื”ื“ื‘ืจื™ื ืฉืœืžื“ืชื ื‘ื›ืœ ืชื•ื›ื ื™ืช ืคื™ื™ืชื•ืŸ ืฉืชื›ืชื‘ื•. ืžื ื•ื™ื™ื ืœืืชืจ ื™ื›ื•ืœื™ื ื›ื‘ืจ ืœืฆืคื•ืช ื‘ืชื•ื›ืŸ ื‘ืงื™ืฉื•ืจ: https://www.tocode.co.il/boosters/13. ื•ืื ืืชื ืขื“ื™ื™ืŸ ืœื ืžื ื•ื™ื™ื ื”ื™ื•ื ื”ื•ื ื”ื–ื“ืžื ื•ืช ืžืฆื•ื™ื ืช ืœื”ื™ืจืฉื. ืฉืืœื•ืช, ื“ืขื•ืช, ืคื™ื“ื‘ืงื™ื ื•ื”ืฆืขื•ืช ืœืžื™ื ื™ ืงื•ืจืกื™ื ื ื•ืกืคื™ื ืžื•ื–ืžื ื™ื ืœืฉืœื•ื— ืืœื™ื™ ืœืžื™ื™ืœ ืื• ืœื”ืฉืื™ืจ ื”ื•ื“ืขื” ื“ืจืš ื”ืืชืจ.

ToCode
1 421
# ื›ืžื” ืกื™ื‘ื•ืช ืœืฉืคืจ ืงื•ื“ ืฉืขื•ื‘ื“ ืงื•ื“ ื”ื‘ื“ื™ืงื” ื”ื‘ื ื‘ PyTest ืขื•ื‘ื“ ืžืขื•ืœื” (ื’ื ืื ืœื ืžืžืฉ ื‘ืจื•ืจ ืœืžื” ื”ื•ื ื˜ื•ื‘ ื›ื™ ื–ื• ื‘ื“ื™ืงื” ืžื•ืžืฆืืช ืจืง ื‘ืฉื‘ื™ืœ ื”ืคื•ืกื˜):
from unittest.mock import MagicMock

def test_mock(monkeypatch):
    hello = MagicMock()
    fake_len = MagicMock()
    fake_len.return_value = 8
    hello.__len__ = fake_len

    with monkeypatch.context() as m:
        m.setattr(hello, '__len__', fake_len)
        assert len(hello) == 8
        assert fake_len.called
ื”ื‘ื“ื™ืงื” ืœื™ืžื“ื” ืื•ืชื ื• ืฉื”ืคื•ื ืงืฆื™ื” len ืฉืœ ืคื™ื™ืชื•ืŸ ื‘ืืžืช ืงื•ืจืืช ืœืžืชื•ื“ื” __len__ ืฉืœ ื”ื“ื‘ืจ ืฉื”ืขื‘ื™ืจื• ืœื”. ืื‘ืœ ื–ื” ืœื ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื›ืืŸ. ื™ื•ืชืจ ืžืขื ื™ื™ืŸ ืœืฉื™ื ืœื‘ ืœื’ื™ืจืกื” ื”ืคืฉื•ื˜ื” ื™ื•ืชืจ ืฉืœ ื”ื‘ื“ื™ืงื” ืฉืขื•ืฉื” ื‘ื“ื™ื•ืง ืืช ืื•ืชื• ื“ื‘ืจ:
def test_mock(monkeypatch):
    hello = MagicMock()
    hello.__len__ = MagicMock(return_value=8)

    monkeypatch.setattr(hello, '__len__', hello.__len__)
    assert len(hello) == 8
    assert hello.__len__.called
ืฉื ื™ ื”ืฉื™ืคื•ืจื™ื ื‘ื’ื™ืจืกื” ื”ืคืฉื•ื˜ื” ื”ื ืžื—ื™ืงื•ืช: ืžื—ื™ืงืช ื”ืžืฉืชื ื” fake_len ืฉืœื ื”ื™ื” ื‘ื• ืฆื•ืจืš, ื•ืžื—ื™ืงืช ื”ืฉื™ืžื•ืฉ ื‘ context - ืฉื•ื‘ ืžื ื’ื ื•ืŸ ืฉื‘ื”ืงืฉืจ ืฉืœ ื”ื‘ื“ื™ืงื” ื”ื ื•ื›ื—ื™ืช ืœื ื”ื™ื” ื ื“ืจืฉ. ื•ื‘ื›ืœ ื–ืืช ื›ืฉืื ื—ื ื• ืžืกืชื›ืœื™ื ืขืœ ืฉืชื™ ื”ื’ื™ืจืกืื•ืช ืงืœ ืœื“ืžื™ื™ืŸ ืฉืืœื” ืฉื™ื ื•ื™ื™ื ืœื ื—ืฉื•ื‘ื™ื, ืฉื”ื›ืœ ื”ื™ื” ื‘ืกื“ืจ ื’ื ืงื•ื“ื ื•ืฉืขื“ื™ืฃ ืœื”ืชืขืกืง ื‘ื›ืชื™ื‘ืช ืคื™ืฆ'ืจื™ื ื—ื“ืฉื™ื ื‘ืžืงื•ื ืœืชืงืŸ ืืช ื”ืงื™ื™ื. ืื ื™ ื—ื•ืฉื‘ ืฉื”ืžืฆื™ืื•ืช ืงืฆืช ื™ื•ืชืจ ืžื•ืจื›ื‘ืช ืžื”ืกื™ื‘ื•ืช ื”ื‘ืื•ืช: 1. ื‘ืฉื‘ื™ืœ ืœืชืงืŸ ืื ื™ ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืžื” ืขื•ืฉื” monkeypatch.context ื•ืžืชื™ ื›ืŸ ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ื•. ืจืง ืœื”ื‘ื™ืŸ ืืช ื–ื” ืฉื•ื•ื” ืืช ื”ืžืืžืฅ, ื‘ืœื™ ืงืฉืจ ืœืงื•ื“ ืฉื™ืชืงื‘ืœ. 2. ืงื•ื“ ื’ืจื•ืข ืžืฉืชื›ืคืœ ื•ืžื™ื™ืฆืจ Cargo Cults - ืœืื•ืจืš ื–ืžืŸ ืื ื™ ื™ื›ื•ืœ ืœื“ืžื™ื™ืŸ ืขืฉืจื•ืช ื•ืžืื•ืช ื‘ื“ื™ืงื•ืช ืฉื™ืฉืชืžืฉื• ื‘ context, ืืคื™ืœื• ืฉืื™ืŸ ื‘ื–ื” ืฉื•ื ืฆื•ืจืš. ื–ื” ืžื‘ื–ื‘ื– ื–ืžืŸ ื•ื‘ืžื™ื•ื—ื“ ืื ื—ื ื• ืจื•ืื™ื ืืช ื–ื” ื‘ Code Reviews ื›ืฉืžืชื›ื ืชืช ื—ื“ืฉื” ื ื›ื ืกืช ืœืฆื•ื•ืช ื•ืฆืจื™ื›ื” ืœืœืžื•ื“ ืืช ื›ืœ ื”ื—ื•ืงื™ื ื”ืžืฉื•ื ื™ื ืฉืœ ื”ืฆื•ื•ืช ืฉืื™ืŸ ืœื”ื ื—ืฉื™ื‘ื•ืช ื˜ื›ื ื™ืช. 3. ื™ื•ื ืื—ื“ ื›ืฉื™ื”ื™ื” ื‘ืื’ ื™ื”ื™ื” ื™ื•ืชืจ ืงืœ ืœื—ืงื•ืจ ืืช ื”ื‘ืขื™ื” ื›ืฉื”ืงื•ื“ ืžื•ืจื›ื‘ ืžืคื—ื•ืช ืžื‘ื ื™ื ื•ื›ืืœื” ืฉืื ื™ ืžื‘ื™ืŸ ื˜ื•ื‘ ื™ื•ืชืจ. ืœืื•ืจืš ื–ืžืŸ ืงื•ื“ ืžื™ื ื™ืžืœื™ืกื˜ื™ ืžื ืฆื—. ืื ื”ืชื™ืงื•ืŸ ืงื˜ืŸ, ืื ื™ืฉ ื’ื™ื˜ ื•ื‘ื“ื™ืงื•ืช ื•ืื ืืชื ืžื‘ื™ื ื™ื ืœืžื” ื”ืงื•ื“ ื”ืžื•ื–ืจ ื”ื’ื™ืข ืœืฉื (ืื•ืœื™ ืืคื™ืœื• ืžื–ื”ื™ื ืžืื™ื–ื” ืคื•ืกื˜ ื‘ืกื˜ืืง ืื•ื‘ืจืคืœื• ื”ื•ื ื”ื•ืขืชืง), ืฉื•ื•ื” ืœืžื—ื•ืง ืื•ืชื•.

ToCode
1 421
# ื›ืžื” ืกื™ื‘ื•ืช ืœืฉืคืจ ืงื•ื“ ืฉืขื•ื‘ื“ ืงื•ื“ ื”ื‘ื“ื™ืงื” ื”ื‘ื ื‘ PyTest ืขื•ื‘ื“ ืžืขื•ืœื” (ื’ื ืื ืœื ืžืžืฉ ื‘ืจื•ืจ ืœืžื” ื”ื•ื ื˜ื•ื‘ ื›ื™ ื–ื• ื‘ื“ื™ืงื” ืžื•ืžืฆืืช ืจืง ื‘ืฉื‘ื™ืœ ื”ืคื•ืกื˜):
from unittest.mock import MagicMock

def test_mock(monkeypatch):
    hello = MagicMock()
    fake_len = MagicMock()
    fake_len.return_value = 8
    hello.__len__ = fake_len

    with monkeypatch.context() as m:
        m.setattr(hello, '__len__', fake_len)
        assert len(hello) == 8
        assert fake_len.called
ื”ื‘ื“ื™ืงื” ืœื™ืžื“ื” ืื•ืชื ื• ืฉื”ืคื•ื ืงืฆื™ื” len ืฉืœ ืคื™ื™ืชื•ืŸ ื‘ืืžืช ืงื•ืจืืช ืœืžืชื•ื“ื” __len__ ืฉืœ ื”ื“ื‘ืจ ืฉื”ืขื‘ื™ืจื• ืœื”. ืื‘ืœ ื–ื” ืœื ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื›ืืŸ. ื™ื•ืชืจ ืžืขื ื™ื™ืŸ ืœืฉื™ื ืœื‘ ืœื’ื™ืจืกื” ื”ืคืฉื•ื˜ื” ื™ื•ืชืจ ืฉืœ ื”ื‘ื“ื™ืงื” ืฉืขื•ืฉื” ื‘ื“ื™ื•ืง ืืช ืื•ืชื• ื“ื‘ืจ:
def test_mock(monkeypatch):
    hello = MagicMock()
    hello.__len__ = MagicMock(return_value=8)

    monkeypatch.setattr(hello, '__len__', hello.__len__)
    assert len(hello) == 8
    assert hello.__len__.called
ืฉื ื™ ื”ืฉื™ืคื•ืจื™ื ื‘ื’ื™ืจืกื” ื”ืคืฉื•ื˜ื” ื”ื ืžื—ื™ืงื•ืช: ืžื—ื™ืงืช ื”ืžืฉืชื ื” fake_len ืฉืœื ื”ื™ื” ื‘ื• ืฆื•ืจืš, ื•ืžื—ื™ืงืช ื”ืฉื™ืžื•ืฉ ื‘ context - ืฉื•ื‘ ืžื ื’ื ื•ืŸ ืฉื‘ื”ืงืฉืจ ืฉืœ ื”ื‘ื“ื™ืงื” ื”ื ื•ื›ื—ื™ืช ืœื ื”ื™ื” ื ื“ืจืฉ. ื•ื‘ื›ืœ ื–ืืช ื›ืฉืื ื—ื ื• ืžืกืชื›ืœื™ื ืขืœ ืฉืชื™ ื”ื’ื™ืจืกืื•ืช ืงืœ ืœื“ืžื™ื™ืŸ ืฉืืœื” ืฉื™ื ื•ื™ื™ื ืœื ื—ืฉื•ื‘ื™ื, ืฉื”ื›ืœ ื”ื™ื” ื‘ืกื“ืจ ื’ื ืงื•ื“ื ื•ืฉืขื“ื™ืฃ ืœื”ืชืขืกืง ื‘ื›ืชื™ื‘ืช ืคื™ืฆ'ืจื™ื ื—ื“ืฉื™ื ื‘ืžืงื•ื ืœืชืงืŸ ืืช ื”ืงื™ื™ื. ืื ื™ ื—ื•ืฉื‘ ืฉื”ืžืฆื™ืื•ืช ืงืฆืช ื™ื•ืชืจ ืžื•ืจื›ื‘ืช ืžื”ืกื™ื‘ื•ืช ื”ื‘ืื•ืช: 1. ื‘ืฉื‘ื™ืœ ืœืชืงืŸ ืื ื™ ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืžื” ืขื•ืฉื” monkeypatch.context ื•ืžืชื™ ื›ืŸ ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ื•. ืจืง ืœื”ื‘ื™ืŸ ืืช ื–ื” ืฉื•ื•ื” ืืช ื”ืžืืžืฅ, ื‘ืœื™ ืงืฉืจ ืœืงื•ื“ ืฉื™ืชืงื‘ืœ. 2. ืงื•ื“ ื’ืจื•ืข ืžืฉืชื›ืคืœ ื•ืžื™ื™ืฆืจ Cargo Cults - ืœืื•ืจืš ื–ืžืŸ ืื ื™ ื™ื›ื•ืœ ืœื“ืžื™ื™ืŸ ืขืฉืจื•ืช ื•ืžืื•ืช ื‘ื“ื™ืงื•ืช ืฉื™ืฉืชืžืฉื• ื‘ context, ืืคื™ืœื• ืฉืื™ืŸ ื‘ื–ื” ืฉื•ื ืฆื•ืจืš. ื–ื” ืžื‘ื–ื‘ื– ื–ืžืŸ ื•ื‘ืžื™ื•ื—ื“ ืื ื—ื ื• ืจื•ืื™ื ืืช ื–ื” ื‘ Code Reviews ื›ืฉืžืชื›ื ืชืช ื—ื“ืฉื” ื ื›ื ืกืช ืœืฆื•ื•ืช ื•ืฆืจื™ื›ื” ืœืœืžื•ื“ ืืช ื›ืœ ื”ื—ื•ืงื™ื ื”ืžืฉื•ื ื™ื ืฉืœ ื”ืฆื•ื•ืช ืฉืื™ืŸ ืœื”ื ื—ืฉื™ื‘ื•ืช ื˜ื›ื ื™ืช. 3. ื™ื•ื ืื—ื“ ื›ืฉื™ื”ื™ื” ื‘ืื’ ื™ื”ื™ื” ื™ื•ืชืจ ืงืœ ืœื—ืงื•ืจ ืืช ื”ื‘ืขื™ื” ื›ืฉื”ืงื•ื“ ืžื•ืจื›ื‘ ืžืคื—ื•ืช ืžื‘ื ื™ื ื•ื›ืืœื” ืฉืื ื™ ืžื‘ื™ืŸ ื˜ื•ื‘ ื™ื•ืชืจ. ืœืื•ืจืš ื–ืžืŸ ืงื•ื“ ืžื™ื ื™ืžืœื™ืกื˜ื™ ืžื ืฆื—. ืื ื”ืชื™ืงื•ืŸ ืงื˜ืŸ, ืื ื™ืฉ ื’ื™ื˜ ื•ื‘ื“ื™ืงื•ืช ื•ืื ืืชื ืžื‘ื™ื ื™ื ืœืžื” ื”ืงื•ื“ ื”ืžื•ื–ืจ ื”ื’ื™ืข ืœืฉื (ืื•ืœื™ ืืคื™ืœื• ืžื–ื”ื™ื ืžืื™ื–ื” ืคื•ืกื˜ ื‘ืกื˜ืืง ืื•ื‘ืจืคืœื• ื”ื•ื ื”ื•ืขืชืง), ืฉื•ื•ื” ืœืžื—ื•ืง ืื•ืชื•.

ToCode
1 421
# ืื•ืคืก ืขืฉื™ืชื™ ืืช ื–ื” ืฉื•ื‘ ื›ืŸ ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื”ื ื—ืฉื•ื‘ื™ื. ื›ืŸ ื”ื ืฆืจื™ื›ื™ื ืœืขื‘ื•ื“ ืžื”ืจ ื•ื–ื” ืื—ืœื” ืฉื”ื ื™ื•ื“ืขื™ื ืœื ื”ืœ ื”ืžื•ืŸ ื”ืžื•ืŸ ืžื™ื“ืข. ืื‘ืœ ืื™ื›ืฉื”ื• ืžืกืข ื‘ื–ืžืŸ ืืฃ ืคืขื ืœื ื”ื™ื” ื”ืฆื“ ื”ื—ื–ืง ืฉืœื”ื. ื•ื›ื›ื” ื›ืฉืžื™ืฉื”ื• ื›ื•ืชื‘ ื‘ื˜ืขื•ืช:
DELETE FROM users;
ื•ืฉื•ื›ื— ืœื”ื•ืกื™ืฃ ืืช ื” WHERE, ืื• ืฉื˜ื•ืขื” ื‘ืชื ืื™ ื‘ืื™ื–ื” UPDATE ืื ื—ื ื• ื ืชืงืขื™ื. ื•ื›ืŸ ืืคืฉืจ ืœื—ื–ื•ืจ ืžื’ื™ื‘ื•ื™ ื•ื—ืฉื•ื‘ ืฉื™ื”ื™ื• ื’ื™ื‘ื•ื™ื™ื, ืื‘ืœ ื‘ื™ื ื™ื ื• ืœื—ื–ื•ืจ ืžื’ื™ื‘ื•ื™ ื–ื” ืœื ื˜ื™ื•ืœ ื‘ืคืืจืง ืืคื™ืœื• ื›ืฉืืชื ื™ื•ื“ืขื™ื ืžื” ืืชื ืขื•ืฉื™ื. ื•ื›ืŸ ืืคืฉืจ ืœื”ื•ืฆื™ื ืžื’ื™ื‘ื•ื™ ืจืง ืืช ื”ืชื•ื›ืŸ ืฉืœ ื˜ื‘ืœืช ื”ืžืฉืชืžืฉื™ื ื•ืื™ื›ืฉื”ื• ืœื™ื™ืฆื ืืช ื”ื ืชื•ื ื™ื ืฉื ืœื‘ืกื™ืก ื ืชื•ื ื™ื ื ืคืจื“ ื•ืœื™ื™ื‘ื ืื•ืชื ื‘ื—ื–ืจื” ืœื‘ืกื™ืก ื ืชื•ื ื™ื ื”ืจืืฉื™, ืื‘ืœ ื’ื ื–ื” ืœื ื”ื•ืœืš ืœืขื‘ื•ืจ ื—ืœืง. ื‘ืžืงื•ื ื›ืœ ืืœื” ื”ื™ื™ืชื™ ืจื•ืฆื” ืœืจืื•ืช ื›ืœื™ ืคืฉื•ื˜ ืฉื™ื’ืจื•ื ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืœื”ืชื ื”ื’ ื›ืžื• ื’ื™ื˜ ื‘ื™ื—ืก ืœืžืกืข ื‘ื–ืžืŸ. ืœืžืฉืœ ืฉืืคืฉืจ ื”ื™ื” ืœื›ืชื•ื‘:
git log -- users;
ื•ืœืงื‘ืœ ืืช ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ืฉื‘ื•ืฆืขื• ืœื˜ื‘ืœืช ื”ืžืฉืชืžืฉื™ื, ื•ืืคื™ืœื•:
git restore -s HEAD~1 users
ื›ื“ื™ ืœื”ื—ื–ื™ืจ ืืช ื”ืชื•ื›ืŸ ืฉืœ ื˜ื‘ืœืช ื”ืžืฉืชืžืฉื™ื ืงื•ืžื™ื˜ ืื—ื“ ืื—ื•ืจื”. ืขื“ ืฉื™ืžืฆื™ืื• ื›ื–ื” ืžื ื’ื ื•ืŸ ืฉื™ืžื• ืœื‘ ืœื’ื™ื‘ื•ื™ื™ื ื•ื ืกื• ืœื”ืชืจื—ืง ืžืคืงื•ื“ื•ืช ืžื—ื™ืงื”.

ToCode
1 421
# ื”ืฉื ื” 2023. ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ืคืกื™ืง ืœื“ื‘ืจ ืขืœ ื™ืจื•ืฉื” ื‘ืคื™ื™ืชื•ืŸ ื”ืงื•ื ืกืคื˜ ืฉืœ ื™ืจื•ืฉื” ื‘ื™ืŸ ืžื—ืœืงื•ืช ื”ื™ื” ืคื•ืคื•ืœืจื™ ื›ืฉื›ื•ืœื ื›ืชื‘ื• Java ื• C++ ื‘ื’ืœืœ ืฉื–ื• ื”ื™ืชื” ื”ื“ืจืš ื”ื™ื—ื™ื“ื” ืœื›ืชื•ื‘ ืงื•ื“ ืคื•ืœื™ืžื•ืจืคื™. ืื ืจืฆื™ื ื• ื‘ Java ืœื™ืฆื•ืจ ืžืขืจืš ืฉืœ ืžื•ืฆืจื™ื ืžืžื—ืœืงื•ืช ืฉื•ื ื•ืช, ื”ื™ื” ืขืœื™ื ื• ืœื•ื•ื“ื ืฉืœื›ืœ ื”ืžื—ืœืงื•ืช ื™ืฉ Base Class ืžืฉื•ืชืฃ, ื•ื”ืฉืคื” ืขืฆืžื” ื•ื™ื“ืื” ืฉืื ื—ื ื• ืžืชื™ื—ืกื™ื ืจืง ืœืžืืคื™ื™ื ื™ื ืžื” Base Class ืฉืœ ื”ื“ื‘ืจื™ื ืžื”ืžืขืจืš. ืื ื™ ืžื‘ื™ืŸ ืืช ื”ื”ื’ื™ื•ืŸ ื”ื–ื” ื‘ Java. ืื‘ืœ ื‘ืคื™ื™ืชื•ืŸ? ื”ื ื” ื”ืงื•ื“ ืœืžื—ืœืงื” ืฉืœ ืขื’ืœืช ืงื ื™ื•ืช ืฉืžื›ื™ืœื” 3 ืกื•ื’ื™ื ืฉืœ ืžื•ืฆืจื™ื:
from dataclasses import dataclass

class Cart:
  def __init__(self):
    self.products = []

@dataclass
class Table:
  price: float
  name: str

@dataclass
class Shoes:
  price: float
  color: str

c = Cart()
c.products.append(Table(price=120, name="Big Table"))
c.products.append(Table(price=80, name="Small Table"))
c.products.append(Shoes(price=180, color="orange"))
ื™ื•ืชืจ ืžื–ื”, ืื ื™ ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืคื•ื ืงืฆื™ื” ืœ Cart ืฉืชื“ืคื™ืก ืืช ื”ืžื—ื™ืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืžื•ืฆืจื™ื:
class Cart:
  def __init__(self):
    self.products = []
  
  def price(self):
    return sum(p.price for p in self.products)
ื•ืืคืฉืจ ืœื”ื’ื“ื™ืจ ืคืจื•ื˜ื•ืงื•ืœ ื›ื“ื™ ืœื‘ื“ื•ืง ื˜ื™ืคื•ืกื™ื ื‘ื–ืžืŸ ื›ืชื™ื‘ืช ื”ืงื•ื“:
class Product(Protocol):
  price: float

class Cart:
  def __init__(self) -> None:
    self.products: list[Product] = []
  
  def price(self):
    return sum(p.price for p in self.products)
ื•ืื– ืืคืฉืจ ืœืงื‘ืœ ืฉื’ื™ืื•ืช ื›ืฉืžื ืกื™ื ืœื”ื•ืกื™ืฃ ืžืฉื”ื• ืฉืื™ืŸ ืœื• ืžื—ื™ืจ ืœืขื’ืœืช ื”ืงื ื™ื•ืช, ื‘ื“ื™ื•ืง ื›ืžื• ืฉื”ื™ื” ืงื•ืจื” ื‘ Java. ืชืจื—ื™ืฉ ืฉื ื™ ืฉืื•ืœื™ ื”ื™ื” ื’ื•ืจื ืœืžื™ืฉื”ื• ืœื—ืฉื•ื‘ ืขืœ ื™ืฆื™ืจืช ืขืฆื™ ื™ืจื•ืฉื” ื”ื•ื ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืงื•ื“. ื‘ืžืงืจื” ืฉืœื ื• ืืคืฉืจ ืœื“ืžื™ื™ืŸ ืงื•ื“ ืฉื™ื”ื™ื” ืžืฉื•ืชืฃ ืœื›ืœ ื”ืžื•ืฆืจื™ื ื•ืœื›ืŸ ื›ื“ืื™ ืœื›ืชื•ื‘ ืื•ืชื• ืจืง ื‘ืžื—ืœืงืช ื”ื‘ืกื™ืก "ื•ืœืจืฉืช" ืืช ื”ืžื™ืžื•ืฉ ื‘ืžื—ืœืงื•ืช ืฉืœ ืฉืืจ ื”ืžื•ืฆืจื™ื. ืœืฆืขืจื™ ื’ื ื›ืืŸ ื›ืœ ื“ื•ื’ืžื” ืฉืื ื™ ืžืฆืœื™ื— ืœื—ืฉื•ื‘ ืขืœื™ื” ืื ื™ ื™ื›ื•ืœ ืœืฉื›ืชื‘ ืœืงื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืžื ื’ื ื•ื ื™ื ืื—ืจื™ื ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืงื•ื“ ืฉืœ ื”ืฉืคื”, ื‘ื“ื’ืฉ ืขืœ Descriptors ื• Class Decorators. ื”ื—ื™ืกืจื•ืŸ ื‘ื™ืจื•ืฉื” ื”ื•ื ืฉืืชื” ืžืงื‘ืœ ื”ืžื•ืŸ ื“ื‘ืจื™ื ื‘ืžื›ื” ืื—ืช ื•ื‘ืœื™ ืœื‘ืงืฉ ืื•ืชื, ื•ื‘ืœื™ ืืคืฉืจื•ืช ืœืฉืœื•ื˜ ื‘ืื™ื–ื” ืคื•ื ืงืฆื™ื•ื ืืœื™ื•ืช ื‘ื“ื™ื•ืง ืชืงื‘ืœ. ื”ืฉื ื” 2023 ื•ื›ื‘ืจ ืžื–ืžืŸ ืื™ืŸ ืกื™ื‘ื” ืœื”ืฉืชืžืฉ ื‘ื™ืจื•ืฉื” ื‘ Python.

ToCode
1 421
# ืฉื ื™ ืกื•ื’ื™ื ืฉืœ Outsourcing ื™ืฉ ืืช ื” Outsourcing ืฉืœ ืืœื” ืฉื™ื•ื“ืขื™ื ื•ืจื•ืฆื™ื ืœื—ืกื•ืš ื–ืžืŸ: ื–ื” ื™ื”ื™ื” ื”ืฆื•ื•ืช ืฉืขื•ื‘ื“ ืขืœ ืคื™ืชื•ื— ืคืจื•ื™ืงื˜ ื‘ืจื™ืืงื˜ ืื‘ืœ ื”ืžืขืฆื‘ ืฉืœื”ื ื™ื•ื“ืข ืจืง ืคื™ื’ืžื”. ื”ื ื”ื™ื• ืฉืžื—ื™ื ืœื™ื™ืฆื ืืช ื”ืขื™ืฆื•ื‘ ืž figma ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืจื™ืืงื˜ ื•ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ืื‘ืœ ืœื ืžืฆืื• ืขื“ื™ื™ืŸ ื›ืœื™ ืžืกืคื™ืง ื˜ื•ื‘ ื•ืœื›ืŸ ื™ืขื“ื™ืคื• ืœืฉืœื•ื— ืืช ื” figma ืœืงื‘ื•ืฆื” ื—ื™ืฆื•ื ื™ืช ืฉืชืžื™ืจ ืืช ื”ื›ืœ ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืจื™ืืงื˜ ื›ื“ื™ ืฉื”ื ื™ื•ื›ืœื• ืœื”ืชืžืงื“ ื‘ืœื•ื’ื™ืงื”, ื‘ื‘ื™ืฆื•ืขื™ื ื•ื‘ืคื•ื ืงืฆื™ื•ื ืืœื™ื•ืช ืฉืœ ื”ื™ื™ืฉื•ื. ื•ื™ืฉ ืืช ื” Outsourcing ืฉืœ ืืœื” ืฉืื™ืŸ ืœื”ื ืžื•ืฉื’: ื–ื” ื™ื”ื™ื” ืื•ืชื• ืฆื•ื•ืช ื›ืฉื™ืฆื˜ืจื›ื• ืœื”ื ื’ื™ืฉ ืืช ื”ืืชืจ. ื”ื ืœื ืœืžื“ื• ืื™ืš ืœืขืฉื•ืช ืืช ื–ื” ื•ืื™ืŸ ืœืžื ื”ืœื™ื ืฉืœื”ื ืจืฆื•ืŸ "ืœื‘ื–ื‘ื–" ื–ืžืŸ ืขืœ ื”ื›ืฉืจื”. ืขื“ื™ืฃ ืœื”ื•ืฆื™ื ื”ื—ื•ืฆื” ืืช ื”ืขื‘ื•ื“ื” ืœืงื‘ื•ืฆื” ืฉืžืชืžื—ื” ื‘ื”ื ื’ืฉื” ื•ืœืงื‘ืœ ืงื•ื“ ืžืชื•ืงืŸ. ืื—ื“ ื—ื•ืกืš ื–ืžืŸ ื•ืžืฉืคืจ ืืช ืงืฆื‘ ื”ืขื‘ื•ื“ื”. ื”ืฉื ื™ ื›ืžืขื˜ ืชืžื™ื“ ื™ื™ื›ืฉืœ ื‘ื’ืœืœ ื—ื•ืกืจ ื”ื‘ื ื” ื•ืื™ื ื˜ืจืกื™ื ืœื ืžืชื•ืืžื™ื ืฉืœ ื”ืฆื“ื“ื™ื.

ToCode
1 421
# ืฉื ื™ ืกื•ื’ื™ื ืฉืœ Outsourcing ื™ืฉ ืืช ื” Outsourcing ืฉืœ ืืœื” ืฉื™ื•ื“ืขื™ื ื•ืจื•ืฆื™ื ืœื—ืกื•ืš ื–ืžืŸ: ื–ื” ื™ื”ื™ื” ื”ืฆื•ื•ืช ืฉืขื•ื‘ื“ ืขืœ ืคื™ืชื•ื— ืคืจื•ื™ืงื˜ ื‘ืจื™ืืงื˜ ืื‘ืœ ื”ืžืขืฆื‘ ืฉืœื”ื ื™ื•ื“ืข ืจืง ืคื™ื’ืžื”. ื”ื ื”ื™ื• ืฉืžื—ื™ื ืœื™ื™ืฆื ืืช ื”ืขื™ืฆื•ื‘ ืž figma ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืจื™ืืงื˜ ื•ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ืื‘ืœ ืœื ืžืฆืื• ืขื“ื™ื™ืŸ ื›ืœื™ ืžืกืคื™ืง ื˜ื•ื‘ ื•ืœื›ืŸ ื™ืขื“ื™ืคื• ืœืฉืœื•ื— ืืช ื” figma ืœืงื‘ื•ืฆื” ื—ื™ืฆื•ื ื™ืช ืฉืชืžื™ืจ ืืช ื”ื›ืœ ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืจื™ืืงื˜ ื›ื“ื™ ืฉื”ื ื™ื•ื›ืœื• ืœื”ืชืžืงื“ ื‘ืœื•ื’ื™ืงื”, ื‘ื‘ื™ืฆื•ืขื™ื ื•ื‘ืคื•ื ืงืฆื™ื•ื ืืœื™ื•ืช ืฉืœ ื”ื™ื™ืฉื•ื. ื•ื™ืฉ ืืช ื” Outsourcing ืฉืœ ืืœื” ืฉืื™ืŸ ืœื”ื ืžื•ืฉื’: ื–ื” ื™ื”ื™ื” ืื•ืชื• ืฆื•ื•ืช ื›ืฉื™ืฆื˜ืจื›ื• ืœื”ื ื’ื™ืฉ ืืช ื”ืืชืจ. ื”ื ืœื ืœืžื“ื• ืื™ืš ืœืขืฉื•ืช ืืช ื–ื” ื•ืื™ืŸ ืœืžื ื”ืœื™ื ืฉืœื”ื ืจืฆื•ืŸ "ืœื‘ื–ื‘ื–" ื–ืžืŸ ืขืœ ื”ื›ืฉืจื”. ืขื“ื™ืฃ ืœื”ื•ืฆื™ื ื”ื—ื•ืฆื” ืืช ื”ืขื‘ื•ื“ื” ืœืงื‘ื•ืฆื” ืฉืžืชืžื—ื” ื‘ื”ื ื’ืฉื” ื•ืœืงื‘ืœ ืงื•ื“ ืžืชื•ืงืŸ. ืื—ื“ ื—ื•ืกืš ื–ืžืŸ ื•ืžืฉืคืจ ืืช ืงืฆื‘ ื”ืขื‘ื•ื“ื”. ื”ืฉื ื™ ื›ืžืขื˜ ืชืžื™ื“ ื™ื™ื›ืฉืœ ื‘ื’ืœืœ ื—ื•ืกืจ ื”ื‘ื ื” ื•ืื™ื ื˜ืจืกื™ื ืœื ืžืชื•ืืžื™ื ืฉืœ ื”ืฆื“ื“ื™ื.

ToCode
1 421
# ื” Regexp ื”ืœื ื ื›ื•ืŸ ื‘ืืžืฆืข ืžืฉื—ืง ื‘ืื™ื–ื” ืืชืจ ืฉืœ ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื ื”ื ืฉืืœื• ืื™ืš ืœืชืคื•ืก ื“ืจืš ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืืจื™ ื˜ืงืกื˜ ืฉืžื›ื™ืœ ืจื•ื•ื—ื™ื ื‘ืฉื ื™ ื”ืฆื“ื“ื™ื, ื‘ืœื™ ืœืชืคื•ืก ืืช ื”ืจื•ื•ื—ื™ื ืฉื‘ื”ืชื—ืœื” ื•ื‘ืกื•ืฃ. ื”ื”ืฆืขื” ืฉืœื”ื ื”ื™ืชื”:
^\s*(.*)\s*$
ืื ื™ ื™ื›ื•ืœ ืœืจืื•ืช ืœืžื” ื–ื” ื ืจืื” ื›ืžื• ืจืขื™ื•ืŸ ื˜ื•ื‘ - ืืชื” ื—ื•ืฉื‘ ืฉืืชื” ืชื•ืคืก ืืช ื”ื˜ืงืกื˜ ืฉื‘ืืžืฆืข, ื•ื™ื•ืชืจ ืžื–ื” ืื ื ื ืกื” ืืช ื”ื‘ื™ื˜ื•ื™ ื•ื ื“ืคื™ืก ืืช ื” Capture Group ื”ืจืืฉื•ืŸ ื”ืชื•ืฆืื” "ืชื™ืจืื”" ื ื›ื•ื ื”:
$ echo "     hello world    " | perl -nE '/^\s*(.*)\s*$/ && say $1'
hello world
ืขื“ ืฉืื ื—ื ื• ืฉืžื™ื ืœื‘ ืฉื—ืกืจ ืžืฉื”ื• ื‘ื‘ื™ื˜ื•ื™. ืชื™ืงื•ืŸ ืชื•ื›ื ื™ืช ื”ื‘ื“ื™ืงื” ื›ื‘ืจ ื™ื—ืฉื•ืฃ ืืช ื”ื‘ืขื™ื”:
$ echo "     hello world    " | perl -nE '/^\s*(.*)\s*$/ && say "[$1]"' 
[hello world    ]
ื•ื–ื” ื‘ืจื•ืจ - ื”ื—ืœืง ืฉืœ ื”ื ืงื•ื“ื” ื›ื•ื›ื‘ื™ืช ื‘ืืžืฆืข ืชืคืก ืืช ื›ืœ ื”ื‘ื™ื˜ื•ื™ ื›ื•ืœืœ ืืช ื›ืœ ื”ืจื•ื•ื—ื™ื ืฉื‘ืกื•ืฃ. ืขื“ ืฉืžื™ืฉื”ื• ื”ื’ื™ืข ืœื—ืคืฉ ืืช ื”ื—ืœืง ื”ืื—ืจื•ืŸ ืฉืœ ื”ื‘ื™ื˜ื•ื™ ื›ื‘ืจ ืœื ื ืฉืืจื• ืจื•ื•ื—ื™ื ื‘ื˜ืงืกื˜. ื•ืื—ืจื™ ืฉืจื•ืื™ื ืืช ื–ื” ื’ื ื”ืคื™ืชืจื•ืŸ ื‘ืจื•ืจ, ืคืฉื•ื˜ ืžื•ืกื™ืคื™ื ืกื™ืžืŸ ืฉืืœื” ืื—ืจื™ ื”ื ืงื•ื“ื” ื›ื•ื›ื‘ื™ืช ืฉื‘ืืžืฆืข ื›ื“ื™ ืœืงื—ืช "ื”ื›ื™ ืžืขื˜ ืชื•ื•ื™ื ืฉืืคืฉืจ" ืœื—ืœืง ื”ื–ื”. ื”ืชื•ืฆืื” ื”ื™ื:
$ echo "     hello world    " | perl -nE '/^\s*(.*?)\s*$/ && say "[$1]"'
[hello world]
ื•ื›ืŸ ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื ื–ื” ืžืกื•ืจื‘ืœ ื•ื›ืœ ืžื” ืฉืชื’ื™ื“ื• ื ื›ื•ืŸ, ืื‘ืœ ื”ื˜ื™ืค ืฉืœื ื• ื”ื™ื•ื ื”ื•ื ื™ื•ืชืจ ื›ืœืœื™ ืžื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื - ื›ืŸ ื—ืฉื•ื‘ ืœื›ืชื•ื‘ ืงื•ื“ ื ื›ื•ืŸ, ืื‘ืœ ืืคื™ืœื• ื™ื•ืชืจ ื—ืฉื•ื‘ ืœื›ืชื•ื‘ ืชื•ื›ื ื™ื•ืช ื‘ื“ื™ืงื” ื˜ื•ื‘ื•ืช. ื›ืฉืจื•ืื™ื ืืช ื”ืกื•ื’ืจื™ื™ื ื”ืžืจื•ื‘ืขื™ื ืžืกื‘ื™ื‘ ืœืคืœื˜ ืžื™ื“ ืจื•ืื™ื ืืช ื”ื˜ืขื•ืช ื•ืืคืฉืจ ืœืชืงืŸ ืื•ืชื”.

ToCode
1 421
# ืฉื™ืฉื” ืฉืœื‘ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื” ื—ื™ืฆื•ื ื™ืช ื‘ืขื‘ื•ื“ื” ืขื ืกืคืจื™ื” ื—ื™ืฆื•ื ื™ืช ืœืื•ืจืš ื–ืžืŸ ืื ื—ื ื• ืžื˜ืคืกื™ื ื‘ืกื•ืœื ื‘ืŸ ืฉื™ืฉื” ืฉืœื‘ื™ื- 1. ืœืขืฉื•ืช ืžื” ืฉื‘ Readme. 2. ืœื—ืคืฉ ืขื•ื“ ื“ื•ื’ืžืื•ืช ื‘ API Doc. 3. ืœื”ื™ื›ื ืก ืœืงื•ื“ ื”ืกืคืจื™ื” ื›ื“ื™ ืœื”ื‘ื™ืŸ ื˜ื•ื‘ ื™ื•ืชืจ ืื™ืš ื“ื‘ืจื™ื ืขื•ื‘ื“ื™ื. 4. ืœื—ืคืฉ Github Issues ืจืœื•ื•ื ื˜ื™ื ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื•ืช ื ืงื•ื“ืชื™ื•ืช. 5. ืœื›ืชื•ื‘ ืงื•ื“ ืฉื™ืชืžืžืฉืง ืขื ื” Internals ืฉืœ ื”ืกืคืจื™ื” (ื™ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื•ืช ืคืจื˜ื™ื•ืช, ื™ืขืฉื” Monkey Patch ืœื—ืœืงื™ื ืฉื). 6. ืœืžื–ืœื’, ืœื™ืฆื•ืจ ื’ื™ืจืกื” ืฉืœื ื• ื•ืœืฉืœื•ื— Pull Request. ืžืจื’ื™ืฉื™ื ืฉืืชื ื™ื•ื“ืขื™ื ืžืกืคื™ืง ืขืœ ืกืคืจื™ื” ื›ืœืฉื”ื™? ื–ื” ื–ืžืŸ ื˜ื•ื‘ ืœืขืœื•ืช ืฉืœื‘ ื‘ืกื•ืœื.

ToCode - Telegram kanali @tocodeil statistikasi va tahlili