Ответы пользователя по тегу Программирование
  • Классы и методы в разных пакетах, должны быть PUBLIC?

    TanVD
    @TanVD
    Джуниор C++/QT
    Судя по всему вы построили слишком сильно-связанный код. При разнесении в разные пакеты вы столкнулись с ситуацией, что всякий класс взаимодействует со всяким другим классом и соответственно всё должно быть Public. Правильным решением в таком случае является уменьшение связанности кода, например, с помощью паттерна ООП фасад. То есть, для уменьшения связанности кода вам необходимо разбить код на группы по функциональности и через фасад предоставлять необходимую функциональность одной группе другой группе.
    К примеру, вы можете создать группу классов работы с сетью, группы разных видов бизнес-логики, группу классов графического интерфейса.
    Фактически, вы будете проводить декомпозицию монолитного куска кода на кластеры по некоторой логике. Это задача довольно нетривиальна, однако она как раз позволит верно инкапсулировать логику в пакеты и создать к ним адекватные интерфейсы с помощью фасадов. В результате вы сможете скрыть сложность внутренней логики за фасадами и даже впоследствии вынести некоторые классы в библиотеки.
    Ответ написан
    Комментировать
  • На чем можно написать десктопное приложение под OSX?

    TanVD
    @TanVD
    Джуниор C++/QT
    На данный момент кажется QT может в OS X... Есть куча библиотек под С++ с реализациями API VK (что очень поможет освоиться с С++ на первых порах). Плюс QT в том, что выучив его вы не будете ограничены одной платформой - линейкой платформ (OS X, IOS) (как в случае со Swift).
    Ответ написан
    Комментировать
  • Как в таких случаях грамотней делать?

    TanVD
    @TanVD
    Джуниор C++/QT
    Для решения похожих проблем используется подход Аспектно-Ориентированного Программирования (АОП). Почитать можно
    Здесь (вики)
    Здесь (хабр)
    Здесь (почти книжка)
    Поддержка обеспечивается с помощью фреймворков типа AspectJ, Aspect#, Aspect.NET и кучей других.
    Ответ написан
    Комментировать
  • Какой план обучения программирования можно предложить школьнику на лето?

    TanVD
    @TanVD
    Джуниор C++/QT
    Почитай "Алгоритмы. Вводный курс." Кормена. Очень помогает ввестись в базовые алгоритмы и структуры данных. По языкам - прекрасная книга Кернигана и Ритчи "Язык программирования Си". Потом можно почитать Таненбаума, у него целая серия книг по основным сферам технологий.
    Есть ресурсы типа CodeAcademy, они помогают ввестись в синтаксис языка. (Например javascript, python. Но начинать советую всё же с С или С++).
    Посмотри Stepic, там сейчас выложены лекции Computer Science Center. Лекции по алгоритмам, архитектуре компьютера и основам программирования на С++.
    Очень советую начинать слушать подкасты, типа Радио-Т, devzen - начнёшь втягиваться в современную ситуацию в мире IT (тем более это не обучение и так можно отдыхать).
    Так же посматривай HabhHabr(технологии), Geektimes(научно-популярное), Мегамозг(вопросы менджемента и маркетинга в IT). (И это всё гораздо веселее чем звучит тут)
    Нужно научиться жить в IT (что однако не означает, что нужно непременно бросить читать любимого Шолохова), когда твоя учёба будет занимать не 2-3 часа в день, а все 14 часов бодрствования.
    На тему подробного плана. Я в 10 классе занимался так:
    1) Разбирал язык Си по книге Кернигана и Ритчи
    2) Смотрел лекции по Си на 100ege (прекрасной заменой могут стать лекции stepic)
    3) Попиливал свои проекты, например шифровал текст обычным XOR, составлял словари частотности из текстов, даже писал проверялку орфографии в словах.
    4) Почитывал книгу Кормена.
    Если найдёшь проект, интересный тебе, сразу станет легче изучать. Из-под палки вряд ли что получится.
    Ответ написан
    Комментировать