Forwarded from
Если взять одно, что я хочу в JavaScript, то это будет Block Expression. При чем в V8 все готово, чтобы это сделать, в каждом блоке последнее выражение отдельно сохраняется в структуре V8, я даже согласен на do-expression, но зачем этот do?
Сейчас приходится либо выносить функцию или использовать IIFE или let снаружи - это отвратительно:
Промежуточные переменные не загрязняют scope, а можно было бы:
Вместо IIFE только представьте как можно было бы переписать:
Но лучше всего в try/catch, представьте это как перепишем:
А теперь представьте литерал объекта:
Или вызов функции:
Сейчас приходится либо выносить функцию или использовать IIFE или let снаружи - это отвратительно:
let price;
if (user.isAdmin) {
price = 0;
} else if (user.hasDiscount) {
const discount = calculateDiscount(user);
price = basePrice * (1 - discount);
} else {
price = basePrice;
}
Промежуточные переменные не загрязняют scope, а можно было бы:
const id = {
const normalized = name.trim().toLowerCase();
const separator = normalized.includes("-") ? "-" : "_";
const parts = normalized.split(separator);
parts.join(":");
};Вместо IIFE только представьте как можно было бы переписать:
const config = (() => {
const env = process.env.NODE_ENV ?? 'development';
const production = env === 'production';
// do something...
return { env, host, port, secure: production };
})();Но лучше всего в try/catch, представьте это как перепишем:
let data;
try {
const text = await readFile(path, 'utf8');
data = JSON.parse(text);
} catch {
data = 'default value';
}
А теперь представьте литерал объекта:
const response = {
user,
permissions: {
const roles = await getRoles(user);
if (roles.includes('admin')) ['read', 'write", 'delete'];
else if (roles.includes('editor')) ['read', 'write'];
else ['read'];
},
displayName: { ... some calculations },
};Или вызов функции:
render({
const width = container.clientWidth;
const columns = Math.max(1, Math.floor(width / 300));
const gap = columns > 3 ? 24 : 16;
{ width, columns, gap };
});❤12🔥6👎3💯2
Сьогодні до обіду маю 90k рядків рев'ю коду
Написав 4 сторінки виправлень
Не за один раз
Написав 4 сторінки виправлень
Не за один раз
🤯16🔥4🤣2😁1
Ваше відношення до AI у розробці, хто пише код, як змінився процес?
Anonymous Poll
2%
🛑 Не вірю, виправляти після AI довше, пишу код сам
8%
🔎 AI як Stack Overflow, корисний для пошуку рішень
12%
🛠 AI робить рутину, складне програмую сам
1%
🥹 Я роблю рутину, а складне віддаю AI (це ж анонімно, так?)
51%
⚡️ AI швидко пише, все читаю, повертаю йому на виправлення
18%
🚀 AI пише все, я йому вірю, перевіряю результат, а не код
8%
🏭 AI пише все, його перевіряє інший агент, я вільний
Which of these AI engineering terms do you understand well enough to explain?
Anonymous Poll
16%
ACP / Agent Client Protocol
89%
MCP / Model Context Protocol
32%
LSP / Language Server Protocol
12%
A2A / Agent2Agent Protocol
61%
Harness / Execution Environment
58%
RAG / Vector Search
26%
Repository Graph / Map
У Reslop 0.3.3 до попередніх інтеграцій:
я додав ще 7 інтеграцій
при цьому зверніть увагу на diff - дуже малий, а це не тыльк код
7 інтеграцій зайняло всього 234 рядків коду
це тому, що добре продумана гнучкість та розширюваність
більшість інтеграцій взагалі зроблено декларативно
і лише зрідка знадобилися функції
все згенеровано AI за планом у самому reslop
на різних моделях, це щоб протестувати його ж роботу
PR-URL: https://github.com/tshemsedinov/reslop/pull/154
claude code, opencode, cursor, codex, antigravity
я додав ще 7 інтеграцій
Kilo Code +19/-1
Windsurf +41/-6
Cline +16/-1
Kiro +273/-25
Pi +83/-24
Copilot +16/-1
Junie +17/-1
при цьому зверніть увагу на diff - дуже малий, а це не тыльк код
7 інтеграцій зайняло всього 234 рядків коду
це тому, що добре продумана гнучкість та розширюваність
більшість інтеграцій взагалі зроблено декларативно
і лише зрідка знадобилися функції
все згенеровано AI за планом у самому reslop
на різних моделях, це щоб протестувати його ж роботу
PR-URL: https://github.com/tshemsedinov/reslop/pull/154
👍7❤3🔥2🤝1
Тут кажуть, що у програмістів забрали найцікавіше, а залишили рутину, а я думаю, що якраз навпаки - заблали рутину і залишили найцікавіше. Програмування це ж не про те, як написати цикл, функцію і клас, а про те, як придумати принцип за яким вони будуть написані, наприклад, виділити характеристики коду, як: іммутабельність, ідемпотентність, гранулярність, зачепленість, лінивість ... і придумати, що ця характеристика дає нам корисного, поки AI не чи прийому, жодного узагальнення.
Програмування у його найбільш інтелектуальної частини - це не код, а створення принципів, якими код має бути влаштований.
Цикли, функції, класи, проміси – це механізми. А іммутабельність, ідемпотентність, композованість, гранулярність, зв'язковість, зачепленность-характеристики, якими керуємо властивостями коду.
- Імутабельність дає спрощення конкурентного виконання
- Мутабельність - швидкість та економію пам'яті, але багато небезпек
- Ідемопотентність - стійкість до повторів
- Слабке зачеплення - гнучкість через замінність
- композованість - повторне використання та породження нових абстракцій
Такі та подібні речі формують модель мислення, що дозволяє створювати цілі класи програм інакше.
ШІ вже брав участь у створенні нових алгоритмів, виявив ефективніші алгоритми сортування, нові алгоритми множення матриць та оптимізації обчислень. Але це не те саме, що створення нової парадигми програмування.
Можна виділити чотири рівні інтелектуальної діяльності:
1. Реалізація -написати код за заданими правилами
2. Проектування - вибрати відомі принципи, патерни та обмеження
3. Узагальнення – виявити загальний принцип у різних рішеннях та сформулювати нову абстракцію
4. Винахід - запропонувати новий принцип організації обчислень, який відкриває раніше недоступні можливості або суттєво змінює підхід до розробки
ШІ впевнено працює на перших двох рівнях, здатний непогано допомагати на третьому та демонструє скромні результати на четвертому, насамперед у алгоритмічних завданнях. Але загальновизнаної нової фундаментальної парадигми програмування, та що там... навіть нового патерну чи прийому створеного ШІ ми не бачимо.
Справжній прорив у AI-assisted programming – це перехід від генерації реалізацій до генерації та перевірки принципів.
Наївно писати "зроби мені архітектуру з SOLID", потрібно прагнути до "знайди характеристику системи, яку ми ще не формалізували, виведи з неї корисні наслідки, запропонуй новий спосіб організації коду і доведи, що він працює і дає корисні характеристики кодової бази".
Програмування у його найбільш інтелектуальної частини - це не код, а створення принципів, якими код має бути влаштований.
Цикли, функції, класи, проміси – це механізми. А іммутабельність, ідемпотентність, композованість, гранулярність, зв'язковість, зачепленность-характеристики, якими керуємо властивостями коду.
- Імутабельність дає спрощення конкурентного виконання
- Мутабельність - швидкість та економію пам'яті, але багато небезпек
- Ідемопотентність - стійкість до повторів
- Слабке зачеплення - гнучкість через замінність
- композованість - повторне використання та породження нових абстракцій
Такі та подібні речі формують модель мислення, що дозволяє створювати цілі класи програм інакше.
ШІ вже брав участь у створенні нових алгоритмів, виявив ефективніші алгоритми сортування, нові алгоритми множення матриць та оптимізації обчислень. Але це не те саме, що створення нової парадигми програмування.
Можна виділити чотири рівні інтелектуальної діяльності:
1. Реалізація -написати код за заданими правилами
2. Проектування - вибрати відомі принципи, патерни та обмеження
3. Узагальнення – виявити загальний принцип у різних рішеннях та сформулювати нову абстракцію
4. Винахід - запропонувати новий принцип організації обчислень, який відкриває раніше недоступні можливості або суттєво змінює підхід до розробки
ШІ впевнено працює на перших двох рівнях, здатний непогано допомагати на третьому та демонструє скромні результати на четвертому, насамперед у алгоритмічних завданнях. Але загальновизнаної нової фундаментальної парадигми програмування, та що там... навіть нового патерну чи прийому створеного ШІ ми не бачимо.
Справжній прорив у AI-assisted programming – це перехід від генерації реалізацій до генерації та перевірки принципів.
Наївно писати "зроби мені архітектуру з SOLID", потрібно прагнути до "знайди характеристику системи, яку ми ще не формалізували, виведи з неї корисні наслідки, запропонуй новий спосіб організації коду і доведи, що він працює і дає корисні характеристики кодової бази".
👍15💯4❤3🔥2👨💻1
Node.js Brotli Decoder Bug Could Allow Remote Code Execution in All Supported Versions
https://thehackernews.com/2026/10/nodejs-brotli-decoder-bug-could-allow.html
https://thehackernews.com/2026/10/nodejs-brotli-decoder-bug-could-allow.html
🤷♂12😁7🔥2🤝2🎅1
🏛 Відкрито новий набір у NextTick
- Зараз це 700+ інженерів
- Ведучі Ілля Климов та Тимур Шемсединов
- Ви витрачаєте: 2 години на тиждень + $50/місяць
- Кожен місяць 2 стріми: по архітектурі та по комунікаціям
- Калібровка допоможе за 15 хвилин зрозуміти, що вам потрібно
- Три відео на тиждень що допоможуть з AI та архітектурою та комунікаціями
- Чат, де вам допоможуть по робочих питаннях ведучі та колеги
✔️ https://gm.nexttick.it/go/timur-tg-metarhia
- Зараз це 700+ інженерів
- Ведучі Ілля Климов та Тимур Шемсединов
- Ви витрачаєте: 2 години на тиждень + $50/місяць
- Кожен місяць 2 стріми: по архітектурі та по комунікаціям
- Калібровка допоможе за 15 хвилин зрозуміти, що вам потрібно
- Три відео на тиждень що допоможуть з AI та архітектурою та комунікаціями
- Чат, де вам допоможуть по робочих питаннях ведучі та колеги
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👨💻4👍1👎1🎉1
Самое сложное сейчас в программировании с AI: не формировать долгосрочных привычек.
Нельзя надолго привязываться к IDE, моделям, агентам, подпискам, инструментам, собственным workflow. Все меняется быстрее, чем мы успеваем наладить это как нужно.
Главная привычка сегодня - не создавать привычек.
Нужно постоянно экспериментировать, пересматривать решения, пробовать новые подходы и без сожалений выбрасывать вчерашний тулинг.
Иначе можно обложиться своими и чужими инструментами, все идеально настроить, автоматизировать, интегрировать и застрять в этом уютном мире на 3-6 месяцев.
Пока внешние обстоятельства не выбьют тебя оттуда. И окажется, что индустрия уже ушла далеко вперед, а ты все это время занимался оптимизацией собственного комфорта. Такие зависимости гораздо опаснее, чем зависимости на npm или любые другие библиотеки.
Это не касается навыков мышления: декомпозиция, проверка гипотез, архитектурные принципы, критическое мышление нужно сохранять и развивать, они не плывут как инструментальные привычки.
Сегодня опаснее всего слишком хорошо обустроиться в текущих технологиях.
Тут подробнее https://gm.nexttick.it/go/timur-tg-metarhia
Нельзя надолго привязываться к IDE, моделям, агентам, подпискам, инструментам, собственным workflow. Все меняется быстрее, чем мы успеваем наладить это как нужно.
Главная привычка сегодня - не создавать привычек.
Нужно постоянно экспериментировать, пересматривать решения, пробовать новые подходы и без сожалений выбрасывать вчерашний тулинг.
Иначе можно обложиться своими и чужими инструментами, все идеально настроить, автоматизировать, интегрировать и застрять в этом уютном мире на 3-6 месяцев.
Пока внешние обстоятельства не выбьют тебя оттуда. И окажется, что индустрия уже ушла далеко вперед, а ты все это время занимался оптимизацией собственного комфорта. Такие зависимости гораздо опаснее, чем зависимости на npm или любые другие библиотеки.
Это не касается навыков мышления: декомпозиция, проверка гипотез, архитектурные принципы, критическое мышление нужно сохранять и развивать, они не плывут как инструментальные привычки.
Сегодня опаснее всего слишком хорошо обустроиться в текущих технологиях.
Тут подробнее https://gm.nexttick.it/go/timur-tg-metarhia
❤15👍6💯4
Кожен четвер о 19:00 по Київському часу вже 6 років проходить дзвінок Metarhia комьюніті, обговорюємо IT, AI, програмування, я демонструю свій тулінг, розробки, скілии, дивлюся ваші проєкти та відповідаю на питання - це $10/місяць - архів 275 відео по 2 години, це 550 годин серіальчік - https://www.patreon.com/c/tshemsedinov
❤10🔥1🤝1