All streams
Search
Write a publication
Pull to refresh
-1
0.1

Инженер-программист

Send message

Киньте ему идею вместо клавиатуры морзянку стучать на телеграфном ключе, а вместо мышки световой пистолет, я бы взял такой набор

Что характерно, если писать в функциональном стиле с итераторами и комбинаторами, оно примерно так само собой получается)

А можно поподробнее чего там llvm не имеет, мы применяем для ARM, пока никаких проблем не встречали, чего там не так с risc-v? А то может пора следить за gccrs, а мужики то и не знают

Обновили бы русский rust book, а то там люди до сих пор листают 1.67

В процессе нет, смотрите вы можете например вернуть ссылку на кусок какой-то строки, а потом нечайно изменить эту строку, в общем случае это не очевидно, вы можете передать в функцию много разных строк и что-то хитрое на основе них собрать, но этот результат будет жить, только пока актуальны входные данные, механизм лайфтаймов защитит от подобного рода проблем

Ещё поговаривают если у вас код обрастает лайфтаймами, что компилятор не может вывести сам - скорее всего это явный сигнал, что вы делаете что-то не то

Нет нагрузки в рантйме

"WSL позволяет легко изолировать среды разработки, настраивая их под конкретные задачи или группы проектов."

Эмммм... Докер, k8s, ci/cd и прочая требуха сейчас в моде, не говори такие глупости в it обществе

Во первых не всякий менеджер сможет объяснить задачу, раньше я помню инженеры программировали калькуляторы, рисовали стоя тонны листов, сейчас сидят ровно за проинженером, к их услугам мощные символьные и численные алгебры, много ли менеджеров способны накидать для этих систем хотя бы лагрнажиан для математического маятника, не говоря про практические задачи

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

КОП занято компонетно-ориентированным

"ООП - про манипулирование объектами", а чем аналог ООП и без объектов не ООП, например алгебраический тип+типаж, там так же используют большинство тех же паттернов проектирования, но вот объектов нет... Не вижу смысла изобретать новую парадигму для такого подхода, если они просто вырезали спорное наследование, а с ними и надобность в классах и объектах пропала, но суть осталась та же, все действия в самой основе те же

Там это работает примерно так: вот я хочу чтобы переменную моего типа можно было запихнуть в такую функцию, компилятор говорит ну ок, тогда реализуй для него интерфейс что делать когда мне надо его скопировать, частично сравнить с таким типом и преобразовать в такой тип, ни от чего наследоваться не надо

"Массив - ссылочный (reference) тип. Элементы массива - int, они value тип. Если быть точным, то readonly struct. Массив объявлен как int[],"

вы вообще о чём? Сам массив хранит не элементы, а ссылки на них, это всё, чтобы просто сложить или отсортировать элементы нужно в два раза больше действий, тупик, а добавить туда GC, который постоянно проверяет каждую ссылку? Чем вообще cpu заниматься должен, проверять не накосячил ли программист?

"На реальных задачах получить небольшой профит из спанов конечно можно, просто используя их, чтобы сократить лишние аллокации в своем коде. Остальное лучше оставить тем, кто понимает что делает, а по моему опыту это редкие ниндзя."

Я понимаю что делаю, и конкретно этот пример очевидно в C/C++/Rust разместится в стеке, я могу гарантировать реалтайм даже, понимаете ли вы что если вы пишите на C#, то производительность, точные тайминги и размер в памяти это последнее о чем стоит переживать, там этого добиться почти невероятно

Писать на C#, массив с ссылочными типами, размещать его в куче и рассуждать о производительности...

По мне уж если до такого дошло - можно и во все тяжкие пуститься

Я один раз попробовал qwen3, на поиске ошибки в коде, я попросил объяснить как работает некоторый участок, она мне выдала как простой пример заимствования функцию (это её пример, у меня в коде ничего такого не было):

fn calculate_length(s: &String) -> usize { s.len() }

И потом спустя пару абзацев такая, я даже процитирую в точности этот текст:

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

> ✅ Напиши функцию, которая принимает строку и возвращает её длину. Если строка пустая — пусть возвращает 0."

Мне кажется она меня за идиота считает, я вернулся к deepseek r1

Вот эти моменты про электрон, хромимум, и прочее я не совсем понимаю, если так декомпозировать, то тебе нужно начинать с момента а откуда электрон берет include <iostream>, а откуда аллокатор C++ берет память? Кто ему даёт то? Глупо это, есть vs code, он применяется, никто на замену ему не возьмёт electron и куски js и chromium

Наверное да, 20 маловато взял, тогда уже open source стал понемногу давить, 25-30 лет стоит, если у тебя ms-dos или win95 у тебя по сути выбор между Microsoft и Borland, обе стоят как самолёт, домой не купишь, только пиратки, а уж увидеть исходный код какого нибудь turbo pascal или visual basic - было невозможно, если ты собрался в 97-м году подключать libjpeg к проекту на VC - ну что ж, удачи, тебе надо было бы иметь много запала и оптимизма, в основном просто покупали за $1500 какие-то enterprise edition (или пиратили), где хоть какие-то компоненты были, нужно было ещё - плати, для примера из того в чём я принимал участие как разработчик, самое известное - qip, там было два платных компонента, а ну и внутренний чат, тогда не было даже бесплатного чата на php нормального, да и форум vbulletin стоил бабок, phpBB делал только первые шаги

"Совет: Начинайте писать тесты сразу, как только создали метод. Это проще, чем исправлять баги потом!"

Совет из TDD: Начинайте писать тест ДО того как создали метод, убеждаемся что тест не проходит и только потом создаём метод который проходит тест, рефакторим, убеждаемся что проходит, думаем а какой функционал ещё нужен? добавляем новый тест, убеждаемся что он не проходит, меняем или добавляем новый метод, чтобы он его проходил, рефакторим и смотрим чтобы уже два теста проходили, и так накручиваем

Такой способ даёт 100% покрытие и 100% предсказуемость, а так же крепкий сон, исключает драмы в стиле почему когда я парсил json у меня дропнулась таблица в бд

если ты не знаешь чего тестировать - скорее всего либо тебе не ясна задача, либо тебе дали задание в стиле "сделай как нибудь" , значит и делай как нибудь, но я так не делаю, потому что потом всё будешь переписывать, руководствуюсь другим принципом - стараюсь делать хорошо, хренова всегда получится, когда ты пишешь тест ты четко понимаешь что ты хочешь на выходе при таком входе, а значит и проще объяснить железяке, поэтому относиться ко времени на тесты нужно как на проектирование, а не само программирование

"В мире, где крупные корпорации все больше закрывают свои разработки, такой подход выглядит как глоток свежего воздуха"

Вам микрософт дал исходники c#, powershell, vs code, содержат сервера github с крупнейшим архивом open source и дают вам бесплатно в том числе приватно свой говнокод держать, как в облаке и даже CI/CD развертовать на их мощностях, представьте себе такое лет 20 назад... Тогда нужно было платить чтобы получить лицензию на их алгоритм сжатия картинок, любой компилятор стоил немалых денег, сейчас выбирай что хочешь из опенсорс решений почти на любом языке, включая бесплатные компиляторы, с открытым кодом, в разработку которых в том числе зачастую вложились эти крупные компании

Если он у тебя в деревне не используется, это не значит что он не используется в индустрии, кодовой базы полно на github

Тоесть админу освоить базово powershell и запустить скрипт сразу везде по сети сложнее чем собрать это, запрограммировать и ходить втыкать чет-то по сотне машинам на десятке этажей и кабинетах

"при помощи LLM вкатиться в новый язык можно... за неделю смело."

Ей бы кто объяснил язык, при переводе функции составления regexp с python на pascal Deepseek r1 мне вмандюрила переменную I как итератор по вектору найденных строк и сразу ниже i как счётчик в цикле по этой строке, функция всего 6 строк, у нас любой школьник знает, что Паскаль регистронезависим

"С планами перехода на 1.77.0"

А шагают в ногу со временем, у меня стоит 1.84 и во время одной из сборок внезапно возмутился, что давно ты меня не обновлял, лентяй

Information

Rating
3,256-th
Registered
Activity