Тут пару прикладів із завтрашніх слайдів
Containers
Guards
in JavaScript
Pattern matching
in JavaScript
Do-notation
Pipeline operator
Declarative style
🧐 заходимо, не соромимося 👉 https://nodeua.com/Patterns-2025-paradigms-ua
Containers
Box.of(42); Either.right(42); Promise.resolve(42);
let maybe: number | null = 42; type Pair = { a?: number; b?: number };
type Option<T> = { kind: 'some'; value: T } | { kind: 'none' };
std::optional<int>; std::tuple<int>; std::reference_wrapper<int>;
Nullable<int> maybe = 42; new StrongBox<int>(value); Tuple.Create(myIntValue);
Guards
func process(_ x: Int?) -> Int? {
guard let v = x else { return nil }
guard v >= 0 else { return nil }
return v * 2
}in JavaScript
const process = (x) => {
if (x === null) return null;
if (x < 0) return null;
return x * 2;
};Pattern matching
fn process(x: Option<i32>) -> Option<i32> {
match x {
None => None,
Some(v) if v < 0 => None,
Some(v) => Some(v * 2),
}
}in JavaScript
const match = (variant, handlers) => handlers[variant.tag](variant);
match({ tag: 'point', x: 10, y: 20 }, {
point: ({ x, y }) => `(${x}, ${y})`,
circle: ({ r }) => `radius: ${r}`
});
Do-notation
Do({ id: 15 })
.chain(({ id }) => ({ id, name: 'marcus', age: 42 }))
.chain(({ name, age }) => name === 'marcus' ? (log) => log(age) : () => {})
.run()(console.log);Pipeline operator
(({ id: 15 })
|> read
|> (({ name, age }) => name === 'marcus' ? (log) => log(age) : () => {})
)(console.log);Declarative style
execute({
read: { id: 15 },
success: {
match: { name: 'marcus' },
success: { effect: { log: 'age' } },
fail: { effect: 'noop' },
},
})(reader)(console.log);🧐 заходимо, не соромимося 👉 https://nodeua.com/Patterns-2025-paradigms-ua
❤4👍1🔥1💯1🫡1
🧐 last call, ви будете розуміти такий гумор 👉 https://nodeua.com/Patterns-2025-paradigms-ua
❤3🤯3🤣2😁1👀1🫡1
🧐 Do you use Referential Transparency in your code?
Anonymous Poll
84%
I have no idea
6%
I understand, but rarely use it
8%
I can use it in FP
6%
I can use it in FP with monad chains
6%
I can use it in OOP
7%
I can use it even in procedural style
5%
I prefer ownership and copy-on-write
🤣7👍2🤯2😎1
Спасибо AI, что объяснил всем, что код ничего не стоит, авторские права не нужны, важна способность поддерживать его работоспособность и оперативно решать задачи, а горы кода не ценность сама по себе, это просто но не для всех было очевидно, люди держались за свой говнокод, шифровали, хранили на флешках в сейфе, надеюсь, это закончилось
🤣15❤10👍7👀2🤝2👎1💩1
🚀 Курс Patterns 2025 вже розпочався, приклад того, що ми розбираємо на дзвонах у вас є, вчора опублікував лекцію про Referential Transparency (посилальну прозорість) адаптовану для ООП та інших парадигм, не потрібно думати, що це тільки для ФП корисно, ми беремо багато з ФП і адаптуємо. Але все ще є кілька місць, якщо ви не встигли, можна наздогнати, тиждень це не критичне відставання, заходимо, ціни як має бути на чорну п'ятницю https://nodeua.com/Patterns-2025-ua
❤6👍1🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
Илья Климов делает курс по TypeScript, он не знает, что я пишу это тут до публикации, а многие не поверят, что я вообще могу писать такое про TypeScript. Если вы думаете, что не люблю TS, это не правда, я использую его много, а не люблю я то, что делают из TS многие разработчики - нечитаемые, бессмысленные нагромождения конструкций, не дающих никакой прибавки к надежности или производительности, понятности и управляемости кода. Большинство TS, который можно увидеть в обычных проектах, это или бойлерплейт или формально добавленные типы, просто чтоб было, так требуют, значит - добавим, не приходя в сознание и не осознавая задачу, которую решают типы в коде, часто сгенерированные AI и совершенно непрозрачные для человека, а значит, не прошедшие ревью, хрупкие и абсурдные конструкции. Я видел код Ильи и говорил с ним про TS, курса я не видел, но общие принципы, которые он хочет донести, я поддерживаю, нужно писать просто, но писать просто это не так просто, усложнять гораздо проще. Посмотрите, как элегантно пишет Илья, у него есть, чему научиться https://javascript.ninja/typescript
Update: Дали -30% промокод NODEUA
Update: Дали -30% промокод NODEUA
👍21😁7❤3💯1
Ми масштабували команду менторів і ще можемо донабрати на курс Patterns. Ще не пізно, тиждень можна наздогнати.
Крім того, якщо ви не можете зараз, але розраховуєте піти у 2026 році, то заповніть форму заздалегідь.
Ціни завтра будуть підняті, до вихідних набір закривається.
Пізній онбординг на курс Patterns:
https://forms.gle/r9gZCKU6RAAGo3q8A
Крім того, якщо ви не можете зараз, але розраховуєте піти у 2026 році, то заповніть форму заздалегідь.
Ціни завтра будуть підняті, до вихідних набір закривається.
Пізній онбординг на курс Patterns:
https://forms.gle/r9gZCKU6RAAGo3q8A
👍2🤝1🫡1
🎬 Режисерская версия стрима с Мурычем и Брагилевским про парадигмы программирования нарезана и собрана в один плейлист, кто не смотрел, вот тут все https://www.youtube.com/playlist?list=PLHhi8ymDMrQYveSqg-fFSbT3e3j1pYgbV
👍6❤3🤝2
Тут мої нотатки з майстер-класу по парадигмах програмування, такий конспект, із сніпетами для швидкого розуміння про що мова та прикладами коду одного фрагменту на 46 різних стилях, це не 46 парадигм, але ми й говорили, що нема вже таких цілісних правильних парадигм, але є ті чи інці ідеї, що дають певні властивості коду та є зовсім окремо синтаксичні конструкції, що використовуються для реалізації ідей. В результаті конструюємо з них стилі програмування: https://github.com/HowProgrammingWorks/Paradigms
GitHub
GitHub - HowProgrammingWorks/Paradigms: Programming Paradigms Comparison
Programming Paradigms Comparison. Contribute to HowProgrammingWorks/Paradigms development by creating an account on GitHub.
❤3👍3🫡1
AI здатний створювати 2.7 мільйона мов програмування на день
😁16🤣6💯3👀1
❓ Якщо хто має сумніви як йому це допоможе чи питання по курсу Patterns, то можна отримати консультацію від головного ментора курсу Дмитра Нечая, письмову чи дзвінком, заповнивши форму: https://forms.gle/4h3VWbcdtvnWEotM6
❤2👍1🫡1
Будь-який керівник, здобувши високий рівень влади, може вирішити, що отримав повний контроль над системою. Але варто опуститися на рівень деталей – і його одразу придавить потужністю континууму. До речі, це і з фахівцями працює, які чудово освоїли високорівневу мову програмування, але за кожним оператором стоїть багато шарів компіляції, оптимізації, віртуалізації, виконання на конкретному залізі. Копни туди і відкривається безперервна складність: навіть імператор не здатний гарантувати, що у 12:00 у найдальшому селі за його наказом усі піднімуть праву руку. Помилки в коді виправити можна, але не можна гарантувати, що ви за кінцевий час дійсно зрозуміли, що виправлено, і наказали коду працювати правильно у всіх випадках, інженеру не приходить геніальна думка по команді, діти не сміються за розкладом, листоноша може заблукати, а генерал - охрипнути. Абсолютна надійність, вона як швидкість світла, недосяжна навіть у дрібницях.
👍8💯6🤯3👀2🤷♂1
