β ΠΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° JavaScript. jExcel ΡΡΠΎ vanilla javascript ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠΎΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², JSON, CVS ΠΈ XSLX ΡΠ°ΠΉΠ»ΠΎΠ².
https://bossanova.uk/jexcel
https://bossanova.uk/jexcel
β ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ΅ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ² ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΌΠΎΡΡΠΈΠ·ΠΌΠ°Ρ
: ΡΠ½Π΄ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΈ ΠΈΠ·ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ. ΠΡΠ±ΠΎΠΉ ΠΌΠΎΡΡΠΈΠ·ΠΌ (Morphism) ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ²Π°ΡΡ:
ΠΠ½Π΄ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ (Endomorphism) - ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΈΠΏ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°ΠΊΠΎΠΉ-ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ·ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ (Isomorphism) - ΠΏΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΌΠΈ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΡ Π½Π΅ ΡΠ΅ΡΡΡΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ ΡΠΎΡΠΊΠΈ Π² Π΄Π΅ΠΊΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° [0, 1] ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° {x:0, y:1}:
//
ΠΠ½Π΄ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ (Endomorphism) - ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΈΠΏ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°ΠΊΠΎΠΉ-ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
// uppercase :: String -> String
const uppercase = (str) => str.toUpperCase()
// decrement :: Number -> Number
const decrement = (x) => x - 1
ΠΠ·ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ (Isomorphism) - ΠΏΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΌΠΈ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΡ Π½Π΅ ΡΠ΅ΡΡΡΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ ΡΠΎΡΠΊΠΈ Π² Π΄Π΅ΠΊΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° [0, 1] ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° {x:0, y:1}:
//
Providing functions to convert in both directions makes them isomorphic.Π³ΠΎΠ΄Π½Ρ Π² ΡΡΡΠ»ΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅. ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
const pairToCoords = (pair) => ({x: pair[0], y: pair[1]})
const coordsToPair = (coords) => [coords.x, coords.y]
coordsToPair(pairToCoords([1, 2])) // [1, 2]
pairToCoords(coordsToPair({x: 1, y: 2})) // {x: 1, y: 2}
Π‘Π΅
β serverless-offline - ΡΠΌΡΠ»ΡΡΠΎΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² AWS Ξ» ΠΈ API Gateway. ΠΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ serverless ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ Π²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
β Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΠ² Π΄Π»Ρ ΡΠΈΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π»Ρ JavaScript. Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
https://github.com/ryanmcdermott/clean-code-javascript
https://github.com/ryanmcdermott/clean-code-javascript
β ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π²Π°ΡΠΈΡ
npm ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². Π― Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ semantic release - ΡΡΠΎ Π·ΠΎΠ»ΠΎΡΠ°Ρ ΡΠ΅ΡΠΈΡ npm.
https://semantic-release.gitbook.io/semantic-release/
https://semantic-release.gitbook.io/semantic-release/
Π Π΅Π±ΡΡ, Ρ Π½Π°Ρ ΠΎΡΡΠ°Π»ΠΈΡΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 13 Π±ΠΈΠ»Π΅ΡΠΎΠ² Π½Π° ΠΏΠ΅ΡΠ²ΡΡ Π² ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ Π²ΡΡΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΎΡΡΠΎΠΈΡΡΡ ΡΠΆΠ΅ Π² ΡΡΡ ΡΡΠ΅Π΄Ρ, 22 ΡΠ½Π²Π°ΡΡ. ΠΠ΄Π΅ΠΌ Π² Π³ΠΎΡΡΠΈ ΠΠ°ΡΡΠΈΠ½Π° Π§Π°ΠΎΠ²Π° (Software Architect SBTech) ΠΈ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° ΠΠΎΡΡΠ°ΡΡΠΊΠ° (Senior front-end developer ITecGurus). Π’Π°ΠΊ ΡΡΠΎ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, Π½Π°Π»Π΅ΡΠ°ΠΉ ΡΠΎΡΠΎΠΏΠΈΡΡ π https://2event.com/en/events/1855761
2Event
Math.random(). Growing Seniority
Math.random(). The engineering community.
We are the community of software engineers connected around JS-based stack of technologies. The main goal is to gather together people and share knowledge between them. We are going to deepβ¦
We are the community of software engineers connected around JS-based stack of technologies. The main goal is to gather together people and share knowledge between them. We are going to deepβ¦
β Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°Π· ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΠΌΠΎΡΡΠΈΠ·ΠΌΠ°Ρ
: ΡΠ½Π΄ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΈ ΠΈΠ·ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΌΠΎΡΡΠΈΠ·ΠΌΠ°Ρ
: Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ (homomorphism) .
ΠΡΡΡΡ (M, β M, eM) ΠΈ (N, β N, eN) β Π΄Π²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΌΠΎΠ½ΠΎΠΈΠ΄Π° (ΠΎ ΠΌΠΎΠ½ΠΎΠΈΠ΄Π°Ρ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅). Π€ΡΠ½ΠΊΡΠΈΡ h: M β N Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ (homomorphism), Π΅ΡΠ»ΠΈ h(x β M y) = h(x) β N h(y) Π΄Π»Ρ Π»ΡΠ±ΡΡ x ΠΈ y ΠΈΠ· M, ΠΈ h(eM) = eN.
ΠΡΠΈΠΌΠ΅ΡΡ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠ²:
- Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΡΠΈΡΠ΅Π», ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΡΠΈΡΠ΅Π», Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΡΠΈΡΠ΅Π» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΡΠ½ΡΠ΅ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΡ hom(+, id, 0), hom(β , id, 1), hom(max, id, ββ) ΠΈ hom(min, id, +β) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΏΠΈΡΠΎΡΠ½ΡΠ΅ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ id, Π±ΡΠ΄Π΅ΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ reduce(β , e).
- Π€ΡΠ½ΠΊΡΠΈΡ length, Π²ΡΡΠΈΡΠ»ΡΡΡΠ°Ρ Π΄Π»ΠΈΠ½Ρ ΡΠΏΠΈΡΠΊΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΡΠ½ΡΠΌ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ hom(+, one, 0), Π³Π΄Π΅ one(x) = 1.
- Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ f ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΡΠ½ΡΠΌ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ hom(++, g, []), Π³Π΄Π΅ g(x) = [f(x)]. Π’Π°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ map(f).
- Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΎΡΠ½ΠΎΠ³ΠΎ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠ°. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΏΡΡΡΡ merge β ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π²ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ², list(x) = [x] β ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. Π’ΠΎΠ³Π΄Π° Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ hom(merge, list, []) Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠΎΠΌΡΠΌ ΡΠΏΠΈΡΠΎΡΠ½ΡΠΌ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ.
Π£ΡΡ... ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠ°, ΡΡΠΎΠ±Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π·ΠΎΡΠ²Π°ΡΡ ΠΌΠΎΠ·Π³ Π² ΡΡΡΠ»ΠΊΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ haskell-style ΠΌΠΎΡΡΠΈΠ·ΠΌΡ ΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π΄Π»Ρ javascript
ΠΡΡΡΡ (M, β M, eM) ΠΈ (N, β N, eN) β Π΄Π²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΌΠΎΠ½ΠΎΠΈΠ΄Π° (ΠΎ ΠΌΠΎΠ½ΠΎΠΈΠ΄Π°Ρ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅). Π€ΡΠ½ΠΊΡΠΈΡ h: M β N Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ (homomorphism), Π΅ΡΠ»ΠΈ h(x β M y) = h(x) β N h(y) Π΄Π»Ρ Π»ΡΠ±ΡΡ x ΠΈ y ΠΈΠ· M, ΠΈ h(eM) = eN.
f(a * b) = f(a) * f(b)
A.of(f).ap(A.of(x)) == A.of(f(x))
Either.of(_.toUpper).ap(Either.of("oreos")) == Either.of(_.toUpper("oreos"))
ΠΡΠΈΠΌΠ΅ΡΡ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠ²:
- Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΡΠΈΡΠ΅Π», ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΡΠΈΡΠ΅Π», Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΡΠΈΡΠ΅Π» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΡΠ½ΡΠ΅ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΡ hom(+, id, 0), hom(β , id, 1), hom(max, id, ββ) ΠΈ hom(min, id, +β) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΏΠΈΡΠΎΡΠ½ΡΠ΅ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ id, Π±ΡΠ΄Π΅ΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ reduce(β , e).
- Π€ΡΠ½ΠΊΡΠΈΡ length, Π²ΡΡΠΈΡΠ»ΡΡΡΠ°Ρ Π΄Π»ΠΈΠ½Ρ ΡΠΏΠΈΡΠΊΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΡΠ½ΡΠΌ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ hom(+, one, 0), Π³Π΄Π΅ one(x) = 1.
- Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ f ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΡΠ½ΡΠΌ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ hom(++, g, []), Π³Π΄Π΅ g(x) = [f(x)]. Π’Π°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ map(f).
- Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΎΡΠ½ΠΎΠ³ΠΎ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠ°. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΏΡΡΡΡ merge β ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π²ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ², list(x) = [x] β ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. Π’ΠΎΠ³Π΄Π° Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌ hom(merge, list, []) Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠΎΠΌΡΠΌ ΡΠΏΠΈΡΠΎΡΠ½ΡΠΌ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ.
Π£ΡΡ... ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Π³ΠΎΠΌΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠ°, ΡΡΠΎΠ±Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π·ΠΎΡΠ²Π°ΡΡ ΠΌΠΎΠ·Π³ Π² ΡΡΡΠ»ΠΊΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ haskell-style ΠΌΠΎΡΡΠΈΠ·ΠΌΡ ΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π΄Π»Ρ javascript
β Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠ½ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ.
https://frontendchecklist.io/
https://frontendchecklist.io/
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΡΠ΅ΠΌΡ Π½Π°ΡΠ΅ΠΉ Π²ΡΠ΅ΡΠ°ΡΠ½Π΅ΠΉ Π²ΡΡΡΠ΅ΡΠΈ ΠΎ ΡΠΎΡΡΠ΅ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠΈ: 32 ΡΠΎΠ²Π΅ΡΠ° Π²Π΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡΡΠΈ Π½Π°Π΄ ΡΠΎΠ±ΠΎΠΉ Π² 2020 Π³ΠΎΠ΄Ρ
https://medium.com/better-programming/32-tips-for-every-web-developer-in-2020-782fd6554f0d
https://medium.com/better-programming/32-tips-for-every-web-developer-in-2020-782fd6554f0d
Medium
32 Tips For Every Web Developer In 2020
Ideas to help you level up this year
ΠΠ»Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠΌΠΎ ΠΊΠΎΠ΄ ΡΠΎ ΡΠΊΠΈΠ΄ΠΊΠΎΠΉ Π½Π° fwdays: gseniority_fwdays
β Π‘ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΡΠ·ΡΠΊΠ°, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ!
Π ΠΏΠΎΡΠΎΠΌ, Ρ ΠΎΡΠΎΡΠΎ Π±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ .
https://github.com/gothinkster/realworld
Π ΠΏΠΎΡΠΎΠΌ, Ρ ΠΎΡΠΎΡΠΎ Π±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ .
https://github.com/gothinkster/realworld
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ Π΄ΡΡΠ·ΡΡ! Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ·Π½Π°ΡΡ Π²Π°ΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΡΠ°ΡΠ΅
Anonymous Poll
30%
Github tranding Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ
68%
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΠ· ΠΌΠΈΡΠ° JavaScript
57%
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠ°ΡΡΠΈ
26%
ΠΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ
12%
ΠΠΈΡΠΊΠΈ
30%
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
22%
ΠΡΠΎΠΌΠΎ-ΠΊΠΎΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΉ
1%
Π‘Π²ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ - Π½Π°ΠΏΠΈΡΡ Π² ΡΠ°ΡΠ΅
πΊπ¦ Math.random(): javascript community pinned Β«Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ Π΄ΡΡΠ·ΡΡ! Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ·Π½Π°ΡΡ Π²Π°ΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΡΠ°ΡΠ΅Β»
Π’ΠΈΠΌΡΡ Π¨Π΅ΠΌΡΠ΅Π΄ΠΈΠ½ΠΎΠ² ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΊΡΡΡ ΠΏΠΎ node.js https://habr.com/ru/post/485294/
Π₯Π°Π±Ρ
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ Node.js Π² 2020
ΠΠΎΡΠΎΠ³ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠΈΡΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ, ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΠ΅ΡΠ°ΡΡ
ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ Node.js , ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΈΠΉ ΡΠ°Π·Π±ΠΎΡ Π²ΡΠ΅Ρ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΏΠΎΡ...