Pull to refresh
3
0

Программист С++ [и немного Rust]

Send message

А, может и в начале, я уже не помню. Открывал её лет 5 назад. Сегодня я хотел бы почитать что-нибудь про System Design Patterns, но не знаю что.

Переводя с нормального русского, на русский разговорный:


  • Прогнозы подтвердились, нужно продаванам планку поднимать
  • Итерация горит, а у нас обнова для базы не скопирована
  • Перекинь на меня задачу, вот прям ща!

Вообще, поработал два года в конторе, что выпускате сертифицированное ФСБ ПО и было очень забавно перейти оттуда в иностранную контору. Первые пару месяцев казалось, что все вокруг просто выпендриваются используя американские термины вообще для всего, хотя русских навалом вообще. Со временем влился и теперь тоже "ассайню таски"...(((

Основная и главная проблема noexcept в том, что нет compile-time проверки действительно ли оно noexcept. Забыв поймать где-то исключение — получаешь риск std::terminate на пустом месте!


Соответственно единственный ТруЪ-способ использовать noexcept это писать что-то такое:


#include <iostream>

#define NOEXCEPT(EXPR) ([&]() { static_assert(noexcept(EXPR), "Expression can throw"); }, EXPR)

auto fun() noexcept 
{
    auto x = NOEXCEPT(int(3));
    //auto x = NOEXCEPT(std::string("3")); //won't compile
    return x;
}

int main()
{
    std::cout << fun() << std::endl;
}

Но как можно понять, компилироваться такое будет очень долго.

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


https://refactoring.guru/ru/design-patterns


В конце самой книге приводится пример построения текстового редактора, на изученных в книге абстракциях.

Перед государством все равны, но никто не обещал, что государство будет равно для всех)

Спасибо. Ради таких разборов и читаю хабр.

Другое дело что никто не гарантирует что запись будет осуществлена в том месте где вы написали

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

Забавно, что я опираюсь на факт, что мои суждения, любые, даже это — могут быть опровергнуты, если взять другую систему аксиом. Проблема в том, что это не помогает. Осознание проблемы — не помогает, потому что все видимые способы решения — мне не нравятся или они нереалистичны (чтобы всем было хорошо). И вот сидишь ты такой, замкнутый в своей голове и видишь кучу вариантов, которые все гавно :)


Подобные настроения на меня наказытывают раз в 3 недели на 2-3 дня. Я уже привык и просто переживаю эти дни, просто сознательно не пытаясь искать ответов, ибо это приводит к зацикленности. Просто глушу экзистенциальный кризис прогулками, играми, и прочим. А потом всё хорошо и даже те же самые вопросы не вызывают грусти и печали.


Вот забавный парадокс. Когда мне грустно и печально, наверное мне бы пригодился специалист, но у меня не хватает сил его найти. Попытки найти его в "хорошее" время — приводят к мысли, что кругом одни идиоты, вроде и настроение нормальное, ну его нах. Так и живем)

А как понять какой элемент самый распространённый (чтобы понять, какую половину сортировать), ведь задача и состоит в поиске этого элемента? Если я в курсе что это за элемент я и сортировать ничего не буду.


P.S.
Ничего умнее map<int,int> я не придумаю, да и в целом не буду. На моей памяти ни мне, ни кому-то из тех кого я знаю не потребовалось решать задач, в которых бы понадобились эти знания.


P.P.S.
Я очень рад за тех людей, которые встречаются с такими задачами. Мне обычно приходится решать какие-то более приземленные задачи.

Ну, а в Линукс есть sudo (зачастую тоже в NOPASSWD), который даёт root доступ всему, что ни попадя практически по любому телодвижению связанному с настройкой системы.


Проблема та же, как по мне.

Надо ещё сегодняшние 0,2 млн пересчитать в деньги десятилетней давности и цифры ещё более впечатляющие будут)

Основная проблема всего написанного в том, что это лишь один кейс использования Qt. Я уже тыщу лет на нём не пишу (с версии 5.4), но в те времена когда я свои мелкие поделия нан ём делал, мне в нём нравилось:


1) Event-based потокобезопасная и быстрая модель взаимодействия почти всего во фреймворке. Самое главное то, что её было ОЧЕНЬ легко использовать и почти не надо было думать. Всё взлетало само, много ума не надо.


2) Богатый набор всего на свете. Тогда Qt воспринимался как boost с человеческим лицом, т.е. вещь в которой можно накопать всё что угодно и это будет работать хорошо и быстро.


3) QML очень удобная вещь.


4) Документация. Долгое время я думал, что на MSDN хорошая документация, но потом я встретил документацию Qt. Ничего более прекрасного я не видел никогда и нигде (в мире С++, в других экосистемах всякое есть).


5) НОРМАЛЬНЫЙ кроссплатформенный (Mac/Win/Lin на то время) GUI фреймворк. Где всё работало блин. А если не работало, требовались прямо вот совсем минимальные подпрыгивания. Шрифты не уезжают, поддержка нативных контролов есть, ничего не тормозит "на глаз".


6) На тот момент единственная бесплатная вменяемая кроссплатформенная C++ IDE


7) qmake (вроде уже похоронили)


Но самое главное Qt Framework — это фреймворк, в широком смысле и это очень хороший фреймворк. Тебе не нужно по большей части особо думать, просто нужно найти точку расширения, написать своей логики, за Qt уже сделает всё за тебя.


И вряд ли кто-то вот так в один момент откажется от Qt по щелчку пальцев. По сути, Qt стал популярен и приобрел статус хорошего надежного решения и сейчас делает шаг в сторону использования только большими компаниями, ибо на них можно срубить больше бабла. Если он сможет закрепиться в этой позиции, то еще долго будет жить. Большим компаниям будут нужны программисты на Qt, так что программисты будут его учить, т.к. он перспективный и т.д. и т.п.


А не сможет — ну, откатит лицензионную модель обратно.

Раньше периодически натыкался на что-нибудь подобное на просторах телеги. Сначала впечатлялся (только не на несколько дней, а скорее на 20-30-60 минут), а потом "привыкаешь". Нет, не начинаешь считать нормой, просто теряется страх видеть смерть людей и приходит осознание полной картины мира. Зато сразу осознаешь, как в целом далеко шагнуло человечество в культурном развитии. Раньше "шок-контент" всем поставляли "по воскресеньям" на городской площади под улюлюканье толпы.

Если ушел из офиса, да к работе уже не вернёшься. Если ушел :) А я легко мог забываться и сидеть там до 21:30)


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


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

Детей у меня нет, это правда.

Персонально я от перехода на удалёнку только лучше работать стал. Как оказалось, в офисе дофигищу времени тратил на попить чаёчку + поболтать с коллегами + хоть у нас и "хороший опенспейс" (ненавижу их, но выбор невелик), всё равно там бывает шумновато. Дома тихо, спокойно, можно вздремнуть на обеде. Можно отключить мессенджеры на час-другой, если хочется сконцентрироваться на задаче и никто не похлопает по плечу. Дома лучше мониторы у меня в конце концов.

Если у тебя команда из "серьёров" (что бы это ни значило), то тебе не нужен team lead в большинстве случаев. Программисты с опытом, в целом, способны разруливать свои проблемы самостоятельно по принципу:


1) Собрались кучкой
2) Обсудили
3) Решаем проблему
4) Если проблема административная — идешь к менеджеру и обрисовываешь как есть.


А вот если команда разнородная, в ней еще имеется джун/миддл или нужно какие-то техрепорты писать — вот тут без лида уже никак.

Но ведь сами пишете чем бумага хуже — монополизированной (людьми) эмиссией. Эммисию золота устроить ну оч тяжело, а вот эммисию бумаги — на раз два.


нести политическую ответственность не только за свои действия, но и за их.

Вообще не припомню, чтобы хоть какое-то правительство несло ответственность за то, что пинает причинные места, вместо работы (кроме периода массовых революций).

Information

Rating
Does not participate
Registered
Activity