uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

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

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
+130 kunlar
Postlar arxiv
ToCode
1 419
# ื˜ื™ืค ืงื•ื‘ืจื ื˜ื™ืก: ืฉื™ืžื•ืฉ ื‘ืงื•ื ื˜ืงืกื˜ ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ื›ืžื” ืงืœืืกื˜ืจื™ื ื”ื˜ื™ืค ื”ื–ื” ืืžื•ืจ ื”ื™ื” ืœื”ื™ื•ืช ืžืžืฉ ืคืฉื•ื˜ ืื‘ืœ ื‘ื’ืœืœ ืฉืื ื™ ื”ืกืชื‘ื›ืชื™ ืขื ื”ืชื™ืขื•ื“ ืฉืœื”ื ื›ื“ื™ ืœืœืžื•ื“ ืื•ืชื• ื—ืฉื‘ืชื™ ืฉืื•ืœื™ ื’ื ืœื›ื ื–ื” ื™ืขื–ื•ืจ. ื”ืžืฉื—ืง ื”ื•ื ื›ื–ื”- ื”ื›ืœื™ kubectl ืžืฉืชืžืฉ ื‘ืงื•ื‘ืฅ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื‘ืจื™ืจืช ืžื—ื“ืœ ืฉื ืžืฆื ื‘ื ืชื™ื‘ ~/.kube/config. ื‘ืชื•ืš ืื•ืชื• ืงื•ื‘ืฅ ื™ืฉ ื”ื’ื“ืจื•ืช ื›ืžื• ืœื“ื•ื’ืžื”:
apiVersion: v1
clusters:
- cluster:
    server: https://cimaks-dns-bca70ca9.hcp.westeurope.azmk8s.io:443
  name: cimaks
contexts:
- context:
    cluster: cimaks
    user: clusterUser_Playground_cimaks
  name: cimaks
current-context: cimaks
kind: Config
preferences: {}
ืื‘ืœ ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืงื‘ืœ ืงื‘ืฆื™ ื”ื’ื“ืจื•ืช ืื—ืจื™ื ืžืžืงื•ืžื•ืช ืื—ืจื™ื. ืœื“ื•ื’ืžื” ื›ืฉืื ื™ ืคื•ืชื— ื—ืฉื‘ื•ืŸ ื‘ืื•ืงื˜ื˜ื• ืื ื™ ืžืงื‘ืœ ืžื”ื ืงื•ื‘ืฅ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉื ืจืื” ื›ื›ื”:
apiVersion: v1
clusters:
- cluster:
    server: https://146.148.56.200:443
  name: cloud_okteto_com
contexts:
- context:
    cluster: cloud_okteto_com
    extensions:
    - extension: null
      name: okteto
    namespace: ynonp
    user: 6b5b39bc-9c83-4d7b-a345-b03922c7e979
  name: cloud_okteto_com
current-context: cloud_okteto_com
kind: Config
preferences: {}
ืฉื™ืžื• ืœื‘ ืื™ืš ืฉื›ืœ ืงื•ื‘ืฅ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืคื•ืชื— ื‘ื‘ืœื•ืง clusters ื•ืื—ืจื™ื• ื‘ืœื•ืง contexts, ื•ื‘ืชื•ืš ื” contexts ื™ืฉ ื”ื’ื“ืจื” ืฉืœ ืงื•ื ื˜ืงืกื˜ ื•ื”ืชื™ื—ืกื•ืช ืœืงืœืืกื˜ืจ ืฉื”ื•ื’ื“ืจ ืงื•ื“ื. ื•ืœืžื” ื–ื” ื™ืคื”? ื›ื™ ืขื›ืฉื™ื• ืื ื ืฉืœื‘ ืฉื ื™ ืงื‘ืฆื™ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื™ื—ื“ ืื– ื ืงื‘ืœ ืงื•ื‘ืฅ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืื—ื“ ืืจื•ืš ืฉื›ื•ืœืœ ื’ื ืืช ื”ื’ื“ืจืช ื”ืงืœืืกื˜ืจ ื•ื”ืงื•ื ื˜ืงืกื˜ ืžื”ืงื•ื‘ืฅ ื”ืจืืฉื•ืŸ, ื•ื’ื ืืช ื”ื”ื’ื“ืจื” ืžื”ืงื•ื‘ืฅ ื”ืฉื ื™. ืชื›ืœ'ืก ืœื ื—ื™ื™ื‘ื™ื ืœืฉืœื‘ ืืช ืฉื ื™ ื”ืงื‘ืฆื™ื ืœืงื•ื‘ืฅ ืื—ื“ ื•ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื” ืกื‘ื™ื‘ื” KUBECONFIG ื‘ืฉื‘ื™ืœ ืœื”ื’ื™ื“ ืœ kubectl ืœืื—ื“ ืืช ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื‘ื–ื™ื›ืจื•ืŸ. ืื ื™ ื›ื•ืชื‘ ืืช ื”ื ืชื™ื‘ื™ื ืœืฉื ื™ ื”ืงื‘ืฆื™ื ื‘ืชื•ืจ ืชื•ื›ืŸ ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื”:
$ export KUBECONFIG=~/.kube/config:~/Downloads/okteto-kube.config
ื•ืขื›ืฉื™ื• ื”ืคืงื•ื“ื”:
$ kubectl config get-contexts
ืžื—ื–ื™ืจื” ืœื™ ืืช ืฉื ื™ ื”ืงื•ื ื˜ืงืกื˜ื™ื ืžืฉื ื™ ืงื‘ืฆื™ ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื”, ื›ืœื•ืžืจ ืžื“ืคื™ืกื”:
CURRENT   NAME               CLUSTER            AUTHINFO        NAMESPACE
*         cimaks             cimaks             
          cloud_okteto_com   cloud_okteto_com                   ynonp
ืžื”ื”ื“ืคืกื” ืื ื™ ืจื•ืื” ืฉืคืงื•ื“ืช ื” kubectl ื”ื‘ืื” ืฉืื›ืชื•ื‘ ืชื’ื™ืข ืœืงืœืืกื˜ืจ cimaks ื›ื™ ื”ื•ื ืžืกื•ืžืŸ ื‘ื›ื•ื›ื‘ื™ืช. ื”ืคืงื•ื“ื” use context ื‘ื•ื—ืจืช ืืช ื”ืงื•ื ื˜ืงืกื˜ ื”ืคืขื™ืœ ื•ืœื›ืŸ ืื ื™ ื™ื›ื•ืœ ืœืฉื ื•ืช ืงืœืืกื˜ืจ ืขื:
$ kubectl config use-context cloud_okteto_com
ื•ืขื›ืฉื™ื• ื›ืœ ืคืงื•ื“ืช kubectl ืฉืื›ืชื•ื‘ ืชืคืขืœ ืขืœ ื”ืงืœืืกื˜ืจ ื”ืฉื ื™.

ToCode
1 419
# ื”ืคื—ื“ ืœื›ืชื•ื‘ ื’ืจื•ืข ืœืคื ื™ ื›ืžื” ื™ืžื™ื ื—ื‘ืจ ืชื™ื™ื’ ืื•ืชื™ ื‘ืคื•ืกื˜ ืžืขื ื™ื™ืŸ ื‘ืœื™ื ืงื“ืื™ืŸ. ื‘ื“ืจืš ื›ืœืœ ืื ื™ ืœื ืขื•ื ื” ืฉื ืื‘ืœ ื”ืคืขื ื”ื™ื” ืงืฉื” ืœื”ืชืขืœื. ื”ืคื•ืกื˜ ื“ื™ื‘ืจ ืขืœ ื›ืชื™ื‘ื” ื™ื•ืžื™ืช ื•ืขืœืชื” ืฉื ืฉื•ื‘ ื”ืฉืืœื” ืžื” ืขื•ืฉื™ื ื›ืฉืื™ืŸ ืœืš ืขืœ ืžื” ืœื›ืชื•ื‘. ื”ืื ืฉื•ื•ื” ืจืง "ืœืฉืจื‘ื‘ ื›ืžื” ืžื™ืœื™ื" ื‘ืฉื‘ื™ืœ ืฉื™ืฆื ืคื•ืกื˜, ืื• ืฉืขื“ื™ืฃ ืœืฉืชื•ืง ื•ืœื“ืœื’ ืขืœ ืคื•ืกื˜. ื”ื ื” ื›ืžื” ืฆื™ื˜ื•ื˜ื™ื ืžืื•ืชื• ื“ื™ื•ืŸ- "ืœื ืขื“ื™ืฃ ืœื›ืชื•ื‘ ืจืง ืฉื™ืฉ ืœืš ืžืฉื”ื•ื ื—ืฉื•ื‘ ืื• ืžื•ืขื™ืœ?" "ื›ืืฉืจ ื—ืกืจ ื‘ืคื•ืกื˜ ืืช ื”ืขืจืš ื”ืžื•ืกืฃ, ื”ื ื–ืง ืจื‘ ืžื”ืชื•ืขืœืช." "ื›ืœืœ ื”ื–ื”ื‘ ืฉืœื™ ื”ื•ื: ืื ืื™ืŸ ืœืš ืžื” ืœื”ื’ื™ื“ - ืืœ ืชื’ื™ื“ ืืช ื–ื” ื›ืืŸ. ืื• ื‘ื›ืœืœ. ื•ื‘ื ื™ืกื•ื—ื ืฉืœ ื—ื–"ืœ: ืžื™ืœื” ื‘ืกืœืข, ืฉืชื™ืงื” ื‘ืฉื ื™ื™ื." --- ืขื ื’ื™ืฉื” ื›ื–ืืช ืงืฉื” ืœื›ืชื•ื‘ ื•ื‘ื˜ื— ืฉืงืฉื” ืœื”ืชืžื™ื“ ื‘ื›ืชื™ื‘ื”. ืื‘ืœ, ืœื›ืชื™ื‘ื” ื™ื›ื•ืœื” ื’ื ืœื”ื™ื•ืช ืžื˜ืจื” ืžืขื‘ืจ ืœืชืคื•ืฆื” ืฉืœ ืคื•ืกื˜ ื‘ื•ื“ื“. ื”ืžื˜ืจื” ืฉืœ ื”ื‘ืœื•ื’ ื”ื–ื” ื”ื™ื ืœืขื–ื•ืจ ืœืื ืฉื™ื ืœื›ืชื•ื‘ ืงื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ, ืœืฉืื•ืœ ืฉืืœื•ืช ืžืขื ื™ื™ื ื•ืช ืœื’ื‘ื™ ืงื•ื“ ื•ืœื’ื‘ืฉ ื“ืขื” ื‘ื™ืงื•ืจืชื™ืช ืขืœ ื˜ืจื ื“ื™ื ื‘ืขื•ืœื ื”ืชื›ื ื•ืช. ืฉื™ื ื•ื™ ืœื ืงื•ืจื” ื‘ื™ื•ื ืื—ื“. ื›ืžื• ื”ืžืฉืคื˜ ื”ื™ืฉืŸ ืฉืดืื™ืŸ ื”ื˜ื™ืคื” ื—ื•ืฆื‘ืช ื‘ืกืœืข ืžื›ื— ืขื•ืฆืžืชื” ืืœื ืžื›ื•ื— ื”ืชืžื“ืชื”ืด ื›ืš ื‘ืฉื‘ื™ืœ ืœืขืฉื•ืช ืฉื™ื ื•ื™ ืื ื—ื ื• ืฆืจื™ื›ื™ื ืืช ื”ื”ืชืžื“ื” ื•ืืช ื”ืชื–ื›ื•ืจืช ื•ืืช ื”ื—ื–ืจื”. ืื ื™ ืœื ื—ื•ืฉื‘ ืฉื™ืฉ ืคื•ืกื˜ ืื—ื“ ืฉื›ืชื‘ืชื™ ืฉื™ื’ืจื•ื ืœืžื™ืฉื”ื• ืœืฉื ื•ืช ื’ื™ืฉื”, ืื‘ืœ ืื ื™ ื‘ื˜ื•ื— ืฉืžื™ ืฉื™ืขืงื•ื‘ ืื—ืจ ื”ื‘ืœื•ื’ ืขืœ ื‘ืกื™ืก ื™ื•ืžื™ ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื™ืจืื” ืืช ื”ืืคืงื˜. ื•ื›ืžื• ืฉื‘ื›ืชื™ื‘ืช ืงื•ื“ ืื ื—ื ื• ืžื•ื›ื ื™ื ืœืคืขืžื™ื ืœื”ื›ื ื™ืก ืงื•ื“ ื’ืจื•ืข ืœืžืขืจื›ืช ื‘ืฉื‘ื™ืœ ืœื”ืชืงื“ื, ื›ืš ื’ื ื‘ื‘ืœื•ื’ - ืœื ื›ืœ ื”ืคื•ืกื˜ื™ื ื™ื”ื™ื• ื‘ืื•ืชื” ืจืžื”. ืœื ื›ืœ ื”ืคื•ืกื˜ื™ื ื™ื“ื‘ืจื• ืœื›ื•ืœื ื‘ืื•ืชื• ืื•ืคืŸ. ืื‘ืœ, ื’ื ืื ื™ ืœื ื”ืฉื•ืคื˜ ื”ื›ื™ ื˜ื•ื‘: ื™ืฉ ืคื•ืกื˜ื™ื ืฉื”ื™ื™ืชื™ ื‘ื˜ื•ื— ืฉื”ื ืœื ืžืกืคื™ืง ื˜ื•ื‘ื™ื ื•ืงื™ื‘ืœืชื™ ืขืœื™ื”ื ืชื’ื•ื‘ื•ืช ืžืขื•ืœื•ืช, ื•ืคื•ืกื˜ื™ื ืื—ืจื™ื ืฉื”ื™ื™ืชื™ ื‘ื˜ื•ื— ืฉื”ื ืžืขื‘ื™ืจื™ื ืืช ื”ืžืกืจ ื‘ืฆื•ืจื” ืžื“ื•ื™ืงืช ื•ื‘ืกื•ืฃ ื›ืžืขื˜ ืืฃ ืื—ื“ ืœื ื”ื‘ื™ืŸ ืžื” ืจืฆื™ืชื™ ืœื”ื’ื™ื“ ื‘ื”ื. ืœื ื›ื“ืื™ ืœืคื—ื“ ืžืขื‘ื•ื“ื” ื’ืจื•ืขื”. ืขื“ื™ืฃ ืœืขื‘ื•ื“ ื•ืœืฉืคืจ. ืื• ื‘ืžื™ืœื™ื ื”ื›ืœ ื›ืš ืžื“ื•ื™ืงื•ืช ืฉืœ ืกืช': > ืœืื ืฉื™ื ืขื ืžื—ืกื•ื ื›ืชื™ื‘ื” ืื™ืŸ ื‘ืขื™ื” ื‘ื”ืงืœื“ื”. ื™ืฉ ืœื”ื ื‘ืขื™ื” ืœื—ื™ื•ืช ืขื ื›ืชื™ื‘ื” ื’ืจื•ืขื”, ื›ืชื™ื‘ื” ืœื ืžื•ืฉืœืžืช, ื›ืชื™ื‘ื” ืฉืื•ืœื™ ืชื—ืฉื•ืฃ ืžืฉื”ื• ืžืžื ื• ื”ื ืคื•ื—ื“ื™ื. ื”ื“ืจืš ืœื”ืชืžื•ื“ื“ ืขื ื–ื” ืื™ื ื” ืœื—ื›ื•ืช ืฉื”ื›ืชื™ื‘ื” ืชื”ื™ื” ืžื•ืฉืœืžืช, ื›ื™ ืื ืชื—ื›ื• ืœืขื•ืœื ืœื ืชื’ื™ืขื• ืœืฉื. > ื”ื“ืจืš ืœื”ืชืžื•ื“ื“ ื”ื™ื ืœื›ืชื•ื‘, ื•ืœื”ื‘ื™ืŸ ืฉืœื ืžืชื™ื ืžื›ืชื™ื‘ื” ื’ืจื•ืขื”. ื›ืžื• ื‘ื›ืœ ืžื™ื•ืžื ื•ืช, ืื ื—ื ื• ืžืฉืชืคืจื™ื ืขื ืื™ืžื•ืŸ ื•ืคื™ื“ื‘ืง.

ToCode
1 419
# ื˜ื™ืค ื’'ืกื˜: ื’'ืืกื˜ ืื™ืŸ ืงื™ื™ืก ื”ืกืคืจื™ื” ืขื ื”ืฉื ื”ืงืœื™ื˜ jest in case ืขื•ื–ืจืช ืœื ื• ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช ื‘ื”ืŸ ืฆืจื™ืš ืœื‘ื“ื•ืง ืืช ืื•ืชื• ื“ื‘ืจ ืขืœ ื›ืžื” ืงืœื˜ื™ื ืฉื•ื ื™ื. ื–ื” ื ืจืื” ื›ื›ื”:
import cases from 'jest-in-case';

cases('find stuff in arrays', ({haystack, needle, found}) => {
  expect(haystack.includes(needle)).toEqual(found);
}, {
  '5 is in [2, 3, 5]': 
    { haystack: [2, 3, 5], needle: 5, found: true },

  '19 is not in [2, 3, 5]':
    { haystack: [2, 3, 5], needle: 19, found: false },
});
ื•ื›ืฉืื ื™ ืžืจื™ืฅ ื’'ืกื˜ ื”ืคืœื˜ ืฉืœ ื”ืงื•ื“ ื™ื”ื™ื”:
PASS  ./demo.test.js
 find stuff in arrays
    โœ“ 5 is in [2, 3, 5] (1 ms)
    โœ“ 19 is not in [2, 3, 5]

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        0.102 s
Ran all test suites.
ืžื” ืงืจื” ื›ืืŸ- 1. ื”ืคืงื•ื“ื” cases ืžืงื‘ืœืช ืฉื ืฉืœ "ืงื‘ื•ืฆืช" ื‘ื“ื™ืงื•ืช, ืื—ืจื™ื” ืคื•ื ืงืฆื™ื™ืช ื‘ื“ื™ืงื” (ื›ืžื• test ืจื’ื™ืœ) ืื‘ืœ ืื•ืชื” ืคื•ื ืงืฆื™ื™ืช ื‘ื“ื™ืงื” ื”ืคืขื ืžืงื‘ืœืช ืื•ื‘ื™ืงื˜ ืคืจืžื˜ืจื™ื. 2. ืืชื ื™ื›ื•ืœื™ื ืœื‘ื—ื•ืจ ื›ืœ ืฉื ืฉืชืจืฆื• ืœืžืคืชื—ื•ืช ื‘ืื•ื‘ื™ืงื˜ ื”ืคืจืžื˜ืจื™ื (ืžืœื‘ื“ ื›ืžื” ืžื™ืœื™ื ืฉืžื•ืจื•ืช ืฉืœ jest in case), ื•ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืชื•ืš ืงื•ื“ ื”ื‘ื“ื™ืงื”. 3. ื”ืคืจืžื˜ืจ ื”ืื—ืจื•ืŸ ืœ cases ื”ื•ื ืื•ื‘ื™ืงื˜ ืฉืœ ืžืงืจื™ื ื‘ื• ื”ืžืคืชื— ื”ื•ื ืชื™ืื•ืจ ื”ืžืงืจื” ื•ื”ืขืจืš ื”ื•ื ืื•ื‘ื™ืงื˜ ืขื ืขืจื›ื™ื, ืฉื™ื™ื›ื ืก ื‘ืชื•ืจ ืคืจืžื˜ืจ ืœืคื•ื ืงืฆื™ื™ืช ื”ื‘ื“ื™ืงื”. 4. ืฉื™ืžื• ืœื‘ ืœ Destructuring ื‘ื”ื’ื“ืจืช ืคื•ื ืงืฆื™ื™ืช ื”ื‘ื“ื™ืงื”. ื”ืคื•ื ืงืฆื™ื” ืžืงื‘ืœืช ืื•ื‘ื™ืงื˜ ื•ืื ื™ ืžื•ืฆื™ื ืžืžื ื• ืืช ื”ืžืคืชื—ื•ืช ืฉืžืขื ื™ื™ื ื™ื ืื•ืชื™ ื›ื‘ืจ ื‘ื—ืชื™ืžื” ื›ื“ื™ ืฉื™ื”ื™ื” ืœื™ ืงืœ ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืงื•ื“ ื”ื‘ื“ื™ืงื”. ื”ืกืคืจื™ื” ืœื ื—ื“ืฉื”. ื”ืขื“ื›ื•ืŸ ื”ืื—ืจื•ืŸ ืฉืœื” ืžืœืคื ื™ ืฉื ืชื™ื™ื, ื“ืฃ ื”ื‘ื™ืช ืฉืœื” ื‘ืขื™ืฆื•ื‘ ืžื™ื•ืฉืŸ ื•ื”ื’ื“ืจื•ืช ื”ื˜ื™ืคื•ืกื™ื ื”ืžื•ื‘ื ื•ืช ื‘ื” ื›ืชื•ื‘ื•ืช ื‘ flow ื‘ืžืงื•ื ื‘ื˜ื™ื™ืคืกืงืจื™ืคื˜. ืžืฆื“ ืฉื ื™ ืื™ืŸ ื”ืจื‘ื” ืงื•ื“ ื•ื”ื™ื ืขื“ื™ื™ืŸ ืขื•ื‘ื“ืช ื˜ื•ื‘, ื•ืืคืฉืจ ืœืžืฆื•ื ืืช ื”ื’ื“ืจื•ืช ื” typescript ืฉืžืชืื™ืžื•ืช ืœื” ื‘ Definitely Typed.

ToCode
1 419
# ืœื™ืจื•ืช ืœื›ืœ ื”ื›ื™ื•ื•ื ื™ื ืื ืืช ืžื—ืคืฉืช ืขื‘ื•ื“ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื‘ื—ื•ื“ืฉ ื”ืจืืฉื•ืŸ ืขื•ื“ ื™ืฉ ืœืš ืืช ื”ืกื‘ืœื ื•ืช ืœืฉืœื•ื— ืงื•ืจื•ืช ื—ื™ื™ื ืจืง ืœืžืฉืจื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช, ื•ืœืชืงืŸ ืืช ื”ืงื•ืจื•ืช ื—ื™ื™ื ืœื›ืœ ืžืฉืจื”. ืื‘ืœ ืื—ืจื™ ื—ื•ื“ืฉ ืื• ื—ื•ื“ืฉื™ื™ื ืฉืœ ื—ื™ืคื•ืฉื™ื ืžืชื—ื™ืœื™ื ืœื”ืจื’ื™ืฉ ืืช ื”ืคื™ืชื•ื™ ืœื™ืจื•ืช ืœื›ืœ ื”ื›ื™ื•ื•ื ื™ื - ื›ืœื•ืžืจ, ืœืฉืœื•ื— ืงื•ืจื•ืช ื—ื™ื™ื ืœื›ืžื” ืฉื™ื•ืชืจ ืžืฉืจื•ืช, ืœืฉืœื•ื— ืœื›ืžื” ืฉื™ื•ืชืจ ืื ืฉื™ื ื”ื•ื“ืขื•ืช, ืœื•ื•ืชืจ ืขืœ ืฆื™ืคื™ื•ืช ืฉื›ืจ ืื• ืชื ืื™ื ืจืง ื‘ืฉื‘ื™ืœ ืœืงืฆืจ ืืช ื”ื—ื™ืคื•ืฉ. ื”ื™ื™ืื•ืฉ ื™ื•ืฆืจ ืœื—ืฅ ื•ื”ืœื—ืฅ ื“ื•ืจืฉ ืžืขืฉื™ื. ื–ื” ืœื ืืคืงื˜ื™ื‘ื™. ื›ื™ ื”ื‘ืขื™ื” ืขื ืœื™ืจื•ืช ืœื›ืœ ื”ื›ื™ื•ื•ื ื™ื ื”ื™ื ืฉืื ืžืจืืฉ ืื™ืŸ ืœืš ืžืกืคื™ืง ืื ืจื’ื™ื” ื‘ืฉื‘ื™ืœ ืœืžืฆื•ื ืขื‘ื•ื“ื” ืื—ืช, ืื– ืœื›ื•ื•ืŸ ืœื™ื•ืชืจ ืžื˜ืจื•ืช ืจืง ืžืงื˜ื™ืŸ ืืช ื›ืžื•ืช ื”ืžืฉืื‘ื™ื ืฉืืช ืฉืžื” ืขืœ ื›ื ื™ืกื” ืœืขื‘ื•ื“ื” ืกืคืฆื™ืคื™ืช. ื–ื” ืงืฆืช ื“ื•ืžื” ืœืžื•ื›ืจ ืืจื˜ื™ืงื™ื ืฉื™ืžื›ื•ืจ ื‘ื—ื•ืฃ ื”ื™ื ืืจื˜ื™ืง ื‘ืžื—ื™ืจ ื”ืคืกื“, ื•ื™ื—ืฉื•ื‘ ืฉืžื” ืฉื”ื•ื ืฆืจื™ืš ื‘ืฉื‘ื™ืœ ืœื”ืจื•ื•ื™ื— ื–ื” ืœืขื‘ื•ื“ ื™ื•ืชืจ ืฉืขื•ืช. ื™ื•ืชืจ ื›ื“ืื™ ืงื•ื“ื ืœื”ื‘ื™ืŸ ืื™ืš ืœืžื›ื•ืจ ื™ื—ื™ื“ื” ืื—ืช ื‘ืจื•ื•ื— (ื’ื ืื ื–ื” ืœื•ืงื— ื–ืžืŸ), ื•ืจืง ืื—ืจ ื›ืš ืื ื–ื” ืขื“ื™ื™ืŸ ืจืœื•ื•ื ื˜ื™ ืœื”ืชื—ื™ืœ ืœื”ืจื—ื™ื‘ ืืช ื”ื—ื™ืคื•ืฉ.

ToCode
1 419
# ืžื™ ืฆืจื™ืš ืœื›ืชื•ื‘ ืืช ื” Dockerfile? ื”ืžืขื‘ืจ ืœื“ื•ืงืจ ื™ืฆืจ ื”ืคืจื“ืช ื›ื•ื—ื•ืช ื‘ืจื™ืื” ื‘ื™ืŸ ืžืคืชื—ื™ื ืœ Devops. ื”ืžืคืชื—ื™ื ืื—ืจืื™ื ืขืœ ื›ืชื™ื‘ืช ื”ืงื•ื“ ื•ื” Devops ืื—ืจืื™ื ืขืœ ื”ืขื‘ืจื” ืฉืœ ื”ืงื•ื“ ืœืคืจื•ื“ืงืฉืŸ, ื”ืจืฆื” ื•ืžืขืงื‘ ืื—ืจื™ื•. ื ืงื•ื“ื•ืช ื”ืžืคื’ืฉ ื‘ื™ืŸ ืฉืชื™ ื”ืงื‘ื•ืฆื•ืช ื”ื™ื ื” Dockerfile. ืœื›ืื•ืจื” ื“ื•ืงืจืคื™ื™ืœ ืงืฉื•ืจ ืœื”ืชืงื ื•ืช ื•ืœืžื” ืฆืจื™ืš ืœื”ื™ื•ืช ืขืœ ื”ืฉืจืช ื‘ืฉื‘ื™ืœ ืœื”ืจื™ืฅ ืืช ื”ืืคืœื™ืงืฆื™ื”, ื•ืœื›ืŸ ืœื”ืจื‘ื” ืื ืฉื™ื ื ื“ืžื” ืฉื” Devops ืฆืจื™ื›ื™ื ืœื›ืชื•ื‘ ืื•ืชื•. ืœืžืจื•ืช ืฉื‘ื”ืจื‘ื” ื—ื‘ืจื•ืช ื–ื” ื’ื ืžื” ืฉืงื•ืจื”, ืื ื™ ื—ื•ืฉื‘ ืฉื–ื• ื˜ืขื•ืช. ื”ืคืจื“ืช ื›ื•ื—ื•ืช ื‘ืจื™ืื” ื‘ื™ืŸ ืžืชื›ื ืชื™ื ืœ Devops, ื›ื–ืืช ืฉืขื•ื–ืจืช ืœืฉืชื™ ื”ืงื‘ื•ืฆื•ืช, ืฆืจื™ื›ื” ืœืืคืฉืจ ืœื›ืœ ืงื‘ื•ืฆื” ืœืขืฉื•ืช ืืช ื”ืขื‘ื•ื“ื” ืฉืœื” ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ. ืจืง ื”ืžืชื›ื ืชื™ื ืฉื›ื•ืชื‘ื™ื ืืช ื”ืงื•ื“ ื™ื•ื“ืขื™ื ืื™ื–ื” ื’ื™ืจืกื” ืฉืœ ืกืคืจื™ื” ื‘ื“ื™ื•ืง ืฆืจื™ื›ื™ื ืœื”ืชืงื™ืŸ, ื•ืื ืืคืฉืจ ืœืขื‘ื•ืจ ืœืกืคืจื™ื” ืื—ืจืช ื›ื“ื™ ืœืงื‘ืœ ืื™ืžื’' ื™ื•ืชืจ ืงื˜ืŸ. ืจืง ืžืชื›ื ืชื™ื ืฉื›ื•ืชื‘ื™ื ืืช ื”ืงื•ื“ ื™ื•ื“ืขื™ื ืœื”ื—ืœื™ื˜ ืื™ื–ื” ื—ืœืง ื‘ืœื•ื’ื™ืงื” ื™ืœืš ืœืฉืœื‘ ื‘ื ื™ื™ืช ื”ืื™ืžื’' ื•ืื™ื–ื” ื—ืœืง ืœืขืœื™ื™ื” ืฉืœ ื”ืงื•ื ื˜ื™ื™ื ืจ. ืจืง ืžืชื›ื ืชื™ื ืฉื›ื•ืชื‘ื™ื ืืช ื”ืงื•ื“ ื™ื•ื“ืขื™ื ืœื”ื—ืœื™ื˜ ืื™ื–ื” ื—ืœืงื™ื ื‘ืžืขืจื›ืช ื™ื›ื•ืœื™ื ืœืจื•ืฅ ื‘ืชื•ืจ ืงื•ื ื˜ื™ื™ื ืจื™ื ื ืคืจื“ื™ื, ื•ืžื” ืฆืจื™ืš ืœืจื•ืฅ ื‘ืชื•ืš ืื•ืชื• ืงื•ื ื˜ื™ื™ื ืจ. ืื™ื–ื” ื›ืœื™ื ื ื•ืกืคื™ื ื”ืงื•ื“ ืฆืจื™ืš ื•ืžืชื™ ืฆืจื™ืš ืœืฉื“ืจื’ ืกืคืจื™ื•ืช ื™ืฉื ื•ืช. ื–ืืช ื‘ื“ื™ื•ืง ื”ืขื‘ื•ื“ื” ืฉืœื ื•. ื‘ืฆื“ ืฉืœ ื” Devops, ื›ืฉืื ืฉื™ ืื•ืคืจืฆื™ื” ืžืงื‘ืœื™ื Dockerfile ื”ื ืžืงื‘ืœื™ื ืžื•ืฆืจ ืžื•ื’ืžืจ. ื”ื ื™ื›ื•ืœื™ื ืœื ื˜ืจ ืืช ื”ื“ื‘ืจ ืฉื”ื•ื ืžืจื™ืฅ, ืœื”ื—ืœื™ื˜ ื›ืžื” ืžืฉืื‘ื™ื ืœืชืช ืœื•, ืœื”ื•ืกื™ืฃ ืขื•ื“ ืขื•ืชืงื™ื ืžืงื•ื ื˜ื™ื™ื ืจื™ื ืขืžื•ืกื™ื, ื•ื‘ืงื™ืฆื•ืจ ืœื“ืื•ื’ ืœืขื‘ื•ื“ื” ื—ืœืงื” ืฉืœ ื›ืœ ื”ืžืขืจื›ืช. ื”ื ืœื ืฆืจื™ื›ื™ื ืœื“ืื•ื’ ืœืชื•ื›ืŸ ืฉืœ ืื•ืชื• ืงื•ื ื˜ื™ื™ื ืจ - ื”ืงื•ื ื˜ื™ื™ื ืจ, ื‘ื“ื™ื•ืง ื›ืžื• ืงื•ื ื˜ื™ื™ื ืจ ืฉืœ ืกืคื™ื ื•ืช - ื”ื•ื ืื˜ื•ื. ืžืชื›ื ืชื™ื ื‘ื•ื ื™ื ืื•ืชื• ื•ืื•ืคืจืฆื™ื” ืžืขื‘ื™ืจื™ื ืื•ืชื• ื•ื“ื•ืื’ื™ื ืฉื™ืจื•ืฅ ืขืœ ืžื›ื•ื ื” ืื—ืจืช. ื‘ืจื’ืข ืฉืื ื—ื ื• ื›ื•ืชื‘ื™ื ืืช ื” Dockerfile ื•ืขื•ื‘ื“ื™ื ืขื ืื•ืชื• ื“ื•ืงืจืคื™ื™ืœ ื’ื ื‘ืคื™ืชื•ื—, ืื ื—ื ื• ืœื ื ื›ื ืกื™ื ืœืคื™ื ื•ืช ืฉืœ "ืืฆืœื™ ื–ื” ืขื•ื‘ื“" ื•ืžืชื—ื™ืœื™ื ืœื—ืคืฉ ืžื” ื”ืชืงื™ื ื• ืขืœ ื”ื“ื•ืงืจืคื™ื™ืœ ืฉืœื ื”ื™ื” ืืฆืœื™ ืขืœ ื”ืžื—ืฉื‘. ื”ืžื”ืคื›ื” ืฉืœ ื“ื•ืงืจ ืื•ืžืจืช ืฉื“ื•ืงืจืคื™ื™ืœ ื”ื•ื ื—ืœืง ืžื”ืืคืœื™ืงืฆื™ื”. ื•ืจืง ืื ื ืืžืฅ ืื•ืชื” ื ื•ื›ืœ ืœื™ื”ื ื•ืช ืžื›ืœ ืžื” ืฉื™ืฉ ืœืฉื™ื˜ืช ื”ืขื‘ื•ื“ื” ื”ื—ื“ืฉื” ืœื”ืฆื™ืข.

ToCode
1 419
# ืื™ืš ืœื‘ื“ื•ืง ืคื•ื ืงืฆื™ื•ืช ืฉืื™ื ืŸ ืžื™ื•ืฆืื•ืช? ืฉืืœืชื™ ืœื ืžื–ืžืŸ ืืช ื’ื•ื’ืœ ืื™ืš ืœื‘ื“ื•ืง ืคื•ื ืงืฆื™ื•ืช ื‘ JavaScript ืฉืื™ื ืŸ ืžื™ื•ืฆืื•ืช. ื’ื•ื’ืœ ื›ืžื• ื’ื•ื’ืœ ืฉืœื— ืื•ืชื™ ืœืชืฉื•ื‘ื” ืžืื•ื“ ืžืงื™ืคื” ืฉื›ื•ืœืœืช ืฉื™ืžื•ืฉ ื‘ืžื•ื“ื•ืœ rewire, ืฉืžืชื—ื‘ืจ ืœื‘ื™ื™ื‘ืœ ื•ืžืืคืฉืจ ืœืžืฉื•ืš ืคื•ื ืงืฆื™ื” ืฉืื™ื ื” ืžื™ื•ืฆืืช ืœืกื‘ื™ื‘ืช ื‘ื“ื™ืงื•ืช. ื”ืžื“ืจื™ืš ื›ืืŸ ืืชื ื™ื›ื•ืœื™ื ืœื ืกื•ืช ืœืงืจื•ื ืื•ืชื•: https://www.samanthaming.com/journal/2-testing-non-exported-functions/#proficiency-leads-to-result ืœื™ื™ืฉื ื–ื” ื›ื‘ืจ ืกื™ืคื•ืจ ืื—ืจ. ืžื ื’ื ื•ื ื™ ื‘ื ื™ื” ืœืคืจื•ื™ืงื˜ื™ ืคืจื•ื ื˜-ืื ื“ ื”ืคื›ื• ื›ืœ ื›ืš ืžื•ืจื›ื‘ื™ื ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช, ืฉื’ื ืื ืชืฆืœื™ื—ื• ืœื”ื•ืกื™ืฃ ืืช rewire ืœืคืจื•ื™ืงื˜ ืฉืœื›ื ืืฃ ืื—ื“ ืœื ืžื‘ื˜ื™ื— ืฉื”ื•ื ื™ืžืฉื™ืš ืœืขื‘ื•ื“ ื‘ืฉื™ื“ืจื•ื’ ื”ื‘ื ืฉืœ ื‘ื™ื™ื‘ืœ ืื• ื•ื•ื‘ืคืืง ืื• ืžื” ืฉืœื ื™ื”ื™ื”. ื™ื•ืชืจ ืงืœ ืื ื™ ื—ื•ืฉื‘ ืœืงื—ืช ืฆืขื“ ืื—ื•ืจื”. "ืื™ืš ืœื‘ื“ื•ืง ืคื•ื ืงืฆื™ื” ืฉืื™ื ื” ืžื™ื•ืฆืืช" ืืชื ืฉื•ืืœื™ื? ื•ื”ืชืฉื•ื‘ื” ืฉืœื™ - ืื• ืฉืชื™ืฆืื• ืื•ืชื”, ืื• ืฉืœื ืชื‘ื“ืงื•. ื”ื‘ื—ื™ืจื” ืฉืœ JavaScript ืœืชืช ืœื ื• ื’ื™ืฉื” ื‘ื‘ื“ื™ืงื•ืช ืจืง ืœืคื•ื ืงืฆื™ื•ืช ืžื™ื•ืฆืื•ืช ื”ื™ื ืฉืจื™ืจื•ืชื™ืช ืœื’ืžืจื™. ื‘ go ืืคืฉืจ ืœื’ืฉืช ืœืคื•ื ืงืฆื™ื•ืช ืคืจื˜ื™ื•ืช ืžืื•ืชื” ื—ื‘ื™ืœื”, ื‘ python ื›ืœ ื”ืฉืžื•ืช ืžื™ื•ืฆืื™ื ื‘ื‘ืจื™ืจืช ืžื—ื“ืœ ื•ื’ื ื‘ืจื•ื‘ื™ ืืคืฉืจ ืœื’ืฉืช ืœื›ืœ ืžืฉืชื ื” ืคืจื˜ื™ ืœืฆื•ืจืš ื‘ื“ื™ืงื•ืช (ื’ื ืื ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืงืฆืช ืงืกื ืืคืœ ืฉืœ ื”ืฉืคื”). ื•ืžืฆื“ ืฉื ื™ ืื ืื ื™ ืžืฉื•ื›ื ืข ืฉืคื•ื ืงืฆื™ื” ืคืจื˜ื™ืช ืžืกื•ื™ืžืช ืฆืจื™ื›ื” ื‘ื“ื™ืงื•ืช, ืื– ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื”ื™ื ืœื ื›ืœ ื›ืš ืคืจื˜ื™ืช ื•ืฉืืคืฉืจ ื™ื”ื™ื” ืœื”ืฉืชืžืฉ ื‘ื” ื’ื ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื.

ToCode
1 419
# ืฉืœื•ืฉ ื“ืจื›ื™ื ืœื”ืชืžื•ื“ื“ ืขื ืกื™ื‘ื•ื›ื™ื ื›ืฉืงื•ื“ ืžืชื—ื™ืœ ืœื”ื™ื•ืช ืžืกื•ื‘ืš ืืคืฉืจ ืœืขื‘ื•ื“ ืขืœ ืœืขืฉื•ืช ืื•ืชื• ืคืฉื•ื˜. ืืคืฉืจ ืœืคืจืง ืื•ืชื•, ืœืืจื’ืŸ ืื•ืชื• ืื—ืจืช; ื›ืฉื”ืžืžืฉืง ื”ื•ืคืš ืœื”ื™ื•ืช ืžืกื•ื‘ืš ืืคืฉืจ ืœื‘ื ื•ืช ืžื ื’ื ื•ืŸ ืœืฉื™ืžื•ืฉ "ืงืœ" ื‘ืกืคืจื™ื”. ืื– ืœื“ื•ื’ืžื” ื‘ืจื•ื‘ื™ ื™ืฉ ืœื ื• ืกืคืจื™ื™ืช ื‘ื“ื™ืงื•ืช ื‘ืฉื capybara ืฉื”ื™ื ืคืฉื•ื˜ ืžืžืฉืง ืงืœ ื™ื•ืชืจ ืœื”ืคืขืœืช ืกืœื ื™ื•ื. ื›ืชื™ื‘ื” ืฉืœ ืกืคืจื™ื” ื—ื“ืฉื” ืœื’ืžืจื™ ื›ื“ื™ ืœื”ืคื•ืš ืืช ื”ืขื‘ื•ื“ื” ืขื ืกืœื ื™ื•ื ืœืคืฉื•ื˜ื” ื–ื• ืขื‘ื•ื“ื” ืงืฉื” ืื‘ืœ ื”ืชื•ืฆืื” ืฉื•ื•ื” ืืช ื–ื”. ืืคืฉืจื•ืช ืฉื ื™ื” ืœื”ืชืžื•ื“ื“ ืขื ืงื•ื“ ืžืกื•ื‘ืš ื”ื™ื ืœื”ื—ืœื™ื˜ ืœืงื—ืช ืฆืขื“ ืื—ื•ืจื”. ื”ืกืคืจื™ื” ืฉืœื™ ืžืกื•ื‘ื›ืช ืžื“ื™? ืื•ืœื™ ื”ื™ื ืขื•ืฉื” ื™ื•ืชืจ ืžื“ื™ ื•ืฆืจื™ืš ืœื”ื•ืจื™ื“ ืžืžื ื” ื™ื›ื•ืœื•ืช. ื”ื‘ืขื™ื” ืžืกื•ื‘ื›ืช ืžื“ื™? ืื•ืœื™ ืฆืจื™ืš ืœืคืชื•ืจ ื‘ืขื™ื” ื™ื•ืชืจ ืคืฉื•ื˜ื”. ืื—ื“ ื”ื“ื‘ืจื™ื ืฉื”ืคื›ื• ืืช ืจื™ืืงื˜ ืœื›ื–ื• ื”ืฆืœื—ื” ื‘ื”ืฉื•ื•ืื” ืœื›ืœ ื”ืคืจื™ื™ืžื•ื•ืจืงื™ื ืฉื”ื™ื• ืœืคื ื™ื” ื”ื•ื ื”ืขื•ื‘ื“ื” ืฉืจื™ืืงื˜ ืคื•ืชืจืช ื‘ืขื™ื” ื™ื•ืชืจ ืคืฉื•ื˜ื” ืžืžื” ืฉื›ืœ ื”ืคืจื™ื™ืžื•ื•ืจืงืก ื”ืื—ืจื•ืช ื ื™ืกื• ืœืคืชื•ืจ. ืจื™ืืงื˜ ื”ื™ื "ืจืง" ืฉื›ื‘ืช ื”ืชืฆื•ื’ื”, ื‘ืขื•ื“ ืฉื›ืœ ื”ืื—ืจื•ืช ื ื™ืกื• ืœืชืช ื›ืœื™ื ืœืคื™ืชื•ื— ื™ื™ืฉื•ื ืฆื“ ืœืงื•ื— ืžืœื. ื•ืืคืฉืจื•ืช ืฉืœื™ืฉื™ืช ื•ื”ื›ื™ ืคื—ื•ืช ื›ื™ืคื™ืช ื”ื™ื ืœื”ืชืขืœื ืžื”ืกื™ื‘ื•ืš ืื• ืœืฉื›ื ืข ืืช ื”ืขื•ืœื ืฉืื™ืŸ ื‘ืจื™ืจื”. ื™ืฉ ืคื•ื ืงืฆื™ื” ืฉืžืงื‘ืœืช 15 ืคืจืžื˜ืจื™ื? ืื™ืŸ ืžื” ืœืขืฉื•ืช, ื”ื™ื ืขื•ืฉื” ื”ืจื‘ื” ื“ื‘ืจื™ื. ืงืฉื” ืœืขื‘ื•ื“ ืขื ืงื•ื‘ืจื ื™ื˜ืก? ืื™ืŸ ืžื” ืœืขืฉื•ืช ืžืขืจื›ืช ื”ืคืขืœื” ื–ื” ื“ื‘ืจ ืžืกื•ื‘ืš. ืœืื•ืจืš ื–ืžืŸ ื’ื™ืฉื” ื›ื–ืืช ื ื•ื˜ื” ืœื”ืคื•ืš ืžืขืจื›ื•ืช ืœื”ืจื‘ื” ื™ื•ืชืจ ืžื•ืจื›ื‘ื•ืช ืžืžื” ืฉืฆืจื™ืš, ื•ืืช ื”ืžืชื›ื ืชื™ื ืœื”ืจื‘ื” ืคื—ื•ืช ืžืื•ืฉืจื™ื ืžืžื” ืฉืืคืฉืจ. ื“ื•ื’ืžื” ืขืฆื•ื‘ื” ื‘ืžื™ื•ื—ื“ ืฉื ืชืงืœืชื™ ื‘ื” ื”ื™ื Issue 9643 ืžืกืคืจื™ื™ืช fluentui, ืฉืžืกืชื™ื™ื ื‘ืžื™ืœื™ื: > Due to the complexity and dependencies of our List components, we are not able to take new feature requests at this time. ื•ืืœื” ื‘ื“ื™ื•ืง ื”ืชืฉื•ื‘ื•ืช ืฉืื ื—ื ื• ืœื ืจื•ืฆื™ื ืœืขื•ืœื ืœื›ืชื•ื‘.

ToCode
1 419
# ืขื“ื™ืฃ ืœื ืœื‘ื“ื•ืง ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื” ืืžื•ืจื•ืช ืœื”ืคื•ืš ืืช ื”ื—ื™ื™ื ืฉืœื ื• ืœืงืœื™ื ื™ื•ืชืจ ื•ืœืชืช ืœื ื• ื™ื•ืชืจ ื‘ื™ื˜ื—ื•ืŸ ื‘ืขื‘ื•ื“ื” ืขืœ ื”ืงื•ื“. ืื‘ืœ ืžื” ืงื•ืจื” ื›ืฉื‘ื“ื™ืงื” ืขื•ืฉื” ื‘ื“ื™ื•ืง ืืช ื”ื”ื™ืคืš? ืื™ืš ืงื•ืจื” ืฉื‘ื“ื™ืงื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžืžืฉ ืžื–ื™ืงื”? ื‘ื•ืื• ื ืจืื” ืžืชื™ ืขื“ื™ืฃ ืœื ืœื‘ื“ื•ืง. ## ื”ืงื•ื“ ื ื ื™ื— ืฉื™ืฉ ืœื™ ืคื•ื ืงืฆื™ื” ื’ื“ื•ืœื” ืฉืžืคืขื™ืœื” ื›ืžื” ืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช ื•ืžื—ื‘ืจืช ืืช ื”ืžื™ื“ืข ืฉื—ื•ื–ืจ ืžื›ื•ืœืŸ. ื—ืœืง ืžื”ืคื•ื ืงืฆื™ื•ืช ืžืฉืชืžืฉื•ืช ื‘ืžื™ื“ืข ืฉื—ื•ืฉื‘ ืขื“ ืขื›ืฉื™ื•, ื•ืื—ืจื•ืช ืขืฆืžืื™ื•ืช ืœื’ืžืจื™. ื‘ืงื™ืฆื•ืจ ืžืฉื”ื• ื›ื–ื”:
async function f1() { return 5; }
async function f2() { return 9; }
async function f3() { return 2; }

async function complexStuff() {
    let x = 0;
    x += await f1();
    x += await f2();
    x += await f3();

    return x;
}
ื”ืงื•ื“ ืขื‘ืจ ื ื™ืงื•ื™ ื‘ืฉื‘ื™ืœ ืœื”ืชืื™ื ืœืคื•ืกื˜, ืื‘ืœ ื“ืžื™ื™ื ื• ืฉื‘ื’ื™ืจืกื” ื”ืืžื™ืชื™ืช ื”ืคื•ื ืงืฆื™ื•ืช f1, f2 ื• f3 ืชื•ืคืกื•ืช ื›ืžื” ืขืฉืจื•ืช ืฉื•ืจื•ืช ื›ืœ ืื—ืช ืฉืœ ื—ื™ืฉื•ื‘ื™ื ืžืกื•ื‘ื›ื™ื ื•ืฉืœื™ืคื•ืช ืž DB, ื•ื”ืคื•ื ืงืฆื™ื” complexStuff ื’ื ื”ื™ื ืงื•ืจืืช ืœื›ืœ ืžื™ื ื™ ืžืงื•ืจื•ืช ืžื™ื“ืข ื—ื™ืฆื•ื ื™ื™ื ื•ืžื—ื‘ืจืช ืืช ื”ื›ืœ ืœืชื•ืฆืื” ืื—ืช. ## ื”ื‘ื“ื™ืงื” ื”ืžื–ื™ืงื” ืื•ืคืฆื™ื” ืื—ืช ืœื‘ื“ื•ืง ืงื•ื“ ื›ื–ื” ื”ื™ื ืœื“ืจื•ืก ื—ืœืง ืžื”ืคื•ื ืงืฆื™ื•ืช ื”ืคื ื™ืžื™ื•ืช ืขื spies ื•ืื– ืœื•ื•ื“ื ืจืง ืืช ื”ืœื•ื’ื™ืงื” ืฉืœ ื”ืคื•ื ืงืฆื™ื” ื”ื—ื™ืฆื•ื ื™ืช, ื›ืœื•ืžืจ:
test('complexStuff', () => {
    jest.spyOn(util, 'f1').mockResolvedValue(5);
    jest.spyOn(util, 'f2').mockResolvedValue(9);
    jest.spyOn(util, 'f3').mockResolvedValue(2);
    
    expect(complexStuff()).resolves.toEqual(16);
});
ื•ื–ืืช ื‘ื“ื™ื•ืง ื”ืื•ืคืฆื™ื” ืฉืื ื™ ืžืžืœื™ืฅ ืœื”ื™ื–ื”ืจ ืžืžื ื”. ื”ืกื™ื‘ื” ืฉื’ื™ืฉื” ื–ื• ืžื–ื™ืงื” ื”ื™ื ื”ื—ื™ื‘ื•ืจ ื‘ื™ืŸ ืคื•ื ืงืฆื™ื™ืช ื”ื‘ื“ื™ืงื” ืœืžื™ืžื•ืฉ ื”ืกืคืฆื™ืคื™ ืฉืœ ื”ืงื•ื“. ืื ืžื—ืจ ื‘ื‘ื•ืงืจ ื ืจืฆื” ืœืฉื ื•ืช ืืช ื”ืคื•ื ืงืฆื™ื•ืช ื”ืคืจื˜ื™ื•ืช f1, f2 ื• f3 ื›ืš ืฉืœื“ื•ื’ืžื” f2 ืชื”ื™ื” ืžื™ื•ืชืจืช ื•ื›ืœ ื”ืขื‘ื•ื“ื” ืฉืœื” ืชืขื‘ื•ืจ ืœ f1, ืื– ื”ืจื™ืคืงื˜ื•ืจ ื”ื–ื” ื™ืฉื‘ื•ืจ ืืช ื”ื‘ื“ื™ืงื” - ืืคื™ืœื• ืื ื”ื•ื ื™ื‘ื•ืฆืข ื‘ืœื™ ืืฃ ื˜ืขื•ืช. ื›ืฉื‘ืžืขืจื›ืช ืžืฆื˜ื‘ืจื•ืช ื‘ื“ื™ืงื•ืช ืฉื™ื™ืฉื‘ืจื• ื‘ื›ืœ ืจื™ืคืงื˜ื•ืจ, ืื ื—ื ื• ื ืขืฉื” ืคื—ื•ืช refactorings ื›ื™ ื›ืœ ืืจื’ื•ืŸ ืžื—ื“ืฉ ืฉืœ ื”ืงื•ื“ ื“ื•ืจืฉ ืขื›ืฉื™ื• ืœืชืงืŸ ื’ื ืืช ื›ืœ ื”ื‘ื“ื™ืงื•ืช ืฉื”ืชื‘ืกืกื• ืขืœ ื”ืžื™ืžื•ืฉ ื”ื™ืฉืŸ. ืœื ืจืง ืฉื”ื‘ื“ื™ืงื•ืช ืœื ืขื–ืจื• ืœื ื• ืœื”ืจื’ื™ืฉ ื‘ื™ื˜ื—ื•ืŸ ื•ืœืืจื’ืŸ ืžื—ื“ืฉ ืืช ื”ืงื•ื“ ื›ืฉื”ื™ื™ื ื• ืฆืจื™ื›ื™ื, ื”ืŸ ืืคื™ืœื• ื”ื–ื™ืงื•, ื›ื™ ืขื›ืฉื™ื• ื”ืืจื’ื•ืŸ ืžื—ื“ืฉ ื“ื•ืจืฉ ื™ื•ืชืจ ืขื‘ื•ื“ื”. ## ืžื” ืขื•ืฉื™ื ื‘ืžืงื•ื ื‘ืจื’ืข ืฉืื ื—ื ื• ืจื•ืื™ื ืืช ื”ืฆื•ืจืš ืœื ืชืง ื‘ื™ืŸ ื”ื‘ื“ื™ืงื” ืœืžื™ืžื•ืฉ ื”ืกืคืฆื™ืคื™ ืืคืฉืจ ืœื”ืชื—ื™ืœ ืœื—ืฉื•ื‘ ืขืœ ืคื™ืชืจื•ื ื•ืช ื™ื•ืชืจ ื˜ื•ื‘ื™ื. ื‘ื“ื•ื’ืžื” ืฉืœื ื• ืืคืฉืจ ืœืืจื’ืŸ ืžื—ื“ืฉ ืืช ื”ืงื•ื“ ืœืคื ื™ ื›ืชื™ื‘ืช ื”ื‘ื“ื™ืงื•ืช ื•ืœื”ืคืจื™ื“ ื‘ื™ืŸ ื”ืœื•ื’ื™ืงื” ื”ืคื ื™ืžื™ืช ืฉืœ complexStuff ืœืฉื™ืžื•ืฉ ืฉื”ื™ื ืขื•ืฉื” ื‘ืฉืœื•ืฉืช ืคื•ื ืงืฆื™ื•ืช ื”ืขื–ืจ. ืžืฉื”ื• ื‘ืกื’ื ื•ืŸ ื”ื–ื”:
async function f1() { return 5; }
async function f2() { return 9; }
async function f3() { return 2; }

async function sumHelpers(...helpers) {
    let x = 0;
    for (let f of helpers) {
        x += await f();
    }
    
    return x;
}

async function complexStuff() {
    return sumHelpers(f1, f2, f3);
}
ืขื›ืฉื™ื• ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืชื•ื›ื ื™ืช ื‘ื“ื™ืงื” ืฉืชื•ื•ื“ื ืฉ sumHelpers ืขื•ืฉื” ืืช ืžื” ืฉื”ื™ื ื”ื‘ื˜ื™ื—ื” ืฉืชืขืฉื”, ื•ืชื•ื›ื ื™ื•ืช ื‘ื“ื™ืงื” ื ืคืจื“ื•ืช ืœ f1, f2 ื• f3, ื•ืœื”ืฉืื™ืจ ืืช complexStuff ื‘ืœื™ ื‘ื“ื™ืงื”. ืื ื™ื”ื™ื” Refactor ืขืชื™ื“ื™ ืฉื‘ื• ืคื•ื ืงืฆื™ื” f2 ืชื”ืคื•ืš ืœืžื™ื•ืชืจืช, ืื ื™ ืืขื“ื›ืŸ ืืช complexStuff ื›ื“ื™ ืœื ืœืงืจื•ื ืœื”, ืื‘ืœ ื‘ื’ืœืœ ืฉื‘ complexStuff ื”ื—ื“ืฉ ืื™ืŸ ืืช ื›ืœ ื”ืœื•ื’ื™ืงื” ื•ื’ื ืื™ืŸ ืœื• ื‘ื“ื™ืงื”, ืœื ืชื”ื™ื” ืœื™ ืืฃ ื‘ื“ื™ืงื” ืฉืชื™ืฉื‘ืจ. ื”ื‘ื“ื™ืงื•ืช ื™ื™ืฉื‘ืจื• ืจืง ืื ื‘ืืžืช ืฉื™ื ื™ืชื™ ืžืฉื”ื• ืžื”ื•ืชื™ ื‘ื”ื™ื’ื™ื•ืŸ ื”ืคื ื™ืžื™ ืฉืœ ื”ืคื•ื ืงืฆื™ื•ืช.

ToCode
1 419
ื”ืžืชื’ -d ืžืืคืฉืจ ืœื™ ืœืฆื™ื™ืŸ ืชื• ื”ืคืจื“ื” ื‘ื™ืŸ ืจืžื•ืช ื”ื™ืจืจื›ื™ื” ื‘ืžื—ืจื•ื–ืช ื”ืžืคืชื—. ืื ื™ ื‘ื—ืจืชื™ ื ืงื•ื“ื” ื•ืœื›ืŸ jo ืžืคืฆืœ ืืช ื”ืžืคืชื— foo.bar.buz ืœื”ื™ืจืจื›ื™ื” ืฉืœ ืฉืœื•ืฉื” ืื•ื‘ื™ืงื˜ื™ื, ืื—ื“ ื‘ืชื•ืš ื”ืฉื ื™. ืืช ืื•ืชื• ื”ื’ื™ื•ืŸ ืื ื™ ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืขืœ ืจืฉื™ืžืช ื”ืชื”ืœื™ื›ื™ื ื›ื“ื™ ืœืงื‘ืœ ื‘ื“ื™ื•ืง ืืช ื”ืื•ื‘ื™ืงื˜ ืฉืจืฆื™ืชื™. ืื ื™ ืจืง ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ awk ื›ื“ื™ ืœื”ืคื•ืš ืืช ื”ืจื•ื•ื— ืœื ืงื•ื“ื”:
ps -e -o ppid,pid,comm|tail +2 | awk '{print $1"."$2"="$3}'|jo -d.
## ื—ื™ื‘ื•ืจ ื”ื’ื“ืจื•ืช ืžื›ืœ ื” JSON-ื™ื ื‘ืชื™ืงื™ื™ื” ืœืงื•ื‘ืฅ ืื—ื“ ื“ื•ื’ืžื” ืื—ืจื•ื ื” ืœืคื•ืกื˜ ืžืฉืชืžืฉืช ื‘ืขื•ื“ ื™ื›ื•ืœืช ืฉืœ jo ืฉื”ื™ื ืงืจื™ืืช ื—ืœืง ืžืื•ื‘ื™ืงื˜ ืžืงื•ื‘ืฅ. ืื ื™ืฉ ืœื™ ื‘ืชื™ืงื™ื” ืงื•ื‘ืฅ ื‘ืฉื a.json ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:
{"window":"one","top":10,"left":20}
ืื– ืื ื™ ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ jo ื›ื“ื™ ืœืฉืชื•ืœ ืืช ื›ืœ ืชื•ื›ืŸ ื”ืงื•ื‘ืฅ ื‘ืชื•ืจ ืชืช-ืขืฅ ื‘ืื•ื‘ื™ืงื˜ ืฉืื ื™ ื™ื•ืฆืจ:
$ jo -p name=ynon data=:a.json

{
  "name": "ynon",
  "data": {
    "window": "one",
    "top": 10,
    "left": 20
  }
}
(ื .ื‘. ืฉื™ืžื• ืœื‘ ืœ -p ืฉื’ื•ืจื ืœ jo ืœื”ื“ืคื™ืก ืืช ื” json ืžื—ื•ืœืง ืœืฉื•ืจื•ืช ื•ืขื ืจื•ื•ื—ื™ื). ืื– ืขื›ืฉื™ื• ื ื“ืžื™ื™ืŸ ืฉื™ืฉ ืœื ื• ืžืกืคืจ ืงื‘ืฆื™ json ื‘ืชื™ืงื™ื” ื•ืื ื—ื ื• ืจื•ืฆื™ื ืœืื—ื“ ืืช ื›ืœ ื”ืชื•ื›ืŸ ืฉืœื”ื ืœืงื•ื‘ืฅ json ื™ื—ื™ื“. ื‘ื’ืœืœ ืฉื—ืœืง ืžื”ืžืคืชื—ื•ืช ืขืœื•ืœื™ื ืœื”ื™ื•ืช ื›ืคื•ืœื™ื, ืื ื™ ืจื•ืฆื” ืœืฉืžืจ ืืช ื”ื”ื™ืจืจื›ื™ื” ืฉืœ ื”ืชื™ืงื™ื” ื‘ืชื•ืš ืงื•ื‘ืฅ ื” JSON. ื›ืœื•ืžืจ ืื ื™ืฉ ืœื™ ื‘ืชื™ืงื™ื” ืืช a.json ืขื ื”ืชื•ื›ืŸ ืฉื“ื™ื‘ืจื ื• ืขืœื™ื•, ื•ื‘ืชืช ืชื™ืงื™ื” ื‘ืฉื bar ื™ืฉ ืœื™ ืงื•ื‘ืฅ ื‘ืฉื b.json ืขื ืชื•ื›ืŸ ืื—ืจ, ืื– ืื ื™ ืจื•ืฆื” ืœืงื‘ืœ ืื•ื‘ื™ืงื˜ json ืฉื ืจืื” ื›ืš:
{
    a.json: { ... contents of file a.json },
    bar: {
        b.json: {
            ... contents of file b.json
        }
    }
}
ืื™ืš ื‘ื•ื ื™ื ืืช ื”ืงื•ื‘ืฅ? ืขื jo ื›ืžื•ื‘ืŸ. ืื ื™ ืžื—ืคืฉ ืืช ื›ืœ ืงื‘ืฆื™ ื” json ื‘ืชื™ืงื™ื” ื•ื‘ื›ืœ ืชืชื™ ื”ืชื™ืงื™ื•ืช ืฉืœื” ืขื find, ื•ืžื“ืคื™ืก ืืช ื”ืชื•ืฆืื” ืขื ืกื™ืžืŸ ื”ื ืงื•ื“ื•ืชื™ื™ื:
$ find . -type f -name '*.json' -exec echo {}=:{} \;

./a.json=:./a.json
./bar/b.json=:./bar/b.json
ืขื›ืฉื™ื• ืื ื™ ืžืฉืœื‘ ืืช -d ื›ื“ื™ ืœื™ืฆื•ืจ ืื•ื‘ื™ืงื˜ื™ื ืžืงื•ื ื ื™ื ื•ืืช ื”ื ืงื•ื“ื•ืชื™ื™ื ื›ื“ื™ ืœืงืจื•ื ืชื•ื›ืŸ ืฉืœ ืงื•ื‘ืฅ ื•ืžืงื‘ืœ:
$ find . -type f -name '*.json' -exec echo {}=:{} \; | jo  -p -d '/'

{
   ".": {
      "a.json": {
         "window": "one",
         "top": 10,
         "left": 20
      },
      "bar": {
         "b.json": {
            "window": "two",
            "top": 30,
            "left": 50
         }
      }
   }
}
ื™ืฉ ืขื•ื“ ื”ืžื•ืŸ ืžื” ืœื”ื’ื™ื“ ืขืœ jo ืื‘ืœ ืื ื™ ืœื ืคื” ื‘ืฉื‘ื™ืœ ืœื”ื—ืœื™ืฃ ืืช ื”ืชื™ืขื•ื“. ืื ืื”ื‘ืชื ืืช ื”ื›ืœื™ ื•ืจื•ืฆื™ื ืœื“ืขืช ืขืœื™ื• ื™ื•ืชืจ ืฉื•ื•ื” ืœื”ืขื™ืฃ ืžื‘ื˜ ื’ื ื‘ื“ืฃ ื”ืชื™ืขื•ื“ ืฉืœื”ื ื‘ืงื™ืฉื•ืจ https://github.com/jpmens/jo/blob/master/jo.md.

ToCode
1 419
# ืฉืœื•ืฉ ื“ื•ื’ืžืื•ืช ื—ืžื•ื“ื•ืช ืœื™ืฆื™ืจืช JSON-ื™ื ืขื jo ื”ืคืงื•ื“ื” jo ื™ื•ื“ืขืช ืœื™ื™ืฆืจ ืคืœื˜ ื‘ืคื•ืจืžื˜ JSON ืœืคื™ ื”ื•ืจืื•ืช ืฉืื ื—ื ื• ืžืขื‘ื™ืจื™ื ืœื” ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”. ื–ื” ื ืฉืžืข ืคืฉื•ื˜ ืื‘ืœ ื”ืืžืช ืฉื‘ื–ื›ื•ืช ืื™ื ืกื•ืฃ ื”ืืคืฉืจื•ื™ื•ืช ืฉืœื” ื”ื™ื ื›ืœื™ ืฉืžืื•ื“ ื—ืฉื•ื‘ ืœื”ื›ื™ืจ. ื‘ื•ืื• ื ืจืื” ืฉืœื•ืฉ ื“ื•ื’ืžืื•ืช ื—ืžื•ื“ื•ืช ืœืฉื™ืžื•ืฉ ื‘ืคืงื•ื“ื” ื›ื“ื™ ืœืงื‘ืœ ื“ื‘ืจื™ื ืฉื‘ืœืขื“ื™ื” ืื•ืœื™ ื”ื™ื” ืงืฉื”. ## ืื‘ืœ ืงื•ื“ื jo ื‘ืฉืœื•ืฉ ืžื™ืœื™ื ืื ืงืจื” ืœื›ื ืฉืจืฆื™ืชื ืœื›ืชื•ื‘ ืงื•ื‘ืฅ ื‘ืคื•ืจืžื˜ JSON ื•ื”ืกืชื‘ื›ืชื ืื™ืคื” ืœืฉื™ื ืืช ื”ืžืจื›ืื•ืช, ืื– ืื ื™ ื‘ื˜ื•ื— ืฉืชื“ืขื• ืœื”ืขืจื™ืš ื›ืœื™ ืื•ื˜ื•ืžื˜ื™ ืฉืžื˜ืคืœ ื‘ื›ืชื™ื‘ ื”ืชืงื™ืŸ ื‘ืžืงื•ืžื›ื. ื”ืคืงื•ื“ื” jo ื‘ืฉื™ืžื•ืฉ ื”ื‘ืกื™ืกื™ ื”ื™ื ื›ื–ื” ื›ืœื™. ืื ื™ ืžืคืขื™ืœ ืื•ืชื” ืžืฉื•ืจืช ื”ืคืงื•ื“ื” ื•ื ื•ืชืŸ ืœื” ืจืฉื™ืžื” ืฉืœ ืžืคืชื—ื•ืช ื•ืขืจื›ื™ื ื›ื“ื™ ืœืงื‘ืœ ืื•ื‘ื™ื™ืงื˜ json:
$ jo one=10 two=20 three=30
{"one":10,"two":20,"three":30}
ืžืคืชื—ื•ืช ืฉืžืกืชื™ื™ืžื™ื ื‘ืกื™ืžืŸ ืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื ื™ื”ืคื›ื• ืœืžืขืจืš:
$ jo "a[]=10" "a[]=20" "a[]=30" b=hello
{"a":[10,20,30],"b":"hello"}
ืื‘ืœ ื”ืจื‘ื” ืคืขืžื™ื ื ืฉืชืžืฉ ื‘ืžืชื’ -a ื›ื“ื™ ืœื™ืฆื•ืจ ืžืขืจืš:
$ jo -a blue green white
["blue","green","white"]
ื•ื‘ืงืฆืช ืงืกืžื™ bash ื›ื“ื™ ืœืฉืœื‘ ืžืขืจื›ื™ื ืขื ืื•ื‘ื™ืงื˜ื™ื:
$ jo name=ynon numbers=$(jo -a 10 20 30)
{"name":"ynon","numbers":[10,20,30]}
ืื– ื–ื” ื”ื™ื” ืคืฉื•ื˜ ื•ื‘ืืžืช ืจืง ืขื“ ืœืคื” jo ื ืฉืžืข ื›ืžื• ืื—ืœื” ื›ืœื™ ืฉืขื•ื–ืจ ืœื‘ื ื•ืช JSON-ื™ื, ืื‘ืœ ื›ืžื• ืฉื ืจืื” ื‘ืฉืœื•ืฉืช ื”ื“ื•ื’ืžืื•ืช ื”ื‘ืื•ืช - ื”ื•ื ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”ืจื‘ื” ื™ื•ืชืจ ืžื–ื”. ## ื—ื™ื‘ื•ืจ ื›ืœ ื”ืฉืจืชื™ื ื‘ืงื•ื‘ืฅ hosts ืœืคื™ ื›ืชื•ื‘ืช IP ื ื ื™ื— ืฉื™ืฉ ืœื ื• ืงื•ื‘ืฅ /etc/hosts ืขื ื”ืฉื•ืจื•ืช ื”ื‘ืื•ืช:
127.0.0.1 localhost
127.0.0.1 mysite
192.168.0.4 hd
192.168.1.10 router
192.168.1.10 player
ื•ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ืคื•ืš ืืช ื–ื” ืœ JSON ื‘ื• ื›ืœ ืžืคืชื— ื”ื•ื ื›ืชื•ื‘ืช IP ื•ื”ืขืจืš ื”ื•ื ืžืขืจืš ืฉืœ ื›ืœ ื”ืฉืžื•ืช ืฉืœ ืื•ืชื” ื›ืชื•ื‘ืช IP. ื”ื›ืœื™ ื”ืจืืฉื•ืŸ ืฉืงื•ืคืฅ ืœืจืืฉ ื”ื•ื ื›ืžื•ื‘ืŸ jo. ื‘ื’ืœืœ ืฉื”ืขืจืš ืฆืจื™ืš ืœื”ื™ื•ืช ืžืขืจืš ืื ื™ ืจื•ืฆื” ืœื”ืขื‘ื™ืจ ืœ jo ืงืœื˜ ื‘ื• ื”ืžืคืชื— ื™ื”ื™ื” ื›ืชื•ื‘ืช ื” IP, ืื—ืจื™ื” ืกื™ืžืŸ ืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื ื›ื“ื™ ืœืฆื™ื™ืŸ ืฉื–ื” ืžืขืจืš ื•ืื– ืกื™ืžืŸ ืฉื•ื•ื” ื•ืื– ื”ืขืจืš. ืื ื™ ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ awk ื›ื“ื™ ืœื”ืžื™ืจ ืืช ื”ืคื•ืจืžื˜ื™ื:
$ acat hosts | awk '{print $1"[]="$2}'
127.0.0.1[]=localhost
127.0.0.1[]=mysite
192.168.0.4[]=hd
192.168.1.10[]=router
192.168.1.10[]=player
ื•ื‘ืฉืœื™ื—ื” ืœ jo ื ืงื‘ืœ:
$ cat hosts | awk '{print $1"[]="$2}'|jo |jq

{
  "127.0.0.1": [
    "localhost",
    "mysite"
  ],
  "192.168.0.4": [
    "hd"
  ],
  "192.168.1.10": [
    "router",
    "player"
  ]
}
## ื—ื™ื‘ื•ืจ ื›ืœ ื”ืชื”ืœื™ื›ื™ื ืขืœ ื”ืžื›ื•ื ื” ืœืงื•ื‘ืฅ JSON ื”ื™ืจืจื›ื™ ืขื›ืฉื™ื• ื ื ืกื” ืžืฉื—ืง ื“ื•ืžื” ืขื ืชื”ืœื™ื›ื™ื ืขืœ ื”ืžื›ื•ื ื”. ืื ื™ ื™ื•ื“ืข ืฉ ps ืžืกื•ื’ืœ ืœื”ื“ืคื™ืก ืฉื•ืจื” ืœื›ืœ ืชื”ืœื™ืš, ื•ื™ื•ื“ืข ืœื”ื“ืคื™ืก ืœื›ืœ ืชื”ืœื™ืš ืžื”ื• ืžื–ื”ื” ื”ืชื”ืœื™ืš ืฉื™ืฆืจ ืื•ืชื•. ื–ื” ื ืจืื” ื›ื›ื”:
$ ps -e -o ppid,pid,comm|head

 PPID   PID COMM
    0     1 /sbin/launchd
    1    89 /usr/libexec/logd
    1    90 /usr/libexec/UserEventAgent
    1    92 /System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld
    1    93 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/Support/fseventsd
    1    94 /System/Library/PrivateFrameworks/MediaRemote.framework/Support/mediaremoted
    1    97 /usr/sbin/systemstats
    1    98 /usr/libexec/configd
    1   100 /System/Library/CoreServices/powerd.bundle/powerd
ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืขื ื™ื™ืŸ ืœืจืื•ืช ืืช ื”ืจืฉื™ืžื” ื”ื–ืืช ื‘ืชื•ืจ ืื•ื‘ื™ืงื˜ JSON, ื›ืืฉืจ ื”ืžืคืชื— ื”ื•ื ืžื–ื”ื” ืชื”ืœื™ืš ื•ื”ืขืจืš ื”ื•ื ืื•ื‘ื™ืงื˜ ืฉื‘ื• ื›ืœ ืžืคืชื— ื”ื•ื ืžื–ื”ื” ืชื”ืœื™ืš ื™ืœื“ - ืฉื ื•ืฆืจ ืžืชื•ืš ื”ืชื”ืœื™ืš ืฉืžืขืœื™ื• ื‘ื”ื™ืจืจื›ื™ื”. ื‘ื“ื•ื’ืžื” ืฉื”ื“ืคืกืชื™ ื–ื” ื™ื”ื™ื” ื”ืื•ื‘ื™ืงื˜:
{
  "0": {
    "1": "/sbin/launchd"
  },
  "1": {
    "89": "/usr/libexec/logd",
    "90": "/usr/libexec/UserEventAgent",
    "92": "/System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld",
    "93": "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/Support/fseventsd",
    "94": "/System/Library/PrivateFrameworks/MediaRemote.framework/Support/mediaremoted",
    "97": "/usr/sbin/systemstats",
    "98": "/usr/libexec/configd",
    "100": "/System/Library/CoreServices/powerd.bundle/powerd",
    "101": "/usr/libexec/IOMFB_bics_daemon"
  }
}
ืื™ืš ืžื™ื™ืฆืจื™ื ื›ื–ื” ืื•ื‘ื™ืงื˜ ืืชื ืฉื•ืืœื™ื? ื”ืคืขื ืื ื™ ืžืฉืชืžืฉ ื‘ื™ื›ื•ืœืช ื ื•ืกืคืช ืฉืœ jo ืฉื”ื™ื ืงื‘ืœืช ืžืคืชื—ื•ืช ืžืงื•ื ื ื™ื. ืฉื™ืžื• ืœื‘ ืœืคืงื•ื“ื”:
$ jo -d . foo.bar.buz=10

{"foo":{"bar":{"buz":10}}}