เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹. เชญเชพเช— 2: เชธเซเชŸเซ‹เชฐเซ‡เชœ API

เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹. เชญเชพเช— 2: เชธเซเชŸเซ‹เชฐเซ‡เชœ API

เช‘เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เชฌเชจเชพเชตเชตเชพ เชชเชฐ เชถเซˆเช•เซเชทเชฃเชฟเช• เชฒเซ‡เช–เซ‹เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เชฎเชพเช‚ เช† เชฌเซ€เชœเซ‹ เชญเชพเช— เช›เซ‡. เช…เช—เชพเช‰เชจเชพ เชฒเซ‡เช–เชฎเชพเช‚ เช†เชชเชฃเซ‡ เชชเชฐเชฟเชšเชฟเชค เชฅเชฏเชพ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจ เช…เชจเซ‡ เชฌเซเชฒเซ‹เช• API เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ.

เช†เชœเซ‡ เช†เชชเชฃเซ‡ เชฌเซ€เชœเชพ เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡เชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเซ€เชถเซเช‚- เชธเซเชŸเซ‹เชฐเซ‡เชœ API. เชธเซเชŸเซ‹เชฐเซ‡เชœ API เชชเชพเชธเซ‡ เชชเชพเช‚เชš เชธเช‚เชฌเช‚เชงเชฟเชค API เช›เซ‡ เชœเซ‡ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจ เชชเชฐ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸเชฎเชพเช‚ เชธเชคเชค เชธเซเชŸเซ‹เชฐเซ‡เชœ เช‰เชฎเซ‡เชฐเชตเชพ, เช•เชพเชขเซ€ เชจเชพเช–เชตเชพ เช…เชจเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เชจเซ€เชšเซ‡ เช† เชชเชพเช‚เชš API เชจเซเช‚ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชตเชฐเซเชฃเชจ เช›เซ‡:

เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹. เชญเชพเช— 2: เชธเซเชŸเซ‹เชฐเซ‡เชœ API

เชšเชพเชฒเซ‹ เช† เชชเชพเช‚เชš API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡เชจเชพ เชชเชฐ เชจเชœเซ€เช•เชฅเซ€ เชจเชœเชฐ เช•เชฐเซ€เช.

0. เชšเชพเชฒเซ‹ เชจเชตเซ‹ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เชฌเชจเชพเชตเซ€เช เชธเซเชฎเชพเชฐเซเชŸเชเช•เซเชธ

1. เชธเซเชŸเซ‹เชฐเซ‡เชœ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹

GetContext เช…เชจเซ‡ GetReadOnlyContext

GetContext ะธ GetReadOnlyContext เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เชœเซ‡ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เช›เซ‡ เชคเซ‡ เชฎเซ‡เชณเชตเซ‹. เชตเชณเชคเชฐ เชฎเซ‚เชฒเซเชฏ เช เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เชนเซ‡เชถเชจเซเช‚ เชตเซเชฏเชธเซเชค เช›เซ‡. เชจเชพเชฎ เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เชคเซ‡เชฎ, GetReadOnlyContext เชซเช•เซเชค เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เชฒเซ‡ เช›เซ‡. เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชตเชณเชคเชฐ เชฎเซ‚เชฒเซเชฏ เช เช‰เชชเชฐเชจเชพ เชœเชฎเชฃเชพ เช–เซ‚เชฃเชพเชฎเชพเช‚ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เชนเซ‡เชถเชจเซเช‚ เชตเซเชฏเชธเซเชค เช›เซ‡.

เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹. เชญเชพเช— 2: เชธเซเชŸเซ‹เชฐเซ‡เชœ API

เชฎเซ‚เช•เซ‹

เช•เชพเชฐเซเชฏ เชฎเซ‚เช•เซ‹ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจ เชชเชฐ เชกเชฟเช•เซเชถเชจเชฐเซ€เชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡. เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ‡, เชฎเซ‚เช•เซ‹ เชคเซเชฐเชฃ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชฒเซ‡ เช›เซ‡. GetContext เชนเชพเชฒเชฎเชพเช‚ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒเชพ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เชฒเซ‡ เช›เซ‡, เช•เซ€ เช เช•เซ€เชจเซ€ เช•เชฟเช‚เชฎเชค เช›เซ‡ เชœเซ‡ เชกเซ‡เชŸเชพเชจเซ‡ เชธเชพเชšเชตเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เช…เชจเซ‡ เชฎเซ‚เชฒเซเชฏ เช เชกเซ‡เชŸเชพเชจเซ€ เช•เชฟเช‚เชฎเชค เช›เซ‡ เชœเซ‡เชจเซ‡ เชธเชพเชšเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชœเซ‹ เช•เซ€เชจเซ€ เช•เชฟเช‚เชฎเชค เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เช›เซ‡, เชคเซ‹ เชซเช‚เช•เซเชถเชจ เชคเซ‡เชจเชพ เช…เชจเซเชฐเซ‚เชช เชฎเซ‚เชฒเซเชฏเชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชถเซ‡.

เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹. เชญเชพเช— 2: เชธเซเชŸเซ‹เชฐเซ‡เชœ APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

เชฎเซ‡เชณเชตเซ‹

เช•เชพเชฐเซเชฏ เชฎเซ‡เชณเชตเซ‹ เช•เซ€ เชฎเซ‚เชฒเซเชฏ เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเชคเชฎเชพเชจ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡. เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชคเชฎเซ‡ เชซเช‚เช•เซเชถเชจเชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฎเชฃเซ€ เชฌเชพเชœเซเชจเชพ เชตเชฟเช•เชฒเซเชชเซ‹ เชชเซ‡เชจเชฒเชฎเชพเช‚ เช•เซ€ เชฎเซ‚เชฒเซเชฏ เชญเชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจเชฎเชพเช‚ เชฎเซเช–เซเชฏ เชฎเซ‚เชฒเซเชฏเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชกเซ‡เชŸเชพ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹.

เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹. เชญเชพเช— 2: เชธเซเชŸเซ‹เชฐเซ‡เชœ API

เช•เชพเชขเซ€ เชจเชพเช–เซ‹

เช•เชพเชฐเซเชฏ เช•เชพเชขเซ€ เชจเชพเช–เซ‹ เช•เซ€ เชฎเซ‚เชฒเซเชฏ เชฆเซเชตเชพเชฐเชพ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจเชฎเชพเช‚ เชกเซ‡เชŸเชพ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡. เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชคเชฎเซ‡ เชœเชฎเชฃเซ€ เชฌเชพเชœเซเชจเชพ เชตเชฟเช•เชฒเซเชชเซ‹ เชชเซ‡เชจเชฒเชฎเชพเช‚ เชซเช‚เช•เซเชถเชจ เชฎเชพเชŸเซ‡ เช•เซ€ เชฎเซ‚เชฒเซเชฏ เชญเชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจเชฎเชพเช‚ เช•เซ€ เชฎเซ‚เชฒเซเชฏเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชกเซ‡เชŸเชพ เช•เชพเชขเซ€ เชถเช•เซ‹ เช›เซ‹.

เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชธเซเชฎเชพเชฐเซเชŸ เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹. เชญเชพเช— 2: เชธเซเชŸเซ‹เชฐเซ‡เชœ API

2. เชธเซเชŸเซ‹เชฐเซ‡เชœ API เช•เซ‹เชก เช‰เชฆเชพเชนเชฐเชฃ

เชจเซ€เชšเซ‡เชจเซ‹ เช•เซ‹เชก เชชเชพเช‚เชš API เชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เช‰เชฆเชพเชนเชฐเชฃ เช†เชชเซ‡ เช›เซ‡: GetContext, Get, Put, Delete เช…เชจเซ‡ GetReadOnlyContext. เชคเชฎเซ‡ API เชกเซ‡เชŸเชพเชจเซ‡ เชšเชฒเชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเซเชฎเชพเชฐเซเชŸเชเช•เซเชธ.

from ontology.interop.System.Storage import GetContext, Get, Put, Delete, GetReadOnlyContext
from ontology.interop.System.Runtime import Notify

def Main(operation,args):
    if operation == 'get_sc':
        return get_sc()
    if operation == 'get_read_only_sc':
        return get_read_only_sc()
    if operation == 'get_data':
        key=args[0]
        return get_data(key)
    if operation == 'save_data':
        key=args[0]
        value=args[1]
        return save_data(key, value)
    if operation == 'delete_data':
        key=args[0]
        return delete_data(key)
    return False

def get_sc():
    return GetContext()
    
def get_read_only_sc():
    return GetReadOnlyContext()

def get_data(key):
    sc=GetContext() 
    data=Get(sc,key)
    return data
    
def save_data(key, value):
    sc=GetContext() 
    Put(sc,key,value)
    
def delete_data(key):
    sc=GetContext() 
    Delete(sc,key)

เช‰เชšเซเชšเชพเชฐเชฃ

เชฌเซเชฒเซ‹เช•เชšเซ‡เชจ เชธเซเชŸเซ‹เชฐเซ‡เชœ เช เชธเชฎเช—เซเชฐ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจ เชธเชฟเชธเซเชŸเชฎเชจเซ‹ เชฎเซเช–เซเชฏ เชญเชพเช— เช›เซ‡. เช‘เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชธเซเชŸเซ‹เชฐเซ‡เชœ API เชตเชพเชชเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ-เชฎเซˆเชคเซเชฐเซ€เชชเซ‚เชฐเซเชฃ เช›เซ‡.

เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เชธเช‚เช—เซเชฐเชน เช เชนเซ‡เช•เชฐ เชนเซเชฎเชฒเชพเช“เชจเซเช‚ เช•เซ‡เชจเซเชฆเซเชฐ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เช…เชฎเซ‡ เช…เช—เชพเช‰เชจเชพ เชฒเซ‡เช–เซ‹เชฎเชพเช‚เชจเชพ เชเช•เชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชธเซเชฐเช•เซเชทเชพ เชœเซ‹เช–เชฎเซ‹- เชธเช‚เช—เซเชฐเชน เชˆเชจเซเชœเซ‡เช•เซเชถเชจ เชนเซเชฎเชฒเซ‹เชกเซ‡เชตเชฒเชชเชฐเซเชธเซ‡ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชธเชพเชฅเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เช•เซ‹เชก เชฒเช–เชคเซ€ เชตเช–เชคเซ‡ เชธเซเชฐเช•เซเชทเชพ เชชเชฐ เชตเชฟเชถเซ‡เชท เชงเซเชฏเชพเชจ เช†เชชเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชคเชฎเซ‡ เช…เชฎเชพเชฐเชพ เชชเชฐ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹ GitHub เช…เชนเซ€เช‚.

เชนเชตเซ‡ เชชเช›เซ€เชจเชพ เชฒเซ‡เช–เชฎเชพเช‚ เช†เชชเชฃเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡เชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเซ€เชถเซเช‚ เชฐเชจเชŸเชพเช‡เชฎ API.

เชฒเซ‡เช–เชจเซ‹ เช…เชจเซเชตเชพเชฆ เชนเชถเชฐเชคเซ‡ เชเชจเซเชก เชถเซ‡เชฐเซเชธเชจเชพ เชธเช‚เชชเชพเชฆเช•เซ‹ เชฆเซเชตเชพเชฐเชพ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เช‘เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชฐเชถเชฟเชฏเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹. เชฐเชกเชตเซเช‚

เชถเซเช‚ เชคเชฎเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เช›เซ‹? เชชเชฐ เช…เชฎเชพเชฐเชพ เชŸเซ‡เช• เชธเชฎเซเชฆเชพเชฏเชฎเชพเช‚ เชœเซ‹เชกเชพเช“ เชตเชฟเชฐเชพเชฎ. เชชเชฃ, เชชเชฐ เชเช• เชจเชœเชฐ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เช•เซ‡เชจเซเชฆเซเชฐ เช‘เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€, เชคเชฎเซ‡ เชคเซเชฏเชพเช‚ เชตเชงเซ เชธเชพเชงเชจเซ‹, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชจเซ‡ เช˜เชฃเซเช‚ เชฌเชงเซเช‚ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹.

เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เช•เชพเชฐเซเชฏเซ‹ เช–เซ‹เชฒเซ‹. เช•เชพเชฐเซเชฏ เชชเซ‚เชฐเซเชฃ เช•เชฐเซ‹ เช…เชจเซ‡ เชˆเชจเชพเชฎ เชฎเซ‡เชณเชตเซ‹.

เชนเชตเซ‡ เช…เชฐเชœเซ€ เช•เชฐเซ‹ เชตเชฟเชฆเซเชฏเชพเชฐเซเชฅเซ€เช“ เชฎเชพเชŸเซ‡ เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชŸเซ‡เชฒเซ‡เชจเซเชŸ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชฎเชพเชŸเซ‡

เช‘เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€

เช“เชจเซเชŸเซ‹เชฒเซ‹เชœเซ€ เชตเซ‡เชฌเชธเชพเช‡เชŸ - GitHub - เชตเชฟเชฐเชพเชฎ - เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฐเชถเชฟเชฏเชจ - Twitter - Reddit

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹