Так себе программист
97 subscribers
184 photos
7 videos
1 file
183 links
Меня зовут Александр Троценко. Разработчик, преподаватель, к.т.н. Пишу о программировании и профессии.

10 лет в разработке desktop на C/С++

Контент: https://taplink.cc/atrotsenko
Download Telegram
Вы слушаете музыку, когда работаете?
Anonymous Poll
29%
Да
33%
В основном да
17%
В основном нет
21%
Нет
Я уже пару лет не слушаю музыку во время работы.

Хотя раньше как надевал наушники в начале рабочего дня, так и сидел в них до вечера 🎶

Не помню, почему перестал слушать. Но по ощущениям без музыки работается лучше. Сосредоточеннее, что ли.

Какое-то время привычка оставалась и хотелось включить чего-нибудь.

Сейчас слушаю музыку только в дороге. И то время от времени. Подкасты, знаете ли, сами себя не послушают 😁

—

Читать еще:
-
Дефицит внимания: кто виноват
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯4👍1🤔1
Когда обучение по реверсу закончилось, ребенок отдыхает у бабушки, а универ - на каникулах, наблюдается повышенная активность на GitHub 🤭

Только не думайте, что я сумасшедший и пашу без отпусков. Отпуск у меня был.
❤6😁4
Please open Telegram to view this post
VIEW IN TELEGRAM
Нижнее выравнивание выглядит красиво. Но я выбрал верхний вариант, потому что при правках будет чище git diff.

Представьте, если новый элемент enum окажется длиннее остальных. В нижнем варианте придется выравнивать все строки и, как следствие, становиться их автором по git blame.

А вы из чего исходили при выборе?
🤔6👍2
Учение. Увлечение. Время. Воля. Вера в себя. Умственный труд. Труд души. Внимание. Память. Уроки в школе. Уроки дома. Чтение.

Это главы из книги Симона Соловейчика "Учение с увлечением" (1979).

Звучит как рецепт 😉
👍6❤2
Так себе программист
Ни тот, ни другой вариант ответа не набрал абсолютное большинство голосов. Почему? Потому что "вкусовщина".

Вкусовщина - это субъективное, личное отношение к чему-либо.

Здесь есть о чем поспорить. В основном спорят за стиль. У каждого свое понимание "красоты". Но сколько не спорь, делу не поможешь. Вообще никак. Ноль. Зеро.

Что же тогда делать? Вижу два варианта:

1. Забить. Кто как хочет, так и делает. Нравится, не нравится - пофиг. 

2. Зарегулировать. На уровне соглашений: делаем только так. А отклонения не пускать. Хочешь делать по-другому? Ок, собирай аргументы, оценивай последствия, назначай дату, время и место обсуждения вопроса.

Еще лучше - авторегулирование. Форматтеры, линтеры и прочее. С кем там будешь спорить, с машиной?

Вообще, чем больше растешь профессионально, тем меньше беспокоят эти вопросы. Как принято в проекте, так и делаешь. Никак не принято? Помогаешь принять и делаешь как принято.

Красота.
👍7
YouTube Analyzer 6.0

Мы выпустили новую версию YouTube Analyzer - анализатора поисковой выдачи YouTube.

Все было готово еще 8 месяцев назад. Оставалось шлифануть, проверить и отдать. Всего-то... 🤦‍♂️
Ну, лучше поздно, чем слишком поздно.

Из интересного в коде по сравнению с предыдущей версией:

- Создан новый закрытый плагин для анализа видео по конкретному каналу. Плагин не попал в открытый код, но, благодаря ему, развилась система плагинирования. Реализовано дерево связей между плагинами, а также каждый плагин теперь может иметь свой собственный текст лицензии.

- Улучшена обработка ошибок от YouTube API. Ибо чего только YouTube не возвращает... То есть поля, то нет полей. В общем, все как у всех 😁

В следующей версии поработаем над экспортом данных. Ютуб-менеджеры уже не хотят анализировать "глазками". Они хотят отдать все ИИ.

—

YouTube Analyzer - это desktop-приложение на Python / PySide (Qt).
Его решения можно использовать как шаблон для своих приложений на Python / PySide или на C++ / Qt
.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3
Поняли, да? Мало попросить показывать превью. Надо еще уточнить, кому именно показывать.

Себе он показывал, умник...
😁8🤡2
Эксперимент с ИИ-разработкой

Кто не знает, моя специализация - desktop. В основном на C++/Qt. Хотя пробую разное.

Пробовать разное полезно для профессионального кругозора. Понятно, что везде специалистом не станешь. Но на качество принятия решений повлияешь.

Я давно хотел сделать desktop-приложение на TypeScript. Новый для меня стек, но концепция известна, так как теми же VS Code и Obsidian я пользуюсь каждый день. Они написаны на TypeScript, и они работают.

Поэтому в августе, как только завершился курс, я начал экспериментальную разработку desktop-приложения в связке Rust / TypeScript. 

Это не поделка "в стол", а персональный софт для учёта финансов (доходы, расходы, банковские и фондовые инструменты). Навязчивая идея, на реализацию которой никогда не было ресурсов. Проще вести табличку в Excel.

В рукопашную я бы никогда за это не взялся. Слишком много неизвестных. Но ИИ-агенты открыли окно возможностей.

Спустя месяц есть результаты и есть выводы. Ставьте 👍, а я в следующих постах все расскажу.
👍14
Так себе программист
Эксперимент с ИИ-разработкой Кто не знает, моя специализация - desktop. В основном на C++/Qt. Хотя пробую разное. Пробовать разное полезно для профессионального кругозора. Понятно, что везде специалистом не станешь. Но на качество принятия решений повлияешь.…
Почему, собственно, это эксперимент?

Потому что нет уверенности в средствах достижения результата. Понятия не имею, как далеко можно уйти в разработке исключительно на ИИ-агентах. Есть только гипотеза.

Итак, цели эксперимента.

1. Изучить новый стек технологий. Возможно ли вообще в чем-то разобраться, если код вместо тебя будет писать ИИ-агент?

2. Перевести учёт финансов из Excel в новое приложение. С моим количеством данных таблички уже не удобны. Получится ли создать приложение без особых усилий?

3. Оценить потенциал агентной разработки для чего-то большего, чем простой MVP. Стоит ли вообще рассматривать ответственную коммерческую разработку на этих принципах?

4. Оценить потенциал агентной разработки в незнакомом стеке. Что будет с продуктом в долгосроке при условии, что я не владею его стеком?

Это не исчерпывающий список, но общее направление передаёт точно. Я никогда так не работал, нужен опыт.

👇👇👇

И что же получилось после месяца работы.

1. Стек изучен крайне поверхностно. Да, освоен воркфлоу, освоены архитектурные принципы, есть хорошее понимание модулей на высоком уровне. Но непосредственно по языкам программирования - ноль. До сих пор не знаю, что там за конструкции.

2. Уйти от Excel получилось практически полностью и очень быстро. Кто бы сомневался. Остались графики и кое-какие мелочи. Это 100% будет сделано. Считаю цель достигнутой.

3. С полноценной разработкой ИИ-агентами пока не понятно. Есть ощущение, что все возможно при аккуратных процессах. Знаний в сети уже много, можно перенимать.

4. Да, сделать поделку в незнакомом стеке реально. Особенно если есть сильный инженерный бэкграунд. Это будет работать, это будет выполнять задачу пользователя. Но уверенности в поделке мало. Непривычно не знать, что у тебя там внутри. На длинной дистанции это ещё предстоит оценить.

В общем, вроде бы все работает, но на эти "вроде бы" пальцев рук не хватит. В сети транслируют разный опыт: от катастрофы до пушка-гонки. А раз так, то большой шанс оказаться где-то посередине.

Буду разбираться и вам рассказывать. Скоро покажу скриншоты с программой.
👍7🔥3❤1
Не знаю, как у вас, но меня отладка багов безумно утомляет. Скучно. Если не поймал с нескольких заходов, то все, поплыл. Прямо в рабочем кресле 😴😅
😁5❤3
Сколько раз нужно нажать на стрелочку рядом с «Заметки», чтобы раскрыть спойлер и увидеть список заметок по видеоконференции?

Ответ: бесконечно много.

Потому что это не спойлер, а кнопка сворачивания боковой панели. Жмак, и панель закрылась вбок. Я несколько раз попался. А заметок там нет и не было. Но почему-то очень хотелось, чтобы были 🤭

Все таки боковые панели обычно сворачиваются немного по-другому. Хороший пример - сворачивание в десктопе Telegram.

—

С натяжкой, но кейс становится 14 частью рубрики «Путаница в интерфейсах».
👍7
- Чем отличается сеньор от джуна?
- Взглядом... Взглядом на проблему.
😁7🤔2💯2❤1
Нужен ли в репозитории файл AUTHORS?

AUTHORS - это файл, где по именам перечислены все разработчики, когда-либо коммитившие в репозиторий. Например, файл AUTHORS есть у cppcheck.

Хорошая идея взять и перечислить всех контрибьюторов проекта. Всем весело и приятно. Это раз. А два: проще сделать копирайт в лицензии проекта. Мол, авторы - это все люди из файла и все права принадлежат им.

И все бы ничего, когда у проекта десяток авторов. А если больше? У того же cppcheck четыре с лишним сотни имен в списке. Хотя проект небольшой.

Иду смотреть другие проекты и обнаруживаю интересную вещь. У крупных репозиториев nodejs и golang файл AUTHORS когда-то был, но сейчас его нет. То есть вели-вели, а потом отказались.

Почему?

Копаю глубже и нахожу: в обоих случаях авторы просто задолбались поддерживать AUTHORS в актуальном состоянии.

В nodejs удалили файл на три с лишним тысячи авторов, а в golang - на полторы тысячи. Теперь в этих проектах история git стала единственным авторитетным источником списка (пример go).

С юридической точки зрения получается даже меньше вопросов. Файл AUTHORS, как правило, забывают обновлять, а история git, напротив, автоматически все фиксирует. На странице проекта в GitHub есть удобные инструменты для просмотра контрибьюторов: информация всегда актуальна.

Поддерживать файл AUTHORS или нет - выбор авторов. На своих проектах я решил, что не буду этим заниматься. Хотя изначально хотел. Но есть понимание, что однажды я точно забуду обновить этот файл. Кому-то из соавторов будет все равно, а кто-то расстроится, что его вклад не замечен.

Что думаете по этому поводу?
Как контрибьютор, хотели бы вы оказаться в файле AUTHORS или записи в истории git вам достаточно?
👍6❤1
Компьютер - детская мечта! Я так хотел компьютер.

Теперь компьютер ждет на работе, компьютер не отпускает дома, компьютер лежит в кармане, компьютер висит на запястье, компьютер приглядывает за рулём, компьютер варит кофе, компьютер пылесосит, компьютер включает свет и откликается на "Алиса". Даже мой телевизор теперь тоже компьютер.

Бойтесь своих желаний - они имеют свойство сбываться.
❤7👍2😁2👾1
SDD: когда агент спас

Наверное, всем знакома ситуация, когда начал что-то кодить, а через какое-то время осознал, что двигался немного не туда. Ну или не немного 🤭
При рефакторинге вообще милое дело вляпаться в блокер на полпути. Всегда бесило до чёртиков.

И винить обычно некого. Сам проморгал, сам вляпался, сам выкручиваешься.

Сегодня с этим стало проще. ИИ-агент может и код быстро переписать, и хорошую разведку провести (чтобы не пришлось потом переписывать).

Это уже большой плюс. Но может быть ещё лучше. Ниже живой пример.

Один из своих проектов я с самого начала веду в парадигме SDD (Spec Driven Development): сначала спеки, потом код.
Во время проработки одной из фич случился примерно такой диалог:

Я: Хочу сделать турбо-мега-фичу

ИИ: Эта фича противоречит правилу 2 из спеки А003

Я: Ты что-то не понял. Там работает вот так и вот так. Все ложится нормально.

ИИ: (долго думает)

ИИ: Я посмотрел код. Он соответствует спеке А003. Если ты решишь делать фичу, то придется менять правило 2 и переделывать это и это (перечисляет половину проекта)

Я: (уже не смешно, смотрю внимательнее и осознаю)

Я: А, точно, я забыл про это. Тогда сделаем по-другому...


Понимаете? Уже по спеке агент понял, что фича тяжело ложится. А я не понял: забыл, не уточнил, поспешил. Так ещё и не поверил сначала 😄

Приятно, что есть инструмент, который помогает меньше косячить. Не супер-пупер таблетка, конечно, но при правильном окружении получается очень интересно. Мне нравится, как работает SDD с агентами. Многие проблемы либо отлавливаются на ранних этапах, либо вообще не возникают. Своих тонкостей там тоже хватает, ещё предстоит разобраться. Но даже базовый уровень впечатляет.

А вы создавали что-нибудь через SDD?
👍4❤1