• Как наглядно увидеть процесс сборки мусора в программе?

    ApeCoder
    @ApeCoder
    Найдите для своей платформы профайлер. В Visual Studio, например есть Diagnostic Tools которые показывают когда происходит сборка мусора в .NET приложениях. Можно также посльзоваться perfmon (это встроенная в винду утилита - туда надо добавлять счетчики типа % времени приведенный в GC), dottrace от JetBrains и прочее.

    Для вашей платформы должно быть то же самое. Ключевые слова для поиска garbage collector diagnostics [название вашей платформы]
    Ответ написан
    Комментировать
  • Как вам такая идея диплома?

    ApeCoder
    @ApeCoder
    Подобное может быть востребовано например для ролика дублирования кода (только надо искать в своей кодовой базе, а не в чужой) - такое есть например в resharper https://www.jetbrains.com/help/resharper/dupFinder.html

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

    Вот ещё нашел нечто
    theory.stanford.edu/~aiken/moss

    Так что, если сделаете алгоритм применение ему можно найти.
    Ответ написан
    Комментировать
  • Какой самый удобный сервис (сайт) для сопоставления синтаксиса языков программирования?

    ApeCoder
    @ApeCoder
    Пример противоречит задаче. Если программист хочет выучить php зная js, ему не нужен сайтс синтаксисом для Смолтока. Он может погуглить что-то типа "php for javascript developers" и найти специализированную статью.

    Я знаю что есть сайты со сравнением разных языков типа helloworldcollection.de но вояж ли там глубоко рассматривается синтаксис всех всех языков. В разных языках может быть не только разный синтаксис но и разные понятия. Т.е. может быть то чего в другом языке просто нет. В разных языках разные библиотеки и разные идиомы. Для указанного примера я бы предложил почитать статью типа той которую я привел и книжку по php, пролистывая то, что и так понятно.
    Ответ написан
    1 комментарий
  • Как правильно разбивать задачу?

    ApeCoder
    @ApeCoder
    Начать с постановки задачи и последовательно спрашивать себя и других "что надо сделать чтобы это заработало" к ответам опять задать тот же вопрос пока не будет все ясно.

    По-умному называется "декомпозиция" и есть разные статьи на эту тему. Например, вот 8 методов декомпозиции задач
    Ответ написан
    Комментировать
  • Почему лямбда выражение не выполняется?

    ApeCoder
    @ApeCoder
    Потому, что он не знает тип. Where - это статический extension метод для IEnumerable. Так как тип items неизвестен из-за dynamic он не знает про Where. Попробуйте

    ((IEnumerable<Object>)vkData1.response.items).Where(...


    либо заменить dynamic на более конкретный тип.
    Ответ написан
    8 комментариев
  • Как смириться с тем, что нельзя убирать плохой код на проекте?

    ApeCoder
    @ApeCoder
    Прочитать книжку "эффективная работа с унаследованным кодом" и подумать за счёт чего достигается уверенность в том, что вы ничего не сломаете при рефакторинге.

    Если у вас нет чего-то из того что ниже постараться это внедрить:
    - автоматические тесты
    - continuous integration
    - code review или парное программирование
    - автоматические средства рефакторинга
    - статическая проверка (typescript, например)

    Начать анализировать статистику по причинам возникновения ошибок - часто она в плохом коде.

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

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

    Как-то так
    Ответ написан
    Комментировать
  • Можно ли выбрасывать исключение в предикатах?

    ApeCoder
    @ApeCoder
    Рассматривать ситуацию как исключительную или нет - дело дизайна. Вы можете либо сделать предикат, но тогда эта штука долга возвращать true или false и выкидывать исключения других ситуациях - например при нехватке памяти.

    Либо сделать проверку и выкидывать исключение, но тогда незачем возвращать true - это будет уже не предикат.
    Ответ написан
  • Сложно ли учить новый язык программирования после JavaScript?

    ApeCoder
    @ApeCoder
    Попробуйте typescript - он специально сделан так чтобы быть расширением js
    Ответ написан
    Комментировать
  • Что значит понимать устройство операционных систем?

    ApeCoder
    @ApeCoder
    Люди могут разобраться даже без сорцов - Марк Руссинович разбирался в свое время по утекшим отладочным символам от винды (см. кстати, его книжку "Windows internals").

    Есть "закон дырявых абстракций" по которому всегда найдется ситуация, когда возникает необходимость знать детали реализации а не только интерфейс. Например, часто такое возникает при суровых требованиях к быстродействию либо когда что-то идёт не так.
    Ответ написан
    Комментировать
  • Хочу написать свой интерпретатор языка программирования, в какую сторону копать?

    ApeCoder
    @ApeCoder
    Это зависит от того, насколько фундаментально вы хотите освоить тему.
    Если хотите понять в целом - драконью книжку вам дали.
    Если хотите сляпать по-быстренькому, ищите туториал для своего языка программирования ( "Пишем язык программирования на C#")
    Еще можно посмотреть в сторону генераторов парзеров (lec, yacc, antlr etc).
    А еще подумайте, может, вам подойдет существующий какой-то - только встроить надо.
    Ответ написан
    Комментировать
  • Задан файл с функциями определить какие из них рекурсивные?

    ApeCoder
    @ApeCoder
    Найти или написать парсер
    Пройтись по AST
    Найти те определения функций, которые включают вызовы себя
    Ответ написан
    Комментировать
  • Хочу стать хорошим программистом,как быть?

    ApeCoder
    @ApeCoder
    Но причина в том что я не могу сам написать какой то средненький проект со всеми ООП,просто не могу передать свои мысли в код,даже когда читаю чужой код не понимаю почему он сделал так,почему меня этому не учили в курсах, где же брать информацию что бы понимать это АААААА, и из-за этих мыслей начинаю психовать .


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

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

    В-третьих, не паникуйте, все всему учились. Даже чтобы научиться ходить надо много много раз упасть.
    Ответ написан
    4 комментария
  • Сколько нужно оперативной памяти?

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

    Теперь откройте Монитор ресурсов (Пуск \ Выполнить \ Resmon.exe ) и попробуйте это поделать.

    Посмотрите на закладку Память.

    Если память остается свободной и мало ошибок страницы, значит памяти достаточно.

    Если память почти заполнена и много ошибок страницы постоянно - значит при увеличении количества памяти возможно, получится ускорение.

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

    Еще учтите, что страничные ошибки необязательно происходят от недостатка памяти, но и по внутренним причинам (иногда это нормально).
    Ответ написан
    Комментировать
  • Как вы разбираетесь в чужом коде?

    ApeCoder
    @ApeCoder
    Просто прочитать код и попытаться понять, что хотел сказать автор.
    Попробовать самому в уме решить ту же задачу и посмотреть отличия. Подумать какая логика может заключаться в различиях.
    Поставить точки останова и посмотреть коллстеки, сравнить их.
    Понять предметную область, какая терминология используется и как она отображена на идентификаторы кода.
    Понять контракты между частями кода и какая часть не выполняет свой контракт.
    Ответ написан
    Комментировать
  • Почему SSD начинает тормозить спустя примерно сутки после загрузки?

    ApeCoder
    @ApeCoder
    Можно ещё посмотреть через resource monitor - он показывает и диск
    Ответ написан
  • Есть ли софт для проводника, чтобы вызывать в какой именно программе хочешь открыть файл?

    ApeCoder
    @ApeCoder
    При помощи манипуляций с реестром можно добавлять пункты контекстное меню проводника
    https://mywebpc.ru/windows/add-in-the-context-menu/
    Ответ написан
    Комментировать
  • Нужно ли разработчику ПО на .NET знать внутреннее устройство сборщика мусора?

    ApeCoder
    @ApeCoder
    Если разработчик хочет писать высоконагруженные приложения, то знание внутренностей сборщика мусора ему поможет: он сможет писать код так чтобы он потреблял меньше памяти, меньше времени проводил за сборкой мусора. Ещё он сможет быстрее анализировать причины низкой производительности или слишком высокого потребления памяти.
    Ответ написан
    Комментировать
  • Чем можно переименовать пачку файлов по сложному алгоритму?

    ApeCoder
    @ApeCoder
    Powershell
    Ответ написан
    Комментировать
  • Как реализовать синхронизацию Ipad с Lumia 550?

    ApeCoder
    @ApeCoder
    Попробуйте установить клиент OneDrive на iPad. На Windows Mobile должен быть уже установлен onedrive возможно он выполняет синхронизацию.
    Ответ написан
    Комментировать