Quantcast
Channel: cc :: somkiat
Viewing all 2000 articles
Browse latest View live
↧

āļŠāļĢāļļāļ›āļˆāļēāļāļšāļ—āļ„āļ§āļēāļĄāđ€āļĢāļ·āđˆāļ­āļ‡ Why hooks are the best thing to happen to React

$
0
0

āļˆāļēāļāļšāļ—āļ„āļ§āļēāļĄāđ€āļĢāļ·āđˆāļ­āļ‡ Why hooks are the best thing to happen to React ?
āļˆāļēāļ StackOverflow āļ­āļ˜āļīāļšāļēāļĒāđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ React Hooks āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ™āđˆāļēāļŠāļ™āđƒāļˆ
āļ§āđˆāļēāļāļēāļĢāļžāļąāļ’āļ™āļēāļĢāļ°āļšāļšāļ‡āļēāļ™āļ”āđ‰āļ§āļĒ React āļĄāļĩāļŦāļĨāļēāļĒāđāļšāļš
āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŦāļĢāļ·āļ­āļĒāđ‰āļēāļĒāđ„āļ›āļĄāļēāļ—āļąāđ‰āļ‡ class āđāļĨāļ° functional component
āđ€āļ›āđ‡āļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļ‡āđˆāļēāļĒāđ€āļĨāļĒ
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļˆāļķāļ‡āđ€āļ›āđ‡āļ™āļ—āļĩāđˆāļĄāļēāļ‚āļ­āļ‡āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ React Hooks
āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāļžāļąāļ’āļ™āļē āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™ functional component āļ­āļĩāļāļ”āđ‰āļ§āļĒ

āđ‚āļ”āļĒāļ–āđ‰āļēāđƒāļ„āļĢāđ€āļĢāļīāđˆāļĄāļ”āđ‰āļ§āļĒ class component

āļ™āđˆāļēāļˆāļ°āļ•āđ‰āļ­āļ‡āļĄāļēāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ Life cycle āļ‚āļ­āļ‡ React āļāđˆāļ­āļ™
āļ—āļąāđ‰āļ‡āļāļēāļĢāđ€āļžāļīāđˆāļĄāļŦāļĢāļ·āļ­āđāļāđ‰āđ„āļ‚āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™ DOM āļ§āđˆāļēāđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ
āļˆāļ°āļ—āļģāļāļēāļĢ mount āđāļĨāļ° unmount āļ­āļĒāđˆāļēāļ‡āđ„āļĢ
āļ—āļąāđ‰āļ‡āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ render āđ€āļĄāļ·āđˆāļ­āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļē āļāļēāļĢāļˆāļ°āļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāđ„āļĄāđˆāļ‡āđˆāļēāļĒāđ€āļĨāļĒ !!
āđāļŠāļ”āļ‡āļ”āļąāļ‡āļĢāļđāļ›

āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļˆāļķāļ‡āļŠāļĢāđ‰āļēāļ‡ Hooks āļ‚āļķāđ‰āļ™āļĄāļēāđƒāļŦāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™ āđāļ•āđˆāļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™āļāļąāļš functional component āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™

āđ€āļŠāđˆāļ™āļĄāļĩ useState āđāļĨāļ° useEffect āļ‚āļķāđ‰āļ™āļĄāļēāđƒāļ™ Hooks
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļēāļĒāļąāļ‡āļĄāļĩ Hooks āļ­āļ·āđˆāļ™ āđ† āđƒāļŦāđ‰āļĻāļķāļāļĐāļēāđāļĨāļ°āđƒāļŠāđ‰āļ‡āļēāļ™āļ­āļĩāļāđ€āļžāļĩāļĒāļš āđ€āļŠāđˆāļ™

  • useContext
  • useRef
  • useReducer
  • useMemo
  • useCallback

āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™
āļĒāļāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ code āļ‚āļ­āļ‡ Hooks
āđ€āļ›āđ‡āļ™āļāļēāļĢāļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļ API āļ”āđ‰āļ§āļĒ axios library
āļˆāļēāļāļ™āļąāđ‰āļ™āđ€āļ­āļēāļ„āđˆāļēāļĄāļēāđāļŠāļ”āļ‡āļœāļĨ
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļē āļŦāļĨāļēāļĒ āđ† āļ„āļ™āļ­āļēāļˆāļˆāļ°āļšāļ­āļāļ§āđˆāļē āļĄāļąāļ™āļ„āļ·āļ­ magic āļ—āļĩāđˆāļ‹āđˆāļ­āļ™āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđ€āļ­āļēāđ„āļ§āđ‰ āđ€āļŠāđˆāļ™āļāļąāļ™

[gist id="eb6738893f0f4608f4e887d6636b079c" file="HelloComponent.js"]

āđāļ•āđˆāļ–āđ‰āļēāđƒāļŠāđ‰ class component āđāļĨāđ‰āļ§ āļ•āđ‰āļ­āļ‡āļĄāļēāļˆāļąāļ”āļāļēāļĢāļœāđˆāļēāļ™ method āļ•āđˆāļēāļ‡ āđ† āļ‚āļ­āļ‡ class āļ”āļąāļ‡āļ™āļĩāđ‰

  • componentDidMount()
  • componentDidUpdate()
  • componentWillUnmount()

āđāļ•āđˆāđƒāļ™ Hooks āđƒāļŠāđ‰āđ€āļžāļĩāļĒāļ‡ useEffect āļāđ‡āļžāļ­

āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āļģāļ–āļēāļĄāđ€āļāļĩāđˆāļĒāļ§āļāļąāļš React āđƒāļ™ StackOverflow āļāđ‡āđ€āļžāļīāđˆāļĄāđƒāļ™āļ—āļļāļ āđ† āļ›āļĩ

āļ™āļąāđˆāļ™āļ™āđˆāļēāļˆāļ°āđāļŠāļ”āļ‡āđƒāļŦāđ‰āđ€āļŦāđ‡āļ™āļ­āļĒāđˆāļēāļ‡āļŠāļąāļ”āđ€āļˆāļ™āļ§āđˆāļē
āļāļēāļĢāļžāļąāļ’āļ™āļēāļ”āđ‰āļ§āļĒ React āļĄāļĩāļ„āļ§āļēāļĄāļ™āļīāļĒāļĄ
āļžāļĢāđ‰āļ­āļĄāļāļąāļšāļ›āļąāļāļŦāļēāļ‚āļ­āļ‡āļāļēāļĢāļžāļąāļ’āļ™āļēāļ—āļĩāđˆāđ€āļĒāļ­āļ°āļ”āđ‰āļ§āļĒ
āļ‹āļķāđˆāļ‡āļ•āļĢāļ‡āļ‚āđ‰āļēāļĄāļāļąāļš Angular āđ€āļĨāļĒ !!

āļ”āļąāļ‡āļ™āļąāđ‰āļ™ React Hooks āļ™āđˆāļēāļˆāļ°āđ€āļ‚āđ‰āļēāļĄāļēāļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļāļēāļĢāļžāļąāļ’āļ™āļē React āļ‡āđˆāļēāļĒāđāļĨāļ°āļŠāļ°āļ”āļ§āļāļ‚āļķāđ‰āļ™

āđāļ•āđˆāđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ class component āļāđ‡āļĒāļąāļ‡āļ„āļ‡āļŠāļģāļ„āļąāļāđ€āļŠāđˆāļ™āļāļąāļ™
āļŠāđˆāļ§āļ™ functional component + Hooks āļāđ‡āđ€āļ‚āđ‰āļēāļĄāļēāđ€āļ•āļīāļĄāđ€āļ•āđ‡āļĄāļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ‚āļēāļ”āļŦāļēāļĒāđ„āļ›
āļŦāļĢāļ·āļ­āđƒāļŠāđ‰āļ‡āļēāļ™ functional component āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰ Hooks āļāđ‡āđ„āļ”āđ‰
āļ–āđ‰āļēāđ€āļĢāļēāļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ āļŦāļ™āđ‰āļēāļ—āļĩāđˆāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ—āļĩāđˆāļ‡āđˆāļēāļĒ
āđ€āļĢāļ·āđˆāļ­āļ‡āļāļēāļĢ reuse āđāļĨāļ°āļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āļ‚āļ­āļ‡ code

āļ‚āļ­āđƒāļŦāđ‰āļŠāļ™āļļāļāļāļąāļšāļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ code āļ„āļĢāļąāļš

↧

āļĄāļēāļ”āļđāļāļēāļĢāđāļšāđˆāļ‡ Services āļˆāļēāļ SoundCloud

$
0
0

āļ§āđˆāļēāļ‡ āđ† āļĄāļēāļ”āļđ Service architecture āļ‚āļ­āļ‡ SoundCloud āļāļąāļ™āļŦāļ™āđˆāļ­āļĒ
āđ‚āļ”āļĒāļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļĄāļēāļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡
āļžāļĒāļēāļĒāļēāļĄāļ—āļĩāđˆāļˆāļ°āđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļēāļ•āđˆāļēāļ‡ āđ† āļ—āļĩāđˆāļžāļšāđ€āļˆāļ­
āđ€āļžāļ·āđˆāļ­āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāđˆāļ‡āļĄāļ­āļšāđāļĨāļ°āļ”āļđāđāļĨāļĢāļ°āļšāļšāļ‡āļēāļ™āđ„āļ”āđ‰āļ”āļĩāļĒāļīāđˆāļ‡āļ‚āļķāđ‰āļ™
āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļ”āļīāļ™āļ—āļēāļ‡āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆ

āļ—āļēāļ‡ SoundCloud āđāļšāđˆāļ‡ service āļ­āļ­āļāđ€āļ›āđ‡āļ™ 3 āļāļĨāļļāđˆāļĄ

  • Edge service āļˆāļ°āđ€āļ›āđ‡āļ™āļžāļ§āļ API gateway āđāļĨāļ° BFF (Backend For Frontend) āļŠāļģāļŦāļĢāļąāļšāļ—āļģāļ‡āļēāļ™āļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāļˆāļēāļāļāļąāđˆāļ‡āļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™
  • Value-Added service (VAS) āđ€āļ›āđ‡āļ™ layer āļ•āļĢāļ‡āļāļĨāļēāļ‡āļ—āļĩāđˆāļ™āļģāļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļ service āļ•āđˆāļēāļ‡ āđ† āļĄāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ āļŦāļĢāļ·āļ­ aggregation/orchestrate layer āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļŦāļĄāļēāļ°āļŠāļĄāļ•āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™āļ™āļąāđ‰āļ™ āđ† āđ€āļ›āđ‡āļ™ service āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđ€āļ‰āļžāļēāļ°āđ€āļˆāļēāļ°āļˆāļ‡āļ•āđˆāļ­ business domain āļ™āļąāđ‰āļ™ āđ†
  • Foundation service āđ€āļ›āđ‡āļ™ low-level services āļ—āļĩāđˆāļ—āļģāļ‡āļēāļ™āđ€āļ‰āļžāļēāļ°āđ€āļˆāļēāļ°āļˆāļ‡āđ„āļ›āđ€āļĨāļĒ āļĄāļĩāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļĢāļąāļšāļŠāļ­āļšāļŦāļ™āļķāđˆāļ‡ āđ† āđ„āļ›āđ€āļĨāļĒ āđ€āļāļīāļ”āļĄāļēāđ€āļžāļ·āđˆāļ­āļāļēāļĢ reuse āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°

āđāļŠāļ”āļ‡āļ”āļąāļ‡āļĢāļđāļ›

āđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļŦāļĨāļąāļ āđ† āļ‚āļ­āļ‡āļāļēāļĢāđāļšāđˆāļ‡āļ•āļēāļĄāļ™āļĩāđ‰āļ„āļ·āļ­ āđāļĒāļāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ­āļ­āļāļ•āļēāļĄāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ­āļĒāđˆāļēāļ‡āļŠāļąāļ”āđ€āļˆāļ™

āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļŠāđˆāļ§āļĒāđ€āļžāļīāđˆāļĄ productivity āļ‚āļ­āļ‡āļāļēāļĢāļŠāđˆāļ‡āļĄāļ­āļšāļĢāļ°āļšāļšāļ‡āļēāļ™āļ­āļĩāļāļ”āđ‰āļ§āļĒ
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļē āļĄāļąāļ™āļāđ‡āļĄāļĩāļ‚āđ‰āļ­āđ€āļŠāļĩāļĒāđ€āļŠāđˆāļ™āļāļąāļ™ āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āđ‰āļ§āļĒ

  • āļāļēāļĢāđ€āļžāļīāđˆāļĄ layer āđƒāļŦāļĄāđˆāļ‚āļķāđ‰āļ™āļĄāļē āļāđ‡āļ„āļ·āļ­āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ āđāļĨāļ° āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđƒāļ™āļāļēāļĢāļ”āļđāđāļĨāļĢāļąāļāļĐāļēāļ—āļĩāđˆāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™ āļĢāļ§āļĄāļ—āļąāđ‰āļ‡ infrastructure āļ—āļĩāđˆāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™ monitoring āļ—āļĩāđˆāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™
  • āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļžāļīāđˆāļĄ network latency āļ­āļĩāļāļ”āđ‰āļ§āļĒ
  • āļ­āļēāļˆāļˆāļ°āļāđˆāļ­āđƒāļŦāđ‰āđ€āļāļīāļ”āļāļēāļĢāđ€āļĢāļĩāļĒāļ service āļĄāļąāđˆāļ§āđ„āļ›āļŦāļĄāļ”āđ„āļ”āđ‰ āļŦāļĢāļ·āļ­āđ€āļāļīāļ” depednency hell āļ™āļąāđˆāļ™āđ€āļ­āļ‡
↧
↧

āļĨāļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™ Recorder āđƒāļ™ Google Chrome 97 (Dev channel)

$
0
0

āļĄāļēāļĨāļ­āļ‡āļ”āļđāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļŦāļĄāđˆāđƒāļ™ Google Chrome 97 (Dev channel) āļ—āļĩāđˆāļŠāļ·āđˆāļ­āļ§āđˆāļē Recorder
āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļāļēāļĢ record āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ web āļ™āļąāđ‰āļ™ āđ† āđ„āļ§āđ‰
āļˆāļēāļāļ™āļąāđ‰āļ™āļ—āļģāļāļēāļĢ replay āđ„āļ”āđ‰
āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āļ‚āļ­āļ‡āļĢāļ°āļšāļš network āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™āļ­āļĩāļāļ”āđ‰āļ§āļĒ
āđ€āļžāļ·āđˆāļ­āļ§āļąāļ”āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ§āđˆāļēāđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ

āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāđ„āļ›āđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļĩāđˆ DevTools -> More Tools āļ”āļąāļ‡āļĢāļđāļ›

āļˆāļēāļāļ™āļąāđ‰āļ™āļāđ‡āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļ”āđ‰āļ§āļĒāļāļēāļĢāļŠāļąāđˆāļ‡ record āļ”āļąāļ‡āļ™āļĩāđ‰

āļ—āļģāļāļēāļĢ record āđ„āļ”āđ‰āļ”āļąāļ‡āļ™āļĩāđ‰

āļ—āļģāļāļēāļĢāđ€āļĨāļ·āļ­āļāļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āļ‚āļ­āļ‡ network āđ„āļ”āđ‰

āļ­āļĩāļāļ—āļąāđ‰āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļāļēāļĢ replay āđāļĨāļ° āļ§āļąāļ”āđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ web performance āđ„āļ”āđ‰āļ”āļąāļ‡āļ™āļĩāđ‰

āļĒāļąāļ‡āđ„āļĄāđˆāļžāļ­ āļĒāļąāļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļžāļīāđˆāļĄ assertion āļŦāļĢāļ·āļ­ āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļœāļĨāļˆāļēāļ action āļ•āđˆāļēāļ‡ āđ† āđ„āļ”āđ‰āļ­āļĩāļ

āļĨāļ­āļ‡ Download āļĄāļēāļĨāļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™āļāļąāļ™āļ”āļđ
āļ™āđˆāļēāļˆāļ°āļĄāļ—āļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāđ€āļĒāļ­āļ°āļĄāļēāļ āđ† āļŠāļģāļŦāļĢāļąāļš web development

↧

āļšāļąāļāļ—āļķāļāļāļēāļĢāļ­āđˆāļēāļ™āļŦāļ™āļąāļ‡āļŠāļ·āļ­ Grokking Algorithm

$
0
0

āļŦāļĨāļąāļ‡āļˆāļēāļāļ—āļĩāđˆāļœāđˆāļēāļ™āļŦāļ™āļąāļ‡āļŠāļ·āļ­ Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People āđ„āļ›āļ™āļąāđ‰āļ™
āļĄāļĩāđ€āļ™āļ·āđ‰āļ­āļŦāļēāļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆ āđ€āļ›āđ‡āļ™āļžāļ·āđ‰āļ™āļāļēāļ™āļ—āļĩāđˆāļ”āļĩ
āđ€āļŦāļĄāļēāļ°āļ•āļąāđ‰āļ‡āđāļ•āđˆāļ„āļ™āļ—āļĩāđˆāđ„āļĄāđˆāļĄāļĩāļ„āļ§āļēāļĄāļĢāļđāđ‰āļ‚āļķāđ‰āļ™āļĄāļēāđ€āļĨāļĒ
āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļĄāļĩ algorithm āļžāļ·āđ‰āļ™āļāļēāļ™āļ•āđˆāļēāļ‡ āđ† āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļĢāļđāđ‰āđāļĨāļ°āđ€āļ‚āđ‰āļēāđƒāļˆ
āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļ­āļ˜āļīāļšāļēāļĒāļ”āđ‰āļ§āļĒāļ āļēāļĐāļēāļ—āļĩāđˆāļ‡āđˆāļēāļĒ āđāļĨāļ° āļĢāļđāļ›āļ āļēāļžāļ›āļĢāļ°āļāļ­āļšāđ€āļžāļĩāļĒāļš
āļŠāļēāļĄāļēāļĢāļ–āļ­āđˆāļēāļ™āđ€āļĢāļĩāļĒāļ‡āļ•āļēāļĄāļšāļ—āđ„āļ›āđ€āļĢāļ·āđˆāļ­āļĒ āđ† āļŦāļĢāļ·āļ­ āļˆāļ°āđ€āļĨāļ·āļ­āļāļ­āđˆāļēāļ™āđƒāļ™āđāļ•āđˆāļĨāļ°āļšāļ—āļ—āļĩāđˆāļŠāļ™āđƒāļˆāđ„āļ”āđ‰

āđ€āļ™āļ·āđ‰āļ­āļŦāļēāđƒāļ™āļŦāļ™āļąāļ‡āļŠāļ·āļ­āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āđ‰āļ§āļĒ

  • Big O Notation āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ§āļąāļ”āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ algorithm āļ•āđˆāļēāļ‡ āđ† āđ€āļžāļ·āđˆāļ­āđ€āļĨāļ·āļ­āļāđƒāļŦāđ‰āđƒāļŦāđ‰āļ–āļđāļāļāļąāļšāļ‡āļēāļ™
  • Data structure āļŦāļĢāļ·āļ­ āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āļŠāļģāļŦāļĢāļąāļšāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āđˆāļēāļ‡ āđ† āļ—āļąāđ‰āļ‡ array, queue, linked list, stack āđāļĨāļ° hash table āđ€āļ›āđ‡āļ™āļ•āđ‰āļ™
  • Algorithm āļ‹āļķāđˆāļ‡āļ‚āļēāļ”āđ„āļĄāđˆāđ„āļ”āđ‰āđ€āļĨāļĒ āļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļĢāļđāđ‰ algorithm āļĒāļ­āļ”āļ™āļīāļĒāļĄ āļ—āļąāđ‰āļ‡ Binary search, Selection sort, Quick sort, Breadth-First Search (BFS), Dijkstra, Greedy algorithm āđāļĨāļ° K-nearest neighbours āđ€āļ›āđ‡āļ™āļ•āđ‰āļ™
  • āļĄāļĩāđāļšāļšāļāļķāļāļŦāļąāļ”āđƒāļŦāđ‰āļĨāļ­āļ‡āļ—āļģ āđ€āļžāļ·āđˆāļ­āļ—āļģāļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ codeāđ€āļžāļ·āđˆāļ­āđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļē āđ‚āļ”āļĒ code āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđƒāļ™āļŦāļ™āļąāļ‡āļŠāļ·āļ­āļˆāļ°āđƒāļŠāđ‰āļ āļēāļĐāļē Python
  • āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļŠāļ­āļšāļĄāļēāļ āđ† āļ„āļ·āļ­ āļĄāļĩāļāļēāļĢāļ§āļēāļ”āļĢāļđāļ›āļ­āļ˜āļīāļšāļēāļĒāđ‚āļ”āļĒāļ•āļĨāļ­āļ” āļ—āļģāđƒāļŦāđ‰āđ€āļ‚āđ‰āļēāđƒāļˆāļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™

āļĨāļ­āļ‡āļŦāļēāļĄāļēāļ­āđˆāļēāļ™āļāļąāļ™āļ”āļđāļ„āļĢāļąāļš
āļ­āđˆāļēāļ™āļ‡āđˆāļēāļĒ āļ–āđˆāļēāļĒāļ„āļĨāđˆāļ­āļ‡

↧

āđ€āļˆāļ­ Bug āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āđāļšāļšāļĢāļ°āđ€āļšāļīāļ”āđ€āļ§āļĨāļē â€Ķ

$
0
0

āđƒāļ™āļŠāđˆāļ§āļ‡ 1-2 āļ§āļąāļ™āļ—āļĩāđˆāļœāđˆāļēāļ™āļĄāļē āđ€āļˆāļ­āļ›āļąāļāļŦāļēāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ‡āļēāļ™āļ—āļĩāđˆāļ­āļĒāļđāđˆāļšāļ™ production
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļē āļĢāļ°āļšāļšāļĨāđˆāļĄ āđ€āļĄāļ·āđˆāļ­āļĄāļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļĒāļ­āļ°āļ‚āļķāđ‰āļ™
CPU āļ§āļīāđˆāļ‡āđ„āļ› 100% āđāļšāļšāļžāļļāđˆāļ‡āļ›āļĢāļĩāđŠāļ”āļ”āļ”
āļˆāļķāļ‡āļĨāļ­āļ‡āļ”āļđāļāļąāļ™āļŦāļ™āđˆāļ­āļĒāļ§āđˆāļēāļˆāļ°āđāļāđ‰āđ„āļ‚ āļŦāļĢāļ·āļ­ āļ—āļļāđ€āļĨāļēāļĨāļ‡āđ„āļ›āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ ?

āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļēāđ€āļ‰āļžāļēāļ°āļŦāļ™āđ‰āļē āđāļĨāļ° āļŦāļēāļ•āđ‰āļ™āđ€āļŦāļ•āļļāļ‚āļ­āļ‡āļ›āļąāļāļŦāļē

āļāļēāļĢ restart āđ€āļžāļ·āđˆāļ­āļŦāļ™āļĩāļ›āļąāļāļŦāļē āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆ āđāļĨāļ°āļāđ‡āļ—āļģ
āđāļ•āđˆāļ›āļąāļāļŦāļēāđ„āļĄāđˆāļŦāļēāļĒāđ„āļ› āđāļ„āđˆāļ—āļļāđ€āļĨāļē āđ€āļžāļ·āđˆāļ­āļĢāļ­āļāļēāļĢāđ€āļāļīāļ”āđƒāļŦāļĄāđˆ
āļāļēāļĢ scale āļ”āđ‰āļ§āļĒāļāļēāļĢāļ‚āļĒāļēāļĒāđ€āļ„āļĢāļ·āđˆāļ­āļ‡ āđ€āļŠāđˆāļ™ āļāļēāļĢāđ€āļžāļīāđˆāļĄ CPU āđāļĨāļ° Memory āļāđ‡āđƒāļŠāđ‰āđ„āļ”āđ‰āļ”āļĩ
āđāļ•āđˆāļ„āļ·āļ­āļāļēāļĢāļŦāļ™āļĩāļ›āļąāļāļŦāļē
āļāļēāļĢ scale āļ”āđ‰āļ§āļĒāļāļēāļĢāđ€āļžāļīāđˆāļĄāđ€āļ„āļĢāļ·āđˆāļ­āļ‡ āđ€āļ›āđ‡āļ™āļ­āļĩāļāļ—āļēāļ‡ āđāļ•āđˆāļ—āļģāđ„āļĄāđˆāđ„āļ”āđ‰āđ€āļĨāļĒ
āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļĢāļ°āļšāļšāđ„āļĄāđˆāđ„āļ”āđ‰āļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļŠāļīāđˆāļ‡āļ™āļĩāđ‰ !!

āđ€āļĄāļ·āđˆāļ­āđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļēāđ€āļ‰āļžāļēāļ°āļŦāļ™āđ‰āļēāđāļĨāđ‰āļ§ āļāđ‡āļĄāļēāļŦāļēāļ›āļąāļāļŦāļēāđāļĨāļ°āđāļāđ‰āđ„āļ‚āļāļąāļ™āļŦāļ™āđˆāļ­āļĒ

  • āļĄāļĩāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ database āļ—āļļāļ āđ† āļ„āļĢāļąāđ‰āļ‡āļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļ°āļšāļš āđ„āļĄāđˆāļ§āđˆāļēāļˆāļ°āļ•āđ‰āļ­āļ‡āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļ database āļŦāļĢāļ·āļ­āđ„āļĄāđˆ āļ•āļĢāļ‡āļ™āļĩāđ‰āđ‚āļŦāļ”āļĄāļēāļāļ•āđ‰āļ­āļ‡āđāļāđ‰āđ„āļ‚ āđāļ•āđˆāļĒāļąāļ‡āļ—āļģāđ„āļĄāđˆāđ„āļ”āđ‰ āđ€āļžāļĢāļēāļ°āļ§āđˆāļēāļ•āđ‰āļ­āļ‡āđāļāđ‰āđ„āļ‚ code āļ—āļąāđ‰āļ‡āļĢāļ°āļšāļš āļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ‡āļŠāļđāļ‡
  • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđƒāļŠāđ‰ caching āđƒāļ” āđ† āļ•āđˆāļ­ database āļ•āļĢāļ‡āļ­āļĒāđˆāļēāļ‡āđ€āļ”āļĩāļĒāļ§ āđ€āļŠāđˆāļ™āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļ•āđ‰āļ­āļ‡āđāļāđ‰āļ—āļąāđ‰āļ‡āļĢāļ°āļšāļš āļ‡āđˆāļēāļĒāđƒāļ™āļāļēāļĢāļ—āļģāđāļ•āđˆāđ€āļĒāļ­āļ°āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™āđ€āļ­āļ‡
  • āļ”āļđāļˆāļēāļ log āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļœāđˆāļēāļ™ Load balance āļžāļšāļ§āđˆāļēāļĄāļĩāļŠāđˆāļ§āļ™āļ‡āļēāļ™āļˆāļģāļ™āļ§āļ™āļĄāļēāļ āļ—āļĩāđˆāļ—āļģāļ‡āļēāļ™āļŠāđ‰āļēāļĄāļēāļ āđ† āļ•āļĢāļ‡āļ™āļĩāđ‰āļ„āļ·āļ­āļ•āđ‰āļ™āđ€āļŦāļ•āļļāđāļĢāļ !!
  • āļ›āļąāļāļŦāļēāļ„āļ·āļ­āđƒāļŠāđ‰āļ‡āļēāļ™ database āđ€āļ›āđ‡āļ™āļŦāļĨāļąāļ āļ”āļąāļ‡āļ™āļąāđ‰āļ™ āđ€āļ™āđ‰āļ™āđ„āļ›āļ•āļĢāļ‡āļ™āļĩāđ‰āļāđˆāļ­āļ™

āđ€āļĄāļ·āđˆāļ­āļĨāļ­āļ‡āđ„āļ›āļ”āļđ log āļāđ‡āđ€āļˆāļ­āļ—āļąāļ™āļ—āļĩāļ§āđˆāļē āļĄāļĩāļŠāđˆāļ§āļ™āļ‡āļēāļ™āļ­āļ°āđ„āļĢāļ—āļĩāđˆāļŠāđ‰āļēāļšāđ‰āļēāļ‡

āļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ€āļˆāļ­āļ„āļ·āļ­ āđ€āļĄāļ·āđˆāļ­āļ–āļķāļ‡āđ€āļ§āļĨāļēāļ­āļąāļ™āđ€āļ›āđ‡āļ™āļĄāļ‡āļ„āļĨ CPU āđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļ°āļĨāļļāļˆāļļāļ”āđ€āļ”āļ·āļ­āļ”
āļžāļļāđˆāļ‡āļ‚āļķāđ‰āļ™āđ„āļĄāđˆāļĄāļĩāļ­āļēāļāļēāļĢāļŦāļĢāļ·āļ­āļ„āļģāđ€āļ•āļ·āļ­āļ™āđƒāļ” āđ†
āļĢāļ°āļšāļšāļĨāđˆāļĄāđāļ™āđˆāļ™āļ­āļ™ !!
āļāđ‡āļ•āđ‰āļ­āļ‡āļāļđāđ‰āļ„āļ·āļ™āđƒāļŦāđ‰āđ€āļĢāđ‡āļ§āļ—āļĩāđˆāļŠāļļāļ”āļāđˆāļ­āļ™

āđ€āļĄāļ·āđˆāļ­āļĨāļ‡āđ„āļ›āļ”āļđāļ•āđ‰āļ™āđ€āļŦāļ•āļļāļ‚āļ­āļ‡āļ›āļąāļāļŦāļē āļžāļšāļ§āđˆāļē

  • āđ„āļĄāđˆāļ—āļģ index āđƒāļ™ table āļ‹āļķāđˆāļ‡āļ•āļĢāļ‡āļ™āļĩāđ‰āļˆāļ°āļĒāļąāļ‡āđ„āļĄāđˆāļĄāļĩāļ›āļąāļāļŦāļē āļ–āđ‰āļēāļˆāļģāļ™āļ§āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļĄāđˆāļĄāļēāļāļžāļ­ āđāļĨāļ° traffic āđ„āļĄāđˆāļĄāļēāļāļžāļ­
  • āļĄāļĩ operation āļ—āļĩāđˆāļ—āļģāļ‡āļēāļ™ update āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™ database āļˆāļģāļ™āļ§āļ™āļĄāļēāļ āļ—āļąāđ‰āļ‡ āđ† āļ—āļĩāđˆāđƒāļ™ business logic āļˆāļĢāļīāļ‡ āđ† āđ„āļĄāđˆāđ„āļ”āđ‰āļ•āđ‰āļ­āļ‡āļāļēāļĢāđāļšāļšāļ™āļąāđ‰āļ™ āđ€āļĄāļ·āđˆāļ­āļ‚āđ‰āļ­āļĄāļđāļĨāļĄāļēāļāļ‚āļķāđ‰āļ™āđ€āļĢāļ·āđˆāļ­āļĒ āđ† āļāļēāļĢ update āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļēāļĄāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āļ‚āļ­āļ‡āļ™āļąāļāļžāļąāļ’āļ™āļēāļāđ‡āļĄāļēāļāļ‚āļķāđ‰āļ™ āđāļĨāļ°āđ€āļĄāļ·āđˆāļ­āļ–āļķāļ‡āļ§āļąāļ™āđ‚āļŠāļ„āļ”āļĩāļāđ‡āđ‚āļ”āļ™āļāļąāļ™āđ„āļ›

āļ™āļĩāđˆāļ„āļ·āļ­ āļ›āļąāļāļŦāļēāļ—āļĩāđˆāļžāļšāđ€āļˆāļ­āđāļšāļšāļ‡āđˆāļēāļĒ āđ†
āļˆāļ°āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰āļ§āđˆāļē āļĄāļąāļ™āļ„āļ·āļ­ āļĢāļ°āđ€āļšāļīāļ”āđ€āļ§āļĨāļēāļ”āļĩ āđ† āļ™āļĩāđˆāđ€āļ­āļ‡
āļ—āļĩāđˆāļ—āļĩāļĄāļžāļąāļ’āļ™āļēāļŠāļĢāđ‰āļēāļ‡āļĄāļąāļ™āļĄāļēāļāļąāļšāļĄāļ·āļ­
āđ€āļĄāļ·āđˆāļ­āđāļĢāļāđ€āļĢāļīāđˆāļĄāđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļĄāļąāđ‰āļ‡ āđ€āļžāļĢāļēāļ°āļ§āđˆāļē āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ”āļĩ āđ„āļĄāđˆāļĄāļĩāļ›āļąāļāļŦāļē
āđāļ•āđˆāđ€āļĄāļ·āđˆāļ­āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āļ•āđˆāļēāļ‡ āđ† āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļĄāļąāļ™āļĄāļēāļžāļĢāđ‰āļ­āļĄ
āļāđ‡āļ—āļģāđƒāļŦāđ‰āļĢāļ°āļšāļšāļĨāđˆāļĄāđ€āļ‰āļĒ āđ† āđ„āļ”āđ‰āđ€āļĨāļĒ

āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļēāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ‚āđ‰āļ­āđ„āļĄāđˆāļĒāļēāļ

āđ€āļžāļĩāļĒāļ‡āļ—āļģ index āđ„āļ›āļ‹āļ° āđāļĨāļ°āđ„āļ›āđ€āļ›āļĨāļĩāđˆāļĒāļ™ condition āđƒāļŦāđ‰āļāļēāļĢ update āļ™āđ‰āļ­āļĒāļĨāļ‡āđ„āļ›
āļˆāļēāļ update āļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļĢāļąāđ‰āļ‡āļĨāļ° 10,000-50,000 record āļ•āđˆāļ­ request
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļē āļŠāđˆāļ§āļ‡ peak traffic āļžāļļāđˆāļ‡āļŠāļđāļ‡āļĄāļēāļ !!!
āļŦāļĨāļąāļ‡āļˆāļēāļāđāļāđ‰āđ„āļ‚ āđ€āļŦāļĨāļ·āļ­ update āļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļĢāļąāđ‰āļ‡āļĨāļ°āđ„āļĄāđˆāđ€āļāļīāļ™ 10-20 record āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™

āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļēāļĒāļąāļ‡āļĄāļĩāļ›āļąāļāļŦāļēāļ­āļ·āđˆāļ™ āđ† āđāļĨāļ°āļ—āļĩāđˆāļĒāļąāļ‡āđ„āļĄāđˆāļĢāļđāđ‰ āļĢāļ­āļĢāļ°āđ€āļšāļīāļ”āļ­āļ­āļāļĄāļē

āļ•āđ‰āļ­āļ‡āđāļāđ‰āđ„āļ‚āļāļąāļ™āļ•āđˆāļ­āđ„āļ›
āļ—āļąāđ‰āļ‡āļāļēāļĢ monitor āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ—āļļāļ āđ† request āļ§āđˆāļēāļŠāđ‰āļēāļŦāļĢāļ·āļ­āđ€āļĢāđ‡āļ§āļ­āļĒāđˆāļēāļ‡āđ„āļĢ
āļ—āļąāđ‰āļ‡āļāļēāļĢāļ›āļĢāļąāļšāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āļ­āļ‡ database server
āļ—āļąāđ‰āļ‡āļāļēāļĢāļ›āļĢāļąāļšāđ€āļ›āļĨāļĩāđˆāļĒāļ™ flow āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ code
āļ—āļąāđ‰āļ‡āļāļēāļĢāļ™āļģ caching data āđ€āļ‚āđ‰āļēāļĄāļēāļŠāđˆāļ§āļĒ āđ€āļžāļ·āđˆāļ­āļĨāļ”āļ āļēāļĢāļ°āđāļĨāļ°āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāļ‚āļ­āļ‡ database āļĨāļ‡āđ„āļ›
āđ€āļžāļ·āđˆāļ­āļŠāđˆāļ§āļĒāđƒāļŦāđ‰ business āļĒāļąāļ‡āļ„āļ‡āđ€āļ”āļīāļ™āļŦāļ™āđ‰āļēāļ•āđˆāļ­āđ„āļ›āļ­āļĒāđˆāļēāļ‡āļĢāļēāļšāļĢāļ·āđˆāļ™

āļˆāļ°āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰āļ§āđˆāļē āļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāđƒāļ” āđ† āđƒāļ™ architecture āļ‚āļ­āļ‡āļĢāļ°āļšāļš

āļĄāļąāļ™āļˆāļ°āļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­ business āđāļĨāļ° customer āđ€āļŠāļĄāļ­
āļ–āđ‰āļēāļĄāļĩāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡āļāļēāļĢ scale āđāļĨāđ‰āļ§
āļ•āđ‰āļ­āļ‡āļ•āđ‰āļ­āļ‡āļ­āļ­āļāđāļšāļš āļŠāļĢāđ‰āļēāļ‡āļĄāļąāļ™āļ‚āļķāđ‰āļ™āļĄāļēāļ­āļĒāđˆāļēāļ‡āđ€āļŦāļĄāļēāļ°āļŠāļĄāļ”āđ‰āļ§āļĒ
āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļāļ§āđˆāļēāļ„āļ·āļ­ āļžāļĢāđ‰āļ­āļĄāļ—āļĩāđˆāļˆāļ°āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļŦāļĢāļ·āļ­āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āđƒāļŦāđ‰āļ”āļĩāļ‚āļķāđ‰āļ™āļ”āđ‰āļ§āļĒ
āļ­āļĩāļāļ—āļąāđ‰āļ‡āļ–āđ‰āļēāđ€āļĢāļēāļĄāļĩāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āđˆāļēāļ‡ āđ† āļ‚āļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āļĄāļ·āļ­
āļāđ‡āļĒāļīāđˆāļ‡āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āđ€āļĢāļēāļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļ­āļĩāļāļ”āđ‰āļ§āļĒ

↧
↧

āļŠāļ§āļąāļŠāļ”āļĩ Java 17

$
0
0

āļŦāļĨāļąāļ‡āļˆāļēāļāļ—āļĩāđˆ Java 17 āļ›āļĨāđˆāļ­āļĒāļ­āļ­āļāļĄāļēāļ™āļąāđ‰āļ™
āļāđ‡āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ version āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ Long Term Support (LTS) āđƒāļŦāļĄāđˆ āđāļ—āļ™ java 11
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļˆāļķāļ‡āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ version āļ—āļĩāđˆāļ™āđˆāļēāļˆāļ°āļ•āđ‰āļ­āļ‡āđ€āļ•āļĢāļĩāļĒāļĄ migrate
āļˆāļēāļ Java 11 āļĄāļēāļĒāļąāļ‡ Java 17 āļāļąāļ™āđ„āļ”āđ‰āđāļĨāđ‰āļ§

āļ•āļąāđ‰āļ‡āđāļ•āđˆ Java 12-17 āļ™āļąāđ‰āļ™āļĄāļĩ feature āđƒāļŦāļĄāđˆ āđ† āļ­āļ­āļāļĄāļēāļ”āļąāļ‡āļ™āļĩāđ‰

  • Switch expression
  • Text blocks
  • Record
  • instanceof
  • Sealed classes
  • Pattern matching āđƒāļ™ switch-cases

āđāļŠāļ”āļ‡āļ”āļąāļ‡āļĢāļđāļ›

āđ‚āļ”āļĒāđƒāļ™ Spring Initializr āļ™āļąāđ‰āļ™ āļāđ‡āļĄāļĩāđƒāļŦāđ‰āđ€āļĨāļ·āļ­āļ version āļ‚āļ­āļ‡ Java 8, 11 āđāļĨāļ° 17 āđ€āļŠāđˆāļ™āļāļąāļ™
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļ§āļąāļ™āļ™āļĩāđ‰āđ€āļ•āļĢāļĩāļĒāļĄāļžāļĢāđ‰āļ­āļĄāļāļąāļ™āļŦāļĢāļ·āļ­āļĒāļąāļ‡ ?

Reference Websites

↧

āļĄāļēāļĨāļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™ Go Workspace āđƒāļ™ G0 1.18 āļāļąāļ™

$
0
0

āđ€āļŦāđ‡āļ™āļ§āđˆāļēāđƒāļ™ Go 1.18 āļ™āļąāđ‰āļ™āļāļģāļĨāļąāļ‡āļžāļąāļ’āļ™āļēāļāļąāļ™āļ­āļĒāļđāđˆ
āđ€āļŦāđ‡āļ™ feature āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāļ„āļ·āļ­ Go Workspace āļŠāļģāļŦāļĢāļąāļš Multi-module development
āļ‹āļķāđˆāļ‡āļ›āļāļ•āļīāđāļĨāđ‰āļ§āļāđ‡āļ—āļģāđ„āļ”āđ‰āļœāđˆāļēāļ™āđ„āļŸāļĨāđŒ go.mod āļ”āļąāļ‡āļ—āļĩāđˆāđ€āļ„āļĒāđ€āļ‚āļĩāļĒāļ™āđ„āļ§āđ‰
āđāļ•āđˆāļ›āļąāļāļŦāļēāļ—āļĩāđˆāļ•āļēāļĄāļĄāļēāļ„āļ·āļ­
āļ–āđ‰āļēāđ€āļĢāļēāļ•āđ‰āļ­āļ‡āļāļēāļĢ develop āļšāļ™ local āđ‚āļ”āļĒāđƒāļŠāđ‰ multi module āļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡
āđāļ•āđˆāđ€āļĄāļ·āđˆāļ­ production āļāđ‡āđ„āļ›āđƒāļŠāđ‰āļ‚āļ­āļ‡āļˆāļĢāļīāļ‡
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļˆāļķāļ‡āļĄāļĩāđāļ™āļ§āļ„āļīāļ”āļ”āđ‰āļ§āļĒāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđ„āļŸāļĨāđŒ go.work āļ‚āļķāđ‰āļ™āļĄāļē
āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļšāļš multi-module āļšāļ™ local āđ„āļ”āđ‰āļ‡āđˆāļēāļĒ

āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļĄāļēāļĨāļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™āļāļąāļ™

āļāđˆāļ­āļ™āļ­āļ·āđˆāļ™āļ—āļģāļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡ Go 1.18 āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™ development version āļāļąāļ™āļŦāļ™āđˆāļ­āļĒāļ”āļąāļ‡āļ™āļĩāđ‰

[gist id="600d787509a5fd0b057a481b0e15f959" file="1.txt"]

āđ€āļžāļīāđˆāļ‡āļĢāļđāđ‰āļ§āđˆāļēāļĄāļĩāļ§āļīāļ˜āļĩ download Go āđƒāļ™ version development āļĄāļēāđƒāļŠāđ‰āļ”āđ‰āļ§āļĒ gotip !!

āļˆāļēāļāļ™āļąāđ‰āļ™āļ—āļģāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđ„āļŸāļĨāđŒ go.work āļ‚āļķāđ‰āļ™āļĄāļē

āđ€āļžāļ·āđˆāļ­ reference āļŦāļĢāļ·āļ­āđƒāļŠāđ‰āļ‡āļēāļ™ module āļ•āđˆāļēāļ‡ āđ† āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļšāļ™ local

[gist id="600d787509a5fd0b057a481b0e15f959" file="go.work"]

āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļēāļĄāļēāļĢāļ– run āđāļĨāļ° build āđ„āļ”āđ‰āļ›āļāļ•āļī
āđāļ•āđˆāļ–āđ‰āļēāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ Go workspace āļ•āļ­āļ™ build āļāđ‡āđƒāļŠāđ‰ -workfile-off āđ„āļ”āđ‰

āļ›āļĨ. āļŠāđˆāļ§āļ™āđ„āļŸāļĨāđŒ go.work āļāđ‡āđ„āļĄāđˆāđāļ™āļ°āļ™āļģāđƒāļŦāđ‰āđ€āļ­āļēāđ€āļ‚āđ‰āļē version control āļ”āđ‰āļ§āļĒ

↧

āļĨāļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™ Spring Cloud Contract (HTTP) āļāļąāļ™āļŦāļ™āđˆāļ­āļĒ āļŠāļģāļŦāļĢāļąāļš Contract testing

$
0
0

āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļĢāļ°āļšāļšāļ‡āļēāļ™āļžāļ§āļ RESTful API āļ™āļąāđ‰āļ™ āđ†
āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ—āļ”āļŠāļ­āļšāđ„āļ”āđ‰āļŦāļĨāļēāļĒāļ§āļīāļ˜āļĩ āđ„āļĄāđˆāļ§āđˆāļēāļˆāļ°āđ€āļ›āđ‡āļ™

  • API testing tools āđ€āļŠāđˆāļ™ Postman
  • Unit, Integration, Component āđāļĨāļ° End-to-End testing

āđāļ•āđˆāļ­āļĩāļāļ•āļąāļ§āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāļ„āļ·āļ­ Contract Testing
āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡ services āļ•āđˆāļēāļ‡ āđ†

āļžāļ­āļ”āļĩāļĄāļĩ project āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™
āļˆāļķāļ‡āļĨāļ­āļ‡āļŠāļĢāļļāļ› Contract testing āļ”āđ‰āļ§āļĒ Spring Cloud Contract āđ„āļ§āđ‰
āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļ”āļđāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđƒāļ™ Spring Cloud Contract Reference
āļˆāļ°āļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļ—āļąāđ‰āļ‡ HTTP āđāļĨāļ° messaging
āļĄāļēāđ€āļ‚āļĩāļĒāļ™āļāļąāļ™āđ€āļĨāļĒ

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 1 āđ€āļĢāļīāđˆāļĄāļˆāļēāļāļāļēāļĢāļ­āļ­āļāđāļšāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™(Consumer)āđāļĨāļ°āļœāļđāđ‰āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢ (Provider)

āđ‚āļ”āļĒāļ•āļīāļ”āļ•āđˆāļ­āļāļąāļšāļœāđˆāļēāļ™ HTTP protocol āļ›āļāļ•āļīāļ”āđ‰āļ§āļĒ REST + JSON
āļ‹āļķāđˆāļ‡āļ—āļąāđ‰āļ‡ consumer āđāļĨāļ° provider āļˆāļ°āļ•āđ‰āļ­āļ‡āļĄāļēāļŠāļĢāļļāļ›āļĢāļđāļ›āđāļšāļšāļ‚āļ­āļ‡āļāļēāļĢāļ•āļīāļ”āļ•āđˆāļ­āļŠāļ·āđˆāļ­āļŠāļēāļĢ
āļ§āđˆāļēāļˆāļ°āļ•āđ‰āļ­āļ‡āļĄāļĩāļĢāļđāļ›āđāļšāļšāļ­āļĒāđˆāļēāļ‡āđ„āļĢ
āļĄāļąāļ™āļ„āļ·āļ­ API specification āļ™āļąāđˆāļ™āđ€āļ­āļ‡
āļˆāļ°āđ€āļĢāļĩāļĒāļāļ§āđˆāļē Contract āļŦāļĢāļ·āļ­āļŠāļąāļāļāļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļąāļ™
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļ–āđ‰āļēāļĄāļĩāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļąāļāļāļēāļˆāļ°āļĢāļđāđ‰āđ„āļ”āđ‰āļ—āļąāļ™āļ—āļĩ

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 2 āļ—āļģāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ Contract āļ‚āļķāđ‰āļ™āļĄāļē āļ‹āļķāđˆāļ‡āļŠāļēāļĄāļēāļĢāļ– execute āđ„āļ”āđ‰ āđ„āļĄāđˆāđƒāļŠāđˆāđ€āļ›āđ‡āļ™āđ€āļžāļĩāļĒāļ‡āđ„āļŸāļĨāđŒāđ€āļ­āļāļŠāļēāļĢāļ—āļĩāđˆāđ‚āļĒāļ™āđ„āļ›āļĄāļē

āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡ contract āđ„āļ”āđ‰āļŦāļĨāļēāļĒāļĢāļđāļ›āđāļšāļš
āļˆāļ°āđ€āļĢāļĩāļĒāļāļ§āđˆāļē Contract DSL āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āđ‰āļ§āļĒ

  • Java
  • Groovy
  • Kotlin
  • YAML

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ‚āļ­āļ‡ Contract āļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āļ”āđ‰āļ§āļĒāļ āļēāļĐāļē Groovy

[gist id="579a527696a6ec0e86f08cd90dffd3d5" file="first-contract.groovy"]

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 3 āđƒāļ™āļāļąāđˆāļ‡ provider āļ—āļģāļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ test āđ‚āļ”āļĒāļ™āļģāļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļ Contract āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āđ„āļ§āđ‰āļĄāļēāđƒāļŠāđ‰

āļˆāļ°āđ€āļĢāļĩāļĒāļāļ§āđˆāļēāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ Contract test
āđƒāļ™āļŠāđˆāļ§āļ™āļ™āļĩāđ‰āđ€āļĢāļēāļˆāļ°āđ€āļ‚āļĩāļĒāļ™āđ€āļžāļĩāļĒāļ‡ Based-test class āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™
āđ€āļžāļ·āđˆāļ­āļĢāļ°āļšāļļāļ§āđˆāļēāđ€āļ›āđ‡āļ™ class āļŦāļĨāļąāļāļ‚āļ­āļ‡āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ”āđ‰āļ§āļĒ Contract āļ”āļąāļ‡āļ™āļĩāđ‰

[gist id="579a527696a6ec0e86f08cd90dffd3d5" file="BaseTests.java"]

āļˆāļēāļāļ™āļąāđ‰āļ™āļ—āļģāļāļēāļĢ run test āļœāđˆāļēāļ™ gradle āđ„āļ”āđ‰āļ„āļģāļŠāļąāđˆāļ‡

[code]$gradlew contractTest[/code]

āđ‚āļ”āļĒāļ„āļģāļŠāļąāđˆāļ‡āļ™āļĩāđ‰āļˆāļ°āļ—āļģāļāļēāļĢ generate test case class āļˆāļēāļ contract
āļ—āļĩāđˆāļ­āļĒāļđāđˆāđƒāļ™ folder contract āđƒāļŦāđ‰āđāļšāļšāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī
āđāļĨāļ°āļ—āļģāļāļēāļĢāļ—āļ”āļŠāļ­āļšāđƒāļŦāđ‰āļ­āļĩāļāļ”āđ‰āļ§āļĒ

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 4 āđ€āļĄāļ·āđˆāļ­āļāļąāđˆāļ‡ provider āļ—āļģāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļœāđˆāļēāļ™āđāļĨāđ‰āļ§ āļ—āļģāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ stub server āđāļĨāļ° upload āđ„āļ›āļĒāļąāļ‡āļ•āļĢāļ‡āļāļĨāļēāļ‡

āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ stub server āļˆāļēāļ Contract āļ™āļąāđˆāļ™āđ€āļ­āļ‡
āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ—āļēāļ‡āļāļąāđˆāļ‡ consumer āļŦāļĢāļ·āļ­āļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™āļ™āļģāđ„āļ›āđƒāļŠāđ‰
āđ€āļžāļ·āđˆāļ­āđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļš āļŦāļĢāļ·āļ­ āļĄāļąāļ™āļ„āļ·āļ­ Mock API server āļ™āļąāđˆāļ™āđ€āļ­āļ‡
āļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļĄāļēāđƒāļŦāđ‰āļ—āļļāļāļ„āļĢāļąāđ‰āļ‡āđ€āļĄāļ·āđˆāļ­āļĄāļĩāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 5 āđƒāļ™āļāļąāđˆāļ‡ consumer āļāđ‡āļ—āļģāļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ test case āđ€āļžāļ·āđˆāļ­āđƒāļŠāđ‰āļ‡āļēāļ™ Contract test + Stub server

āļ—āļģāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ stub server āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļˆāļēāļ provider
āđāļĨāļ°āļ–āļđāļāļˆāļąāļ”āđ€āļāđ‡āļšāđ„āļ§āđ‰āđƒāļ™ Apache Maven Repository āđāļšāļš local
āđ€āļ‚āļĩāļĒāļ™āđ„āļ”āđ‰āļ”āļąāļ‡āļ™āļĩāđ‰

[gist id="579a527696a6ec0e86f08cd90dffd3d5" file="CustomerGatewayTest.java"]

āļˆāļēāļāļ™āļąāđ‰āļ™āļāđ‡āļ—āļ”āļŠāļ­āļšāđāļšāļšāļ›āļāļ•āļī
āđ€āļžāļĩāļĒāļ‡āđ€āļ—āđˆāļēāļ™āļĩāđ‰āđ€āļĢāļēāļāđ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļģ Contract testing
āļ”āđ‰āļ§āļĒ Spring Cloud Contract āđ„āļ”āđ‰āđāļĨāđ‰āļ§
āđ€āļ›āđ‡āļ™āļ­āļĩāļāđāļ™āļ§āļ—āļēāļ‡āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļšāđāļĨāļ°āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļ™āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆ
āļŠāđˆāļ§āļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ­āļ·āđˆāļ™ āđ† āļāđ‡āđ€āļŠāđˆāļ™ Pact āđ€āļ›āđ‡āļ™āļ•āđ‰āļ™

āļ‚āļ­āđƒāļŦāđ‰āļŠāļ™āļļāļāļāļąāļšāļāļēāļĢ coding āļ„āļĢāļąāļš

āļ”āļđāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ code āđāļšāļšāđ€āļ•āđ‡āļĄ āđ† āđ„āļ”āđ‰āļ—āļĩāđˆ GitHub:Up1

↧

āļŠāļ§āļąāļŠāļ”āļĩ .NET 6 āļ•āļąāļ§ final

$
0
0

āļˆāļēāļāļ—āļĩāđˆāđ€āļ„āļĒāđ€āļ‚āļĩāļĒāļ™ blog āļ­āļ˜āļīāļšāļēāļĒāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāļ‚āļ­āļ‡ .NET 6 preview
āđƒāļ™āļŠāđˆāļ§āļ‡āļ•āđ‰āļ™āđ€āļ”āļ·āļ­āļ™āļžāļĪāļĻāļˆāļīāļāļēāļĒāļ™āļ—āļēāļ‡ Microsoft āļ›āļĨāđˆāļ­āļĒ .NET 6 āļ•āļąāļ§ final
āļĄāļēāđƒāļŦāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™āļšāļ™ production āļāļąāļ™āđāļĨāđ‰āļ§
āđ‚āļ”āļĒāļĄāļĩāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļŦāļĄāđˆ āđ† āļ”āļąāļ‡āļ™āļĩāđ‰

  • āđ€āļĢāļ·āđˆāļ­āļ‡āđāļĢāļāļ„āļ·āļ­ performance āļ—āļĩāđˆāļ”āļĩāļĄāļēāļ āđ† āļ–āļķāļ‡āļāļąāļšāļšāļ­āļāļ§āđˆāļēāđ€āļ›āđ‡āļ™ version āļ—āļĩāđˆāđ€āļĢāđ‡āļ§āļ—āļĩāđˆāļŠāļļāļ”
  • āļĄāļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ CPU, Memory āđāļĨāļ° I/O āļ™āđ‰āļ­āļĒāļĨāļ‡
  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āđ€āļĢāļ·āđˆāļ­āļ‡ performance āļ”āđ‰āļ§āļĒ Dynamic Profile-guided Optimization (PGO)
  • āļˆāļ°āļ—āļģāļāļēāļĢ support āđ„āļ›āļ­āļĩāļ 3 āļ›āļĩ
  • āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ C# version 10 āđ€āļŠāđˆāļ™ record struct, file-scopes namespace
  • āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ F# 6
  • āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ Hot reload āļ—āļĩāđˆāļ™āļąāļāļžāļąāļ’āļ™āļēāļŠāļ­āļš āļ—āļąāđ‰āļ‡āđƒāļ™ Vistual Studio āđāļĨāļ° CLI
  • āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ HTTP 3
  • āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ OpenSSL 3
  • āļĄāļĩāļĢāļ°āļšāļšāļāļēāļĢ monitor āđāļĨāļ° debug āļ—āļĩāđˆāļ”āļĩāļ‚āļķāđ‰āļ™ āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŦāļēāļˆāļļāļ”āļ—āļĩāđˆāļĄāļĩāļ›āļąāļāļŦāļēāđ„āļ”āđ‰āļĢāļ§āļ”āđ€āļĢāđ‡āļ§āļ‚āļķāđ‰āļ™ āđ€āļžāļ·āđˆāļ­āđāļāđ‰āđ„āļ‚āđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™
  • Default āļ‚āļ­āļ‡ console logger āļŠāļģāļŦāļĢāļąāļš container āļˆāļ°āđ€āļ›āđ‡āļ™ JSON format
  • āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ OpenTelemetry āļŠāļģāļŦāļĢāļąāļšāđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ distributed tracing

āļĨāļ­āļ‡āļ­āđˆāļēāļ™āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ„āļ”āđ‰āļ—āļĩāđˆ Announcing .NET 6 — The Fastest .NET Yet

↧
↧

Pause/Resume āđƒāļ™ Docker Desktop 4.2

$
0
0

āđƒāļ™ Docker Desktop 4.2 āļ™āļąāđ‰āļ™ āļ—āļģāļāļēāļĢāđ€āļžāļīāđˆāļĄ feature āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāđ€āļ‚āđ‰āļēāļĄāļē
āļ„āļ·āļ­ āļāļēāļĢ pause/resume āļ‚āļ­āļ‡ Docker Desktop āđ€āļĄāļ·āđˆāļ­āđ„āļĄāđˆāļ–āļđāļāđƒāļŠāđ‰āļ‡āļēāļ™
āļˆāļ°āļŠāđˆāļ§āļĒāļ›āļĢāļ°āļŦāļĒāļąāļ” resource āļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™
āļ—āļąāđ‰āļ‡ CPU āđāļĨāļ° memory
āļ™āļąāđˆāļ™āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļē āļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ battery āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ­āļĩāļāļ”āđ‰āļ§āļĒ
āđāļ•āđˆāļĒāļąāļ‡āđ€āļ›āđ‡āļ™āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™āļ™āļ°

āļĨāļ­āļ‡āļ—āļģāļāļēāļĢ update āļāļąāļ™āļ”āļđ

āđāļĨāļ°āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢ update docker desktop āļ”āđ‰āļ§āļĒ
āļˆāļ°āđ„āļĄāđˆāļĄāļĩ popup āļ‚āļķāđ‰āļ™āļĄāļēāļ­āļĩāļāđāļĨāđ‰āļ§
āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāđ„āļ› setting āđ„āļ”āđ‰āđ€āļĨāļĒ

↧

āļ„āļ§āļĢāđƒāļŠāđ‰āļ‡āļēāļ™ Stored procedure āđƒāļ™ database āļŦāļĢāļ·āļ­āđ„āļĄāđˆ ?

$
0
0

āđ€āļžāļīāđˆāļ‡āļ„āļļāļĒāđ€āļĢāļ·āđˆāļ­āļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ Stored procedure āļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āđƒāļ™ database
āļ§āđˆāļēāļĢāļ°āļšāļš legacy āļŦāļĨāļēāļĒ āđ† āļ•āļąāļ§āđƒāļŠāđ‰āļ‡āļēāļ™āļāļąāļ™
āđāļĨāļ°āļĒāļąāļ‡āļ„āļ‡āļ”āļđāđāļĨāļĢāļąāļāļĐāļē āđ€āļžāļīāđˆāļĄ feature āļ•āđˆāļēāļ‡ āđ† āļĄāļēāļˆāļ™āļ–āļķāļ‡āļ›āļąāļˆāļˆāļļāļšāļąāļ™
āļ•āļĨāļ­āļ”āļˆāļ™āļāđ‡āļŠāļĢāļĢāđ€āļŠāļĢāļīāļāļ–āļķāļ‡āļĄāļąāļ™āđ€āļĒāļ­āļ°āļĄāļēāļ āđ† !!
āļ§āđˆāļēāđāļ•āđˆāļ›āļąāļāļŦāļēāļĄāļąāļ™āļ„āļ·āļ­āļ­āļ°āđ„āļĢāļāļąāļ™āđāļ™āđˆ ?
āļĄāļąāļ™āđ„āļĄāđˆāļ”āļĩāđƒāļŠāđˆāđ„āļŦāļĄ ?

āļāđˆāļ­āļ™āļ­āļ·āđˆāļ™āļ•āđ‰āļ­āļ‡āļĄāļēāļ”āļđāļ‚āđ‰āļ­āļ”āļĩāļ‚āļ­āļ‡ Stored procedure āļāđˆāļ­āļ™āļ§āđˆāļēāļĄāļĩāļ­āļ°āđ„āļĢāļšāđ‰āļēāļ‡

āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļ–āđ‰āļēāļĄāļąāļ™āđ„āļĄāđˆāļ”āļĩāđāļĨāđ‰āļ§ āļˆāļ°āļĄāļĩāđƒāļ™ database āļ•āđˆāļēāļ‡ āđ† āļ—āļģāđ„āļĄāļāļąāļ™
āļ‚āđ‰āļ­āļ”āļĩāļĄāļĩāļ”āļąāļ‡āļ™āļĩāđ‰

  • āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļŠāļđāļ‡āļĄāļēāļ āđ† āđ€āļžāļĢāļēāļ°āļ§āđˆāļēāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āđ‰āļēāļĄāļĢāļ°āļšāļš network āļ”āļąāļ‡āļ™āļąāđ‰āļ™ network latency āļ™āđ‰āļ­āļĒāļĄāļēāļ āđ†
  • āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ āđ€āļžāļĢāļēāļ°āļ§āđˆāļē āļ­āļĒāļđāđˆāļ—āļĩāđˆāđ€āļ”āļĩāļĒāļ§āļ„āļ·āļ­ database
  • āļ‹āđˆāļ­āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ•āđˆāļēāļ‡ āđ† āļˆāļēāļāļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™ āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ‹āđˆāļ­āļ™āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđ„āļ”āđ‰āļ‡āđˆāļēāļĒ āđ† āļ„āļ™āđƒāļŠāđ‰āļ‡āļēāļ™āļāđ‡āļ‡āđˆāļēāļĒ
  • āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļ‡āļēāļ™āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ­āļ·āđˆāļ™ āđ† āļ‚āļ­āļ‡ database āđ„āļ”āđ‰āļ‡āđˆāļēāļĒ

āđāļ•āđˆāļ›āļąāļāļŦāļēāļ—āļĩāđˆāļĄāļąāļāđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļ„āļ·āļ­

  • āļ™āļģ business logic, validation, logging, traction āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ āđ„āļ›āđƒāļŠāđˆāđ„āļ§āđ‰āđƒāļ™ stored procedure āļĄāļąāļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰ āđāļ•āđˆāļāļēāļĢāļ”āļđāđāļĨāđ„āļĄāđˆāļ‡āđˆāļēāļĒāđ€āļĨāļĒ
  • āđāļ•āđˆāļĨāļ° stored procedure āļ—āļģāļāļēāļĢāđ€āļĢāļĩāļĒāļ stored procedure āļ­āļ·āđˆāļ™ āđ† āđ„āļ›āļĄāļē āļ—āļģāđƒāļŦāđ‰āđāļāđ‰āđ„āļ‚āļ—āļĩāđˆāļŦāļ™āļķāđˆāļ‡ āļ”āļąāļ™āđ„āļ›āļāļĢāļ°āļ—āļšāļ­āļĩāļāļ—āļĩāđˆāļŦāļ™āļķāđˆāļ‡
  • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ versioning āļ‚āļ­āļ‡ store procedure āļĒāļēāļ
  • āđ€āļˆāļ­āļĢāļ°āļšāļšāđāļšāļšāļāļĢāļ°āļˆāļēāļĒāļ•āļēāļĄāđāļ•āđˆāļĨāļ° business/service āļĒāļīāđˆāļ‡āļĨāļģāļšāļēāļ āļĢāļ§āļĄāļ–āļķāļ‡āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ transaction
  • āļāļēāļĢāļ—āļ”āļŠāļ­āļšāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļžāļđāļ”āļ–āļķāļ‡ āđ„āļĄāđˆāļ‡āđˆāļēāļĒāđ€āļĨāļĒ
  • āđ€āļāļīāļ”āļāļēāļĢ lock āļāļąāļš database āļ™āļąāđ‰āļ™ āđ† āļ—āļģāđƒāļŦāđ‰āđ€āļ›āļĨāļĩāđˆāļĒāļ™ āļŦāļĢāļ·āļ­ scale āđ„āļ”āđ‰āļĒāļēāļ
  • āļ‚āļēāļ”āļ„āļ™āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļĢāļđāđ‰āđāļĨāļ°āđ€āļ‚āđ‰āļēāđƒāļˆāļāļąāļš database āđāļĨāļ° stored procedure āļ—āļģāđƒāļŦāđ‰āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđƒāļ™āļāļēāļĢāļ”āļđāđāļĨāļĢāļąāļāļĐāļēāļŠāļđāļ‡āļ‚āļķāđ‰āļ™

āļ”āļąāļ‡āļ™āļąāđ‰āļ™ āļ­āļĒāđˆāļēāđ„āļ›āđ€āļ‚āļĩāļĒāļ™ business logic āđ„āļ§āđ‰āđƒāļ™ stored procedure āļˆāļ°āļ”āļĩāļāļ§āđˆāļē
āđ„āļĄāđˆāđƒāļŠāđˆāļ§āđˆāļē āđ„āļĄāđˆāđƒāļŠāđ‰āđ€āļĨāļĒ āļ‹āļķāđˆāļ‡āļāđ‡āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
āļĒāļīāđˆāļ‡āļ–āđ‰āļēāđ€āļ›āđ‡āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļšāļĢāļ°āļšāļšāļ—āļĩāđˆāļĢāļ§āļĄ database āđ„āļ§āđ‰āļ”āđ‰āļ§āļĒāļāļąāļ™
stored procedure āļˆāļ°āđ€āļŦāļĄāļēāļ°āļŠāļĄāļĄāļēāļ āđ† āđƒāļ™āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ āđ€āļŠāđˆāļ™ ETL (Extract, Transform, Loader)

āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļŠāļīāđˆāļ‡āļ•āđˆāļēāļ‡ āđ† āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļĄāļąāļ™āļ„āļ·āļ­ āļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆ

āļ‹āļķāđˆāļ‡āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļĄāļąāļ™āļ­āļēāļˆāļˆāļ°āļ”āļĩ
āđāļ•āđˆāđ€āļĄāļ·āđˆāļ­āđ€āļ§āļĨāļēāļœāđˆāļēāļ™āđ„āļ›
āļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™
technology āđ€āļ›āļĨāļĩāđˆāļĒāļ™
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ€āļĢāļēāđ€āļ„āļĒāļ—āļģāđ„āļ› āļŦāļĢāļ·āļ­ āļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļĨāļ‡āđ„āļ› āļ­āļēāļˆāļˆāļ°āļœāļīāļ”āļŦāļĢāļ·āļ­āđ„āļĄāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāđ„āļ”āđ‰
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ„āļ§āļĢāļ—āļģāļ„āļ·āļ­ āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ āđāļĨāļ° āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ•āļąāđ‰āļ‡āđāļ•āđˆāđ€āļ™āļīāđˆāļ™ āđ†
āļĄāļīāđƒāļŠāđˆāļ›āļĨāđˆāļ­āļĒāđ„āļ§āđ‰āļˆāļ™āđ€āļ›āđ‡āļ™āļ āļēāļĢāļ° āļ•āđˆāļ­āļ„āļ™āļ”āļđāđāļĨāļĢāļ°āļšāļš
āđāļĨāļ°āļŠāļļāļ”āļ—āđ‰āļēāļĒāļĄāļąāļ™āļāđ‡āļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­ business āđāļšāļšāļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āđ„āļĄāđˆāđ„āļ”āđ‰āđ€āļĨāļĒ

↧

āļ­āđˆāļēāļ™āļŠāļ™āļļāļāļ”āļĩ āļŠāļģāļŦāļĢāļąāļšāļŦāļ™āļąāļ‡āļŠāļ·āļ­ Git Apprentice

$
0
0

āđ€āļžāļīāđˆāļ‡āđ„āļ”āđ‰āļĢāļąāļš email āđāļˆāđ‰āļ‡āļ§āđˆāļēāļĄāļĩāļŦāļ™āļąāļ‡āļŠāļ·āļ­āđƒāļŦāļĄāđˆāļ­āļ­āļāļĄāļē āļŠāļ·āđˆāļ­āļ§āđˆāļē Git Apprentice
āđ€āļ›āđ‡āļ™āļŦāļ™āļąāļ‡āļŠāļ·āļ­āļ—āļĩāđˆāļĄāļĩāđ€āļ™āļ·āđ‰āļ­āļŦāļē āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļāļąāļ™āđ€āļĨāļĒ
āđƒāļŠāđ‰āļ‡āļēāļ™āđƒāļ™ command line āļĨāđ‰āļ§āļ™ āđ†
āļ•āļąāđ‰āļ‡āđāļ•āđˆāđāļ™āļ§āļ„āļīāļ” āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ repostory, āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāđƒāļ™ local āđāļĨāļ° remote
āļ‹āļķāđˆāļ‡āļ„āļĢāļšāļ–āđ‰āļ§āļ™āļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļĄāļēāļ āđ†
āđƒāļ„āļĢāļŠāļ™āđƒāļˆ āļĨāļ­āļ‡āđ„āļ›āļ­āđˆāļēāļ™āļāļąāļ™āđ„āļ”āđ‰
āđāļ•āđˆāļ§āđˆāļēāļ­āđˆāļēāļ™āđ„āļ”āđ‰āđ„āļĄāđˆāļŦāļĄāļ”āļ™āļ° āđ€āļžāļĢāļēāļ°āļ§āđˆāļē āļ•āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™āļŠāļĄāļēāļŠāļīāļāļ”āđ‰āļ§āļĒ

↧

āļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆ What’s your favorite approach to tracking bugs?

$
0
0

āđ€āļŠāđ‰āļēāļ™āļĩāđ‰āđ€āļˆāļ­āļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāļˆāļēāļ Twitter āļ‚āļ­āļ‡ Pragmatic Programmer
āļŠāļ­āļšāļ–āļēāļĄāđ€āļāļĩāđˆāļĒāļ§āļāļēāļĢ tracking bugs āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ‡āļēāļ™
āļ§āđˆāļēāļ—āļģāļāļąāļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢāļšāđ‰āļēāļ‡ ?

https://twitter.com/pragprog/status/1461227677205946368

āļĄāļĩāļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāđ€āļĒāļ­āļ°āđ€āļĨāļĒ āļĒāļāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ€āļŠāđˆāļ™

  • āđāļāđ‰āđ„āļ‚āļ—āļąāļ™āļ—āļĩ āļˆāļ°āđ€āļāđ‡āļšāđ„āļ›āļ—āļģāđ„āļĄ
  • āļˆāļ°āđ€āļāđ‡āļšāđƒāļ™āļĢāļ°āļšāļš āļ–āđ‰āļēāļĄāļēāļˆāļēāļāļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™
  • āđƒāļŦāđ‰ project manager āđ€āļāđ‡āļš
  • āļ—āļģāļāļēāļĢ tracking āđāļĒāļāļ•āļēāļĄāđāļ•āđˆāļĨāļ° environment
  • āđ€āļāđ‡āļšāđ„āļ”āđ‰ āđāļ•āđˆāļ‚āļ­āđƒāļŦāđ‰āđ„āļ”āđ‰ feedback loop āļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§
  • āļ­āļĒāđˆāļēāļŠāļĢāđ‰āļēāļ‡ bug āļŠāļī
  • Divide and conquer

āđƒāļ„āļĢāļĄāļĩāļ§āļīāļ˜āļĩāļāļēāļĢ āļŦāļĢāļ·āļ­ āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāļŠāļģāļŦāļĢāļąāļš bug tracking
āļŠāļēāļĄāļēāļĢāļ–āđāļ™āļ°āļ™āļģāļāļąāļ™āđ„āļ”āđ‰āļ„āļĢāļąāļš

↧
↧

āļĨāļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™ User Flow Template āđƒāļ™ Miro

$
0
0

āļŠāđˆāļ§āļ‡āļ„āđˆāļģāļĄāļĩāļžāļđāļ”āļ„āļļāļĒ User Flow
āđ€āļžāļ·āđˆāļ­āļ­āļ˜āļīāļšāļēāļĒāđāļĨāļ°āļ„āļļāļĒāļĢāļ°āļšāļšāļ‡āļēāļ™āļāļąāļš product āļ—āļĩāđˆāļ—āļģāļ™āļīāļ”āļŦāļ™āđˆāļ­āļĒ
āđ€āļĨāļĒāđ€āļŦāđ‡āļ™āļ§āđˆāļēāđƒāļ™ Miro āļĄāļĩ User Flow template āđƒāļŦāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™
āđ€āļĨāļĒāļĨāļ­āļ‡āļ™āļģāļĄāļēāđƒāļŠāđ‰āļ‡āļēāļ™āļ”āļđ
āļ›āļāļ•āļīāļĄāļąāļāļˆāļ°āđ„āļĄāđˆāđƒāļŠāđ‰ template āļĄāļēāļāđ€āļ—āđˆāļēāđ„āļĢ āļˆāļ°āļŠāļĢāđ‰āļēāļ‡āđ€āļ­āļ‡āļĄāļēāļāļāļ§āđˆāļē

User flow āļ™āļąāđ‰āļ™āļŠāđˆāļ§āļĒāļ—āļģāđƒāļŦāđ‰āđ€āļĢāļēāđ€āļ‚āđ‰āļēāđƒāļˆāļ§āđˆāļē
āļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™āđƒāļ™āđāļ•āđˆāļĨāļ°āļāļĨāļļāđˆāļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļĢāļ°āļšāļšāļ‡āļēāļ™āđ€āļĢāļēāļ­āļĒāđˆāļēāļ‡āđ„āļĢ
āļ•āļąāđ‰āļ‡āđāļ•āđˆāļ•āđ‰āļ­āļ‡āļˆāļ™āļˆāļš
āļŠāđˆāļ§āļĒāļ—āļģāđƒāļŦāđ‰āđ€āļĢāļēāļ­āļ­āļāđāļšāļšāđāļĨāļ°āļ§āļēāļ‡āđāļœāļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡
āđāļĨāļ°āļ—āļļāļāļ„āļ™āđƒāļ™āļ—āļĩāļĄāļĄāļĩāļ āļēāļžāļ‚āļ­āļ‡āđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļĢāđˆāļ§āļĄāļāļąāļ™
āļ–āđ‰āļēāļœāļīāļ”āļāđ‡āļœāļīāļ”āđ„āļ›āļ”āđ‰āļ§āļĒāļāļąāļ™

āđ‚āļ”āļĒāđƒāļ™ template āļ•āļąāļ§āļ™āļĩāđ‰ āļˆāļ°āļĄāļĩ element āļŦāļĢāļ·āļ­āļŠāļąāļāļĨāļąāļāļĐāļ“āđŒāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ”āļąāļ‡āļ™āļĩāđ‰

  • āļˆāļļāļ”āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđāļĨāļ°āļŠāļīāđ‰āļ™āļŠāļļāļ”āļ‚āļ­āļ‡ flow āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™
  • Process āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļŦāļĢāļ·āļ­ action āļ—āļĩāđˆāđ€āļāļīāļ”āļˆāļēāļāļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™
  • āļˆāļļāļ”āļ—āļĩāđˆāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆ āļ§āđˆāļēāļˆāļ°āđ„āļ›āļ—āļīāļĻāļ—āļēāļ‡āđ„āļŦāļ™

āļ‹āļķāđˆāļ‡ feedback āļ—āļĩāđˆāđ„āļ”āđ‰āļĢāļąāļšāļ„āļ·āļ­ āļŠāđˆāļ§āļ‡āđāļĢāļāļ­āļēāļˆāļˆāļ°āļ‡āļ‡ āđ† āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ™āļīāļ”āļŦāļ™āđˆāļ­āļĒ
āđāļ•āđˆāđ€āļĄāļ·āđˆāļ­āļ—āļģāļāļēāļĢāļ­āļ˜āļīāļšāļēāļĒ āļ•āļāļĨāļ‡āļāļąāļ™āđāļĨāđ‰āļ§
āļāđ‡āļ—āļģāđƒāļŦāđ‰ flow āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ—āļĩāļĄāļ”āļđāđ„āļŦāļĨāļĨāļ·āđˆāļ™āļ‚āļķāđ‰āļ™
āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļžāļ­āđ„āļ”āđ‰āđ€āļŦāđ‡āļ™āļĄāļļāļĄāļĄāļ­āļ‡āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ°āļ„āļ™āđāļĨāđ‰āļ§
āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļˆāļ°āļ—āļģāđƒāļŦāđ‰āļ”āļĩāļ‚āļķāđ‰āļ™āđ„āļ”āđ‰āļ­āļĩāļāļ”āđ‰āļ§āļĒ
āđāļĨāļ°āđ€āļ›āđ‡āļ™āļˆāļļāļ”āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļĩāđˆāļ”āļĩ āļāđˆāļ­āļ™āđ€āļĢāļīāđˆāļĄāļ—āļģāļ‡āļēāļ™āļ™āļąāđ‰āļ™ āđ†

āļĨāļ­āļ‡āđƒāļŠāđ‰āļāļąāļ™āļ”āļđāļ„āļĢāļąāļš

↧

āļŠāļĢāļļāļ›āđāļ™āļ§āļ„āļīāļ”āļˆāļēāļāļāļēāļĢāđāļšāđˆāļ‡āļ›āļąāļ™āđ€āļĢāļ·āđˆāļ­āļ‡ Microservices

$
0
0

āļĄāļĩāđ‚āļ­āļāļēāļŠāđ„āļ”āđ‰āđāļšāđˆāļ‡āļ›āļąāļ™āļ„āļ§āļēāļĄāļĢāļđāđ‰āđ€āļĢāļ·āđˆāļ­āļ‡ Microservices āļĄāļēāļšāđ‰āļēāļ‡āđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ
āļ­āļ˜āļīāļšāļēāļĒāļ§āđˆāļēāļĄāļąāļ™āļ„āļ·āļ­āļŦāļ™āļķāđˆāļ‡āđƒāļ™āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļēāļšāļēāļ‡āļ­āļĒāđˆāļēāļ‡
āđƒāļ™āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ•āđ‰āļ­āļ‡āđ€āļ‚āđ‰āļēāđƒāļˆāļ”āđ‰āļ§āļĒāļ§āđˆāļēāļ›āļąāļāļŦāļēāļ„āļ·āļ­āļ­āļ°āđ„āļĢ
āđ€āļĢāļēāļˆāļ°āđāļāđ‰āđ„āļ‚āđ€āļĢāļ·āđˆāļ­āļ‡āļ­āļ°āđ„āļĢ
āļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļĩāđˆāđ€āļĨāļ·āļ­āļāļĄāļĩāļ—āļąāđ‰āļ‡āļ‚āđ‰āļ­āļ”āļĩāđāļĨāļ°āļ‚āđ‰āļ­āđ€āļŠāļĩāļĒāļ•āđ‰āļ­āļ‡āđ€āļ‚āđ‰āļēāđƒāļˆāļĄāļąāļ™āļ”āđ‰āļ§āļĒ
āļ„āļīāļ”āđ„āļ”āđ‰āļāđ‡āļ•āđ‰āļ­āļ‡āļ—āļģāđ„āļ”āđ‰
āļˆāļēāļāļ™āļąāđ‰āļ™āļāđ‡āļ§āļąāļ”āļœāļĨāļ§āđˆāļēāđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢāđ€āļžāļ·āđˆāļ­āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ•āđˆāļ­āđ„āļ›āđ€āļĢāļ·āđˆāļ­āļĒ āđ†

āđ‚āļ”āļĒāļ—āļģāļāļēāļĢāļŠāļĢāļļāļ›āđāļ™āļ§āļ—āļēāļ‡āļ—āļĩāđˆāđāļšāđˆāļ‡āļ›āļąāļ™āđ„āļ§āđ‰āđ€āļ›āđ‡āļ™āđ€āļĢāļ·āđˆāļ­āļ‡ āđ† āđ„āļ§āđ‰āļ”āļąāļ‡āļ™āļĩāđ‰

  • āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāļāļēāļĢāļ­āļĒāđˆāļēāđ€āļžāļīāđˆāļ‡āđāļĒāļ service āļ­āļ­āļāļĄāļē āđƒāļŦāđ‰āđ€āļžāļīāđˆāļĄ feature āđƒāļ™ service āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļāđˆāļ­āļ™ āļ—āļģāđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ module āļ—āļĩāđˆāļ”āļĩāļāđˆāļ­āļ™ āļŦāļĢāļ·āļ­ āļ­āļēāļˆāļˆāļ°āđ€āļ›āđ‡āļ™ library āļāđ‡āđ„āļ”āđ‰
  • āļ–āđ‰āļēāļˆāļ°āđāļĒāļ service āļ­āļ­āļāļĄāļē āļ•āđ‰āļ­āļ‡āļĄāļĩāđ€āļŦāļ•āļļāļœāļĨāļ—āļĩāđˆāļ”āļĩāđāļĨāļ°āļ–āļđāļāļ•āđ‰āļ­āļ‡ āļŦāļĨāļąāļ āđ† āļ„āļ·āļ­āļĄāļĩ business value āļ­āļĒāđˆāļēāļ‡āđ„āļĢ
  • āļāļēāļĢāđāļĒāļāļ•āđ‰āļ­āļ‡āļĄāļĩāļāļēāļĢ migrate āļŦāļĢāļ·āļ­āļāļēāļĢāļĒāđ‰āļēāļĒāļ—āļąāđ‰āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ āļ‹āļķāđˆāļ‡āļ•āđ‰āļ­āļ‡āļ„āđˆāļ­āļĒ āđ† āļ—āļģāđāļšāļš incremental āļ­āļĒāđˆāļēāļ—āļģāđāļšāļš big bang
  • āđ€āļĢāļīāđˆāļĄāļ—āļĩāđˆāļ›āļąāļāļŦāļēāļāđˆāļ­āļ™āđ€āļŠāļĄāļ­
  • āļ—āļģāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡ āđ„āļĄāđˆāļĄāļĩāļ„āļ§āļēāļĄāļ§āđˆāļēāļˆāļšāļŦāļĢāļ·āļ­āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™
  • āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļĄāļąāļ™āļ„āļ·āļ­ āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļē āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļ–āđ‰āļēāļ—āļģāđāļĨāđ‰āļ§āļĄāļĩāļ›āļąāļāļŦāļēāļĄāļēāļāļāļ§āđˆāļēāđ€āļ”āļīāļĄ āļ™āđˆāļēāļˆāļ°āđ€āļ”āļīāļ™āļœāļīāļ”āļ—āļēāļ‡āđāļ™āđˆ āđ† āļĨāļ­āļ‡āļĒāđ‰āļ­āļ™āļāļĨāļąāļšāļĄāļēāļ—āļĩāđˆāļˆāļļāļ”āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ āđāļĨāđ‰āļ§āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļŦāļĄāđˆ

āļ‚āļ­āđƒāļŦāđ‰āļŠāļ™āļļāļāļāļąāļšāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āđāļĨāļ°āđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļē

↧

āļĄāļēāļ—āļ”āļŠāļ­āļšāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™ Web Developer āļāļąāļ™āļŦāļ™āđˆāļ­āļĒ

$
0
0

āđ„āļ›āđ€āļˆāļ­ tweet āđƒāļ™ Twiter āđ€āļāļĩāđˆāļĒāļ§āļāļąāļš āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āđˆāļē
āļ„āļļāļ“āđ€āļ›āđ‡āļ™ Web Developer āļˆāļĢāļīāļ‡ āđ† āļŦāļĢāļ·āļ­āđ„āļĄāđˆ
āđ‚āļ”āļĒāđƒāļŦāđ‰āđ€āļĢāļēāļ—āļģāļāļēāļĢāļ­āļ˜āļīāļšāļēāļĒāļ§āđˆāļē
āđ€āļĢāļ·āđˆāļ­āļ‡āļ•āđˆāļēāļ‡ āđ† āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ„āļ·āļ­āļ­āļ°āđ„āļĢ āļ­āļĒāđˆāļēāļ‡āđ„āļĢ
āļ–āđ‰āļēāđ„āļĄāđˆāļĢāļđāđ‰āļˆāļąāļāđāļŠāļ”āļ‡āļ§āđˆāļēāļ„āļļāļ“āđ„āļĄāđˆāļ™āđˆāļēāļˆāļ°āđ€āļ›āđ‡āļ™ Web Developer āļˆāļĢāļīāļ‡ āđ† !!
āļĄāļēāļĨāļ­āļ‡āļ—āļ”āļŠāļ­āļšāļ•āļąāļ§āđ€āļ­āļ‡āļ”āļđ

  • Closures
  • Hoisting
  • Reduce
  • this in JS
  • Prototypal inheritance
  • IIFE
  • Promises
  • SPA
  • Virtual DOM
  • Webpack
  • REST
  • Lazy loading
  • JWT
  • CSRF
  • XSS
  • CORS

āļžāļ­āļĨāļ­āļ‡āļ”āļđāđāļĨāđ‰āļ§ āļ•āļ­āļšāđ„āļ”āđ‰āđ€āļĨāļĒāļ§āđˆāļē āļœāļĄāđ„āļĄāđˆāđƒāļŠāđˆ Web Developer āđāļ™āđˆ āđ†

āļ›āļĨ. āļ•āđ‰āļ­āļ‡āļĢāļđāđ‡āđāļĨāļ°āđ€āļ‚āđ‰āļēāđƒāļˆāđ€āļĢāļ·āđˆāļ­āļ‡āļ­āļ°āđ„āļĢāļ­āļĩāļ āđāļ™āļ°āļ™āļģāļāļąāļ™āđ„āļ”āđ‰āļ™āļ°āļ„āļĢāļąāļš ?

↧

Tip :: āļ—āļģāļāļēāļĢāđƒāļŠāđˆāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™ binary file āļŠāļģāļŦāļĢāļąāļš Go

$
0
0

āļ„āļģāļ–āļēāļĄ
āļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļģāļŦāļ™āļ” version āļ•āđˆāļēāļ‡ āđ† āļ‚āļ­āļ‡ binary file
āļ—āļĩāđˆ build āļĄāļēāļˆāļēāļāļ āļēāļĐāļē Go āļˆāļ°āļ—āļģāđ„āļ”āđ‰āđ„āļŦāļĄ ?

āļ„āļģāļ•āļ­āļšāļ„āļ·āļ­ āļ—āļģāđ„āļ”āđ‰
āđāļĨāđ‰āļ§āļ—āļģāļ­āļĒāđˆāļēāļ‡āđ„āļĢ ?

āđƒāļ™āļāļēāļĢ build binary file āļ”āđ‰āļ§āļĒ Go āļ™āļąāđ‰āļ™
āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ‚āđ‰āļēāđ„āļ›āļœāđˆāļēāļ™ parameter --ldflags āđ€āļ‚āđ‰āļēāđ„āļ›
āđ€āļžāļĩāļĒāļ‡āđ€āļ—āđˆāļēāļ™āļĩāđ‰āļāđ‡āļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļāļēāļĢāđ„āļ”āđ‰āđāļĨāđ‰āļ§
āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ„āļ›āļāļģāļŦāļ™āļ”āļœāđˆāļēāļ™ environment variable āļŦāļĢāļ·āļ­āļžāļ§āļ config file āđƒāļ” āđ† āļ—āļąāđ‰āļ‡āļŠāļīāđ‰āļ™

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ”āļąāļ‡āļ™āļĩāđ‰

[gist id="a489417ec81a68fe56c8793a69a63c33" file="main.go"]

āļˆāļēāļāļ™āļąāđ‰āļ™āļ—āļģāļāļēāļĢ build āļ”āļąāļ‡āļ™āļĩāđ‰

[gist id="a489417ec81a68fe56c8793a69a63c33" file="1.txt"]

āļŠāđˆāļ§āļ™āđƒāļ™ Go 1.18 āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰ add version āļˆāļēāļ git commit āđ„āļ”āđ‰āđ€āļĨāļĒ

↧
↧

āļŠāļĢāļļāļ›āđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ Fast local development āļŠāļģāļŦāļĢāļąāļš Microservices āļˆāļēāļ Lyft

$
0
0

āļˆāļēāļāļšāļ—āļ„āļ§āļēāļĄāđ€āļĢāļ·āđˆāļ­āļ‡ Scaling productivity on microservices at Lyft (Part 2): Optimizing for fast local development
āļ—āļģāļāļēāļĢāļ­āļ˜āļīāļšāļēāļĒāļ–āļķāļ‡āļāļēāļĢāđ€āļžāļīāđˆāļĄ productivity āļ‚āļ­āļ‡āļāļēāļĢāļžāļąāļ’āļ™āļēāļĢāļ°āļšāļšāļ‚āļ­āļ‡ Lyft
āļ‹āļķāđˆāļ‡āļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ•āļēāļĄāđāļ™āļ§āļ„āļīāļ” Microservicesāļ§āđˆāļēāļ—āļģāļ­āļĒāđˆāļēāļ‡āđ„āļĢ
āļˆāļķāļ‡āļˆāļ°āļŠāđˆāļ§āļĒāđƒāļŦāđ‰ developer experience āļ”āļĩāļ‚āļķāđ‰āļ™
āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡ local āļŦāļĢāļ·āļ­āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ™āļąāļāļžāļąāļ’āļ™āļēāđāļ•āđˆāļĨāļ°āļ„āļ™āđƒāļŦāđ‰āđ„āļ”āđ‰āļĄāļēāļāļ—āļĩāđˆāļŠāļļāļ”
āļĄāļēāļ”āļđāļāļąāļ™āļ§āđˆāļēāļ—āļēāļ‡āļ—āļĩāļĄāļ‚āļ­āļ‡ Lift āļ—āļģāļ­āļĒāđˆāļēāļ‡āđ„āļĢāļāļąāļ™āļšāđ‰āļēāļ‡ ?

āđ€āļĢāļīāđˆāļĄāļ—āļĩāđˆāļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļāļēāļĢāļžāļąāļ’āļ™āļēāļˆāļ°āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒ 2 āļŠāđˆāļ§āļ™āļ„āļ·āļ­

  • Inner dev loop āļ„āļ·āļ­āļāļēāļĢāđāļāđ‰āđ„āļ‚āđāļĨāļ° run test āļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡ local āļ‚āļ­āļ‡āļ™āļąāļāļžāļąāļ’āļ™āļē
  • Outer dev loop āļ„āļ·āļ­ CI/CD process āļ™āļąāđˆāļ™āđ€āļ­āļ‡ āļ‹āļķāđˆāļ‡āļ­āļĒāļđāđˆāđƒāļ™āļ­āļĩāļāļĢāļ°āļšāļšāļŦāļ™āļķāđˆāļ‡ āļˆāļ°āļ—āļģāļ‡āļēāļ™āđ€āļĄāļ·āđˆāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđƒāļ™ version control āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ„āļ§āđ‰

āđāļŠāļ”āļ‡āļ”āļąāļ‡āļĢāļđāļ›

āđ‚āļ”āļĒāļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ‚āļēāļ”āļŦāļēāļĒāđ„āļ›āđƒāļ™ Inner Dev Loop āļ„āļ·āļ­
āļāļēāļĢāļ—āļģāđƒāļŦāđ‰āđ€āļŦāļĄāļ·āļ­āļ™āļŦāļĢāļ·āļ­āļ„āļĨāđ‰āļēāļĒ Outer Dev Loop āļ™āļąāđˆāļ™āļ„āļ·āļ­
āļāļēāļĢāļĄāļĩāđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ CI/CD process āļ™āļąāđˆāļ™āđ€āļ­āļ‡
āļ–āđ‰āļēāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰āļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡ local āļ‚āļ­āļ‡āļ™āļąāļāļžāļąāļ’āļ™āļēāļāđˆāļ­āļ™
āļ™āđˆāļēāļˆāļ°āļŠāđˆāļ§āļĒāļĨāļ”āđ€āļ§āļĨāļēāļ‚āļ­āļ‡āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļˆāļēāļāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ•āđˆāļēāļ‡ āđ† āđ„āļ”āđ‰āļ”āļĩ

āđ‚āļ”āļĒāļāļēāļĢ run āļšāļ™ local āļ™āļąāđ‰āļ™ āļ—āļēāļ‡āļ—āļĩāļĄāđ„āļĄāđˆāđ„āļ”āđ‰āđƒāļŠāđ‰āļ‡āļēāļ™ Container āđ€āļŠāđˆāļ™ Docker

āđ€āļžāļĢāļēāļ°āļ§āđˆāļēāļĄāļĩāļ›āļąāļāļŦāļēāļĄāļēāļāļĄāļēāļĒ
āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļāļīāļ™āļ—āļĢāļąāļžāļĒāļēāļāļĢāļĄāļēāļāļ­āļĩāļāļ”āđ‰āļ§āļĒ
āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļˆāļķāļ‡āļ—āļģāļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡āđāļšāļšāļ›āļāļ•āļīāļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āđ„āļ›āđ€āļĨāļĒ
āđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ•āđˆāļēāļ‡ āđ† āļĄāļēāļŠāđˆāļ§āļĒāļˆāļąāļ”āļāļēāļĢ environment āļŦāļĢāļ·āļ­ virtual environment āđ€āļŠāđˆāļ™

  • Python āļˆāļ°āđƒāļŠāđ‰ AActivator
  • Node āļˆāļ°āđƒāļŠāđ‰ Nodeenv

āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļˆāļ° run āđ€āļžāļĩāļĒāļ‡ service āđ€āļ”āļĩāļĒāļ§āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™
āđ€āļžāļ·āđˆāļ­āļĨāļ”āļāļēāļĢāđƒāļŠāđ‰āļ—āļĢāļąāļžāļĒāļēāļāļĢāļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđāļĨāļ°āļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆ

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ‚āļ­āļ‡āļāļēāļĢ run service āđ€āļ›āđ‡āļ™āļ”āļąāļ‡āļ™āļĩāđ‰

  • āļ—āļģāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš environment āļ§āđˆāļēāļĄāļĩ software āđāļĨāļ° configuration āļ•āļēāļĄāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ„āļ§āđ‰āļŦāļĢāļ·āļ­āđ„āļĄāđˆ
  • āļ—āļģāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ virtual environment āļ‚āļķāđ‰āļ™āļĄāļē
  • āļ—āļģāļāļēāļĢ start data store āļŦāļĢāļ·āļ­ database āļ‚āļķāđ‰āļ™āļĄāļē
  • āļ—āļģāļāļēāļĢ start proxy app āļ‚āļķāđ‰āļ™āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāđ€āļĢāļĩāļĒāļāļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļ service āļ­āļ·āđˆāļ™ āđ† āļ—āļģāđƒāļŦāđ‰āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢ mock āļ™āļąāđˆāļ™āđ€āļ­āļ‡
  • āļ—āļģāļāļēāļĢ initial āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™ database āļˆāļēāļ script āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āđ„āļ§āđ‰
  • āļŠāļļāļ”āļāđ‡āļ—āļģāļāļēāļĢ run server āļ‚āļķāđ‰āļ™āļĄāļē āđ€āļžāļ·āđˆāļ­āļ—āļģāļāļēāļĢāļĄāļ”āļŠāļ­āļšāļŦāļĢāļ·āļ­āđƒāļŠāđ‰āļ‡āļēāļ™āļ•āđˆāļ­āđ„āļ›

āđ‚āļ”āļĒāļ—āļĩāđˆ Proxy app āđāļŠāļ”āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ”āļąāļ‡āļĢāļđāļ›

āđ‚āļ”āļĒāļĢāļ§āļĄāđāļĨāđ‰āļ§āđ€āļ›āđ‡āļ™āđāļ™āļ§āļ„āļīāļ”āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆ
āļ™āđˆāļēāļĨāļ­āļ‡āļ™āļģāļĄāļēāļ›āļĢāļ°āļĒāļļāļāļ•āđŒāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļ™

↧

āļŠāļĢāļļāļ›āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļē Log4j āļˆāļēāļ Spring

$
0
0

āļˆāļēāļāļ›āļąāļāļŦāļēāļ‚āļ­āļ‡ Log4j core āļ—āļĩāđˆāļĄāļĩāļŠāđˆāļ­āļ‡āđ‚āļŦāļ§āđˆāđƒāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩ āļˆāļēāļ CVE-2021-44228
āļ‹āļķāđˆāļ‡āļ—āļēāļ‡ Spring āđ„āļ”āđ‰āļ­āļ­āļāļĄāļēāļ­āļ˜āļīāļšāļēāļĒ
āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļ§āļīāļ˜āļĩāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš āđāļāđ‰āđ„āļ‚āļ•āđˆāļēāļ‡ āđ† āđ„āļ§āđ‰āļ”āļąāļ‡āļ™āļĩāđ‰

āļŦāļĨāļąāļ āđ† āļ›āļąāļāļŦāļēāļ™āļĩāđ‰āļ–āļđāļāđāļāđ‰āđ„āļ‚āđāļĨāđ‰āļ§āđƒāļ™ Log4J version 2.15.0

āļŠāļģāļŦāļĢāļąāļšāļ„āļ™āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™ Spring Boot āđāļšāļš default āđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļē
āļˆāļ°āđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļąāļšāļœāļĨāļāļĢāļ°āļ—āļš āđ€āļžāļĢāļēāļ°āļ§āđˆāļēāđ„āļĄāđˆāđ„āļ”āđ‰āđƒāļŠāđ‰āļ‡āļēāļ™ Log4j-core āļ™āļąāđˆāļ™āđ€āļ­āļ‡

āđāļ•āđˆāļ–āđ‰āļēāđƒāļ„āļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™ default logging āļĄāļēāđ€āļ›āđ‡āļ™ Log4j
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļēāđ„āļ”āđ‰āļĢāļąāļšāļœāļĨāļāļĢāļ°āļ—āļšāđāļ™āđˆāļ™āļ­āļ™
āļ‹āļķāđˆāļ‡āļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡ upgrade āđ„āļ›āđƒāļŠāđ‰ log4j version 2.15.0

āļŠāļģāļŦāļĢāļąāļš project āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™āļœāđˆāļēāļ™ Apache Maven
āđƒāļŦāđ‰āļ—āļģāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš version āļ‚āļ­āļ‡ log4j āļ”āļąāļ‡āļ™āļĩāđ‰

[code]mvn dependency:list | grep log4j[/code]

āļŠāđˆāļ§āļ™ Gradle āļāđ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ”āļąāļ‡āļ™āļĩāđ‰

[code]gradle dependencyInsight --dependency log4j-core[/code]

āļŠāļģāļŦāļĢāļąāļš project āļ—āļĩāđˆāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđāļāđ‰āđ„āļ‚ code āļŦāļĢāļ·āļ­ dependency āđ„āļ”āđ‰

āļāđ‡āđƒāļŦāđ‰āđāļāđ‰āđ„āļ‚ environment variable āđƒāļ™āđ„āļŸāļĨāđŒ property

[code]log4j2.formatMsgNoLookups=true[/code]

āļŦāļĢāļ·āļ­āđƒāļ™ environment variable āļ”āļąāļ‡āļ™āļĩāđ‰

[code]java -Dlog4j2.formatMsgNoLookups=true -jar myapp.jar[/code]
↧

āļŠāļ§āļąāļŠāļ”āļĩ Fuzzing test āđƒāļ™ Go 1.18

$
0
0

āđƒāļ™ Go 1.18 āļ™āļąāđ‰āļ™ āļˆāļ°āļĄāļĩāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļŦāļĄāđˆ āđ† āļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāđ€āļžāļīāđˆāļĄāđ€āļ‚āđ‰āļēāļĄāļē āđ€āļŠāđˆāļ™

  • Type parameters (Generic)
  • Workspace
  • Fuzzing test

āđ‚āļ”āļĒāļŠāļīāđˆāļ‡āļ—āļĩāđˆāļˆāļ°āļ­āļ˜āļīāļšāļēāļĒāđƒāļ™ blog āļ™āļĩāđ‰āļ„āļ·āļ­ Fuzzing test
āđ€āļžāļīāđˆāļĄāđ€āļ‚āđ‰āļēāļĄāļēāđƒāļ™ testing library āļ™āļąāđˆāļ™āđ€āļ­āļ‡
āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļēāļĒāļąāļ‡āđ€āļ›āđ‡āļ™ beta version āļ­āļĒāļđāđˆ

āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļŦāļĨāļąāļ āđ† āļ‚āļ­āļ‡ Fuzzing test āļ„āļ·āļ­

āļŠāđˆāļ§āļĒāļ—āļģāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ input āđāļšāļš random āļ‚āļķāđ‰āļ™āļĄāļē
āļ•āļēāļĄ type āļ‚āļ­āļ‡ method āļ—āļĩāđˆāļ—āļ”āļŠāļ­āļšāļœāđˆāļēāļ™ unit test āļ™āļąāđˆāļ™āđ€āļ­āļ‡
āļ—āļģāđƒāļŦāđ‰āļĨāļ”āļ›āļąāļāļŦāļēāđ€āļĢāļ·āđˆāļ­āļ‡ edge case āļ—āļĩāđˆāļ™āļąāļāļžāļąāļ’āļ™āļēāļ­āļēāļˆāļˆāļ°āļžāļĨāļēāļ”āđ„āļ›āđ„āļ”āđ‰āđ€āļĒāļ­āļ°
āļ—āļģāđƒāļŦāđ‰āļĄāļĩ data test āļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āđ€āļĢāļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡ security āļ­āļĩāļāļ”āđ‰āļ§āļĒ
āļ‹āļķāđˆāļ‡āļšāļēāļ‡āļ„āļ™āļ­āļēāļˆāļˆāļ°āđ€āļ„āļĒāđ„āļ”āđ‰āļĒāļīāļ™āđ€āļĢāļ·āđˆāļ­āļ‡ Mutation testing
āļ”āļąāļ‡āļ™āļąāđ‰āļ™ Fuzzing test āļ™āđˆāļēāļˆāļ°āļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļĄāļēāļ āđ† āļŠāļģāļŦāļĢāļąāļšāļ™āļąāļāļžāļąāļ’āļ™āļē
āļĄāļēāļĨāļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™āļāļąāļ™āļ”āļĩāļāļ§āđˆāļē

āļˆāļēāļāđ€āļ­āļāļŠāļēāļĢāļ‚āļ­āļ‡ Go āļ™āļąāđ‰āļ™ āđ€āļĢāļēāđ€āļžāļĩāļĒāļ‡āđƒāļŠāđ‰ prefix āļ‚āļ­āļ‡ test case āļŠāļ·āđˆāļ­āļ§āđˆāļē Fuzz

[gist id="622b81be79b89e89b3cfdd4cb6532cda" file="1.go"]

āđƒāļ™āļāļēāļĢ run test āļ™āļąāđ‰āļ™āļāđ‡āđƒāļŠāđ‰āļ‡āļēāļ™āļœāđˆāļēāļ™ go test āđ€āļŦāļĄāļ·āļ­āļ™āđ€āļ”āļīāļĄ āļ”āļąāļ‡āļ™āļĩāđ‰

āđāļ™āđˆāļ™āļ­āļ™āđƒāļŠāđ‰āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢ run āļ™āļēāļ™
āđ€āļžāļĢāļēāļ°āļ§āđˆāļē āļˆāļ°āļ—āļ”āļŠāļ­āļšāđāļšāļš sub-test āļ‹āļķāđˆāļ‡āļĄāļĩ test case āļˆāļģāļ™āļ§āļ™āļĄāļēāļ āđ†

[gist id="622b81be79b89e89b3cfdd4cb6532cda" file="1.txt"]

āđāļ–āļĄ CPU āļ™āļĩāđˆāļžāļļāđˆāļ‡āļ›āļĢāļĩāđŠāļ”āļĄāļēāļ āđ†

āļĨāļ­āļ‡āļĻāļķāļāļĐāļēāđāļĨāļ°āđƒāļŠāđ‰āļ‡āļēāļ™āļāļąāļ™āļ”āļđāļ„āļĢāļąāļš
āđƒāļŦāđ‰āļ—āļģāļŦāļĨāļąāļ‡āļˆāļēāļāļ—āļ”āļŠāļ­āļš function āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ›āļāļ•āļīāļœāđˆāļēāļ™āđāļĨāđ‰āļ§āļ™āļ°āļ„āļĢāļąāļš

↧
Viewing all 2000 articles
Browse latest View live