Skip to content

tshemsedinov/feed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Timur Shemsedinov - Feed Archive - 2025

See more: ...2025, 2024, 2023...

Object-based languages 2025-12-17

Π”Π°ΠΆΠ΅ Π² JavaScript/TypeScript ΠΌΠΈΡ€Π΅ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒΡΡ благая Π²Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наслСдованиС это Π·Π»ΠΎ, ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ структурной ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ конструктором. Но Π½Π΅ всС помнят, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° цСлая Π³Ρ€ΡƒΠΏΠΏΠ° языков программирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ классы Π±Ρ‹Π»ΠΈ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ экзСмпляры, Π½ΠΎ нСльзя Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… классов: ada, fortran, foxbase, clipper... ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, это интСрСсноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π² js/ts

LLM Degradation 2025-12-16

Ээх... Π’Ρ‹ Π΅Ρ‰Π΅ Π³ΠΎΠ²Π½ΠΎΠΊΠΎΠ΄Π° Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, AI сСйчас обучаСтся Π½Π° ΠΊΠΎΠ΄Π΅ мясных программистов, Π° Π²ΠΎΡ‚ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ дСсятилСтиями Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΆΠ΅Π²Ρ‹Π²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄, Π²ΠΎΡ‚ Ρ‚ΠΎΠ³Π΄Π°... Π₯отя Π½Π΅Ρ‚, ΡƒΠΆΠ΅ Π½Π΅ΠΊΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹ катастрофы, ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ способности мясных Ρ‚ΠΎ ΠΏΠ°Π΄Π°ΡŽΡ‚.

Promise, Thenable, Monad 2025-12-08

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Promis Π½Π΅ ΠΌΠΎΠ½Π°Π΄Π°, это общСизвСстно, Π½ΠΎ нашлись люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ говорят, Ρ‡Ρ‚ΠΎ Array ΠΌΠΎΠ½Π°Π΄Π°, ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ· Thenable нСльзя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ½Π°Π΄Ρƒ, здСсь Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎ Thenable, ΠΎ ΠΏΡ€ΠΎ Array Π΄Π°ΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Ρ‹, Π½Ρƒ я надСюсь, Ρ‡Ρ‚ΠΎ это ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ... ΠΈΠ»ΠΈ Π½Π΅Ρ‚? https://github.com/HowProgrammingWorks/Thenable/blob/master/JavaScript/b-monad.js

class Thenable {
  constructor(run) {
    this.run = run;
  }
  static of = (v) => new Thenable((res) => res(v));
  then = (res, rej) => this.run(res, rej);
  map = (fn) => this.chain((v) => Thenable.of(fn(v)));
  chain = (fn) =>
    new Thenable((res, rej) => this.run((v) => fn(v).then(res, rej), rej));
}

Illusion of control 2025-12-05

Π›ΡŽΠ±ΠΎΠΉ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ власти, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ систСмой. Но стоит ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ - ΠΈ Π΅Π³ΠΎ сразу ΠΏΡ€ΠΈΠ΄Π°Π²ΠΈΡ‚ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚ΠΈΠ½ΡƒΡƒΠΌΠ°. ΠšΡΡ‚Π°Ρ‚ΠΈ, это ΠΈ со спСциалистами Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ освоили высокоуровнСвый язык программирования, Π½ΠΎ Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ стоит ΠΌΠ½ΠΎΠ³ΠΎ слоСв компиляции, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, исполнСния Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅. Копни Ρ‚ΡƒΠ΄Π° ΠΈ открываСтся нСпрСрывная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: Π΄Π°ΠΆΠ΅ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅ способСн Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² полдСнь Π² самом дальнСм сСлС ΠΏΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΊΠ°Π·Ρƒ всС ΠΏΠΎΠ΄Π½ΠΈΠΌΡƒΡ‚ ΠΏΡ€Π°Π²ΡƒΡŽ Ρ€ΡƒΠΊΡƒ. Ошибки Π² ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ нСльзя Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ врСмя Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ поняли, Ρ‡Ρ‚ΠΎ исправлСно, ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π»ΠΈ ΠΊΠΎΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²ΠΎ всСх случаях, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρƒ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ гСниальная ΠΌΡ‹ΡΠ»ΡŒ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π΄Π΅Ρ‚ΠΈ Π½Π΅ ΡΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ, ΠΏΠΎΡ‡Ρ‚Π°Π»ΡŒΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΡƒΠ΄ΠΈΡ‚ΡŒΡΡ, Π° Π³Π΅Π½Π΅Ρ€Π°Π» - ΠΎΡ…Ρ€ΠΈΠΏΠ½ΡƒΡ‚ΡŒ. ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ½Π° ΠΊΠ°ΠΊ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ свСта, нСдостиТима Π΄Π°ΠΆΠ΅ Π² ΠΌΠ΅Π»ΠΎΡ‡Π°Ρ….

Programmnig Paradigms and Styles 2025-12-02

Π’ΡƒΡ‚ ΠΌΠΎΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠ· мастСр-класса ΠΏΠΎ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌ программирования, Ρ‚Π°ΠΊΠΎΠΉ конспСкт, со снипСтами для быстрого понимания ΠΎ Ρ‡Π΅ΠΌ Ρ€Π΅Ρ‡ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π½Π° 46 Ρ€Π°Π·Π½Ρ‹Ρ… стилях, это Π½Π΅ 46 ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ, Π½ΠΎ ΠΌΡ‹ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ ΡƒΠΆΠ΅ Ρ‚Π°ΠΊΠΈΡ… цСлостных ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ, Π΅ΡΡ‚ΡŒ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ свойства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅ΠΉ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, конструируСм ΠΈΠ· Π½ΠΈΡ… стили программирования: https://github.com/HowProgrammingWorks/Paradigms

Referential Transparency 2025-11-28

Lecture: https://youtu.be/m03gMxXpIao

Traditional definition

Referential Transparency is the property of a function, expression, or object that can be replaced by its resulting value without changing the program's behavior.

lternative definition

We can pass a reference to any immutable object, pure function, closure (which does not change state) to any part of the program without fear of race conditions or data corruption, even with concurrency and asynchrony.

Meaning

  • Same explicit inputs gives same result
  • No hidden state, no mutation of shared data (Immutable state)
  • No I/O
  • Pure functions

This principle simplifies code reasoning, debugging, and optimization. Can be used in Functional, Object-Oriented Programming, other paradigms.

For Object-Oriented Programming:

In OOP, referential transparency is achieved when object’s state is immutable. "State changes" are represented by returning a new object rather than mutating existing state.

  • Return a new object from methods with changed state
  • Return the same one for methods not changing state

Related ideas:

  • Copy-on-write: A memory optimization technique where multiple references can share the same data until one of them needs to modify it, at which point a copy is created. This allows efficient sharing of immutable data structures while preserving referential transparency.
  • Ownership: A memory management concept (prominent in Rust) where each value has a single owner responsible for its lifecycle. When the owner goes out of scope, the value is automatically cleaned up. This prevents data races and memory issues while maintaining referential transparency.

Lecture: https://youtu.be/m03gMxXpIao

Thanks to AI Copyrights are dead term 2025-11-28

Бпасибо AI, Ρ‡Ρ‚ΠΎ объяснил всСм, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ стоит, авторскиС ΠΏΡ€Π°Π²Π° Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π²Π°ΠΆΠ½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Π³ΠΎΡ€Ρ‹ ΠΊΠΎΠ΄Π° Π½Π΅ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ сама ΠΏΠΎ сСбС, это просто Π½ΠΎ Π½Π΅ для всСх Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, люди Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ Π·Π° свой Π³ΠΎΠ²Π½ΠΎΠΊΠΎΠ΄, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π»ΠΈ, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈ Π½Π° Ρ„Π»Π΅ΡˆΠΊΠ°Ρ… Π² сСйфС, надСюсь, это Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΎΡΡŒ

FP was not derived from the Ξ»-calculus: 2025-11-14

ЀП Π½Π΅ Π²Ρ‹Π²Π΅Π»ΠΈ ΠΈΠ· Ξ»-исчислСния, это Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ Π·Π°Π΄Π½ΠΈΠΌ числом

Π’Ρ‹Π²ΠΎΠ΄Ρ‹: Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΌΡ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π·Π° этим стоит ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ тСория, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Π½Π΅Ρ‚, ΠΊΠ°ΠΊ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ понял ΠΈΠ· Π§Π΅Ρ€Ρ‡Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слово функция ΠΈ Π΅Ρ‰Π΅ символ лямбда понравился, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ стилС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ связано с машиной Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΌΡ‹ Π΅Ρ‰Π΅ находимся Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС становлСния программирования, Ρ‡Π΅Ρ€Π΅Π· 200-300 Π»Π΅Ρ‚ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ построСны Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Π° сСйчас ΠΏΠΎΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ„ΠΎΠ² ΠΈ псСвдонаучного Π±Ρ€Π΅Π΄Π°, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΈΠ΄, Ρ‡Ρ‚ΠΎ всС всС поняли ΠΈ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π²Π΅Π»ΠΈ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ ΠΈ построили тСхничСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, всС ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»ΠΎΡΡŒ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π²Π΅Π»ΠΈ ΠΈΠ· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Π΅ обобщСния ΠΊΠ°ΠΊ GRASP, SOLID, GOF, ΠΎΠ½ΠΈ Π½Π΅Π½Π°ΡƒΡ‡Π½Ρ‹, ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹, ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈ для ЀП Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, имСя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ограничСния, Π½ΡƒΠΆΠ½ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ это Π² Ρ‚Π΅ΠΎΡ€ΠΈΡŽ, ΠΈ Π²ΠΎΡ‚ ΠΊΠΎΠ³Π΄Π° Π΅Π΅ Π²Ρ‹Π²Π΅Π΄ΡƒΡ‚, ΠΎΠ±Ρ‰ΡƒΡŽ для всСх ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ, Ρ‚ΠΎ людям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ это всС Ρ‚Π°ΠΊ ΠΈ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сразу Π³Π»Π°Π΄ΠΊΠΎ ΠΈ согласовано.

https://youtu.be/bUwCRiED4Uo

JavaScript ottimizations for OOP: 2025-11-08

  1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
  • НС добавляйтС ΠΈ Π½Π΅ удаляйтС поля послС создания; ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ всС поля Π² конструкторС ΠΈΠ»ΠΈ Ρ„Π°Π±Ρ€ΠΈΠΊΠ΅.
  • БохраняйтС Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ порядок ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π² экзСмплярах.
  • Π€ΠΎΡ€ΠΌΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (spape, hidden class) β€” структура Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ быстрый доступ ΠΊ свойствам.
  • НС измСняйтС Ρ‚ΠΈΠΏΡ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ΠΉ; сохраняйтС ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° протяТСнии всСго использования.
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ измСнСния Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свойства, вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ null ΠΈ undefiled.
  • ΠœΠΎΠ½ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π΅Ρ‚ΠΎΠ³ΠΎ Π±Π°ΡƒΡ‚ΠΊΠΎΠ΄Π°.
  • ВстроСнноС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” JIT-оптимизация, которая Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ для быстрого доступа ΠΊ свойствам.
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ² union Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π±Π΅ΠΆΠ°Ρ‚ΡŒΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ ΠΈ ΠΌΠ΅Π³Π°ΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ свойствам: ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ .field динамичСскому доступу [name].
  1. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ пустот Π² массивах: Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… массивов ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ;
  • ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ массивам с содСрТимым ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.
  • Π”Π΅Ρ€ΠΆΠΈΡ‚Π΅ Number Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл со Π·Π½Π°ΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ случайных double ΠΈΠ»ΠΈ NaN.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ массивы для числодробилок.
  • ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ для сниТСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° сборщик мусора.
  1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ состояниС
  • Π”Π΅Π»Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ для inlining: нСбольшиС, чистыС ΠΈ с ΠΌΠΎΠ½ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ΠΌΠΎΠ³Π»Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мСста Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².
  • ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ стрСлочным функциям, ΠΊΠΎΠ³Π΄Π° контСкст ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ Π½ΡƒΠΆΠ΅Π½.
  • НС измСняйтС входящиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ bind, apply, call для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
  1. Π¦ΠΈΠΊΠ»Ρ‹ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ выполнСния
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ².
  • ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°ΠΌ for для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ for..of для Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ;
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ for..in ΠΈ .forEach().
  • Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ массива, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡŽ (сСмантикС).
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ²
  • ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π³ΠΈΠΊΠ»Π°ΠΌ, Π° Π½Π΅ рСкурсии.
  1. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ выполнСния
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π»Π΅ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΡƒΠ·ΠΊΡƒΡŽ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
  • ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ const, ΠΈ Ρ€Π΅ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ let, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° нСльзя ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· пСрСназначСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
  • Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ строки ΠΈΠ»ΠΈ массивы с join.
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ deopt: Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ with, eval, new Function ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°.
  • ΠŸΡ€ΠΎΠ³Ρ€Π΅Π²Π°ΠΉΡ‚Π΅ прСдсказуСмыС ΠΏΡƒΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • РаздСляйтС горячиС ΠΈ Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ горячиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ нСбольшими.

Polymorphism classification: 2025-11-03

  1. Ad-hoc polymorphism - Functions or operators behave differently based on argument types
  • Function and method overloading - Multiple functions with same name, different signatures
  • Operator overloading - Custom behavior for built-in operators
  • Type-class polymorphism - Ad-hoc polymorphism via type constraints (e.g. Haskell type classes, Rust traits)
  • Coercion polymorphism - Implicit or explicit type conversions
  1. Subtype polymorphism - Objects of derived types can be used where base types are expected
  • Class inheritance - IS-A relationship via base classes
  • Interface / protocol polymorphism - Contracts that types must implement
  • Structural (duck typing) polymorphism - Compatibility based on structure, not explicit inheritance
  1. Parametric polymorphism - Code written generically to work with any type (examples will be added ASAP)
  • Generic functions - Functions parameterized by types
  • Generic data structures - Data structures parameterized by types
  1. Dispatch mechanisms - How the runtime selects which method to call
  • Dynamic dispatch - Method chosen at runtime based on object type
  • Virtual functions and methods - Base class methods overridable by derived classes
  • Multiple or multimethod dispatch - Method chosen based on multiple argument types

Examples: https://github.com/HowProgrammingWorks/Polymorphism

Structural Approach: 2025-10-31

  • Nominal Typing - ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ²/классов/интСрфСйсов ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² Ρ‚ΠΎΠΌ числС ΠΈ Ρ‡Π΅Ρ€Π΅Π· наслСдованиС.
    • User { name: string } β‰  Department { name: string }
  • Structural Typing - ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² опрСдСляСтся структурой ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΎΠΉ (соотвСтствиСм ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠ°ΠΊ Π² JS/TS).
    • User { name: string } ≑ Department { name: string }
  • Encapsulation - объСдинСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ повСдСния Π² ΠΎΠ΄Π½Ρƒ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ (Π½Π° синтаксисС классов, ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ², Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΉ).
    • Counter { value, inc() }
  • Hiding - ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ видимости Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ состояния ΠΈ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ· внСшнСго ΠΊΠΎΠ΄Π°.
    • Counter { #value, inc(), get value() }
  • Structural Composition - созданиС слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡƒΡ‚Π΅ΠΌ создания простых Π² конструкторах ΠΈ записи ссылкок Π² поля, с дальнСйшим Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
    • Car { engine: Engine, wheels: Wheels[] }
  • Aggregation - слабая Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТащиСся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСзависимо ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.
    • AggregateError { errors: [Error, Error, Error] }
  • Delegation - абстракция ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ своСму скомпозированному структурному ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ.
    • Semaphore { #counter: Counter, get count(), enter(), leave() }

Overengineering: 2025-10-30

Π’Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΏΡ€Π°Π²Π΄Ρƒ. ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ - это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ ΠΈ Π±Π΅Π·Π΄ΠΎΠ½Π½Ρ‹ΠΉ источник ΠΈΠ΄Π΅ΠΉ для излишнСго услоТнСния ΠΈ запутывания ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹:

  • ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π²Ρ‹ΡƒΡ‡ΠΈΠ» ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, Π΅ΠΌΡƒ хочСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Π²Π΅Π·Π΄Π΅, ΠΈ Π² ΠΏΠ΅Ρ€Π²Ρ‹Π΅ мСсяцы послС ΡƒΠΌΠ½Ρ‹Ρ… ΠΊΠ½ΠΈΠΆΠ΅ΠΊ программист Ρ‚Π²ΠΎΡ€ΠΈΡ‚ сплошной ΠΎΠ²Π΅Ρ€ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠ½Π³: Π² ΠΊΠΎΠ΄Π΅ появляСтся Π² Ρ€Π°Π·Ρ‹ большС абстракций, Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ,
  • абстракции Π½Π΅ бСсплатны: всякая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, динамичСская диспСтчСризация, pure fabrication ΠΈ мСлкодиспСрсная дСкомпозиция ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ количСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², слоСв ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², просаТиваСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ,
  • часто ΠΊΠΎΠ΄ становится слоТным для понимания, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π°: Π±Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ трудности ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ пСрСстали Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Π»ΠΎΠ± ΠΈ примСняСтС слоТныС для Π½ΠΈΡ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ,
  • ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ тСстированиС: Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ дСлСгирования ΠΈ Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ ΠΌΠ°ΡΠΊΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ мСста ошибок, тСряСтся стСк, ΠΈΠ»ΠΈ Π² Π½Π΅ΠΌ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ нСпонятныС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ слои, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, Π° Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСфлСксия, Ρ‚ΠΎ - динамичСски построСнныС абстракции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Волько ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ ΠΌΠ΅Π½Ρ‚ΠΎΡ€ΠΈΠ½ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ врСмя Π½Π° ΠΎΠ²Π΅Ρ€ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠ½Π³ ΠΈ экспСримСнты. НуТны Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ:

  • ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°
  • Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹
  • использованию встроСнных Π² язык возмоТностСй, Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΡ… Ρ‚Ρƒ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½
  • Π·Π°Π΄Π°Ρ‡ΠΈ с Ρ‚Ρ€Π΅ΠΉΠ΄ΠΎΡ„Π°ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° Π² условии Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ NFR ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ограничСния
  • Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠ»ΠΎΡ…ΠΎ написанных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ², ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅, когнитивная оптимизация
  • Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ ограничСния Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½ΡƒΠΆΠ΅Π½ компромис

GRASP, SOLID, GoF Patterns and Paradigms: 2025-10-11

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, всС Ρ€Π°Π²Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ с coupling ΠΈ cohesion, с Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌΠΈ ΠΈ интСрфСйсами, с Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°ΠΌΠΈ ΠΈ фасадами. Π₯ΠΎΡ‚ΡŒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ появились Π² срСдС ООП, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ½ΠΈΠ·Π°Π½Ρ‹ идСями ΠΈΠ· ЀП, Π° ЀП Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ распрСдСлСния ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒΠΈ ΠΈ изоляции слоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π²ΠΈΠ»ΠΈΡΡŒ Π² ООП. БинтаксичСская Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌΠΈ Π½Π΅ Ρ‚Π°ΠΊ сущСствСнна, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ½Π°Π΄Ρ‹ Π½Π° классах ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ Π½Π° замыканиях. На самом Π΄Π΅Π»Π΅, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹. Π“Π»Π°Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ - это ΠΈΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Π½Π΅ слоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС Ρ‚Π°ΠΊΠΎΠ΅ ООП, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ°Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ экзСмпляр Π² Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. КакиС Π΅Ρ‰Π΅ сущСствСнныС отличия? ВыраТСния Π² ЀП ΠΏΡ€ΠΎΡ‚ΠΈΠ² пошагового исполнСния Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… стилях. Π”Π°, Π½ΠΎ это Π½Π΅ влияСт Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡ‚ΡŒ GRASP ΠΈ SOLID. Π Π°Π±ΠΎΡ‚Π° Π² Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π°ΠΆΠ½Π΅Π΅ способа исполнСния ΠΊΠΎΠ΄Π°. ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈ Ρ‚Π°ΠΌ ΠΈ Ρ‚Π°ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Π° наслСдования Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, Ρ…ΠΎΡ‚ΡŒ ΠΈ Ρ‚Π°ΠΌ ΠΈ Ρ‚Π°ΠΌ ΠΎΠ½ΠΎ рСализуСтся. Π‘ΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π·Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ Π²Π΅Π·Π΄Π΅ Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ΡΡ, Π΄Π°, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами, Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ сущСствСнно. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² GRASP ΠΈ SOLID Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Π²ΠΎ всСх ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°Ρ…. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, эти ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ Π² самом уТасном ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»ΠΎΡ… с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ любой ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹. Если ΠΊΠΎΠ΄ выполняСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ это Π½Π°Π΄Π΅ΠΆΠ½ΠΎ, тСсты проходят Π½Π΅ ΠΎΡ‚ случая ΠΊ ΡΠ»ΡƒΡ‡Π°ΡŽ, Π° всСгда, Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΠΎΠ½ ΠΆΠ΅ основан, ΠΏΡƒΡΡ‚ΡŒ Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° Π² понятиях ΠΈΠ»ΠΈ плохая дСкомпозиция, чрСзмСрная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π°ΠΌ слоТно это ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ сквозь Π΄Π΅Π±Ρ€ΠΈ ΠΊΠΎΠ΄Π°.

Π’ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΈ ΠΏΠ»ΠΎΡ…ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π½Π° ЀП ΠΈ простом ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ для Ρ‚ΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π½Π° этой Π½Π΅Π΄Π΅Π»Π΅, Π² слишком гранулярной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ https://github.com/HowProgrammingWorks/Abstractions/tree/master/JavaScript

Metaprogramming lectures: 2025-10-09

Π’Ρ‡Π΅Ρ€Π° пСрСзаписал 2 Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’Π°ΠΌ ΠΏΡ€ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с использованиСм ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…:

  • Introspection - Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ структур ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… абстракций: Ρ‚ΠΈΠΏΡ‹, поля, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, наслСдованиС ΠΈ Ρ‚.Π΄.
  • Reflection - динамичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ повСдСния ΠΈ структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • Scaffolding - автоматичСская гСнСрация ΠΊΠΎΠ΄Π°/структур для ускорСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
  • Code Generation - программная гСнСрация ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….
  • Macros - Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ синтаксиса языка Ρ‡Π΅Ρ€Π΅Π· ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ»ΠΈ скрипты.
  • Decorators - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
  • Dynamic Invocation - Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, конструкторов ΠΈ классов ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΎ врСмя исполнСния.
  • Monkey Patching - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
  • Generics - унификация ΠΈ парамСтризация Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ссли Π² ΠΊΠΎΠ΄Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏΡ‹.
  • DSL - Π΄ΠΎΠΌΠ΅Π½Π½ΠΎ-спСциализируСмыС ΠΈ встраиваСмыС языки для Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ синтаксиса ΠΏΠΎΠ΄ Π·Π°Π΄Π°Ρ‡Ρƒ.
  • Self-Modification - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ собствСнный ΠΊΠΎΠ΄, Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ.
  • Polyfilling - Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ языка ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° стандартного API.
  • Homoiconic code - использованиС ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… структур для Π΄Π°Π½Π½Ρ‹Ρ… для исполняСмого ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ Π² LISP.

Code granularity: 2025-10-08

Π“Ρ€Π°Π½ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° (Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ слишком ΠΌΠ΅Π»ΠΊΠΎ-гранулярный ЀП ΠΊΠΎΠ΄) Screenshot from 2024-10-17 23-07-40

ΠžΠ±Ρ‰ΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ SoC (Separation of concerns) Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ хрупкости ΠΈ понятности. SoC нравится ΠΌΠ½Π΅ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° SOLID:SRP (Single Responsibility Principle), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚ΠΎΡ‡Π½Π΅Π΅.

SRP ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚: ΠΎΠ΄ΠΈΠ½ класс β€” ΠΎΠ΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° для измСнСния. Но Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. А Π²ΠΎΡ‚ SoC ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π³Ρ€Π°Π½ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ β€” ΠΌΡ‹ сами Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ гранулярности. ЀактичСски это выливаСтся Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, тСстированиС, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Protected Variations ΠΏΠΎ GRASP, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Open/Closed ΠΈΠ· SOLID.

Paradigms usage and comparison: 2025-10-07

Π’ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π° курсах я ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΈ обсуТдСниСм, ΠΊΠ°ΠΊΠΈΠ΅ эффСкты ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, благодаря этим характСристикам ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

  • Π₯арактСристики: явныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ†ΠΈΠΊΠ»Ρ‹, Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ, измСняСмыС Π΄Π°Π½Π½Ρ‹Π΅, экономия памяти, риск "Π³ΠΎΠ½ΠΎΠΊ", ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.
  • ВлияниС Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ: ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, оптимизация ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° (latency)
  • Π₯ΠΎΡ€ΠΎΡˆΠΎ для: систСмный ΠΊΠΎΠ΄ Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΊ ΠΆΠ΅Π»Π΅Π·Ρƒ, сцСнарная бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°, оптимизация hot-paths.
  • ΠŸΠ»ΠΎΡ…ΠΎ для: абстракций срСднСго уровня, вычислСний, ΠΊΠΎΠ΄Π° с сильной ΠΊΠΎΠ½ΠΊΡƒΡ€Ρ€Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ.
  • Π‘ΠΈΠ½Ρ‚Π΅Π·: импСративная "ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°" + ЀП ΠΈΠ»ΠΈ ООП "ядро"

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹

  • Π₯арактСристики: явноС состояниС, Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹, события, Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (прСдсказуСмоС), Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ модСлирования.
  • ВлияниС Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ: ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², вСрификация процСссов.
  • Π₯ΠΎΡ€ΠΎΡˆΠΎ для: ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΡ€ΠΊΡ„Π»ΠΎΡƒ, оркСстрация, парсинг, сСтСвыС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, Π³Π΅ΠΉΠΌΠ΄Π΅Π².
  • ΠŸΠ»ΠΎΡ…ΠΎ для: ΠΌΠ½ΠΎΠ³ΠΎ состояний ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ², слоТныС Π΄ΠΎΠΌΠ΅Π½Ρ‹, "Ρ‚ΡƒΠΌΠ°Π½Π½Ρ‹Π΅" Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΈΡ… Ρ„Π°Π·.
  • Π‘ΠΈΠ½Ρ‚Π΅Π·: FSM Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ… + сцСнарии/SAGA для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов.

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

  • Π₯арактСристики: динамичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ наслСдования, экономия памяти, Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
  • ВлияниС Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ: нативная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° для JavaScript, высокая ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, мСньшС Ρ€ΠΈΡ‚ΡƒΠ°Π»ΠΎΠ² для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.
  • Π₯ΠΎΡ€ΠΎΡˆΠΎ для: Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Web-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
  • ΠŸΠ»ΠΎΡ…ΠΎ для: для слоТных Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² риск нСпрСдсказуСмых состояний.
  • Π‘ΠΈΠ½Ρ‚Π΅Π·: ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ для frontend ΠΈ UI + строгий Π΄ΠΎΠΌΠ΅Π½ Π½Π° ООП, ЀП, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌ.

По ссылкС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°, Ρ‚ΡƒΡ‚ 46 стилСй с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌΠΈ ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ эффСктами, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π½Π° стримС: https://github.com/HowProgrammingWorks/Paradigms

Paradigms, patterns, and code styles: 2025-10-05

  • Код ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ быстрым ΠΈ понятным ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ссли Π½Π΅ Π΄ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄ΠΎ Ρ„Π°Π½Π°Ρ‚ΠΈΠ·ΠΌΠ°.
  • Π‘ΠΎΠ»Π΅Π΅ 90% ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ, Ссли Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ всСго нСсколько простых ΠΏΡ€Π°Π²ΠΈΠ».
  • НСт "Π»ΡƒΡ‡ΡˆΠ΅ΠΉ" ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования, ΠΈ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ стиля, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Π΅Ρ€ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ характСристики ΠΊΠΎΠ΄Π°.
  • ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Prototype ΠΈ Proxy Π² GoF ΠΏΡƒΡ‚Π°ΡŽΡ‚ΡΡ с возмоТностями языка JavaScript, Π° ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Iterator ΠΈ Decorator встроСны Π² язык.
  • ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Strategy ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Map<string, Function> ΠΈΠ»ΠΈ Map<string, Constructor> ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ...
  • ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Observer ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ» Π² JavaScript сразу ΠΌΠ½ΠΎΠ³ΠΎ: EventEmitter, EventTerget, Signals, MessagePort API, BroadcastChannel ΠΈ Π΄Ρ€...
  • НуТно Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ синтаксис ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ½Π°Π΄Π° Π² синтаксисС класса, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ООП Π½Π° замыканиях.
  • ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ готовят ΠΏΠΎΡ‡Π²Ρƒ для построСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π±Π΅Π· Π½ΠΈΡ… ΠΊΠΎΠ΄ Ρ€Ρ‹Ρ…Π»Ρ‹ΠΉ ΠΈ нСуправляСмый, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π½Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.
  • ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ - это Π½Π΅ тСория, Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Π΄Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для распространСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π²Π΅Π·Π΄Π΅.

People of long and enduring will: 2025-10-03

МСдлСнная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΉ ΠΊΠΎΠ΄, застой Π² ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅, всС эти Π²Π΅Ρ‰ΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я писал Π²Ρ‹ΡˆΠ΅, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ β€” лоскутныС знания ΠΈ ΠΎΠ΄Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π΅Π·ΡŽΠΌΠ΅, Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

ΠšΠΎΡ€Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ β€” отсутствиС систСмного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ Π²ΠΎΠ»ΠΈ ΠΊ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌΡƒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. МоТно 10 Π»Π΅Ρ‚ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠ»ΠΎΡ…ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ поля Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ req.user.profile.contacts.email ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ нСдопустимо. МоТно ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ дСсяток API Π½Π° NestJS, Π½ΠΎ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ middleware это ΠΏΠ»ΠΎΡ…ΠΎ, всю Тизнь Π²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² JavaScript нСльзя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ race condition ΠΈ Node.js ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ.

НакоплСнный Π³ΠΎΠ΄Π°ΠΌΠΈ Ρ‚Π΅Ρ…Π΄ΠΎΠ»Π³, хаотичная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±Π΅Π· ΠΏΠ»Π°Π½Π°, отсутствиС наставников ΠΈ систСмного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ Π΄Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ β€” раздолбайство, магичСскоС ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Ρ€Π° Π² Π±Π°ΠΉΠΊΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΡ‚ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Ρ‚ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ΅ ΡƒΡΠ»Ρ‹ΡˆΠ΅Π½Π½ΠΎΠ΅, ΠΊ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ лСнится ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ„Π°ΠΊΡ‚ простым экспСримСнтом Π½Π° 10 ΠΌΠΈΠ½ΡƒΡ‚.

Stagnation and burnout: 2025-10-02

Π’Ρ‹ всС врСмя ΠΏΠΈΠ»ΠΈΡ‚Π΅ окошки, апишки ΠΈ модСльки? НичСго ΠΏΠΎ настоящСму интСрСсного ΠΈ слоТного? ΠšΠΎΠΌΡƒ-Ρ‚ΠΎ это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Π° Π²Ρ‹ чувствуСтС сСбя Π½Π΅ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ. Π§Ρ‚ΠΎ это, застой, Π²Ρ‹Π³ΠΎΡ€Π°Π½ΠΈΠ΅?

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ кризиса:

  • Π² ΠΏΠΎΡ‡Ρ‚Π΅ Π½Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅, Π½Π΅ Π·ΠΎΠ²ΡƒΡ‚ Π½Π° собСсы
  • Π²Ρ‹ Π½Π΅ Π΅Π΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠΌ Π»ΠΈΡ„Ρ‚Π΅ ΠΈ Π—ΠŸ Π½Π΅ растСт
  • ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ ΡƒΠ²ΠΎΠ»ΠΈΡ‚ΡŒΡΡ, ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‚Ρ‹
  • Π½Π΅Ρ‚ радости ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹

На самом Π΄Π΅Π»Π΅, ΠΈ выгорания Ρ‚ΠΎ Π½Π΅ сущСствуСт β€” это ΠΌΠΈΡ„, Ρ‚Π°ΠΊΠΎΠ΅ состояниС бСзвыходности Π²Ρ‹ сами сСбС обСспСчили ΠΈ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈ сСбя, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° бСссмыслСнна, Π½ΠΎ Π½Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Если Π·Π°Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ΠΈΡ‚ΡŒ сСбя, Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΡƒΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ.

Когда Π²Ρ‹ чувствуСтС Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΡŽ, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, это самоуваТСниС, Π° Ρ‚ΡƒΡ‚ Π±Π΅Π· наращивания Ρ…Π°Ρ€Π΄-скиллов Π½ΠΈΠΊΠ°ΠΊ. Если Π²Ρ‹ профСссионал ΠΈ Π»ΡŽΠ±ΠΈΡ‚Π΅ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ застоя ΠΈ выгорания Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. А Ссли Π½Π΅Ρ‚ экспСртизы, Ρ‚ΡƒΡ‚ Π½Π΅ с Π²Ρ‹Π³ΠΎΡ€Π°Π½ΠΈΠ΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ, Π° Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Ρ‚ΡŒ знания ΠΈ ΠΎΠΏΡ‹Ρ‚.

Π₯ΠΎΡ‚ΡŒ я Π½Π΅ искал Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΡƒΠΆΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 20 Π»Π΅Ρ‚, Π½ΠΎ я понимаю, Ρ‡Ρ‚ΠΎ Ссли Π±Ρ‹ Π² мою ΠΏΠΎΡ‡Ρ‚Ρƒ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎ дСсяток ΠΎΡ„Π΅Ρ€ΠΎΠ² уровня CTO ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ нСдСлю, Ρ‚ΠΎ увСрСнности Π±Ρ‹ Ρƒ мСня ΠΏΠΎΡƒΠ±Π°Π²ΠΈΠ»ΠΎΡΡŒ.

Fragile code: 2025-10-01

Π₯Ρ€ΡƒΠΏΠΊΠΈΠΉ ΠΊΠΎΠ΄ β€” это ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»ΠΎΠΌΠ°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Π° Π²Ρ‹ сидитС Π² Π΄Π΅Π±Π°Π³Π΅Ρ€Π΅, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΄ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ собираСтся. Π”Π΅Π±Π°Π³Π΅Ρ€ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ β€” это Π·Π»ΠΎ, Π΅Π³ΠΎ мСсто β€” исслСдованиС Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ инструмСнт Β­β€” Π΄Π°, Π½ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Π΄Π΅Π±Π°Π³Π΅Ρ€ β€” это просто слив Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Π½ΠΈΠΊΡƒΠ΄Π°.

Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ состояниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΉ, ΠΈΠ½Π°Ρ‡Π΅ это Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡ€ΠΎΠΆΠ΅ для ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. НовоС ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ староС, Π²Ρ‹ ΠΊΠΎΠ²Ρ‹Ρ€ΡΠ΅Ρ‚Π΅ΡΡŒ Π² лСгаси, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚Π΅ Π±Π΅Π· Ρ†Π΅Π»ΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ β€” это Ρ‚Π΅Ρ…Π΄ΠΎΠ»Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ растСт ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ, ΠΊΠ°ΠΊ снСТный ΠΊΠΎΠΌ. Π’Π°ΡˆΠ΅ врСмя ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π΅ Π½Π° созданиС цСнности для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π° Π½Π° Ρ‚ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΆΠ°Ρ€ΠΎΠ². И Ρ‚ΡƒΡ‚ Π²Ρ‹ со своим Π΄Π΅Π±Π°Π³Π΅Ρ€ΠΎΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚ΡƒΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠΆΠ°Ρ€ Π±Π΅Π½Π·ΠΈΠ½ΠΎΠΌ. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Why are we so slow?: 2025-09-30

Π§Ρ‚ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΠΊΠ°ΠΊ? ΠšΡƒΠ΄Π° ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ?

🐒 Π΄ΠΎΠ»Π³ΠΎΠ΅ согласованиС β€” вопросы ΠΈΠ»ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ сформулированы Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ люди ΠΏΠΎΠ΄ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚, уходят ΠΎΡ‚ ΠΎΡ‚Π²Π΅Ρ‚Π°, Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π½Π° сообщСния, Π½Π΅ приходят Π½Π° созвоны; процСсс принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ затягиваСтся.

πŸ”— высокоС Π·Π°Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ β€” части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ слишком тСсно связаны: ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Ρ‡ΡƒΠΆΠΈΠΌ свойствам ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС Π»ΠΎΠΌΠ°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ нСзависимо.

🀯 Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΊΠ° слоТности β€” Π·Π°Π΄Π°Ρ‡Π° каТСтся простой, Π½ΠΎ Π² процСссС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ выясняСтся, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ скрытыС зависимости, Ρ‚ΠΎ ΠΆΠ΅ Π·Π°Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ зависимостСй, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия.

πŸ”₯ Ρ‚ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΆΠ°Ρ€Π° β€” вмСсто ΠΏΠ»Π°Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, приходится срочно Ρ‡ΠΈΠ½ΠΈΡ‚ΡŒ критичСскиС Π±Π°Π³ΠΈ ΠΈΠ»ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ кризисныС ситуации, Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π° встала, тСряСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Ρ€Π°Π·Ρ€ΡƒΡˆΠ°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅.

🧩 Π½Π΅Ρ‚ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ β€” ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π΅ΡΡ‚ΡŒ всСгда, Π½ΠΎ для Π½ΠΈΡ… Π½Π΅ всСгда ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ выдСляСт Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ· сторого ΠΊΠΎΠ΄Π°, Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

πŸ“¦ плохая дСкомпозиция β€” ΠΊΠΎΠ΄ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅ ΠΏΠΎ смыслу ΠΈ Π½Π΅ ΠΏΠΎ Π·Π°Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΡŽ, Π° ΠΏΠΎ нСпонятному ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ, слишком ΠΊΡ€ΡƒΠΏΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ; "ось ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ" ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ нСскольким классам ΠΈΠ»ΠΈ модулям.

πŸ™ˆ нСпонятный ΠΊΠΎΠ΄ β€” слоТно читаСтся, Π½Π΅ подходящая Π³Ρ€Π°Π½ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ (слишком ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ части); ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π°ΠΌΠ΅ΠΊΠ°Π΅Ρ‚ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ извСстноС; ΠΎΠ²Π΅Ρ€ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ лишниС абстракции, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, слои.

βš–οΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Π΅ трСбования β€” Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈ прСдставитСли Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈΡΡ‹Π»Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Π΅ трСбования ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ хотят Ρ€Π°Π·Π½ΠΎΠ΅, трСбования ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ.

πŸ›‘ Ρ€ΡƒΡ‡Π½Ρ‹Π΅ процСссы β€” отсутствиС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ: Π½Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΎ тСстов, Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΉ, воспроизвСдСниС Π±Π°Π³ΠΎΠ² Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½Π΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ semver ΠΈ Π½Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ вСрсии зависимостСй, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

πŸŒ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² β€” Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ†Π΅Π»ΠΈ постоянно Β«ΠΏΡ€Ρ‹Π³Π°ΡŽΡ‚Β», фокус ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ рассСиваСтся, людСй Π΄Π΅Ρ€Π³Π°ΡŽΡ‚ Π½Π° созвоны, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΎΠΏΡΡ‚ΡŒ мСняСтся ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ доводится Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, отвСтствСнных Π½Π΅ Π½Π°ΠΉΡ‚ΠΈ.

🚧 тСхничСский Π΄ΠΎΠ»Π³ β€” старыС ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ замаскированныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ исчСзли, костыли ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ для ускорСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй.

πŸ”’ Π±Π»ΠΎΠΊΠ΅Ρ€Ρ‹ ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ упираСтся Π²ΠΎ внСшнюю Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ всС всСх ΠΆΠ΄ΡƒΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, API Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ смСТного ΠΎΡ‚Π΄Π΅Π»Π°, ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ², бСзопасности), ΠΈ прогрСсс стоит Π½Π° мСстС.

Code ownership: 2025-09-29

Код Π½Π΅ стоит Π½ΠΈΡ‡Π΅Π³ΠΎ! Π¦Π΅Π½Π½ΠΎ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ, Π° Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ β€” это Π½Π΅ авторскиС ΠΏΡ€Π°Π²Π°, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ внСсти Π² ΠΊΠΎΠ΄ измСнСния Π² прСдсказуСмыС сроки.

Π˜Π·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π±Π΅Π· страха, Ρ‡Ρ‚ΠΎ ΠΎΠ½ рассыпСтся Π² Ρ€ΡƒΠΊΠ°Ρ…, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, β€” Π½Π΅ Ρ‚Π°ΠΊ просто. Для Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ владСния Π½ΡƒΠΆΠ½ΠΎ пСрСкрСстноС Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ΄, помнят, Π³Π΄Π΅ Ρ‡Ρ‚ΠΎ находится, ΠΈ, получая Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° Ρ„ΠΈΡ‡Ρƒ, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ эстимСйт ΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ с Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΉ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ.

Если Π½Π΅Ρ‚ владСния ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚ΠΎ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. НСпрСдсказуСмый ΠΊΠΎΠ΄ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ стоит ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тянСт компанию Π½Π° Π΄Π½ΠΎ. Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ΄Π΅ β€” Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ это процСсс.

Если Ρ€Π΅Π²ΡŒΡŽ тянСтся нСдСлями, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ Π±Π°Π³ΠΈ, ΠΊΠ°ΠΊ снСТный ΠΊΠΎΠΌ β€” это систСмная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: отсутствиС владСния ΠΊΠΎΠ΄ΠΎΠΌ, Π° скорСС всСго, ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠΉ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹. Как слСдствиС β€” уТасная кодовая Π±Π°Π·Π°. Как ΠΎΠ½Π° стала Ρ‚Π°ΠΊΠΎΠΉ β€” Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅.

А Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ? ВмСсто пСрСписываний Π½ΡƒΠΆΠ΅Π½ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ тСстами, ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ зацСплСния, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ пСрСкрСстного Ρ€Π΅Π²ΡŒΡŽ, Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠ°Π»Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²ΠΊΠ°ΠΌΠΈ, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, оставлСнных Π½Π° Π·Π°Π²Ρ‚Ρ€Π°. НС ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡ‚ΡŒ тСсты ΠΏΠΎΠ΄ ΠΊΠΎΠ΄, Π° ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ тСсты. ИзмСнСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ прСдсказуСмыми, ΠΌΠ°Π»Ρ‹ΠΌΠΈ ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΠΈ.

AI and Open-source: 2025-09-05

ΠšΡ‚ΠΎ Ρ‚Π°ΠΌ ΠΊΡ€ΠΈΡ‡ΠΈΡ‚ Β«AI Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ программистов»? Π’ΡƒΡ‚ Π² github тысячи issues Π΅ΡΡ‚ΡŒ Π² самых популярных рСпозиториях. Когда Π²Ρ‹ ΠΈΡ… ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AI?

Node.js 1.7k, Next.js 2.3k, TypeScript 5k, React 811, Redis 2.2k, Angular 1.2k, Go 5k, Deno 2.3k, Rust 5k, Kubernetes 1.9k

Π― Π²ΠΎΡ‚ дСлаю 1 Ρ€Π°Π·Π° Π² нСдСлю Π»Π°ΠΉΠ²ΠΊΠΎΠ΄ с ΠΏΠ°Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° AI: Cursor, Copilot, Claude code ΠΈ Ρ‚.Π΄.

Local-first and CRDT: Cursor 2025-08-17

Π’ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния с автоматичСской синхронизациСй состояния ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ, сСрвСром ΠΈ нСсколькими устройствами ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ local-first, объяснСниС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² Π½Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Service worker, CRDT, OPFS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ https://youtu.be/jHgprxfOgBY

Coding with AI: Cursor 2025-08-05

Π’Ρ‡Π΅Ρ€Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ» Π»Π°ΠΉΠ²ΠΊΠΎΠ΄ΠΈΠ½Π³ с Cursor 1.3.9 (claude-4-sonet, claude-3.5-sonet, gpt-4.1, o3, gemini-2.5-pro) для студСнтов курса ΠΏΠΎ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌ, Node.js ΠΈ асинхронности. Показал, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ для ИИ β€” Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ исполнитСля, Π° Π½Π΅ ΠΊΠ°ΠΊ Π²ΠΎΠ»ΡˆΠ΅Π±Π½ΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ, которая всС Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π° вас. Π‘ΠΎΠ»ΡŒΡˆΠ΅ часа писал тСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ ИИ ΠΎΡ‡Π΅Π½ΡŒ быстро всС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» β€” Π½ΠΎ всС ΠΈΠ΄Π΅ΠΈ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π² Π’Π—. Π― прСдоставил ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΈΠ· своих ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, описаниС Π·Π°Π΄Π°Ρ‡ΠΈ заняло 71 строку: https://github.com/metarhia/metautil/blob/gsid-ai/lib/TASKS.md

ПослС этого, с нСбольшими Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 10–15 ΠΌΠΈΠ½ΡƒΡ‚, ΠΎΠ½ сгСнСрировал Π²ΠΎΡ‚ эти 43 строки ΠΊΠΎΠ΄Π°: https://github.com/metarhia/metautil/blob/gsid-ai/lib/gsid.js Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° TASKS_md.

НСкоторыС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ я ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ здСсь, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ студСнтам. Π‘ΠΊΠΎΡ€ΠΎ Π·Π°ΠΏΠΈΡˆΡƒ Π²ΠΈΠ΄Π΅ΠΎ со сравнСниСм β€” Ρ‡Ρ‚ΠΎ получаСтся, Ссли Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ИИ ΠΊΠ°ΠΊ ассистСнта, ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ИИ.

Coding with AI: Cursor 2025-08-02

πŸš€ Together, these technologies form the infrastructure for local-first applications:

  • PWA (Progressive Web App)

    Web apps with UX close to native: offline mode, installation, fast loading. Solve issues with poor connectivity and slow networks by combining the strengths of web and native applications.

  • CRDT (Conflict-Free Replicated Data Types)

    Data structures for automatic conflict resolution in distributed systems. Solve synchronization and concurrent editing problems, enabling offline-first applications without data loss or conflicts.

  • CAS Containers (Compare-And-Swap)

    Atomic concurrency mechanism holding entire database record protected by hashes or versions. Solve race conditions and concurrent modification conflicts, ensure data consistency, and enable optimistic concurrency control in distributed databases.

  • IndexedDB (browser built-in database)

    Client-side database API for transactional storage of structured data in browsers. Solves offline persistence, local querying, caching, and building b-tree indexes.

  • OPFS (Origin Private File System)

    Secure, high-performance file system accessible only by web applications within their origin. Solves large file storage issues and enables high-speed file operations on the web.

  • Blockchain (without mining)

    Distributed, reliable ledger for decentralized databases and immutable history. Solves data integrity, immutability, transparency, and trust issues.

  • JavaScript Smart Contracts

    Business logic executed in JavaScript within decentralized environments. Solves automation and trust issues related to data changes, ensures automatic enforcement of agreements, and secure code execution.

  • WebSocket

    Protocol for real-time, two-way data exchange over a single TCP connection. Solves latency issues and supports interactive near-real-time applications.

  • WebRTC (Web Real-Time Communication)

    Protocol for real-time streaming of multimedia and peer-to-peer data exchange. Solves issues of direct real-time communication, low latency, and decentralization without intermediary servers.

  • Metaschema

    Declarative schema language for modeling, validation, and data synchronization. Solves problems of data inconsistency, schema evolution and migration, simplifies metadata definition, and reduces complexity when working with structured data.

PWA for offline-first 2025-07-31

Features:

  • Single WebSocket connection shared across tabs
  • Can be installed as a native app
  • Works without internet connection
  • Background caching
  • Automatic reconnection
  • HTTPS headers and CORS support

Link: https://github.com/HowProgrammingWorks/PWA

AI in Engineering is a problem 2025-07-28

Главная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° AI Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ люди хотят, Ρ‡Ρ‚ΠΎΠ±Ρ‹ AI Π·Π° Π½ΠΈΡ… писал ΠΈ Π±Ρ‹Π» ΠΈΠΌ ΡΠΈΠ½ΡŒΠΎΡ€ΠΎΠΌ, Π° ΠΎΠ½ΠΈ Π΅ΠΌΡƒ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ ΠΊΠ°ΠΊ Π΄ΠΆΡƒΠ½Ρ‹. А Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ AI ΠΊΠ°ΠΊ Π΄ΠΆΡƒΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π» Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΈΠ½ΡŒΠΎΡ€Ρƒ.

How to create own framework 2025-03-04

πŸ’‘ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ популярный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ:

  1. Π’Π·ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ случайный ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½
  2. Π”Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π½Π΅ΡƒΠ·Π½Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅
  3. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, ΠΏΠΎΠΎΠ±Π΅Ρ‰Π°Π² всСм, Ρ‡Ρ‚ΠΎ это ΠΈ Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

Tooling vs Domain 2025-03-02

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ получаСтся, Ρ‡Ρ‚ΠΎ программисты всС врСмя Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ инструмСнтов, Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° ΠΈ интСрфСйсов, ΠΌΠΈΠΊΡ€ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ, когнитивная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°?

  • Π­Ρ‚ΠΎ тСхнологичСский Ρ„Π΅Ρ‚ΠΈΡˆΠΈΠ·ΠΌ
  • Никогда Π½Π΅ Π²ΠΈΠ΄Π΅Π» бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CRUD Π²Π΅Π·Π΄Π΅
  • Π­Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ с бизнСсом
  • ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ разная, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ± этом Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ
  • Π‘ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ
  • ΠžΡ‚ΡΡ‚Π°Π½ΡŒ, ΠΌΡ‹ просто Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ишью

πŸ‘‰ https://t.me/metarhia/1793

Software Structure & Architecture 2025-02-28

New course structure

  • Layered (onion), DDD, Clean architecture
  • App structure, Modularity, DI, unittesting
  • DTOs, models, race conditions
  • Hexagonal Architecture, ports and adapters architecture
  • Clustering, Parallel, Distributed systems, CAP, ACID, BASE, Locking, CQRS
  • Actor Model
  • Databases, data modeling
  • Domain Specific Languages: DSL, AST, LISP
  • Command, QueryObject, CQS, CQRS, EventSourcing
  • Messaging: MQ, Pub/Sub, Pull
  • System integration and topology: API, bus, brocker, MQ
  • Communication styles: data, call, event, log sync, p2p, blockchain
  • Feature-Sliced Design
  • Architecture for Web: DDD for Frontend and Backend
  • Pipeline architecture
  • SOA: web services, microservices, serverless
  • Data warehouses and DBMS: relational, noSQL, columnar, key-value
  • API Design
  • Corporate integration buses (exchange with external subsystems)
  • Task and resource schedulers
  • Testing, quality assessments, continuous integration
  • Infrastructure, deployment, update, migration, reengineering
  • Balancing, replication, sharding, resharding, backups and recovery
  • Security, authorization, authentication, application firewall
  • Application and system logging, incident investigation
  • Analysis and reengineering of business processes

πŸ‘‰ https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Architecture-2025.md

Contracts: naming, clear semantics, LoD 2025-02-26

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ спроСктированного ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°Β (Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ интСрфСйс, сигнатура, абстрактный класс, фасад, Ρ‚ΠΈΠΏ, API...) β€” это ΠΊΠΎΠ³Π΄Π°:

  • ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ заглядывая Π² исходники. Достаточно ΠΈΠΌΠ΅Π½ ΠΈ, Π² ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ случаС, тСстов ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².
  • НС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ трассировки Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²Β Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°. Всё ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ интСрфСйса.
  • Ошибки Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π² 1 шаг, Π±Π΅Π· Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².
  • Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ LoDΒ (Law of Demeter) ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒΒ "Do not talk to strangers", ограничивая Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ зависимости.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ осмыслСнноС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‚ΡŒ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.

Communication styles 2025-02-24

ΠŸΡ€ΠΎ взаимодСйствиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° (websocket, grpc, http api, sse), Π½ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ взаимодСйствия, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠΆΠ΅ транспортный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ эти стили взаимодСйствия:

  • REST/Resources – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ взаимодСйствия это рСсурсы с Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ измСняСмыС Ρ‡Π΅Ρ€Π΅Π· CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠ»ΡŽΡΡ‹: явная адрСсация, ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, простоС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠœΠΈΠ½ΡƒΡΡ‹: ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сцСнариСв, ΠΈΠ³Ρ€, Ρ‡Π°Ρ‚ΠΎΠ², соцсСтСй, обновлСния ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π΅ сСрвСра.
  • RPC/Calls – ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π½ΠΎΠ΅ взаимодСйствиС. ΠœΠΈΠ½ΡƒΡΡ‹: Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ сСтСвым Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ ΠΈ вСрсионности API. ΠŸΠ»ΡŽΡΡ‹: Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, простота ΠΈ Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ для ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ программиста.
  • Events/Messages – асинхронная модСль, взаимодСйствиС строится Π²ΠΎΠΊΡ€ΡƒΠ³ событий ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, Π° Π½Π΅ запроса-ΠΎΡ‚Π²Π΅Ρ‚Π°. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ событий ΠΈ согласованности Π΄Π°Π½Π½Ρ‹Ρ… Π² условиях высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • Shared Database — ВсС участники взаимодСйствия ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ пСрСносит всю Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ, Π½ΠΎ вмСстС с Ρ‚Π΅ΠΌ создаСт узкоС мСсто (SPOF) ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ, годится для систСм с Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ взаимодСйствия, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Simple data sync (Π±Π΅Π· Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²) – ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· слоТных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² консистСнтности, оптимистичСскоС сохранСниС, ΠΊΡ‚ΠΎ послСдний Ρ‚ΠΎΡ‚ ΠΈ ΠΏΡ€Π°Π². Π₯ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… синхронизации, систСмах с нСстрогими трСбованиями ΠΊ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… систСмах.
  • Operation log sync (с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²) – РСпликация Ρ‡Π΅Ρ€Π΅Π· ΠΆΡƒΡ€Π½Π°Π» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ автоматичСски Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π² распрСдСлСнных систСмах. Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгого контроля порядка выполнСния ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ CRDT ΠΈ Operational transformation.
  • Peer-to-Peer β€”Β ΠœΠΎΠ΄Π΅Π»ΡŒ Π±Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ сСрвСра, Π³Π΄Π΅ ΡƒΠ·Π»Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, рСплицируя состояниС ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ отказоустойчивыС сСти, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ согласования состояния состояния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² blockchain.

ΠŸΡ€ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠœΡƒΡ€Ρ‹Ρ‡Π°

β€” НуТна Π»ΠΈ оптимизация JavaScript ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ?
β€” Π§Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ,
Ρ‚Π΅ΠΌ мСньшС Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π»Π°Π·ΠΈΡ‚ΡŒ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽΒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ программистам.

ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π΄ΡƒΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это Π²Π°ΠΆΠ½ΠΎ ΠΈ интСрСсно, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ это всС Ρ„Π΅Ρ‚ΠΈΡˆΠΈΠ·ΠΌ ΠΈ ΠΊΠ°Ρ€Π³ΠΎ ΠΊΡƒΠ»ΡŒΡ‚, Π½ΠΎ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всС Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС.

  1. Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΈΡ… нСльзя ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡ… Π·Π°Π΄Π°Ρ‡Π° эффСктивно Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. Но Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ соблазн ΠΈ Π½Π΅ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒΒ ΠΈ ΠΏΠΎΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΡƒΠΆΠ΅ Ρ‚ΠΎΡˆΠ½ΠΈΡ‚ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹... Ρ„ΠΎΡ€ΠΌΠΎΡ‡ΠΊΠΈ, модСльки ΠΈ апишки. Π•ΡΡ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ мнСшь Π΄Π΅Ρ€ΡŒΠΌΠΎ Π² ступС ΠΈ Π΄Π°Π»Π΅ΠΊ ΠΎΡ‚ настоящСго программирования. Π₯ΠΎΡ‚ΡŒ это Π½Π΅ Ρ‚Π°ΠΊ, Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, которая Π½Π΅ Ρ‚Π°ΠΊ проста, Π²ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ хочСтся...
  2. Π•ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ люди, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ ΠœΡƒΡ€Ρ‹Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с ΡƒΡ‚Ρ€Π° Π΄ΠΎ Π²Π΅Ρ‡Π΅Ρ€Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Π΄Π°... ΠΊΠ°ΠΊ основной профСссиСй. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ каТСтся ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ программистам, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ 10 ΠΌΠ»Π½ Ρ€Π°Π· ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ нСсколько Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ, Ρ‚ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ просто ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ совсСм Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ большой ΠΎΠΏΡ‹Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Ρ‚ΡŒ устройство Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.
  3. Π•ΡΡ‚ΡŒ систСмныС программисты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΡƒΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΎΠ½ΠΈ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌ это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΠ½ΠΈ Ρ‚ΠΎΠΆΠ΅ гонятся Π·Π° ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ своСго ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΈ Π½Π° Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Π΄Π΅Π±Π°Π³ ΠΈ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠ½Π³ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρƒ Π½ΠΈΡ… ΠΌΠ°Π»ΠΎ.
  4. Π’Π°ΠΊ Π²ΠΎΡ‚, ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠΌ основныС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹Β ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠΉΠΌΡƒΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ часто ΡƒΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ‹Ρ‚ си ΠΈ ассСмблСра, Π½Ρƒ Π² основном ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚, Ρ‚Π°ΠΊ Π΄Π°ΠΆΠ΅ ΠΎΡ‚ понимания Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ языка, систСмный ΠΊΠΎΠ΄ становится быстрСС Π² Ρ€Π°Π·Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ сСбС Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎ всС Π·Π½Π°Π΅Ρ‚.
  5. Π’ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ хочСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ понятно ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ всСгда совпадаСт с оптимизациями. Ну часто ΠΈ совпадаСт, Π½ΠΎ Π½Π΅ всСгда. Если ΠΈΡ… Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ V8, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΌ, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, Ρ€Π΅Π²ΡŒΡŽ ΠΊΠΎΠ΄Π°... Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ мСньшС Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.
  6. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³ΠΏΡ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌΒ Π½ΡƒΠΆΠ½ΠΎΒ Π±ΠΎΠ»ΡŒΡˆΠ΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π½Π° сСмантикой, Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ простых ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΠΌ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΡƒΡˆΠΈΡ‚ΡŒ. БСссмыслСнно ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ программистам самим ΠΏΠΈΡΠ°Ρ‚ΡŒ тСсты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π΄Π΅Π·Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ ΠΊΠΎΠ΄, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π»Π΅Ρ‚ 5. Но Π²ΠΎΡ‚ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ примСси, Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ optional ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ массива, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ юнион тайпы для классов ΠΈ структур - это Π²Π°ΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ.

Interview-oriented Knowledge 2025-01-17

  • ΠΠ°Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π»ΠΈΡ‚ΠΊΠΎΠ΄Π° для собСсов, Π° ΠΏΠΎΡ‚ΠΎΠΌ, Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚,
  • ΠžΡ‡Π΅Π½ΡŒ Π»ΡŽΠ±ΡΡ‚ ΠΊΠ½ΠΈΠΆΠΊΡƒ с ΠΊΠ°Π±Π°Π½Ρ‡ΠΈΠΊΠΎΠΌ, Π½ΠΎ дСплоят ΠΏΠΎ FTP,
  • Π—Π° TypeScript ΠΌΠΎΠ³ΡƒΡ‚ Π³Π»Π°Π·Π° Π²Ρ‹Ρ†Π°Ρ€Π°ΠΏΠ°Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°Ρ…, Π½ΠΎ any ΠΈ ΡŽΠ½ΠΈΠΎΠ½Ρ‚Π°ΠΉΠΏΡ‹ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡˆΠ°Π³Ρƒ,
  • Π—Π°ΠΏΠΈΡˆΡƒΡ‚ Π² Ρ€Π΅Π·ΡŽΠΌΠ΅ ΠΊΡƒΡ‡Ρƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π½ΠΎ Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ· npm ΠΊΠΎΠ΄ ставят Π½Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² исходника,
  • РасскаТут Π½Π° собСсС ΠΏΡ€ΠΎ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΡƒΡ‚: if (enabled === true)...
  • Полгода ΠΏΠΈΠ»ΠΈΠ»ΠΈ микросСрвисы, Π½ΠΎ ΠΏΡ€ΠΎ coupling ΠΈ cohesion Π½Π΅Ρ‚, Π½Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ,
  • На Ρ€Π΅Π²ΡŒΡŽ ΠΊΠΎΠ΄Π° Π³Π½ΠΎΠ±ΠΈΠ»ΠΈ Π΄ΠΆΡƒΠ½Π° Π·Π° Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π° Π² ΠΏΡ€ΠΎΠ΄Π΅ процСсс Π·Π°ΠΏΡƒΡ‰Π΅Π½ Ρ‡Π΅Ρ€Π΅Π· forever...

See more: ...2025, 2024, 2023...

About

Timur Shemsedinov news feed

Resources

Stars

Watchers

Forks