Задать вопрос
  • Почему C# не кроссплатформенный?


    Почему C# не кроссплатформенный?

    На этот вопрос нельзя ответить сразу по двум причинам:
    1. C# - это язык, а язык не может быть кросс-платформенным, так как платформы в разрезе языка и нет.
    2. .NET уже много лет как кросс-платформенный.
    Начиная с уже мейнстримного .NET 8, заканчивая mono и всякой экзотикой типа nano framework


    но при этом, это не так

    Ничто нельзя запустить на "чём угодно"


    но в неё вопрос кроссплатформенности решена абсолютно полностью

    Если вопрос "абсолютно полностью" решён, то почему я не могу запускать программы, написанные на Java, на любом железе?
    Ответ написан
    Комментировать
  • Что стоит учить с или c++ или c#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Добрый вечер! Столкнулся с такой проблемой: Мне очень нравятся семейство языков Си, у меня есть выбор учить C++ либо C#, хочу разрабатывать ПО для ПК. Подумал начать с C++ и говорят что сначала поучить чистый СИ, а после переходить на C++, так что же из этого правильно? Надо ли учить Си? Или может лучше начать с C#, а дальше уже выучу C++?

    Тема сравнения С/C++/C# в публичном пространстве - опасная тема. Она обычно заканчивается
    топиком в 1000 страниц и великой войной всех против всех. Я видел много таких войн.
    Они ничем не заканчиваются. Специалисты остаются при своих мнениях. А зритель просто развлекается.

    Сам по себе выбор языка ставят только новички. Професиионалу безразличен язык (почти). Его может больше интересует отрасль, стек технологий, стандарты и протоколы. С моей точки зрения сегодня
    таким стандартом может быть выбор облака (AWS, Azure, GCP).

    Чистый СИ учить смысла нет. Учи сразу С++. Но даже его создатель Бьорн Страуструп считает что С++ это
    сложный язык и он настаивает чтобы новички не брались учить все фичи сразу. Исключение по языку
    СИ может быть в том случае, если ты собрался быть инженером по разработке микро-контроллеров
    и у тебя скорее всего будет только СИ как основной (на 80-90%) инструмент взаимодействия с таким железом. Выйти на мидловый или синьорный уровень в С++ очень тяжело. Тяжелее чем в других языках.
    Поэтому будь готов терпеть. Вот когда виски станут седые - тогда и будешь господин-синьор.

    C# - это очень сильно корпоративный стандарт от Microsoft. Никакой связи с С++ он не имеет. Он конечно
    внешне похож но это сходство обманчиво. Да изучать его тоже можно. Он учится легко. Существуют книги
    вроде ".... C# за 14 дней". Разработка бизнес-приложений на шарпах идет гораздо быстрее чем на С++
    например. И завалить систему в синий экран в этом языке гораздо труднее. В нем реализованы методы
    защиты памяти и нельзя грязно трюкачить с указателями как это любят в С или С++. Производительность
    шарпов в численных методах будет слабее чем в С++ но обычно бизнес не ставит таких задач и чаще
    надо будет писать веб-хендлеры или хендлеры MQ-систем. Кач уровней синьорити идет быстрее в шарпах.
    Ответ написан
    2 комментария
  • Как защитить postgresql в контейнере докера?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Уберите из docker-compose
    "ports:
    - "5400:5432"
    и порт не будет публиковаться наружу, будет доступен только на внутреннем ip адресе вашего контейнера docker.
    Для подключения или используйте внутренние имена контейнеров, или создайте отдельную подсеть docker (подсеть по умолчанию не дает выдавать контейнерам статические ip адреса) и переведите оба контейнера на ее использование с выдачей статических ip адресов.
    Ответ написан
    1 комментарий
  • К чему готовиться работая преподом в колледже?

    4 дня работаешь на нормальной работе, 1 день преподаёшь.
    Преподавание - это 90% педагогики и 10% собственно программирования.
    Прогрессировать, очевидно, будешь только в умении доносить какие-то знания до людей сильно глупее тебя (ну или хотябы в умении не сходить с ума от того что на паре студенты ничего не делают)
    Ответ написан
    4 комментария
  • Как лучше учиться архитектуре?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Изучать теорию лучше всего по книжкам, конечно, а практику на практике, соответственно. Но есть один нюанс, чтобы понять парадигмы и шаблоны, нужно попасть в условия, для которых их придумали. То есть просто в пет-проекте в полной мере осознать тот же SOLID нереально, нужно продолжительное время поработать в крупном проекте, который на протяжении многих лет активно развивает большая команда.
    Ответ написан
    Комментировать
  • Стоит ли углубленно изучать многопоточность, асинхронное и паралельное программирование?

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

    @turdubekov
    Студент
    Учитывая текущий тенденции курсов и их репутацию, наличие ВО думаю дает преимущество перед теми, кто окончил курсы (Для первый работы)
    Ответ написан
    2 комментария
  • Как найти работу со сложными и комплексными проектами если нету опыта работы в таких проектах?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    У большинства программистов первое рабочее место - это унылая маленькая компания с примитивными технологиями и простыми задачами. Следующая работа немного лучше. Следующая ещё лучше. И так пока не заберëшься на максимально доступную тебе высоту. Потолок и скорость развития у всех разные, зависят в основном от того, на сколько сильно стараешься. Некоторые так никогда и не выбираются из эникейщиков и крутильщиков cms'ок. Немало тех, кто выбирается лет десять.
    Ответ написан
    Комментировать
  • Как структурировать и наладить процессы в "галере"?

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

    Значит канбан напрашивается.


    У нас в команде из 16 человек сейчас около 12-15 активных проектов и каждый член команды нагружен иногда сразу несколькими проектами (Понятно что это суть галеры, но как улучшить этот опыт?)

    Под галерой обычно понимают аутсорс, а не потогонку)
    Ответ написан
    Комментировать
  • Разделение ответственности или производительность?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Мне кажется, что все прочитали только заголовок, а на текст поста никто не обратил внимания. Как обычно
    А там-то и лоснится самый ЖЫР:

    Но в этом случае мне придется выполнить 2 запроса к базе данных

    То есть вся "проблема" тут из-за каши в голове клиента, который откуда-то взял, что во втором варианте у него будет не два запроса, а один. Ну то есть понятно откуда - очередной разрабончик баз данных, который SQL видел только в кино, а база данных для него - это вот это вот prisma create.

    И только из-за этих нелепых страхов он ломает всю логику и сервис юзеров у него начинает лазить в БД постов. Что и является здесь проблемой. А не какие-то, опять же, дурацкие страхи про дублирование вызова нотификации.
    Ответ написан
    6 комментариев
  • В чём отличие многопоточности и асинхронности в контексте .NET C#?

    Nipheris
    @Nipheris Куратор тега C#
    Асинхронность - это способ организации вычислений, когда код, вызывающий какую-либо операцию/подпрограмму /функцию, не дожидается завершения работы этой операции, а если ему интересен результат вычислений, то он получает вместо готового результата некий способ запросить результат позже, когда он будет готов (то, что называется промисом или фьючером или ещё как-то в зависимости от языка). Это по сути противоположность "обычному" синхронному вызову, когда вызывающий код останавливается и ждёт завершения функции, чтобы получить результат. Как это будет достигнуто - это уже другой вопрос, это зависит от сути операции, запускаемой асинхронно.

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

    Что такое "классическая многопоточность"? Что это за термин? Что такое неклассическая многопоточность?
    Если брать потоки ОС, то операционка просто передаёт управление созданному потоку в желаемую точку входа и дальше уже поток решает что и как делать. Поток может молотить вычисления 10 минут, потом записать их куда-нибудь в файл и завершиться. Никаких кормлений задачами не будет (хотя я не совсем понимаю что такое кормить задачами в вашем контексте).

    Тем более при асинхронности практически всегда подразумевается многопоточность

    С чего бы? Асинхронный код полезен при большом количестве операций ввода-вывода - диск, сеть и т.д. Не обязательно это должно быть что-то, вычисляющееся в отдельном потоке. Вот, почитайте хорошую статью: There is no thread.

    Вам будет полезно ознакомиться с асинхронностью в какой-нибудь изначально однопоточной среде, например JS в браузере не считая вебворкеров. Тогда вы поймёте разницу.
    Ответ написан
    5 комментариев
  • Берут ли на работу в IT с психическим расстройством?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В админы надо идти, там паранойя и обсессии даже полезны. Пока себя не загонишь.
    Ответ написан
    Комментировать
  • Берут ли на работу в IT с психическим расстройством?

    1. Просто при найме на работу не болтай о своих диагнозах - это создаст лишнее предвзятое отношение, которое тебе точно не нужно.
    Благо при найме на работу справку от врача предъявлять не нужно ;)

    "ПРЛ" и "ОКР" для не-психиатра - это непонятные слова и это ожидаемо, что люди тут ориентируются на стереотипы.

    2. Если умственной работе это не мешает, приступы в середине рабочего дня у тебя не происходят, конфликтов с коллегами на этой почве у тебя не (можешь себя контролировать, помогает медикаментозная/поведенческая терапия или просто очень слабо проявляется), то всё будет ок.
    Если вас что-то беспокоит - лучше проконсультируйтесь со специалистом, а не с родственниками/знакомыми.

    PS: есть среди родственников и знакомых люди с психическими расстройствами и могу сказать, что если они соблюдают все рекомендации врача и периодически наблюдаются - человек со стороны никогда не поймёт, что с ними что-то не так.
    Ответ написан
    Комментировать
  • Какими наводящими вопросами деликатно определить, процветает ли в компании микроменеджмент либо нет?

    php666
    @php666
    PHP-макака
    если фиксированный оклад без премий, и ревью раз в год - тогда врятли люди внутри будут выкладываться. они будут в изоляции от процессов компании, багофиксерами того что спустят свяше, и как следствие - микроменеджмент
    вообще не понятно причем тут ревью, фиксированный оклад и микроменеджмент
    Ответ написан
    1 комментарий
  • Какими наводящими вопросами деликатно определить, процветает ли в компании микроменеджмент либо нет?

    Я обычно прошу номер сотрудника перед трудоустройством. Первый положительный момент если позволяют пообщаться тет-а-тет. Второй положительный момент когда сотрудник нормально отвечает на вопросы в лоб про потогонки, переработки, плюсы и минусы работы. Важно проверить что это действительно разработчик. Можно спросить про технические стороны проекта.
    Ответ написан
    2 комментария
  • Как в C# проекте импортировать стороннюю c++ библиотеку?

    Вариант "идеоматичный":
    1. Эта библиотека должна экспортировать функции с сишным abi (extern "C")
    2. В коде на C# ты описываешь эти функции при помощи pinvoke
    3. Добавляешь в проект dll-ку с собранной сторонней либой.
    Профит

    Вариант "ситуативный и будет работать только на винде":
    1. Берёшь C++/CLI
    2. Делаешь на нём .Net библиотеку и делаешь нужное количество классов -обёрток над плюсовым кодом.
    Профит

    В случае с этой библиотекой можно ещё попробовать:
    1. Найти альтернативы
    2. Переписать на C#
    Ответ написан
    2 комментария
  • Первое предложение о работе, как поступить?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Джуны и в лучшие времена были не нужны, а теперь тем более. Поэтому хвататься надо за любую возможность, а потом сжав зубы получать свой первый год непрерывного опыта, с которым будет проще потом устраиваться.
    Ответ написан
    1 комментарий
  • Стоит ли переписывать старый проект на .NET6 (на голом энтузиазме)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Нет, оно того не стоит. Любая работа должна быть оплачена. Ибо сейчас напишешь за свой счет, а потом начальника скажет "о, отлично, молодец, можем теперь сэкономить на программистах и поддержке, у меня как раз знакомый ищет, ща его поставлю, а ты можешь быть свободен, заодно выпишу себе премию, во какой я молодец". Этот код решает задачи бизнеса. Если бизнес готов тратить на его поддержку и сопровождение деньги - то это проблемы этого бизнеса. Почему это наемный работник должен решать проблемы бизнеса за свой счет? Правильно сделать так: оформить все в виде какого-то документа с конкретными аргументами, цифрами, графиками и т.п. и выдать его начальству. Типа сейчас поддержка проекта стоит столько-то, приносит такие-то проблемы, переписать будет стоить столько-то, сопровождение нового будет столько-то, оно решает такие-то проблемы. И выдаете данный документ начальству. Можно даже в бумажном виде в нескольких экземплярах. А далее пусть у начальства голова болит.
    Ответ написан
    3 комментария
  • Стоит ли разработчикам платить за баги?

    DollyPapper
    @DollyPapper
    Надеюсь никогда не попаду в компанию, где вы являетесь ПМом :) Без обид, ничего личного, но даже возникновение мысли об этом поспорить уже абсурд. Сначала заказчик/начальник хочет чтобы функционал был сделан еще вчера, а на архитектуру, практики кодирования мы положим ботл, а потом у них возникают вопросы откуда баги. Ну вот оттуда и баги. Производство ПО это такое же производство как и любое другое производство. Если бы мы говорили про автомобильную индустрию, то на сколько бы вам хотелось ездить на машине которую сделали за вечер потому что сроки горят, конкуренты нас обходят? Мне вот тоже не хотелось бы. По этому в любом другом производстве уже давно выстроены процессы, есть отделы тестирования качества и прочие вещи, которые позволяют уменьшить/исключить брак. И только в ИТ почему то до сих пор является нормальным забить болт на все практики производства и потом спрашивать за баги с разработчика. Когда у вас появится формальное описание ТЗ (именно формальное, т.е. формализованное) в котором просто не может иносказаний одного и того же пункта, когда у вас появится опытный архитектор который будет довольно долго планировать архитектуру проекта, когда у вас появится нормальная процедура тестирования специально обучеными людьми и у вас все равно будут баги, тогда можно и задуматься, а стоит ли платить разработчику за баги, ведь теперь у меня есть все условия для того, чтобы багов не было. А до тех пор советую на эту кривую дорожку не вставать. Вот простой пример, рассудите сами:
    Есть некоторый код который использует некоторую библиотеку. В библиотеке есть баг который всплыл у вас на проде. Разработчик в этом виноват? Может он виноват в том, что выбрал не качественную библиотеку? А у вас выстроен формальный процесс верификации запчастей из который состоит ваш проект? А у разработчиков библиотеки хорошие процессы разработки были? Это ведь тоже программный код который так же кто-то разрабатывал.
    Ответ написан
    Комментировать
  • Стоит ли разработчикам платить за баги?

    @aleks-th
    У меня примерно так:
    1. Если задание выполнено строго по ТЗ и принято - любой вновь найденый баг - это уже новая работа которая должна быть оплачена.
    2. Если задание не выполнено по ТЗ и баги при приемке не принимать - то это ошибка разработчика, пусть исправит.
    ---
    3. ТЗ должно быть составлено так чтобы не могло быть двойного трактования - если ТЗ позволяет трактовать задачу размыто и компания может предполагать одно, а исполнитель другое - ошибка того кто дал это задание разработчику - соответственно это не проблема разработчика, он не знает что у вас в голове и работа по переделке будет оплачена.
    ---

    А вообще никаких общих правил не существует - как договоритесь так и будет.
    Ответ написан
    Комментировать