"Люди ничему не верят так твердо, как тому, о чем они меньше всего знают" // ChatGPT
😁28💯7👨💻2🤷♂1
Дети грызут ручку, чтобы ее ни кто не забрал, ведь кому нужна ручка погрызаная другим.
Когда программисты пишут код, я полагаю, они руководствуются тем же принципом, чтобы отвадить от него как коллег, так и конкурентов, да и всех потенциальных ревьюеров.
Когда программисты пишут код, я полагаю, они руководствуются тем же принципом, чтобы отвадить от него как коллег, так и конкурентов, да и всех потенциальных ревьюеров.
🤣48💯6😁4😎1
Тут план на этот год по курсам, это кроме паттернов
- Async 2026 полностью готов и уже было первое подняие цены, будет и второе
- Paradigms 2026 готов, но еще не опубликована программа, пока early birds
- Node.js 2026 готовлю большую перезагрузку материалов, до публикации действует early birds
- Scale 2026 - высоконагруженные, интерактивные и распределенные системы (готовится)
- На остальные предзапись, будут выходить в течении года
https://www.patreon.com/collection/1913313?view=expanded
- Async 2026 полностью готов и уже было первое подняие цены, будет и второе
- Paradigms 2026 готов, но еще не опубликована программа, пока early birds
- Node.js 2026 готовлю большую перезагрузку материалов, до публикации действует early birds
- Scale 2026 - высоконагруженные, интерактивные и распределенные системы (готовится)
- На остальные предзапись, будут выходить в течении года
https://www.patreon.com/collection/1913313?view=expanded
Patreon
Software Engineering Education | Collection from Timur Shemsedinov | 7 posts
Get more from Timur Shemsedinov on Patreon
❤5🔥5👍3🫡2😎1
🧩 Паттерн Context
Примеры:
- 1-closure.js — Контекст с замыканием: Частично применяемая функция с привязанным контекстом; простой RBAC и аутентификация пользователя
- 2-oop.js — Контекст в ООП: Контекст передается в конструктор; RBAC, User и AccountService как классы
- 3-factory.js — Фабрика контекста: Фабрика создает сервисы с общим контекстом; внедрение зависимостей
- 4-pipeline.js — Контекст в конвейере промежуточного ПО: Асинхронный конвейер с распространением контекста; трассировка и идентификаторы запросов
- 5-async.js — Асинхронный контекст (AsyncLocalStorage): Контекст сохраняется между асинхронными границами без явной передачи
- 6-immutable.js — Неизменяемый контекст: Замороженный контекст и производные контексты с помощью вспомогательных функций; без мутаций
👉 https://github.com/HowProgrammingWorks/Context
Контекст используется для обеспечения обмена данными между различными компонентами (абстракциями, модулями, слоями), не имеющими общего окружения, без лишнего связывания.
Примеры:
- 1-closure.js — Контекст с замыканием: Частично применяемая функция с привязанным контекстом; простой RBAC и аутентификация пользователя
- 2-oop.js — Контекст в ООП: Контекст передается в конструктор; RBAC, User и AccountService как классы
- 3-factory.js — Фабрика контекста: Фабрика создает сервисы с общим контекстом; внедрение зависимостей
- 4-pipeline.js — Контекст в конвейере промежуточного ПО: Асинхронный конвейер с распространением контекста; трассировка и идентификаторы запросов
- 5-async.js — Асинхронный контекст (AsyncLocalStorage): Контекст сохраняется между асинхронными границами без явной передачи
- 6-immutable.js — Неизменяемый контекст: Замороженный контекст и производные контексты с помощью вспомогательных функций; без мутаций
👉 https://github.com/HowProgrammingWorks/Context
👍11❤2🔥2💯2
We will have this in JavaScript in future, Insha'Allah
https://github.com/tc39/proposal-do-expressions
https://github.com/tc39/proposal-do-expressions
GitHub
GitHub - tc39/proposal-do-expressions: Proposal for `do` expressions
Proposal for `do` expressions. Contribute to tc39/proposal-do-expressions development by creating an account on GitHub.
🔥10🤷♂9❤5⚡2👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍1🔥1
AI сломал новичков.
Не понимая, что такое stack trace, не освоив даже циклы, новички массово рвутся изучать архитектуру.
Не понимая, что такое stack trace, не освоив даже циклы, новички массово рвутся изучать архитектуру.
🤣41😁14😢10👎7🤷♂5🤩2
джаваскриптоднопоточный
Что хотят сказать люди, когда мы слышим это заклинание?
Удивительно, но я 15 лет слышу эту чушь из каждой второй статьи и доклада. Но для чего на ней настаивать? Может быть, хочется думать, что в js не бывает корапшена данных, неконсистентного состояния, когда ссылки на данные есть у нескольких частей программы одновременно, а в многопоточной среде это приводит к состоянию гонки. Но все эти проблемы могут быть и в однопоточном приложении, которое использует кооперативную многозадачность, передавая управление разным частям кода хоть через колбеки и ивентлуп или даже без него, на промисах и async/await, которые вообще часть языка, но позволяют в одном месте приостановить выполнение, а в другом поработать и в это время. Если объект доступен из таких разных мест, которые работают асинхронно в одном потоке, как только промис, await или callback возвращает управление в нашу часть кода, и она ожидает, что объект все еще в том же состоянии, что и был до асинхронной операции, то это опасная иллюзия, нужно все перепроверять в условно синхронном фрагменте кода. Но это тоже не всегда сработает, у нас есть Atomics и SharedArrayBuffer, которые могут и в синхронном фрагменте менять состояние и гарантий консистентности в JS нет.
Что же говорит спецификация? Безопасность не гарантируется даже в синхронном фрагменте кода и не только через Atomics и SharedArrayBuffer. Деми Мурыч хорошо это комментирует "спецификация дала возможность любому окружению, создавать условия, когда выполнение JS кода не прибито гвоздями к одному агенту". Это значит, что в будущем могут появиться такие среды исполнения, где будет общий хип для нескольких потоков и нескольких агентов. Но прямо сейчас все известные рантаймы js гарантируют безопасность данных на коротких фрагментах условно синхронного кода, если не использовать SharedArrayBuffer. Это уже что-то, но это далеко не безопасно в том смысле, на который надеются люди, кричащие "джаваскриптоднопоточный" из любого утюга. И это не имеет никакого отношения к потокам или процессам, потому что для исполнения кода ваш js рантайм может порождать сколько угодно внутренних потоков для компиляции, оптимизации, сбора мусора, выполнения I/O операций, и еще пачку потоков для пользовательского кода: worker threads, shared workers, service workers.
Поразительно, как широко распространилось это клише про однополосный js, статьи, доклады, комменты, просто разговоры, люди это повторяют как мантру. Мне вот футболку подарили 5 лет назад, с надписью джаваскриптоднопоточный и nodejsоднопоточный, хоть я это уже лет 15 критикую на конфах всех, и нет конца этому...
👍12❤7🤯4😁2🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
use AI but don't forget good old automation
😁14💯2🫡2❤1
Красота, эстетика и интуиция решают задачи там, где формального компутер-саенса пока недостаточно.
Я не противопоставляю эстетику науке и уж точно не свожу все к мистике. За настоящей эстетикой почти всегда стоит какой-то принцип, обобщение, закономерность, просто оно еще не формализовано.
Инженерия постоянно сталкивается с вещами, которые еще не открыты, не осознаны и даже не сформулированы как проблемы. И в этот момент начинает работать интуиция - она сворачивает огромный массив опыта, знаний и наблюдений в одно решение. Иногда это выглядит как озарение. Иногда - как красивое решение.
А потом уже приходит наука и аккуратно рационализирует то, что сначала было найдено чувством формы.
Я не противопоставляю эстетику науке и уж точно не свожу все к мистике. За настоящей эстетикой почти всегда стоит какой-то принцип, обобщение, закономерность, просто оно еще не формализовано.
Инженерия постоянно сталкивается с вещами, которые еще не открыты, не осознаны и даже не сформулированы как проблемы. И в этот момент начинает работать интуиция - она сворачивает огромный массив опыта, знаний и наблюдений в одно решение. Иногда это выглядит как озарение. Иногда - как красивое решение.
А потом уже приходит наука и аккуратно рационализирует то, что сначала было найдено чувством формы.
👍13⚡4❤4💯4👎1🔥1